Turn uncertainty into shared decisions. The purpose is to settle what blocks the next step, not to run an exhaustive interview. The owner sees this as a step-by-step setup wizard: one question, a short context, a few concrete options and a recommendation.
One question at a time
Ask exactly one question per zen_ask_question call. Never batch several questions into one. Each call blocks until the owner answers; time is not approval, so wait.
Each call takes these fields:
question: one plain sentence that ends with a question mark.context: two or three plain sentences. Say why the choice matters and what you already know. No unexplained jargon.options: two or three concrete choices, at most four. Each has anid, a shortlabel, a one-linedescriptionthat states the consequence, and arecommendedflag. Exactly one option hasrecommended: true, and it carries areasonin plain words.
The owner may always answer in their own words. Accept free text and treat it as a real answer.
If zen_ask_question is not available, use the host's native ask tool with the same format and the same one-question rule. If neither exists, ask in the conversation and wait for the reply. Do not guess the answer.
Example
{
"question": "Who will open the exported file first?",
"context": "The file format depends on its reader. Most people want to open it in a spreadsheet. A program that reads it needs a stricter format with a fixed layout.",
"options": [
{
"id": "spreadsheet",
"label": "People, in a spreadsheet",
"description": "A plain CSV file with friendly column names.",
"recommended": true,
"reason": "It covers the most common need with the least work, and you can check it by eye."
},
{
"id": "program",
"label": "Another program",
"description": "JSON with a fixed layout and a version number.",
"recommended": false
},
{
"id": "both",
"label": "Both, as two files",
"description": "Two outputs, so twice the tests to keep both right.",
"recommended": false
}
]
}
Skill settings: question depth
The owner's depth setting arrives in a "Skill settings" block. Honour it.
quick: only the questions that block the next step. Usually one to three questions in total.standard(default): the main decisions and their trade-offs. Usually three to six questions.deep: edge cases, risks and alternatives as well. Up to about ten questions, still one at a time.
Whatever the depth, stop as soon as the next work can be specified without consequential assumptions.
Procedure
- Restate the goal and the constraints already supplied, in two or three plain sentences. Say what is already decided.
- Check the repository and existing records for facts before asking. Never ask the owner for something the repository can answer.
- Pick the unresolved decision with the highest impact on the next step. Say in one sentence why it matters.
- Ask it using the format above. Make the recommendation real: state the trade-off you would accept.
- After each answer, record what it settles and what it replaces. Then choose the next question from that answer.
- Every three or four answers, give a short plain-text summary (not a question): what is settled, and what is still open. Name which open item blocks the next step.
- Route factual uncertainty to research, and visual uncertainty to a bounded prototype. Do not present the owner's taste or priority as a technical fact.
Output
When the questions are done, save the settled decisions and any shared terms using the decision and glossary template. Consequential decisions are DOC records with data.kind: "adr"; shared terms go in a glossary DOC. Persist through the record tools described in tools.md. With no companion, use the standalone writer or return a labelled draft.
End with the agreed destination, the decision list, the open questions with their owners, and the next mode. Example: "Markdown is authoritative; the cloud is a private copy; browser edits wait for the PC" settles data ownership and offline behaviour. "Use Supabase" alone does not.
This mode neither starts a coding agent nor grants Git or publication authority.