docs/reference/completion.md walks every item: the 55 from IMPLEMENTATION.md section 6 and the 10 from decisions-2026-08-18.md. For each: status, the task that delivered it, the probe that re-verifies it on every run, and every deviation from written acceptance criteria - B7's page-not-merge (measured), CR-014's email body (the no-customer-IP rule won), CR-008's merge-vs-list (recommended, not decided), F6's 2.17-vs-2.0 (BL-022), S1's residual 21 dialogs (BL-024). The four out-of-scope items are confirmed unbuilt - two of them by probes that grep for their fields on every run. Section 8's outstanding inputs are restated (the material workbook and the B100 list still have not arrived; both upload paths are ready). The follow-ups for the next revision are in one place, including three product questions raised in commit messages along the way and the acceptance criteria that turned out wrong, for calibration. One item in the whole plan is knowingly open: S13 (seed_demo sign-in), carried with a reason, and F6's last number awaits a product answer. Wave 9 exit criteria: seven of seven, ticked with their verifying probes. Items: all Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
7.1 KiB
7.1 KiB
Completion — the R2 plan, reconciled (T9.7, 2026-08-19)
All 65 items accounted for: the 55 in IMPLEMENTATION.md §6 and the 10 in
docs/waves/decisions-2026-08-18.md. Delivery references are task ids; the
branch is local-only by instruction (one task = one commit, ids in every
commit message), so the commit history IS the PR trail. Verification counts
name the probe that re-checks the item on every run.
Change requests
| Item | Status | Delivered by | Notes / deviations |
|---|---|---|---|
| CR-001 | built | T6.1 (generalinfo_check 49) |
|
| CR-002 | built | waves 1–2, field toggles T5.7; applied to the export at T9.1 | the Micron samples now name costCode:false, acumaticaTask:false |
| CR-003 | built | T6.2 | three priorities, escalating order |
| CR-004 | built | T6.3 (locations_check, rollup_check) |
paths, not labels |
| CR-005 | built | T5.4 | upload path; B100 list still not supplied (§8) |
| CR-006 | built | T5.7 (sections_check 95) |
hidden, never deleted — pinned |
| CR-007 | built | T7.7 (files_check 36) |
D8 numbers enforced server-side; offline verified against a killed server |
| CR-008 | built | T9.1 (export_check 20) |
deviation raised, not decided: merge-vs-list — recommendation is inline images + listed PDFs; merged-PDF output needs Nick |
| CR-009 | built | T8.1 (kitting_check) |
statuses adopted as proposed; kitting off for Micron EUV by toggle |
| CR-010 | built | T8.2 | owner on the PACKAGE (confirmed Aug 18), account-backed, orphan-safe |
| CR-011 | built | T8.3 (kitting_notify_check 17) |
coalesced; T7.6 gate reused; sink-verified |
| CR-012 | built | T8.4 | shared location lists + detail field; prints and mails |
| CR-013 | built | T8.5 (mreq_check 19) |
lightweight scope exactly; fences grepped |
| CR-014 | built | T7.6 (qa_gate_check 40) |
deviation, stated in the commit: the email body omits location/scope — the done-when's no-customer-IP rule outranked the Do-paragraph; fuller body needs Nick |
| CR-015 | built | T7.3 (hold_check 50) |
root cause stated (both halves); regression test specific to clear-last-constraint |
| CR-016 | built | T5.7 | |
| CR-017 | guarded | T9.2 | present, optional, rolls up; BL-023 logs the productivity factor |
| CR-018 | built | T6.4 (rollup_check 63) |
Findings and structural items
| Item | Status | Delivered by | Notes |
|---|---|---|---|
| F1–F5 | built | waves 1–3 | |
| F6 | built, one number open | T7.2 (5,399 → 1,954px) | BL-022: 2.17 screens vs the strict 2.0 encoding of “roughly two” — product call, check stays red |
| S1 | built | T5.8 wizard, T7.9 creator (creator_dialogs_check 20) |
79 → 21 dialogs; the 21 live on surfaces no S1 task named — BL-024 |
| S2–S5, S9–S12 | built | waves 2–5 | |
| S6 | built | T9.3 (icon_check 5) |
one monochrome system, mapped in tokens.md |
| S7 | built | T9.4 (sample_check 10) |
one affordance, confirmed, fenced — verified against a real project |
| S8 | built | T9.5 (helptip_check 13) |
20 badges → buttons; closed BL-001 |
| S13 | open | — | seed_demo.py still does not sign in; the smoke test does. Carried to the next revision |
| A1 | preserved | T7.3 | confirmEarlyRelease() by name; async now, same contract |
| A2 | built | T7.4 (warning_check 17) |
one warning; the count on the sticky rail |
| A3–A5, A7 | built | waves 1–6 | localization re-verified through T7.10's admin edits (cards_check) |
| A6 | built | T7.5 (triage_check 16) |
|
| B1–B5 | built | waves 2–5 | |
| B6 | built | T7.8 (sticky_bar_check 12) |
|
| B7 | built | T7.1 (frame_check 38) |
deviation, stated in the commit: the creator became its own page rather than merging into the parent — measured trade (0 collisions vs 21+9) |
| C1 | audited | T9.5 (accessibility-audit.md) |
every metric probe-backed |
| C2 | audited | T9.6 (mobile_check 24) |
screenshots committed beside the wave 0 baseline |
| C3 | built | wave 3 | |
| C4 | built | wave 4 interim, T9.9 full (color_check 4) |
zero literals outside theme-light.css |
The August 18 decisions
| Item | Status | Delivered by |
|---|---|---|
| D1 | built | T7.1 (sample controls visible; consolidated at T9.4 per the S7 reconciliation) |
| D2 | built | T7.6 (QA group on the SOP wizard) |
| D3 | built | T7.2 (rail + collapse; the "at rest" amendment recorded) |
| D4 | built | T7.3 (Urgent surfaces the audited path; the override names what it crosses) |
| D5 | built | T7.10 (one analytics core; admin report) |
| D6 | built | T8.6 (material list, the CR-005 pattern, one shared component) |
| D7 | built | T9.8 (archived_check 15) |
| D8 | built | T7.7 (5MB / PDF+image / 2GB, 80% warning) |
| D9 | built | T7.6 (Field View text pill at 390px) |
| D10 | built | T7.6 / reused T8.3 (stored setting, admin-only, audited, sink-verified) |
Out of scope, confirmed unbuilt
- Parts catalog / live inventory / warehouse integration —
mreq_checkandmaterials_checkgrep the model and the diff for stock/inventory/price fields on every run; none exist. D6's uploaded list is project-scoped data entry, not a catalog. - Asset database integration — the assets section stays a CR-006 toggle (off on the Micron sample); no integration code exists.
- CxAlloy integration — CR-014 is notification-only, as the task footnote ordered; the platforms block stores names and URLs, nothing calls them.
- P6 activity import — CR-001 renders the two fields; nothing imports.
Outstanding inputs (IMPLEMENTATION.md §8, restated)
- Nate's spreadsheet and the master material workbook: still not supplied. D6 built the upload path so their arrival is a paste, not a build.
- The real B100 floor/area list: still not supplied. CR-005's upload is ready for it; every seeded value remains obviously fake.
- SMTP host/credentials for production mail: the gate ships off; the password is env-only. Nothing on this branch has sent a real email.
For the next revision
- BL-020 — the wizard→creator navigation prompts to leave (T4.3's guard doing its job on what is now a page exit); product call on suppression.
- BL-021 —
project_sop_team()reads a pathpushSOPnever writes; the critical-reopen mail has never reached the PM/CM. One line, needs its own sink verification. - BL-022 — F6's "roughly two screens": 2.17 vs the strict 2.0. Bless it or name the chrome to trim.
- BL-023 — the productivity factor (actual ÷ estimated); data already aggregated, placement needs Nick.
- BL-024 — 21 native dialogs on admin/users/launcher; the T7.9 kit is ready for them.
- S13 —
seed_demo.pysign-in. - Product questions raised in commit messages, awaiting answers: hold reachable from Draft/Scheduled (T7.3); CR-014 email body content (T7.6); merged-PDF export (T9.1).
- Acceptance criteria that turned out wrong, for the next plan's calibration: F6's height bar collided with D3's own chosen design (amended once, then left red rather than moved again); A2's "tab count badge" predated D3 removing tabs (the rail carried it); S1's "0 dialogs" never named the console pages that held a quarter of them.