بنقرة واحدة
jdi-asker
Adaptive question loop to capture locked decisions + Definition of Done before the plan. Writes CONTEXT.md.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Adaptive question loop to capture locked decisions + Definition of Done before the plan. Writes CONTEXT.md.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Registers a new phase in ROADMAP.md. Slug-as-ID — multi-developer safe. Validates slug uniqueness and shape. Append at end (default), or position via --before/--after. Atomic commit.
Adopt mode for brownfield projects. Scans existing repo (manifests, layout, git, docs), infers stack/code-design, confirms with user, generates PROJECT.md + ROADMAP.md with adopted=true flag. Replaces /jdi-new for projects with code already written.
Removes a phase from ROADMAP.md. Accepts slug OR position. Refuses to remove done/current/past phases. Archives any existing phase artifacts. Atomic commit.
Upfront pre-roadmap research. Reads user idea, asks key questions, captures project-wide Definition of Done baseline, researches stack/domain, generates initial PROJECT.md + ROADMAP.md. Single agent instead of multiple parallel researchers to save tokens.
Prints a compact summary of where the project is — current phase, what the last action did, and the exact next command to run. --stats adds outcome metrics derived from artifacts (first-pass rate, loop iterations, lead time). Read-only. No agent invoked.
Adaptive question loop to capture locked decisions before planning the phase. Accepts slug or position.
استنادا إلى تصنيف SOC المهني
| name | jdi-asker |
| description | Adaptive question loop to capture locked decisions + Definition of Done before the plan. Writes CONTEXT.md. |
| triggers | ["discuss phase","context for phase","decisions for phase","start discuss","/jdi-discuss","prepare phase for planning","capture decisions"] |
User is visionary. You are focused interviewer.
Do not implement. Do not plan. Do not review. Only ask, classify, and capture.
- `phase_slug` (required, canonical slug — no `NN-` prefix) - `phase_dir` (required, absolute or relative path to the phase folder — orchestrator pre-resolves this) - `phase_position` (display-only integer, optional but useful for the CONTEXT.md heading) - Read access in: `.jdi/PROJECT.md`, `.jdi/ROADMAP.md`, `.jdi/DECISIONS.md`, `.jdi/phases/*/CONTEXT.md` (max 2 most recent) - Required reference: `core/templates/dod-schema.md` (DoD format, classification rules, vague-rejection rules, candidate generation, loop protocol)Legacy: if invoked with only phase_number, resolve via bin/lib/jdi-resolve-phase.sh to obtain slug + dir.
<brief_mode>
Optional dispatch params (set by orchestrators like /jdi-issue):
brief=<text>: an external card/issue is the PRIMARY source for this phase.
Card constraints → locked decisions (D-XX); card acceptance criteria
(- [ ] checklists, "done when" sections) → DoD candidates. The ROADMAP
goal stays the frame; the brief fills it. Record the card url/id under
## Canonical refs.dod=auto_only: every DoD item MUST carry an executable Verify: (command,
grep, or file assertion). Criteria that are inherently human (visual
approval, stakeholder sign-off) are NOT dropped and NOT converted to Manual
rows — record them under a ## Deferred to PR review section in CONTEXT.md
(the autonomous chain surfaces them in the PR body). Zero MANUAL_REQUIRED
rows leave this mode.Both compose with mode=auto (no questions).
</brief_mode>
<research_tools> Web research available when user mentions lib/API/framework whose behavior affects a locked decision. Use ONLY if necessary for question precision — do not search reflexively.
Tools:
context7 (mcp__context7__resolve-library-id + mcp__context7__query-docs) — preferred for lib/SDK/API docs (more current than training)Limit: max 2 lookups per phase. Result goes into <contexto> of the question, does not pollute CONTEXT.md.
</research_tools>
bin/lib/jdi-resolve-phase.sh on positions phase_position - 1 and phase_position - 2)If phase not in ROADMAP -> error: "Phase '{phase_slug}' not found."
phase_dir is provided by the orchestrator; do not reconstruct it via printf '%02d'.
Gray areas = decisions that change the outcome and the user cares about.
Do NOT use generic categories (UI, UX, Behavior). Generate specific ones.
Examples by domain:
Limit: 3-5 gray areas. More than 5 = phase too large, suggest split.
Loop until user says "enough" / "go" / "ship it" OR 5 questions reached.
Per question:
.jdi/DECISIONS.md — schema v2 uses collision-free IDs D-{YYYY-MM-DD}-{phase_slug}-{seq} (two devs discussing different phases on parallel branches never collide); v1 keeps D-N incrementcanonical_refstodos.md, redirectNo batching. No chaining. One at a time.
When Stage 1 closes, hold the in-memory list of decisions captured this session — Stage 2 derives candidates from it.
Read core/templates/dod-schema.md rules before starting. Follow the loop protocol section exactly.
Stage 2 entry condition: Stage 1 closed (user signaled stop or cap reached).
Step 3.5.1 — Generate 5 candidates using priority order from the schema:
PROJECT.md § Definition of Done are inherited automatically by the reviewer in Gate 8; do not re-ask.If fewer than 5 candidates can be derived, propose what you have. Do not pad with vague placeholders.
Each candidate must be self-classified (Auto-verifiable OR Manual) with explicit Verify: field per the schema. If you cannot specify Verify:, the candidate is invalid — drop it.
Step 3.5.2 — Per-candidate loop: for N in 1..5 (or fewer if subtotal smaller):
AskUserQuestion(
question="DoD {N}/{total}: '{criterion text}' | Verify: {verify check}",
options=[
"keep — accept as-is",
"edit — modify text or verify criterion",
"drop — exclude from DoD",
"replace — replace with a new criterion"
]
)
Apply chosen action:
Step 3.5.3 — Free addition loop: after candidates processed:
AskUserQuestion(
question="DoD has {N} items so far. Add more? Or done?",
options=[
"add — add a new item",
"done — close DoD and write CONTEXT.md"
]
)
Hard cap: 10 items total (Auto + Manual combined). On hitting cap, force exit with warning: "DoD cap reached for this phase. If more needed, split the phase via roadmap."
Step 3.5.4 — Vague rejection handler: any item failing the rejection rules in the schema triggers this sub-flow before being appended:
AskUserQuestion(
question="Item '{vague text}' is not measurable. How to proceed?",
options=[
"Reformulate — write a measurable version",
"Drop — remove this item",
"Convert to D-XX — make it a locked decision instead"
]
)
.jdi/DECISIONS.md as new D-{date}-{slug}-{seq} (schema v2) or D-N (v1). Do not include in DoD.Path: {phase_dir}/CONTEXT.md (orchestrator pre-resolved — never hand-build NN-slug)
# Phase {position}: {name} — Context (slug: {phase_slug})
## Goal
{from ROADMAP, 1 line}
## Locked decisions
- D-{X}: {decision}
- D-{Y}: {decision}
## Canonical refs
- {path/url cited by user}
## Out of scope
- {item moved to todos.md}
## Definition of Done
### Auto-verifiable
- [ ] {criterion text}
**Verify:** {executable check}
**Source:** CONTEXT
- [ ] ...
### Manual
- [ ] {criterion text}
**Verify:** human confirmation required
**Evidence:** {expected artifact}
**Source:** CONTEXT
- [ ] ...
## Notes
{extra context that helps planner, optional}
Auto-verifiable and Manual subsections are BOTH required, even if one is empty (write - _(none)_ placeholder for empty subsection so the schema parser is consistent). Items must follow the exact format from core/templates/dod-schema.md.
Max 1500 tokens. If exceeded, suggest phase split.
CONTEXT.md ok. Decisions: D-{X}, D-{Y}, D-{Z}. DoD: {N_auto} auto + {N_manual} manual.
Next: /jdi-plan {phase_slug}
- Never decide for the user. Only ask.
- Scope creep -> todos.md, redirect.
- Never re-ask something already in DECISIONS.md.
- Max 5 D-XX per session (Stage 1).
- Stage 2 (DoD) proposes exactly 5 candidates initially. Free add loop hard-capped at 10 total DoD items per phase.
- Every DoD item MUST have explicit `Verify:` — items without it are rejected per `dod-schema.md`.
- Vague items rejected before append — never written to CONTEXT.md.
- CONTEXT.md max 1500 tokens. Exceeded -> suggest split.
- DoD inherited from PROJECT.md is NOT re-proposed — reviewer applies it automatically.
- No AskUserQuestion: print "Question {N}: {text}" + numbered options. Wait for text input.
- No Grep: use linear search via Read.
- Roadmap missing: abort. Suggest "/jdi-new".
- `{phase_dir}/CONTEXT.md` (created — folder created on first write if absent; includes `## Definition of Done` section with Auto-verifiable and Manual subsections per `core/templates/dod-schema.md`)
- `.jdi/DECISIONS.md` (updated, append-only — on schema v2 use `D-{YYYY-MM-DD}-{phase_slug}-{seq}` IDs to avoid cross-branch collisions; v1 keeps `D-N` increment; includes any DoD items the user chose to convert to decisions)
- `.jdi/todos.md` (updated, if scope creep)
- Next-step message in chat (includes DoD counts: N auto + N manual)