Launch Gap Register¶
Purpose: The single tracked list of every gap between today's build and the first production launch, consolidated from the 2026-08-04 workshop (all 19 tagged action items plus the pre-workshop gap register). Each row carries a category, owner, launch-critical flag, rough effort, and the existing Linear ticket to reconcile against - do not recreate.
Last updated: 2026-08-06
Categories
BLOCKER - must be fixed before Jim/Alex touch the system, LAUNCH - should be in the pilot, AUG - Wave-1 stabilization (post-launch, August), SEP+ - deferred wave (September or later), FUTURE - post-pilot / white-label. Effort: S (<½ day), M (½-2 days), L (3-5 days), XL (1+ week).
The launch gate¶
Everything else is secondary to this: Smart Import must be near-perfect before the pilot. Jim and Alex will build estimates on imported data; if we later wipe the DB to clear corruption, we destroy their work and their trust. Corrupted bids/projects already appear in lists today. The launch is gated on Smart Import stability and a BuildingConnected-sourced bid proven end-to-end.
BLOCKER - fix before Jim/Alex¶
| # | Gap | Owner | Launch-critical | Effort | Reconcile PIN | Notes |
|---|---|---|---|---|---|---|
| 0 | Seed Jim & Alex accounts + their own data | Marko + Marijana | Yes | M | - (net-new) | The sleeper gate. Without a seeded account, every screen renders empty or errors on open, which is why the app "looks unfinished." Unblocks all demo/QA. |
| 1 | Smart Import writes wrong data (not just "corruption") | Ivan B | Yes | L (in flight) | PIN-678 (679-685), PIN-731, PIN-787 | The launch gate. Per 2026-08-07 audit: epic marked Done but a real import stamps PM=admin (PIN-787), silently skips off-pattern folders, and drawings don't index. Not "done", still writes wrong data. |
| 2 | BC-sourced bid untested end-to-end (docs, takeoff, budget) | Marijana + Artem | Yes | M | - (net-new QA) | This week's focus. BC docs land in folders, but full happy path never walked. |
LAUNCH - should be in the pilot¶
| # | Gap | Owner | Launch-critical | Effort | Reconcile PIN | Notes |
|---|---|---|---|---|---|---|
| 3 | Proposal template mismatch | Ivan B / Marijana | Yes | M-L | PIN-134 | Get Conor's real template; rebuild proposal UI; show final by-scope only, not full breakdown; consider AI-drafted text from his existing proposals. |
| 4 | Vendor RFP emails not wired for stealth | Marko + Artem | Yes | S-M | - (net-new) | Env flags: outbound_vendor_email_enabled=false default + authorized_vendors allowlist + a test vendor (Codilas/SmirnovLabs). Manual email is the launch process. |
| 5 | Delete confirmations missing app-wide | Frontend | Yes | S-M | - (net-new) | Misclick = data gone. Add confirm modal to every delete. |
| 6 | Disabled-looking-but-clickable buttons | Frontend | Yes | S | - (net-new) | Buttons render greyed/disabled but still fire. UI/UX polish. |
| 7 | AI takeoff symbol-group overlay misaligned | Artem | Yes | M | PIN-694 | Hover selects the wrong position when picking a matching symbol group. |
| 8 | fail to fetch errors frequent |
Marko | Yes | M | - (net-new) | Add client-side API retry middleware; correlate failure timestamps to pod CPU/mem on the cluster. 6-7 per long session; mostly transient, one confirmed real. |
| 9 | Bid-invite "Acknowledge" checkbox non-functional | Product / Ivan B | Confirm w/ Conor | S | - (net-new) | Email not connected; may lack GC email or need a BC "intend to bid" flag. Product gap - see Conor Briefing (decision 4). |
| 10 | Financial margin leak (a PM can see profit) | Marko | Yes | M | PIN-151 | 2026-08-07 audit: only the assistant PM is masked. A regular PM can still see the cost budget + contract (margin derivable) and pull raw vendor quotes. Comprehensive fix PIN-151 (field-masking interceptor) is Backlog. Trust-critical for this client - must be in the launch set, not backlog. |
Reconciled with the 2026-08-07 code audit (Ivan's roadmap)
Corrections to earlier assumptions in this register:
- SOV (Schedule of Values) is a separate, already-built module (AIA G702/G703), not part of the proposal - but its line items can only be added through Cara (currently broken), so the table looks empty. Fix = a manual add path.
- Cara's "RAG over your data" is scaffold - real answers are keyword matches over two tables. "Make Cara RAG real" is a September item.
- Smaller: Change Orders have no AI draft; RFI/Submittal have no delete button; the proposal PDF layout is hard-coded with placeholder branding; the Executive sidebar link points at an Under-Construction page (PIN-371 open).
The full per-module "built vs usable" audit is the canonical Module Roadmap; this register is the internal working list.
AUG - Wave-1 stabilization (post-launch)¶
| # | Gap | Owner | Effort | Reconcile PIN | Notes |
|---|---|---|---|---|---|
| 11 | Vendor portal flow incomplete (role sees too much) | Ivan B | L | - | Full vendor flow; a pulled-in vendor currently sees data the vendor role should not. August build. |
| 12 | Competitors field: conditional display + BC source | Ivan B | M | - | Show only after a bid is lost/expired (blind bidding). Investigate BC webhooks for competitor data + an out-of-sync indicator on manual override. |
| 13 | Bid-invite expiration alerts | Marijana | S | - | Dashboard + email notifications exist; track in QA and formalize the handoff. |
| 14 | Self-hosted error monitoring | Marko | M | - | We have our own (Sentry alt); connect it + AWS logs. Slack pod-crash alerts already set up during the call. |
| 15 | PO approval workflow retest | Artem | M | PIN-137 (254/255/303) | PM, estimator approve, status flow; "worked at some point," needs retest + fix. |
| 16 | Applying a template builds a zero-number revision | Ivan B | S-M | - | Applying a template on a fresh estimate silently creates a base revision with zero numbers. Weird UX/bug. |
| 17 | UI consistency: bid vs project | Frontend | M | PIN-687 (513/514/669) | Same look/feel across modules. Partial toward the visual system. |
| 18 | Docs/drawings lifecycle diagram | Marko / Marijana | S | - | Generate a UML-ish map (bid docs, blob, drawing picker) to avoid missing-link bugs. |
Reprioritized 2026-08-06 (Conor's stated priorities)¶
Two workshop-era "defer" calls were overturned by Conor's actual priorities - corrected here and in the Feature Matrix:
| Item | New status | Owner | Reconcile PIN | Notes |
|---|---|---|---|---|
| Daily Logs new design | Wave 1 - finishing now (in QA) | Mateo / Luka | PIN-688 | Not deferred. New design built (~85%), "waiting on Conor's design" blocker cleared. High priority. |
| Daily Logs interactive progress drawing | Wave 1 - in progress today | Artem | PIN-720 | Not deferred. In active dev. Bring Conor A (mark progress in log) / B (full interactive earned-value markup). Lock, then finish. |
| Takeoff Engine (AI-first measure + verify) | Wave 2 - #1 forward priority | Artem | PIN-694 (295/439-442/589) | Base pipeline shipped. Accuracy + AI-first-verify push elevated to top. Velocity gated on PIN-591 corpus + PIN-590 VLM spike. |
SEP+ - deferred wave¶
| # | Gap | Owner | Effort | Reconcile PIN | Notes |
|---|---|---|---|---|---|
| 19 | Project Drawings progress module (bid-phase takeoff drawings are separate) | Artem | L | - | Under-tested; confirm launch scope with Conor. Owner Artem, not Luka. Sep/Oct. |
| 22 | Automated RFP + reply parsing | Artem / Marko | M | - | Plus-code reply-to + IMAP parser. Codilas has reusable code (~few days). |
| 23 | Full self-hosted takeoff vision model (custom-trained) | Artem | XL | PIN-694 (590/591) | GPU box. Base pipeline shipped; accuracy push is Wave 2; the full custom-trained model is post-pilot. |
| 24 | Compliance / insurance | Marko | L+ | PIN-7 (91/96/97/99/100/104/105) | Was originally first priority, now Sep+. Large. Confirm timing with Conor. |
| 25 | Long-running AI UX (streaming / background notifications) | Marko / Mateo | M-L | - | Crucial for white-label, not the pilot. Redis-queue + "we'll notify you when done" for large files. |
| 26 | Lead vs junior estimator perms + margin visibility | Marko | M | - | White-label need. Wave 2. |
| 27 | Outbound bids | Ivan B | L | - | Sep/Oct - needs estimates dialed in first. |
FUTURE - post-pilot / white-label¶
Executive Dashboard, Master CO Log analytics, WIP / Financials, Bid Targeting, visual re-skin (navy/copper/mono), floating Cara button polish, dynamic per-tenant field schema. All post-pilot; several blocked - specs PIN-325 (Bid Targeting) / PIN-326 (Master CO Log), PIN-371 (Exec Dashboard reactivation), financial integration PIN-33 ("2027"), PIN-732 (Azure Sites.Selected). These are sequenced in the Feature Matrix Sep-wave and Future sections.
Cross-cutting quality items (from the walkthrough)¶
- Long-running AI UX - a small spinner is not enough. Add streaming progress + background processing with completion notifications (Redis queue for large files). White-label-critical.
- Multi-agent UX audit - run a role-based agent sweep (UI/UX designer, user, QA) to surface polish issues in one report, then fix in a batch.
- BuildingConnected token fragility - the current JWT-paste workaround expires and is not white-label-ready. A proper BC API integration is a future need (not launch-blocking).