requirements/technical-plan: one question round per phase, not four inside eight minutes #42
Labels
No labels
component:adapters
component:lifecycle
component:qa
component:setup
component:shared
component:worktrees
phase/accepted
phase/backlog
phase/deployed
phase/developing
phase/integrating
phase/planning
phase/qa
phase/requirements
phase/uat
priority:critical
priority:critical
priority:high
priority:high
priority:low
priority:low
priority:medium
priority:medium
type:bug
type:chore
type:docs
type:feature
type:infra
type:tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
jbr870/devwork-skills#42
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Rank 5 of 13 in #37 · est. saving ~30m
Evidence
Feature #230 stopped and waited for a human eight times on 2026-08-13, for ~66 minutes total
(excluding the UAT gate, which is meant to be slow):
/requirementsasked at 10:47, 10:48, 10:51 and again at 10:55 — four separate stalls insideeight minutes. The last one cost 24m 30s, the largest stall of the day.
Each
AskUserQuestionis a full stop: nothing else progresses while it is open.What happens now
Skills ask as questions arise.
/requirementsin particular asks during gathering, again after theadversarial panel, and again for side decisions — each a separate round trip.
Proposed change
One question round per phase where the phase's structure allows it. Specifically: a phase collects
its open questions, and asks them as a single multi-question
AskUserQuestionat the point wherethe last of them is known. Where a later answer genuinely depends on an earlier one, the phase may
open a second round, but must say why in the prompt.
Related but distinct: #14 covers batching decision resolutions at the
/resolveend. This isabout the questions asked during a phase.
Acceptance
/requirementsand/technical-planeach ask at most one question round per phase, absent astated dependency.
panel has already run.
/meta-amend outcome — amended
Commit
7879495onmain.Verified at HEAD (
6aeae6b)The finding held for
/dev:requirements, and did not hold for/dev:technical-plan:requirements/SKILL.mdsaid flatly "Ask questions one at a time";requirements-gathering.mdrepeated it in Step 2 ("Ask questions one at a time"), in Step 6 ("Ask one at a time"), and in the reference section "One Question Per Message". Nothing distinguished a prose exploration question from anAskUserQuestiontool call, so "one at a time" read as a mandate for N separate stalls.preq-review.md§3 interactive: "bring them to the human, one at a time" — the panel's concerns are all known at once, and were being asked serially anyway./dev:technical-planasks nothing. Its onlyAskUserQuestionreference is the note at SKILL.md:363 recording that the old "which out-of-scope items become issues?" prompt moved to/dev:resolveas ascope-dispositionPending Decision. Every choice it faces is routed to the record, not to a stall. That half of the acceptance criterion was already satisfied, so technical-plan is untouched — an amendment there would have been text with nothing to fix.The amendment
Canonical rule added under
requirements-gathering.md→ Tool Usage, One question round per step:AskUserQuestioncarries up to four questions per round). More than four independent questions in one step means the step hasn't narrowed its own scope.AskUserQuestioncalls in a row are its bad example with worse latency, not its good one.preq-review.md§3 brings the panel's concerns in one round, and absorbs any Step-6 question still open when it runs — that is the fold AC2 asks for, in the only ordering that exists (the panel runs in Phase 2, after gathering, so its concerns cannot join a Phase-1 round; a leftover Phase-1 question can join the panel's).requirements/SKILL.md's one-line instruction now points at the rule instead of contradicting it.No change to whether these questions fire — they remain structured decision points, batched rather than suppressed.
Gate
scripts/lint-conventions.sh— clean.Desk-check against the originating scenario (verity #230, 2026-08-13)
Recorded:
/requirementsstalled at 10:47, 10:48, 10:51 and 10:55 — four rounds in eight minutes, the last costing 24m 30s (the largest stall of the day). Under the amended text:Four
AskUserQuestionstalls become two in Phase 1 plus one in Phase 2, and the exploration pair stops being tool calls at all. AC1 holds for/requirements(one round per step, the only second round being the dependency the text names) and holds already for/technical-plan; AC2 holds in the ordering that exists.What validates it next
The next interactive
/dev:requirementsrun — countAskUserQuestioncalls in Phase 1. Two is correct, three is the defect the text now names. The thing to watch is Step 6: the rule only pays off if the walk for open questions is genuinely completed before the first call, and that is a discipline the text asks for but cannot enforce mechanically.