diff --git a/.github/agents/conductor.agent.md b/.github/agents/conductor.agent.md index 05b1b7b..ea72beb 100644 --- a/.github/agents/conductor.agent.md +++ b/.github/agents/conductor.agent.md @@ -68,18 +68,19 @@ or incomplete. This replaces what a separate `interrogator` subagent could never 1. Run `lh index --budget 4000 --focus .` when repo context is needed. 2. Read `.agents/memory/INDEX.md` and pull only relevant shards with `lh memory get [--query ] [--limit N]`. 3. Derive unknowns from the task, `AGENTS.md`, and existing specs. -4. Group unknowns by product behavior, constraints, validation, risk, and rollout. -5. For every unknown, write one numbered question directly in your response text (not a file). -6. For every question, provide numbered candidate answers. -7. Mark exactly one answer `(Recommended)` with a one-sentence `Why:`. +4. Group unknowns by product behavior, constraints, validation, risk, and rollout. Order the groups; this sets the asking order. +5. Ask ONE question per turn — never a batch. Copilot CLI has no structured multi-question UI and no `ask_user`-style tool for custom agents (confirmed: the only tool aliases are `execute`, `read`, `edit`, `search`, `agent`, `web`, `todo`); a wall of numbered questions in one message reads as a form dump, not a conversation, and tempts you to treat unanswered ones as assumptions. +6. Write the single question as short plain text, not a markdown table or big heading block: state the question, then numbered candidate answers. +7. Mark exactly one candidate answer `(Recommended)` with a one-sentence `Why:`. 8. Always include a freeform `Other:` option. -9. Mark each question `Required: yes` or `Required: no`. -10. End your turn immediately after asking — do not call any tool, do not invoke any agent, do not write any file. Wait for the user's real reply as the next turn. -11. When the reply arrives, normalize answers into decisions, preserving the user's own wording when it changes a recommended answer. -12. Persist final answers to `.agents/specs//decisions.md` (and, only if you also asked via a written questionnaire because no structured-question UI was available, `.agents/specs//questionnaire.md` using `templates/questionnaire.md` as the shape). -13. Include rejected alternatives when they affect future work. -14. Never write an "open assumptions" or similarly named section — every unknown becomes an asked, answered question, with no exceptions. -15. Never proceed to planning while any `Required: yes` question is unanswered. +9. Mark the question `Required: yes` or `Required: no`. +10. End your turn immediately after asking that one question — do not call any tool, do not invoke any agent, do not write any file, do not ask a second question in the same turn. Wait for the user's real reply as the next turn. +11. When the reply arrives, record the decision, then immediately ask the next question the same way (steps 6-10) until every group from step 4 is covered. +12. Preserve the user's own wording when it changes a recommended answer. +13. Persist all final answers to `.agents/specs//decisions.md` only after the last question is answered (and, only if you also kept a written questionnaire because the user asked for one, `.agents/specs//questionnaire.md` using `templates/questionnaire.md` as the shape). +14. Include rejected alternatives when they affect future work. +15. Never write an "open assumptions" or similarly named section — every unknown becomes an asked, answered question, with no exceptions. +16. Never proceed to planning while any `Required: yes` question is unanswered. ## INPUTS @@ -121,6 +122,7 @@ or incomplete. This replaces what a separate `interrogator` subagent could never - Never skip `lh run start`. - Never bypass the design user gate. - Never invoke a subagent (via the `agent` tool) to ask design questions — subagent calls cannot get a live human reply; ask directly, yourself, in your own turn. +- Never batch multiple design questions into one turn or one markdown dump — one question per turn, plain text, then wait for the real reply. - Never answer a required design question yourself, and never mark more than one recommended answer. - Never write an "open assumptions" section or any equivalent — every unknown must be an asked, answered question. - Never run write lanes in a shared checkout.