docs(redesign): plan P5-15 acceptance checkpoints

This commit is contained in:
cesnimda
2026-10-09 08:29:16 +02:00
parent 46a0c0c6d2
commit 932b962b90
11 changed files with 937 additions and 2 deletions
+93
View File
@@ -0,0 +1,93 @@
# P5-15-00 — Phase 5 final acceptance planning
**Planning only — Phase 5 is not complete; Production remains NO-GO.** Reviewed 2026-10-09 from `46a0c0c6d23464869f50c0d88552963c29cfdacf` on `codex/ui-redesign-phase4`. Actual production branch is `main`, with automatic deployment on push; its inspected revision is `27657f31131cd95d42f0e1290853ec9c9b3959a4`. No application/test/CI/schema/configuration changes, deployment, production access, provider qualification, Docker recovery, P5-13 UI or B07 work belongs to this checkpoint.
This package audits the implemented product and prepares the remaining acceptance work. It does **not** rerun the application baseline or turn the P5-14 conditional verdict into full acceptance. Static source/commit/evidence checks and documentation hygiene are new planning evidence; reported regression/visual results below remain explicitly inherited.
## Acceptance package and authority
| Record | Purpose |
|---|---|
| [Slice inventory](SLICE_INVENTORY.md) | Every planned slice, verified implementation commit/current capability/test presence, readiness successors and plan discrepancies |
| [57-group acceptance matrix](PRESERVATION_ACCEPTANCE.md) | Complete original contracts, implemented touch, automated/manual/visual/responsive/localisation evidence, remaining action, severity and owner |
| [Route and navigation acceptance](ROUTE_ACCEPTANCE.md) | Original 31 patterns versus current 32, compatibility/query/permission/entry limits and runtime audit tasks |
| [Manual accessibility/responsive script](MANUAL_ACCEPTANCE.md) | Actual axe incomplete categories, practical human/screen-reader/device/zoom tasks and evidence requirements |
| [Debt and production-readiness register](READINESS_DEBT.md) | A/B/C/D classifications, known failures, safe executable operator checklist and release conditions |
| [Numbered execution plan](EXECUTION_PLAN.md) | Bounded P5-15-00–06 scopes, dependencies, tests/evidence, exit criteria and immediate commit/push boundaries |
Sources remain [Phase 1 full functionality](../../audit/FUNCTIONALITY_INVENTORY.md) and [routes](../../audit/ROUTE_MAP.md), [Phase 2 preservation](../../phase-2/PRESERVATION_MATRIX.md) and [traceability](../../phase-2/TRACEABILITY.md), [Phase 3 architecture/impact](../../phase-3/README.md), [Phase 4 completion and conditional gates](../../phase-4/p4-06/README.md), [approved Phase 5 plan](../PHASE5_PLAN.md), [visual protocol](../VISUAL_ACCEPTANCE.md), every linked implementation/readiness successor, [production assessment](../production-release-decision/README.md), [P5-13 deferral](../OPEN_BLOCKERS.md#p5-13-deferred-debt-and-return-conditions--2026-10-08) and [P5-14 final source/evidence](../p5-14/README.md). Later approved, evidenced successors govern current status; original failed/historical records remain intact.
**Status meanings:** PASS means only the precisely named criterion has adequate evidence at its declared source/runtime. PARTIAL means some criteria have evidence but mandatory scope/proof remains; FAIL means demonstrated behavior contradicts the criterion; DEFERRED requires an explicit approved exclusion, not merely missing evidence; NOT VERIFIED means evidence is absent or inadequate. A test file's existence is an anchor, not an execution. Missing tests do not prove failure. A successful mocked/local test cannot satisfy a human, real provider, physical-device or production criterion.
## Inventory decision
Implementation checkpoints exist for **P5-00, 01, 02, 03, 04a, 04b, 06, 07, 08a, 08b, 09, 10, 11 and 12**; **P5-14** is a completed **conditional subset** checkpoint for implemented P5-09–12. The exact commits and current implementations are independently reconciled in [SLICE_INVENTORY](SLICE_INVENTORY.md), rather than inferred from chronology.
In particular, **P5-11 `673cff114546a0976ae01ca9ca0d1086d36fee6a`** changes real preview chrome/readiness/fit/return behavior and adds owner/native browser evidence; **P5-12 `d8d262e4d1a6223f4b6c5fa52b8419013a929d35`** changes the real gallery/settings grouping, retains advanced controls and adds six frontend/four browser cases plus eight settings exports. Both commits are ancestors of this source and their components/tests/evidence remain present. Neither is accepted merely because P5-14 passed. Manual/device/font and combinatorial settings limits remain.
**P5-05 is deliberately reserved/deferred**, not a missing completed ticket: a new active quick-preview host is an unapproved new workflow. **P5-13 is unfinished/deferred**, despite completed deterministic safety work and release withholding. **P5-15 is planning in progress**, with no final acceptance verdict. Broader Career Profile, CV library, global Documents, mail, Settings/Admin and Notifications presentation migrations remain Phase 7; advanced Dashboard ordering/resizing/reset/persistence remains Phase 8. Their existing protected capabilities still require preservation review, even though this phase does not redesign those pages.
## Workstream acceptance summary
This table summarizes **current acceptance**, not implementation percentage. The linked 57-row matrix carries the complete original sub-workflows and per-group routes/components/evidence/owners. Existing screenshot/browser evidence is finite; human/device evidence is not supplied by this planning session.
| Workstream / planned criterion | Current implementation; routes/components/PRES | Automated evidence | Visual / accessibility / responsive / locale evidence | Status; remaining action, severity/owner |
|---|---|---|---|---|
| Five shell readiness gates and grouped navigation; all existing destinations accessible | Existing App/AppShell navigation/providers/collapse retained; `/settings`, Jobs and all authenticated entries; E07–E09/A01–A03/S03 | P5-00/01 shell, active-nav, dirty/account/permission fixtures retained | Recorded expanded/rail/drawer, EN/NB × themes, 320px/boundary keyboard and long-admin evidence | **PARTIAL** full acceptance; bounded implementation proof present. Current route/control traversal plus human names/focus/zoom needed; high if navigation inaccessible; shell/accessibility owner, 01/02 |
| Command/notification utility semantics, no unintended mutation or stale account data | QuickCommandDialog/NotificationsPopover/App; existing destinations and `/operations`; E07–E09/S02/W11/W12 | P5-02 keyboard/IME/query cancellation/read-dismiss/no-write and account regressions | Recorded populated/empty/error/focus and phone four-pair evidence; broader spoken names/live announcements absent | **PARTIAL**; mandatory P5-02 manual screen-reader item, command entry timing and transient feedback review; high interaction risk, 02/04 |
| Jobs Table/mobile, paging/saved filters/selection/Trash/density/Back | JobTable/JobsView and `/jobs`, `/trash`, `/jobs/:id`; J03–J07/W01/W02/S03 | P5-03, density and integration cases; native Back/query/row focus; owner/server read tests | Recorded Comfortable/Compact, light/dark EN/NB, populated/empty/error, desktop/tablet/phone cards | **PARTIAL** full edge/AT/device acceptance; audit current saved-view/bulk failure/control actions and return semantics; high preservation risk, Jobs owner 01/02 |
| Board native/keyboard alternatives, exact custom statuses and complete same query | KanbanBoard/shared Jobs query; `/jobs?view=board`, `/kanban`; J05–J07/W01/W02 | Readiness ID-membership/owner/trash tests, native pointer/keyboard/failed move and alias integration | P5-04a/b recorded desktop/phone/theme/locale/scroll evidence; native physical touch absent | **PARTIAL**; larger-result request/memory review and actual device/no-drag usability; potential medium/high scale/device impact, Jobs owner 01/02/04 |
| Personal Dashboard honest available metrics/actions/five flags | DashboardView/shared existing reports; `/dashboard`; S01/S02/E07–E09/W11/W12 | P5-06 report/definition/error/owner-local tests and native browser readback | Real populated/sparse/empty/error, value alternatives, EN/NB/themes/desktop/tablet/phone records | **PARTIAL**, preference-save 500 remains a recorded failure needing provider/concurrency/root-cause triage, not cosmetic acceptance; high reliability if reproducible; report/auth-storage owner 04 |
| Analytics existing report families, exact definitions/sample/period and safe drill-down | Shared reports + AnalyticsPage; `/analytics`; S01/S02/J05/J09/E07–E09 | P5-07 period/query/exact-value/independent-error regression evidence | Existing 6/12/24/current/all-time distinctions, sparse/custom categories, exact tables and four-pair responsive records | **PARTIAL** full AT/category/provider/timezone acceptance; current metric limits retained, no invented new denominators; report/accessibility owner 01/02 |
| Job header/Overview actions/status/dates and safe section entry | ApplicationWorkspacePage/progress/detail; `/jobs/:id`, `/applications/:id`; W01/W02/W03/J05–J07/E07–E09 | P5-08a real detail/status/missing/foreign/Back plus targeted progress keyboard cases | Recorded long/sparse/custom/interview/deadline states and theme/locale/phone reflow | **PARTIAL** full role/long-content/menu/SR review; no new job mutation semantics; high if an existing action is lost, workspace owner 01/02 |
| Deeper sections/native frozen packages/documents/notes/tasks/timeline/mail/interview | Seven canonical URL sections and legacy text aliases, plus numeric navigation-helper arguments; retained domain children; W01–W12/M01/M02/M04/M05/C05–C12 | P5-08b readiness native ZIP/immutable/readback/ownership, current ordinary P2-D01 and section/dirty/history proof | P5-08b recorded populated/empty/frozen/document scroll/phone; generated English events in NB and manual dialog semantics remain | **PARTIAL**; all-child action and external/provider/AT proof; `followMode` metadata preserved but compose UI **DEFERRED**, mail owner. High package/navigation boundary, 01–03 |
| CV frame/navigation/save/history/undo and separate named editor/preview | CvBuilderEditor, identified route `/career/builder/:id`; C05/C06/C10/C12/E07–E09 | P5-09 frame tests + revision readiness, current P5-14 draft/focus/conflict recovery | Four-pair local native viewport/mode/long-section evidence; human/device/zoom gaps | **PARTIAL** complete acceptance, implemented frame proven locally; current controls/reflow/assistive technology needed, CV owner 01–03 |
| Source/override/CV-only/omitted content, reset/order and safe revisions | Existing canonical profile plus selected CV settings lens; `/career`, editor; C01/C02/C06/C07/C10/W05 | P5-10 source/sibling/reset/save tests; P5-14 four nested owner/default-drop cases and native persisted order | Recorded inherited/custom/hidden/edit/error states, phone named alternatives, EN/NB/themes | **PARTIAL** all long-tail entries/manual scope understanding; P5-10-O01 closed only for tested gesture ownership. No whole-container dimming; high data-boundary risk, CV owner 01–03 |
| Preview chrome, independent busy/error/retry/fit/count/keyboard scroll | Existing native HTML/iframe renderer + preview pane; C06/C08–C10/C12/E08/E09 | **Independent P5-11** focused owner/native tests plus final fidelity/scroll suites | White output in dark surround; one/multi/long pages, fit and return captures; P5-14 shell/landscape corrections | **PARTIAL** complete AT/device/zoom/production qualification; no manual zoom/fullscreen workflow is implied; CV/rendering owner 02/03 |
| Template/appearance/layout controls retain all supported IDs/fields/default/reset | CvCustomizeTab/CvTemplateGallery, same settings/renderer; C06–C10/C12/E08/E09 | **Independent P5-12** controls/Pro locks/reset/value-preservation tests and **8 exports/24 aligned pages** | Recorded Template/Style/Layout/Advanced controls, invalid input/reset/menu focus and four theme/locale pairs at desktop/tablet/phone | **PARTIAL** finite combinations/AT/production fonts/photos; some saved-only dormant values are not new controls. Document controls owner 02/03 |
| Revision/override/frozen package and authoritative PDF correctness | Current API revision/CV settings and native package/PDF owners; C01/C05–C12/W05/W07/E09 | Bounded **5/5 revision; 16/16 standard, 36=36; 8/8 settings, 24=24**, native package/P2-D01 and ownership | Inherited local measurements/comparisons at fixed tolerances; Linux deployment/font/photo/wrapped-line combinations unqualified | **PASS for those exact local oracle cases; PARTIAL overall.** Preserve historical settings semantics versus frozen archived bytes, not an invented profile snapshot; critical document correctness, CV/native owner 03 |
| CV AI factuality, proposal/review/apply and full responsive journey | Deterministic API guards implemented; Production service withheld; review UI not migrated; C11/C07/C10/S04 | 108 focused backend subset, sidecar49, realHTTP2; stale/tenant/history isolation retained | **0/366 real configured-model calls, 0 human reviews, semantic accuracy unmeasured; new UI/missing AI responsive evidence absent** | **DEFERRED / NOT QUALIFIED**; full planned Phase 5 blocked. No qualification/recovery/UI/activation here; product+AI owner only after a separate instruction |
| P5-14 responsive implemented CV subset | Same editing/settings/preview owners; C05–C12/E07–E09/S04 | +4 frontend/+5 browser journeys; retained conflict/latest source/native renderer | 33 selected captures, 320–1440px and short landscape; real mouse and emulated taps, four pairs | **PARTIAL / CONDITIONAL GO for P5-09–12 only**; physical/software-keyboard/SR/zoom/font and missing P5-13 journey remain, 02/03 |
| Non-migrated original auth/security/account/Career/library/mail/Settings/Admin/capture/import/export | All original entries/owners retained; remaining E/J/C/M/S/A groups in 57-row matrix | Existing unit/service/native/security suites and original route census | Shared foundations affect these surfaces; some local representative Settings/canonical/public/Admin evidence, not all journeys | **PARTIAL / NOT VERIFIED where missing evidence**; unchanged code is not automatic acceptance. Provider/operator/low-frequency UI audits 01/02/05 |
| Production ingress/recovery/config/schema/rollback/CI and actual auth/tenant health | Current `main` and existing deployment/backup mechanisms | Local security/config tests pass **historically**, not deployed proof | Required current operator/infrastructure verification missing | **NOT VERIFIED — Production NO-GO**; release-critical high/critical, operator+release owner 05; no push/deploy |
## Preservation, route and design reconciliation
All **57 original PRES groups** remain required: 9 E, 10 J, 12 W, 12 C, 6 M, 5 S and 3 A. The [matrix](PRESERVATION_ACCEPTANCE.md) maps every group without redefining its full original row. Mapping completeness is not behavioral coverage. Account identity/Career Profile/CV/frozen package/send-attempt remain separate authorities; a scope label does not enforce ownership.
Current static routing has **35 declarations / 32 concrete patterns**, preserving all **31 original patterns** and adding `/analytics`. `/kanban` is now a compatible Board alias; `/applications/:id` and correspondence-review aliases retain their actual documented semantics. Static path presence does not prove entry/redirect/hash/dirty/history/permissions. The [route audit](ROUTE_ACCEPTANCE.md) lists explicit limitations and runtime checks. No actual `/career/profile`, global `/documents`, full `/notifications` or aggregate `/admin` destination is inferred from proposal/historical prose. Low-frequency destinations must remain reachable through existing primary/secondary/account/command/context paths.
Current known discrepancies require reconciliation, not invented features: historic blocked 04b and P2-D01 expected-failure text are superseded; `followMode` has an approved metadata-only exception; historical CV settings are not a full canonical Career Profile snapshot; manual preview zoom/new quick preview/global Documents/new metrics/customisation are separately proposed work. The existing P5-12 template reset/default/capability contract governs actual controls, even where a Phase 3 recommendation described different future UX.
Acceptance also compares cross-screen hierarchy, semantic surfaces/focus, P4 page widths/gutters/typography/section rhythm, table density/statuses/filters, action/menu/form/tab/dialog consistency, information density and dark mode. Retain actual useful data/actions rather than hiding controls to obtain cleaner screenshots. The [visual protocol](../VISUAL_ACCEPTANCE.md) defines representative states and dimensions, not a mandate for a new component system or final branding decision.
## Accessibility and responsive decision
P5-14 retains **242 axe scans, zero reported violation entries and 1,839 incomplete target occurrences**: contrast 1,574; hidden-focus 34; prohibited ARIA 209; invalid ARIA values 18; table header/data association 4. These are repeated observations across states, not 1,839 distinct defects and not passing checks. [MANUAL_ACCEPTANCE](MANUAL_ACCEPTANCE.md) classifies exact rule/context handling, potentially serious traps/names/state/header failures, browser/iframe/transition limitations and required human visual/assistive-technology proof.
Existing native keyboard and screenshot review passes are evidence for their declared tasks. **No suitable human screen-reader review, real-device/software-keyboard acceptance, actual 200%/400% browser zoom/forced-colours/text-spacing or production font/photo qualification is newly supplied here.** Those remain NOT VERIFIED. Review commands/notifications, all mobile navigation, Board alternatives, charts/exact values, Job sections/dialogs, CV scope/settings/mode/focus/scroll/conflict and Settings, including loading/error. Emulated taps are not physical-device proof. Device/AT absence does not allow an agent to self-certify.
## Production and debt decisions
**Production stays NO-GO.** Missing F04 actual proxy/socket peer/trust/IP/firewall/NAT/IPv6/DNS/TLS, current complete backup/isolated restore, real provider/config/schema/keys and tested rollback are A-class release blockers. Protected remote CI/deployment revision/authenticated owner smoke and operational monitoring/failure recovery also require actual proof. Read-only preparation or scripts' presence does not establish verification. [READINESS_DEBT](READINESS_DEBT.md) assigns A/B/C/D classifications, severity/owner/evidence to every retained issue and gives an executable operator sequence. No production endpoint is contacted by this plan.
Preference-save HTTP 500, SQLite concurrent saves, silent language-save failure, company-modal inaccessible feedback and dialog/command focus observations need bounded impact/root-cause investigation; this plan does not close them after a successful rerun. Board scaling/native touch, calendar/DST, startup fallback/worker containment, billing/deletion/provider delivery and all other recorded debt retain their specific enablement/release boundaries. P2-D01 is **closed/ordinary passing**. Tested shell/tooltip/toast/nested drag fixes remain scoped closures, never universal certification.
**P5-13 remains DEFERRED — BLOCKED / NOT QUALIFIED.** The frozen 32-case corpus/rubric and 366 required uncached generation/evaluation calls stay unchanged; configured deployed identity and semantic correctness remain unverified, zero human reviews, review UI unfinished. Deterministic grounding/source-version/tenant/no-write/history guards protect the authoritative API; they cannot replace model/human qualification. Production `503 cv_ai_unavailable` withholding before provider/write stays active, and unrelated AI remains subject to its existing operational/privacy boundaries. Future qualification/UI/activation each needs its separate instruction/decision; none starts during P5-15-00.
## Execution and verdict rules
The proposed checkpoints are **00 inventory → 01 functional/preservation → 02 responsive/accessibility → 03 CV/document correctness → 04 debt triage/individual remediation → 05 production evidence → 06 final regression/decision**. Their entry/exit criteria, dependencies, test commands, reviewer/operator tasks and immediate commit/push boundaries are in [EXECUTION_PLAN](EXECUTION_PLAN.md). Infrastructure/manual packet preparation can proceed independently; missing evidence cannot be recast as a pass. Each completed logical fix/evidence checkpoint is separately pushed and its SHA recorded before proceeding.
- Implemented product scope receives its own explicit PASS/PARTIAL/NO-GO decision, describing finite coverage and approved exclusions.
- **Original full Phase 5 acceptance cannot be unconditional GO** with mandatory P5-13 and human/device/other acceptance requirements incomplete. Deferral records obligations; it does not fulfill them.
- Production receives a separate **NO-GO** until actual A-class evidence passes. A later GO assessment and separate owner authorization are required before any production merge/push/deployment.
- Any demonstrated preservation/security/revision/frozen-output regression blocks its affected scope and release as appropriate. Missing evidence stays NOT VERIFIED; do not average it away or mask it with retries, tests or screenshots.
## Baseline and planning validation
Inherited from P5-14: **1,023 backend; 459 frontend; 117 actual browser; 49 sidecar; 108 focused AI and 5 revision cases (backend subsets); 2 real HTTP; 9/6/1/3 rate-limit/ingress/PDF/config; 16/16 with 36=36 pages; 8/8 settings with 24=24 pages**. App/E2E TypeScript, lint, frontend production/API/test Release builds, security/secret/whitespace/document checks have inherited passing records. **No application suite, new rendered UI inspection, live-model test or production verification is claimed fresh for this planning-only checkpoint.** Count changes: zero application/test changes and no new cases.
Planning validation checks exact source ancestry/path/test/evidence presence, all 57 unique IDs, original/current routes, inherited axe/fidelity/count reconciliation, local links/anchors, Markdown tables/fences, source-tree unchanged, staged secret/whitespace and development remote/tree state. Its sanitized [planning check record](PLANNING_CHECKS.json) distinguishes these new static checks from inherited regressions. The SHA is the commit introducing this package, obtainable from the command in the execution plan and the checkpoint's final report; no self-referential fabricated hash is stored.
**Stop after committing and pushing P5-15-00 for review.** No P5-15-01 implementation, production deployment, P5-13 work, B07 or next redesign phase starts automatically.