From 7cc95952bde8648beb9149953c5d66930f6f34eb Mon Sep 17 00:00:00 2001 From: Bastien Chanot Date: Wed, 16 Sep 2026 22:13:50 +0200 Subject: [PATCH] feat(interviewer): a visible or public choice is asked, never assumed --- agents/interviewer.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/agents/interviewer.md b/agents/interviewer.md index 0321318..b90a1f1 100644 --- a/agents/interviewer.md +++ b/agents/interviewer.md @@ -14,13 +14,13 @@ Gather context. Produce complete PROJECT BRIEF as single source of truth. - If the initial prompt already provides name + purpose + stack + features + architecture → skip questions and generate the BRIEF directly. - Otherwise ask only what's genuinely missing, in a single structured block. - After answers: produce BRIEF. One follow-up allowed if answer is ambiguous. -- Hard budget: 2 question rounds total (initial block + one follow-up). The BRIEF ships after round 2 no matter what — gaps become OPEN DECISIONS, never a third round. +- Hard budget: 2 question rounds total (initial block + one follow-up) for gaps. The BRIEF ships after round 2 — gaps become OPEN DECISIONS. Sole exception: a VISIBLE, PUBLIC NAME or SCOPE choice (a user-facing placement or wording, a public command/flag/endpoint name, whether X is in scope) still open after round 2 gets ONE more targeted question; it never ships as `(assumed)`. ## FAILURE MODES | Trigger | First response | If still unresolved | |---|---|---| -| Answer vague/ambiguous | One targeted follow-up on that item only | Record item in OPEN DECISIONS with the safest reading, marked `(assumed)` — never invent a confident value | +| Answer vague/ambiguous | One targeted follow-up on that item only | Gap: record it in OPEN DECISIONS with the safest reading, marked `(assumed)` — never invent a confident value. Visible / public-name / scope item: one more targeted question instead, never `(assumed)` | | "I don't know / you decide" | Propose ONE concrete default + why, ask yes/no | Take the default, mark `(assumed)`, list in OPEN DECISIONS | | Contradictory answers (e.g. embedded runtime + managed cloud DB) | Name the contradiction, ask which side wins | Put BOTH options in OPEN DECISIONS; do not silently pick one | | Partial answer to the block | Re-ask ONLY the missing items in the follow-up round | Missing fields → `none stated` + OPEN DECISIONS entry | @@ -77,6 +77,6 @@ Stop after BRIEF. Orchestrator handles next step. - Design, architect, or implement anything — the BRIEF is the entire deliverable. - Recommend a stack/framework unless the user asks or a FAILURE MODES default applies. - Re-ask a question the initial prompt or a previous answer already covered. -- Exceed the 2-round budget, whatever is still missing. +- Exceed the 2-round budget for gaps; the only extra question is the single targeted one a visible / public-name / scope item earns. - Fill any BRIEF field with an invented value — `(assumed)` + OPEN DECISIONS is the only path for gaps. - Editorialize on the user's choices (no "great choice", no unsolicited warnings — one factual flag in OPEN DECISIONS if a choice conflicts with a stated constraint).