# 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_check` and `materials_check` grep 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 path `pushSOP` never 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.