The housekeeping list carried S13 ('seed_demo.py does not sign in') from
completion.md and CLAUDE.md. It is not true and has not been since wave 1:
T1.6 (357712e) rewired seed_demo.py onto smoketest's opener - one cookie jar,
one login flow - and the file's own docstring says so. What actually happened:
the wave-1 exit checkbox was never ticked, and every later document inherited
the unticked box as fact.
Verified live before correcting anything, per the working rules: against a
throwaway server, seed_demo.py signs in as an admin, seeds the DEMO project
(7+ packages visible via the API), and --clean removes it, exit 0 both ways.
Corrected: the wave-1 exit box (ticked, with the reason), completion.md's S13
row (open -> built at T1.6, records error named), and CLAUDE.md's
verification step 4, which taught every future session the stale claim.
Item: S13 (closed as already-built; records corrected).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
7.5 KiB
7.5 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 | built | T1.6 (re-verified 2026-08-20) | this row said "open / does not sign in" until Aug 20 - a records error: T1.6 fixed it in wave 1 (it reuses smoketest's login) and the wave-1 exit box was simply never ticked. Verified live: sign-in, seed, --clean |
| 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) |
| D11 | built | merge of origin/Micron-Assets + integration, Aug 20 (assets_check); see decisions-2026-08-20.md |
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 — SUPERSEDED by D11 on Aug 20: Cody Schaefer's
Micron asset picker (read-only catalog lookup,
origin/Micron-Assets) merged and adapted to the R2 creator. The assets section stays a CR-006 toggle (off on the Micron sample). This line was true when written. - 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.
- 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.