AI-DLC Version
v2 branch, HEAD 7c02d48 (2.2.6). Items 1-2 are follow-ups to the open scope-cost-preview PR (#508, 2.2.11) and land after it merges; item 3 is independent of it.
AI-DLC Phase
Initialization (the scope routing ask) for items 1-2; any gated stage for item 3.
Summary
Three small, related gaps around "the human at the decision point sees an accurate picture". The first two are the known non-blocking refinements already listed in #508's body; this issue makes them trackable so they do not evaporate when that PR merges. The third is a verified absence in the gate mechanics.
1. The per-unit clause shows on scopes that SKIP units-generation. The cost line appends a per-unit ceremony clause ("N stage(s) repeat per unit of work in Construction") computed from the grid's EXECUTE stages, but bugfix/poc/refactor/security-patch/infra SKIP units-generation, where code-generation degrades to a single pass on a cold start. The clause overstates ceremony in the safe direction for consent, but a preview that is knowably wrong for 5 of 9 stock scopes invites distrust of the numbers that ARE right. Fix: suppress (or annotate) the clause when the grid's units-generation entry is not EXECUTE; ScopeCostSummary already carries perUnitStages separately from gates, so this is presentation-layer only.
2. The cold-start confirm shows nominal, not effective, counts for greenfield. Greenfield projects drop reverse-engineering at birth, so effective counts run 1 stage / 1 gate lower for the 8 scopes that mark it EXECUTE. Project type is unknown at confirm time today, but the detect scan (2.2.0) is cheap and read-only; running it before the confirm (or annotating "32 stages, 31 on greenfield") would make the two numbers agree. The scope-change surface already uses the adjusted grid, so the cold-start ask is the only surface showing the stale number.
3. There is no unattended-gate story. A workflow that reaches an approval gate simply stops until the human returns: verified absent from core/ on HEAD - no idle-time awareness, no notification seam, no nudge, and the one adjacent mechanism (aidlc-state.ts park, the WORKFLOW_PARKED audit event) is manual-only. Long runs routinely cross a human absence (overnight, meetings), and today that reads as a hung run: the statusline shows the same stage for hours and nothing distinguishes "waiting for you" from "stuck". Smallest useful increment, in order of ambition:
- a
Waiting since <timestamp> field on the statusline / --status when the engine is at a gate (the gate presentation time is already in the audit ledger);
- a doctor advisory when a gate has been pending longer than a threshold;
- optionally, harness-level notification hooks (each harness has some bell/notify seam) fired on gate presentation.
Auto-park on idle is deliberately NOT proposed: parking is a human judgement (the framework's own three-mechanisms rule), and a run that auto-parked overnight would surprise the returning human more than one that waited.
Related
Origin
Follow-up triage of the scope-cost-preview work plus code inspection of the gate-wait mechanics.
AI-DLC Version
v2 branch, HEAD
7c02d48(2.2.6). Items 1-2 are follow-ups to the open scope-cost-preview PR (#508, 2.2.11) and land after it merges; item 3 is independent of it.AI-DLC Phase
Initialization (the scope routing ask) for items 1-2; any gated stage for item 3.
Summary
Three small, related gaps around "the human at the decision point sees an accurate picture". The first two are the known non-blocking refinements already listed in #508's body; this issue makes them trackable so they do not evaporate when that PR merges. The third is a verified absence in the gate mechanics.
1. The per-unit clause shows on scopes that SKIP units-generation. The cost line appends a per-unit ceremony clause ("N stage(s) repeat per unit of work in Construction") computed from the grid's EXECUTE stages, but bugfix/poc/refactor/security-patch/infra SKIP units-generation, where code-generation degrades to a single pass on a cold start. The clause overstates ceremony in the safe direction for consent, but a preview that is knowably wrong for 5 of 9 stock scopes invites distrust of the numbers that ARE right. Fix: suppress (or annotate) the clause when the grid's
units-generationentry is not EXECUTE;ScopeCostSummaryalready carriesperUnitStagesseparately fromgates, so this is presentation-layer only.2. The cold-start confirm shows nominal, not effective, counts for greenfield. Greenfield projects drop reverse-engineering at birth, so effective counts run 1 stage / 1 gate lower for the 8 scopes that mark it EXECUTE. Project type is unknown at confirm time today, but the
detectscan (2.2.0) is cheap and read-only; running it before the confirm (or annotating "32 stages, 31 on greenfield") would make the two numbers agree. The scope-change surface already uses the adjusted grid, so the cold-start ask is the only surface showing the stale number.3. There is no unattended-gate story. A workflow that reaches an approval gate simply stops until the human returns: verified absent from
core/on HEAD - no idle-time awareness, no notification seam, no nudge, and the one adjacent mechanism (aidlc-state.ts park, theWORKFLOW_PARKEDaudit event) is manual-only. Long runs routinely cross a human absence (overnight, meetings), and today that reads as a hung run: the statusline shows the same stage for hours and nothing distinguishes "waiting for you" from "stuck". Smallest useful increment, in order of ambition:Waiting since <timestamp>field on the statusline /--statuswhen the engine is at a gate (the gate presentation time is already in the audit ledger);Auto-park on idle is deliberately NOT proposed: parking is a human judgement (the framework's own three-mechanisms rule), and a run that auto-parked overnight would surprise the returning human more than one that waited.
Related
Origin
Follow-up triage of the scope-cost-preview work plus code inspection of the gate-wait mechanics.