From d8447f57c03bb84406e6f50ded886194944f6ea3 Mon Sep 17 00:00:00 2001 From: Adam Hainsworth-Potter Date: Tue, 5 May 2026 16:29:17 +0100 Subject: [PATCH 1/3] Improve interrogation skill effectiveness --- skills/interrogate/SKILL.md | 25 +++++++------ .../references/interrogate-protocol.md | 36 ++++++++++--------- 2 files changed, 32 insertions(+), 29 deletions(-) diff --git a/skills/interrogate/SKILL.md b/skills/interrogate/SKILL.md index 29a631c..682a39e 100644 --- a/skills/interrogate/SKILL.md +++ b/skills/interrogate/SKILL.md @@ -6,29 +6,28 @@ description: Manage interrogation, intake, interviews, scope clarification, requ # Interrogate -Reach shared understanding by interrogating one decision at a time, backed by available project context. +Reach a shared understanding by exploring the project for context and interrogating the user one question at a time. ## Instructions Follow these steps IN ORDER. Do NOT skip steps. -1. Start every interrogation session by launching a fresh explorer subagent to inspect available project context for facts relevant to the request. -2. Build the decision tree for the request, then walk down each branch that could affect the answer or next action. -3. Close any branch the project can answer through a focused explorer subagent instead of asking the user. -4. Ask the user questions for each unresolved branch, using the format in [references/interrogate-protocol.md](references/interrogate-protocol.md). -5. Update the decision tree after each answer, then repeat focused explorer-subagent exploration or user interrogation until shared understanding is reached. -6. Return the handoff summary format in [references/interrogate-protocol.md](references/interrogate-protocol.md) before handing control back to the caller. +1. Launch a fresh explorer subagent to inspect available project context for facts relevant to the request. +2. Interrogate the user relentlessly about every aspect of the request until a shared understanding is reached. + - Ask questions one at a time, provide your recommended answer first, then 2-3 viable alternatives. + - Walk down each branch of the decision tree resolving dependencies between decisions. + - There are no limits on the number of questions; keep asking until shared understanding is reached. +3. Return a concise summary to the caller. ## Rules These rules are MANDATORY. -- MUST keep this skill chat-only; DO NOT create or edit durable artefacts from this skill. -- MUST ask exactly one user question at a time. -- MUST relentlessly continue user interrogation until shared understanding is reached; there is no limit on the number of questions. -- MUST provide the recommended answer first, then 2-3 viable alternatives. -- MUST use explorer subagents for entry exploration and focused project-answerable questions. -- DO NOT ask the user questions that codebase inspection can answer. +- MUST use explorer subagent for entry exploration. +- ALWAYS relentlessly interrogate the user until a shared understanding is reached. +- DO NOT limit the number of questions; keep asking until every blocking branch is closed. +- MUST ask user exactly one question at a time, provide a recommended answer, then 2-3 viable alternatives. +- ALWAYS check if a question can be answered by project inspection before asking. - MUST walk the decision tree until every blocking branch is closed by project facts or user answers. ## Completion Gate diff --git a/skills/interrogate/references/interrogate-protocol.md b/skills/interrogate/references/interrogate-protocol.md index 31485f9..0a5ff1f 100644 --- a/skills/interrogate/references/interrogate-protocol.md +++ b/skills/interrogate/references/interrogate-protocol.md @@ -8,15 +8,27 @@ Launch a fresh explorer subagent to inspect available project context before ask ## Decision Tree -Track unresolved branches, then walk down each branch of the decision tree that could affect the answer or next action. Work the highest-impact blocking branch first. A branch is closed only when it is answered by project facts or answered by the user. +Build an explicit decision tree before the first user question. Include every branch that could affect the answer or next action, especially: + +- intended outcome and non-goals +- user workflow, UX, API, CLI, or agent-facing behaviour +- inputs, outputs, data shape, state, persistence, and side effects +- scope boundaries, compatibility, migration, rollback, and rollout +- architecture, dependencies, integration points, and ownership +- errors, edge cases, security, privacy, and performance constraints +- tests, acceptance criteria, verification, and handoff expectations + +Track each branch as open or closed. Work the highest-impact blocking branch first, then update the tree after every project finding or user answer. A branch is closed only when it is fully answered by project facts or answered by the user. ## Codebase-Answerable Branches -Before asking the user, decide whether project inspection could answer the branch. If yes, launch a focused explorer subagent with one narrow objective. Use focused project exploration for existing patterns, available APIs, file locations, naming conventions, tests, configuration, dependencies, and shipped behaviour. +Before asking the user, decide whether project inspection could fully answer the branch. If yes, use focused project exploration for existing patterns, available APIs, file locations, naming conventions, tests, configuration, dependencies, and shipped behaviour. + +Do not treat existing code as proof of product intent when intent is unclear. If inspection reveals the current state but not the desired outcome, use the finding to make a recommended answer, then ask the user. -## User Question Format +## User Questioning -Relentlessly ask the user one question at a time. Keep each question decision-oriented and easy to answer. There is no limit on the number of questions; keep going until shared understanding is reached. +Relentlessly ask the user one question at a time. Keep each question decision-oriented and easy to answer. There is no limit on the number of questions; keep going until shared understanding is reached. Do not stop because the likely answer seems obvious, because many questions have already been asked, or because project inspection provided adjacent facts. ```markdown Question: @@ -33,18 +45,10 @@ Do not list more than 3 alternatives beyond the recommendation. Do not ask multi ## Shared Understanding -Continue walking the decision tree until no blocking branches remain. Shared understanding means the agent can state the intended outcome, constraints, important tradeoffs, and the next workflow action without inventing product or codebase facts. - -## Handoff Summary - -When interrogation is complete, return a concise summary to the caller. Keep the summary in chat; this skill does not create or edit durable artefacts. - -```markdown -Resolved decisions: +Continue walking the decision tree until no blocking branches remain. Shared understanding means the agent can state the intended outcome, constraints, important tradeoffs, acceptance criteria without inventing product or codebase facts. -- +When unsure whether a branch is blocking, treat it as blocking and ask the user. Do not complete interrogation with silent assumptions, unresolved branches, or TODO-style follow-ups for later workflow stages. -Project facts: +## Handoff Summary -- -``` +When interrogation is complete, return a concise summary to the caller. From 2388704ce9c3e52831e7a0404687aa2d0ef72731 Mon Sep 17 00:00:00 2001 From: Adam Hainsworth-Potter Date: Tue, 5 May 2026 16:29:47 +0100 Subject: [PATCH 2/3] Bump version --- .codex-plugin/plugin.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index d78cda5..6f760cb 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "propulsion", - "version": "1.0.5", + "version": "1.0.6", "description": "Opinionated agentic coding workflow that guides software work from exploration and planning through execution and review.", "author": { "name": "Moon Pixels" diff --git a/package.json b/package.json index 50a5a29..49a74cb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "propulsion", - "version": "1.0.5", + "version": "1.0.6", "main": "./index.mjs", "exports": "./index.mjs", "scripts": { From 573364d24ca4e0d9022c3a64a679b6fdb780289a Mon Sep 17 00:00:00 2001 From: adamwhp <99101334+adamwhp@users.noreply.github.com> Date: Tue, 5 May 2026 15:31:27 +0000 Subject: [PATCH 3/3] Format code --- skills/interrogate/SKILL.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/skills/interrogate/SKILL.md b/skills/interrogate/SKILL.md index 682a39e..a1c876c 100644 --- a/skills/interrogate/SKILL.md +++ b/skills/interrogate/SKILL.md @@ -14,9 +14,9 @@ Follow these steps IN ORDER. Do NOT skip steps. 1. Launch a fresh explorer subagent to inspect available project context for facts relevant to the request. 2. Interrogate the user relentlessly about every aspect of the request until a shared understanding is reached. - - Ask questions one at a time, provide your recommended answer first, then 2-3 viable alternatives. - - Walk down each branch of the decision tree resolving dependencies between decisions. - - There are no limits on the number of questions; keep asking until shared understanding is reached. + - Ask questions one at a time, provide your recommended answer first, then 2-3 viable alternatives. + - Walk down each branch of the decision tree resolving dependencies between decisions. + - There are no limits on the number of questions; keep asking until shared understanding is reached. 3. Return a concise summary to the caller. ## Rules