2.9 KiB
2.9 KiB
US09-04 — Write the User Manual with Generated Screenshots
Epic: E09
As the person actually sorting a photo library, I want a manual that walks the workflow screen by screen and tells me what each refusal means, so that I can use the application confidently and know what it is about to do to my files before it does it.
Acceptance criteria
- One page per workflow stage, in the order the application presents them: discovery and inventory, duplicate review, safety review, analysis, album proposals, renames, upload, archive, and diagnostics. Each page answers the same four questions: what this stage is for, what I have to decide, what it changes on disk or on the server, and what it refuses to do.
- A guided first pass that takes a new library from scan to a verified upload, naming the point of no return in each stage and what is reversible after it.
- Every stage page carries at least one screenshot of the real application showing the state being described.
- Screenshots are generated by a committed Playwright script that seeds a temporary fixture library, drives the application, and writes the images. Regenerating them is one documented command. No screenshot is captured by hand.
- Screenshots contain no real library paths, no personal photos, and no secrets — the fixture library is synthetic, and this is asserted rather than assumed.
- An error and refusal catalogue: every
error.codethe API can return, with what causes it, what the application did or refused to do, and what the operator should do next. Refusals that protect data (lock_held,rename_recovery_required,stale_preflight,path_not_allowed,host_not_allowed,dry_run_not_approved, conflict codes) are explained as intentional, not as faults. - A recovery page: an interrupted rename, an uncertain upload, a failed migration, a restored backup — what the application does by itself and what needs a decision.
- The work-item safety allow list is extended to permit
docs/images/**, since the repository denies image files by default. This is an explicit, reviewed change, not a quiet one, and it stays narrow enough that a real photo still cannot be committed.
Automated tests
- Every
error.codethe application can emit is documented, and every code documented exists in the code — both directions. - Every image referenced by a documentation page exists, and every image under
docs/images/is referenced by a page. - The screenshot generator runs end to end in the test environment and produces every image the manual references, against a temporary fixture library that is destroyed afterwards.
- Generated screenshots are checked for library paths outside the fixture root and for the configured secrets.
- Browser: each stage page renders in the documentation view with its screenshot loaded and no console error.
Dependencies
- US09-01