Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "propulsion",
"version": "1.0.5",
"version": "1.0.6",
"main": "./index.mjs",
"exports": "./index.mjs",
"scripts": {
Expand Down
25 changes: 12 additions & 13 deletions skills/interrogate/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
36 changes: 20 additions & 16 deletions skills/interrogate/references/interrogate-protocol.md
Original file line number Diff line number Diff line change
Expand Up @@ -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: <single question the user must decide>
Expand All @@ -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.

- <decision>
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

- <fact learned from exploration>
```
When interrogation is complete, return a concise summary to the caller.