Adds the required doc set under docs/mmd-pdf/ - PRD, feature backlog with status and sign-off per feature, screens with wireframes, test cases with the test data and the agent-tasking prompts, and the sign-off log. The sign-off log records the independent design review of 2026-08-27: DESIGN-FAIL, three blockers and five major findings, which is why every design feature in the backlog is blocked and the logo/token branch is unmerged. Design working files live in docs/mmd-pdf/design/ so the next agent can regenerate and re-render them. redplate.css there is the MMD shell design system lifted verbatim from the session that owns it - do not edit it. Also carries the session handover. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
6.3 KiB
MMD PDF — test cases, test data, agent tasking
The rig
Testing happens on mmd-win-test-01 — VM 203 on hypervisor mmd-fsn-03 (Falkenstein, 168.119.88.172 / tailnet 100.64.0.19), Windows Server 2022, guest 10.10.20.22. It auto-starts with the host.
A user test uses keyboard and mouse only. The rig is
/opt/mmd-wintest/wintest on the hypervisor — Xvfb + xfreerdp3 + xdotool, so
every input is a real pointer or key event. There is no scripting back door in
that path.
wintest start | stop | status | shot <name>
wintest move <x> <y> · click [1|2|3] · dblclick · at <x> <y> [btn]
wintest drag <x1> <y1> <x2> <y2> · scroll up|down [n]
wintest type "<text>" · key <keys...>
/root/winrun.py (PowerShell over WinRM) exists for setup and for reading a
result back — installing, copying a file in, extracting text from a saved
PDF. It is never used to make something happen inside the application.
Gotcha: Stop-Process on a running GUI app hangs the WinRM session. Launch GUI
apps with a new scheduled-task name:
schtasks /create /tn X /tr "..." /ru Administrator /it /f then /run.
Test data
/root/kpdf/mkpdf.py on the hypervisor writes a one-page delivery note:
MMD STEEL GROUP - DELIVERY NOTE
Supplier: Fabrimetal SARL
Reference: BON-2026-0847
Quantity delivered: 12 tonnes
Received by: ____________________
Editing test: change the quantity above to 14 tonnes.
Serve it to the VM from the hypervisor (the VM reaches 10.10.20.1, and now the
internet too after its DNS was fixed on 2026-08-27):
cd /root/kpdf && python3 -m http.server 8899 --bind 10.10.20.1
TC-01 · Open and read a PDF — PDF-01
Input Launch MmdPdf.exe with C:\src\clean-note.pdf as its argument.
Expected Window opens; the page renders; the status bar reads 1 OF 1; the
title bar carries the file name.
TC-02 · Change text already on the page — PDF-02
Input Double-click the words "Quantity delivered: 12 tonnes". Press End,
nine × BackSpace, type 19 tonnes, press Enter.
Expected The line reads "Quantity delivered: 19 tonnes" on screen.
TC-03 · The old text is removed, not covered — PDF-03 · the one that matters
Input After TC-02, click Save, answer Replace. Then read the file back:
pdftotext delivery-note.pdf -
Expected The extracted text contains 19 tonnes and does not contain
12 tonnes. Every other line is unchanged and still extractable.
Falsification Before the fix this returned both figures. If 12 tonnes
appears, the fix has regressed and the tool must not be used to correct figures.
TC-04 · Save asks before it overwrites — PDF-04
Input Edit anything, click Save.
Expected A dialog naming the file. Nothing is written to disk until it is
answered. Cancel leaves the file byte-identical.
TC-05 · No admin rights, portable — PDF-05
Input Copy the single .exe to a folder in a standard user's profile and
run it.
Expected It runs. No elevation prompt. Nothing is written to Program Files.
TC-06 · Leaves the Windows default-PDF setting alone — PDF-06 · security
Input Read HKCU:\...\FileExts\.pdf\UserChoice (ProgId, Hash) and the
key's ACL. Install, launch, open a PDF. Read them again.
Expected ProgId, Hash and the deny ACE are identical. No helper binary
appears beside the executable.
Falsification PDFgear forged this hash and stripped the deny ACE. If either
changes, the tool is blocked, as PDFgear was.
Read-only — this test only reads the registry.
TC-07 · MMD name, icon and word-mark — PDF-07
Input Look at the title bar, the taskbar icon, the About box, and Explorer's icon for the file type. Expected MMD PDF everywhere; the official lockup in the title bar; no trace of the upstream product name or author. Icon legible at 32px and above.
TC-08 · MMD design system, light only — PDF-08 · ⛔ blocked
Input Open Settings; look for a theme or accent picker. Sample the chrome,
rail, page-field and ink colours.
Expected No picker exists. Values match Themes/MMD.xaml. No dark surface
anywhere. Windows title bar stays light.
Blocked until the design passes review and Ben signs it.
TC-09 · Works at 800×600 — PDF-09 · ⛔ blocked
Input Set the VM to 800×600. Open a document. Reach every tool. Expected No horizontal scrollbar on the chrome. Every tool reachable. Every label a person must read is at least 9px. The page is visible without scrolling its own width. Blocked on the toolbar direction (A/B/C).
TC-10 … TC-18 — not written
Forms, mark-up, page work, text recognition, scanning, French, print, signing and Intune are ⚪ in the backlog. Write the case when the feature is picked up; do not pre-write cases for work nobody is doing.
Agent tasking
To run a user test (TC-01 … TC-09):
You are testing MMD PDF on mmd-win-test-01. Reach the hypervisor with
ssh -i ~/.ssh/id_ed25519_mmd_fsn03_rescue root@100.64.0.19. Start the rig withwintest start. Every action inside the application must be a real keyboard or mouse event throughwintest— never PowerShell, never a registry write, never a command-line argument to make something happen./root/winrun.pyis allowed only to put a file on the VM, launch the app, and read a result back. Run exactly as written. Screenshot before and after every step withwintest shot, decode each PNG and look at it. Report each step as it happened, including anything that did not work. If you cannot perform a step, sayblockedand name the exact interaction — do not substitute a different route to the same end.
To review a design (any UI change):
You are an independent design reviewer. You did not build this. Your default verdict is DESIGN-FAIL; only evidence moves you off it. Read the screenshots as images. Judge against: 800×600, light only, the fixed palette, red only for one primary action / focus / urgency, square corners, the type scale, a 9px floor on any text a person must read, no icon-only buttons except the window controls, dense but not cramped, and whether a plant clerk who is not a computer person could use it. Output a verdict line then numbered findings, each with severity, the screen, the specific element, and the concrete fix. DESIGN-PASS only with zero blockers and zero majors.