8-week Plan Reconcile — Marko's board vs spec (2026-09-03)¶
For Marko — action items in your lane (Linear + frontmatter reconcile)
Cross-check of the 8-week-plan Linear label against this spec repo, 2026-09-03.
Read-only on Linear — no issues were created or edited. The two genuine
content gaps are already drafted in PR #20; everything below is for your
reconcile lane (frontmatter PINs, cycles, and the scope/CSV scripts).
What changed on the board¶
The 8-week-plan label is now a curated 54 issues = 13 module epics
(roadmap-epic) + 37 child tasks + 4 QA sweeps, grouped by Linear Project.
- Window moved C13–C16 → C14–C17. The label reads "Locked C14–C17 8-week program" and the QA sweeps are PIN-1117/1118/1119/1120 = C14/C15/C16/C17.
- You consolidated loose tickets into the 13 epics and cut a new PIN-1063–1082 / PIN-1023–1029 series. Most of the reconcile below is just wiring those new PINs onto spec pages that already exist.
Every one of the 13 modules maps to a spec module — no orphan modules. Gaps are all at the task level.
1. Frontmatter wire-ups (7) — page exists, needs your new PIN¶
These 7 board tasks had no spec page citing their PIN, but the feature is
already spec'd under an older/!different PIN (or none). Add your new PIN to each
page's linear: frontmatter (your lane — I did not touch these).
Spec page (content/features/…) |
Current linear: |
Add | Board ticket |
|---|---|---|---|
bids/proposal-deterministic-by-scope-pdf.md |
PIN-134, PIN-838, PIN-853 | PIN-1073 | Proposal — deterministic by-scope PDF |
progress-drawings/general-pdf-viewer-one-bluebeam-style-viewer-tha.md |
PIN-973, PIN-348 | PIN-1074 | PDF viewer — markup toolkit (2/2) |
tasks/tasks-kanban-board.md |
PIN-29 | PIN-1075 | Tasks — Kanban board ✅ (the ticket you split out after the prior flag) |
bids/award-to-project.md |
PIN-274 | PIN-1078 | Award → Project — workflow UX + AI polish |
submittals-rfis/project-detail-project-controls-submittals-email.md |
(none) | PIN-1080 | Submittals — email templates |
submittals-rfis/project-detail-project-controls-rfis-ai-draft-pd.md |
PIN-52, PIN-301, PIN-459 | PIN-1081 | RFIs — Project Controls hardening |
change-orders/project-detail-change-orders-scope-change-rev-co.md |
PIN-53, PIN-298 | PIN-1082 | Change Orders — Project Controls hardening |
2. The 2 genuine content gaps — drafted in PR #20 (my lane)¶
Net-new from Conor's 2026-09-03 list, no prior PIN, no spec page. PR #20 adds both (scope + acceptance criteria distilled read-only from your tickets):
- PIN-1076 Non-PDF / SharePoint-link document open →
content/features/documents/ - PIN-1077 Smart Import — manual drawing upload / import →
content/features/smart-import/
Please sanity-check the frontmatter (cycle: C15, estimate: M) against your reconcile.
3. Window + script re-baseline (your tooling)¶
The repo's scope/schedule automation is still keyed to the old window and the old hardcoded scope, so it now over-counts vs your curated board:
scripts/apply_status_cycle.py→POINT_TO_CYCLEand the C12 current-cycle logic assume C12–C16. Shift to C14–C17.scripts/gen_feature_lock_csv.py→IN_8WEEK_RULESflags 84 spec pages in-scope; your board is a tighter ~40 features. Recommend deriving "in-scope" from8-week-planlabel membership (the 54-PIN set) instead of the regex.scripts/gantt.py+scripts/combogantt.py→CYCLE_DATES/ captions extend only to C16; add C17.
4. Scope reconcile — repo says in-scope, nothing on your board¶
35 in-scope pages already carry ≥1 board PIN. The rest (below) are not on your
board. Most look like deliberate tightening — listed so you can confirm, after
which they fall off naturally once IN_8WEEK_RULES is re-based to the label.
28 pages to confirm-defer (has old PIN, none on board)
| Module | Page | Cites |
|---|---|---|
| Bids | bid-detail-estimate-alternates | PIN-249 |
| Bids | bid-detail-estimate-award-sheet | PIN-197, PIN-203 |
| Bids | bid-detail-estimate-equipment-schedule | PIN-319 |
| Bids | bid-detail-estimate-estimating-sheet | PIN-47, PIN-197 |
| Bids | bid-detail-estimate-takeoff-summary | PIN-197, PIN-416 |
| Bids | bid-detail-leveling-sub-bid-comparison | PIN-198, PIN-203, PIN-260 |
| Bids | bid-detail-vendors | PIN-92 |
| Cara | cara-copilot-hub-fab-shipped-mvp | PIN-289, PIN-490, PIN-511 |
| Cara | real-rag-wire-pgvector-retrieve-on-write-index | PIN-315, PIN-316 |
| Documents | project-detail-documents-p1-p8-folders | PIN-297, PIN-648, PIN-651 |
| Estimating | estimate-popout-live-collaborative-presence | PIN-279 |
| Estimating | estimate-revision-selector-r2-estimate-versioning | PIN-244, PIN-245, PIN-246 |
| Estimating | live-presence-concurrent-editing | PIN-279 |
| Estimating | mobile-estimating-view | PIN-1024 |
| Estimating | settings-template-panel-apply-estimate-template | PIN-48, PIN-102 |
| Progress Drawings | project-detail-drawings-viewer-cad-dwg-layers | PIN-148, PIN-212 |
| Purchase Orders | project-detail-purchase-orders-tab-approval-pdf | PIN-276, PIN-363, PIN-430 |
| Runtime & Ops | import-projects-estimates-from-sharepoint | PIN-501, PIN-506, PIN-508 |
| Settings & Admin | navigation-ia-route-cleanup | PIN-78, PIN-81 |
| Smart Import | buildingconnected-sync-bid-board-opportunities | PIN-152, PIN-492 |
| Smart Import | mobile-smart-import-capture-screen | PIN-1028 |
| Smart Import | procore-integration | PIN-152, PIN-156 |
| Smart Import | training-tab-second-full-tab | PIN-682, PIN-684 |
| Submittals & RFIs | project-detail-project-controls-submittals-approval | PIN-51, PIN-300 |
| Takeoff Engine | drawing-intelligence-ml-auto-takeoff-assembly | PIN-232, PIN-307, PIN-408 |
| Takeoff Engine | takeoff-section-types-takeoff-engine-settings | PIN-248 |
| Vendors | vendor-external-portal | PIN-108, PIN-520 |
| Vendors | vendors-directory | PIN-16, PIN-120 |
16 ticketless in-scope pages — create tickets? (Marko's call)¶
All 16 are status: deferred, empty linear:, and carry a "No Linear issue"
note. None appears in a board epic's feature-parent list — I read the pages
and the relevant epics (PIN-1069 PO, PIN-694 Takeoff, PIN-1063 Estimate&Proposal,
PIN-691 Field&Controls, PIN-1066/1067/1071). Recommendation: create none for
C14–C17. They're portfolio/mobile/secondary surfaces or scope beyond the
relevant Conor point. The one worth an explicit Conor yes/no is Bid Day Mode
(live bid-day estimating — no ticket and no epic home). I created nothing.
| Module | Page | Est | Prio | Recommendation |
|---|---|---|---|---|
| Purchase Orders | Three-way match (P·D·I legs) | L | Low | Defer — needs AP-invoice ingestion + receiving; beyond Conor #11 (PO epic PIN-1069 = lifecycle+budget+log via PIN-137) |
| Purchase Orders | Buyout pipeline (project-scoped) table | M | Low | Defer — precon procurement-planning; not in PO epic |
| Takeoff Engine | Bid Day Mode (countdown + verbal quote entry) | M | Med | Confirm w/ Conor — real live bid-day estimating; no ticket, no epic home |
| Takeoff Engine | Bid Summary page (financial rollup, risk register, markup) | L | Med | Defer — large net-new; beyond Conor #8; PIN-440's dashboard ≠ this |
| Submittals & RFIs | 'Ball-in-court · all jobs' cross-project table | S | Med | Defer — portfolio view (epic ships email/RFI/CO hardening) |
| Submittals & RFIs | 'Days with current holder' aging histogram | S | Med | Defer — portfolio view |
| Submittals & RFIs | 'Held longest · chase drafted' portfolio panel | S | Med | Defer — portfolio view |
| Submittals & RFIs | Mobile 'Ball in court' screen | M | Low | Defer — mobile portfolio view |
| Submittals & RFIs | Portfolio/master Submittals & RFIs view | M | Low | Defer — portfolio view |
| Progress Drawings | Cross-job Jobs table | S | Med | Defer — portfolio view (epic ships PIN-720 markup only) |
| Progress Drawings | PM-scoped landing variant (P-57) | S | Med | Defer — landing variant |
| Progress Drawings | Portfolio / module landing screen | M | Med | Defer — landing screen |
| Progress Drawings | 'Export rollup →' action (design 'not wired') | S | Low | Defer — unwired action |
| Cara | Mobile workspace shell (bottom tab bar) | L | Med | Defer — Capacitor mobile track (separate) |
| Projects | The built mobile/tablet shell (five-tab) | L | — | Defer — Capacitor mobile track (separate) |
| Documents | Cross-project register / search (portfolio master) | 2w(M) | Low | Defer — portfolio master; already flagged spec-only |
Marko — create tickets for any of these? Default = none for C14–C17; the only one I'd flag for Conor is Bid Day Mode. Still your call — I made no Linear changes.
5. QA label note¶
The 4 QA sweeps (PIN-1117–1120, one per cycle C14–C17) carry 8-week-plan
even though the label description says it "excludes bug-fix/qa sustaining work."
They're integration/regression sweeps, not sustaining bug-fix — assumed
intentional; flag if not.
Generated from the 8-week-plan label pull on 2026-09-03. Companion: PR #20
(content gaps). Source-of-truth model unchanged: spec = what the features are,
Linear = task detail; linear: frontmatter points at the truest ticket(s).