一键导入
jdi-discuss
Adaptive question loop to capture locked decisions before planning the phase. Accepts slug or position.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Adaptive question loop to capture locked decisions before planning the phase. Accepts slug or position.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
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.
| name | jdi-discuss |
| description | Adaptive question loop to capture locked decisions before planning the phase. Accepts slug or position. |
| argument_hint | <slug|position> [--auto] |
| runtime_intent | {"invokes_agent":"jdi-asker"} |
| runtime_overrides | {"claude":{"allowed-tools":["Read","Write","Bash","Grep","Glob","AskUserQuestion","Agent"]},"copilot":{"tools":["read","write","grep","glob"]},"opencode":{"agent":"jdi-asker","subtask":true},"antigravity":{"triggers":["/jdi-discuss","discuss phase","start phase discussion"]}} |
test -d .jdi/ || { echo "Not a JDI project. /jdi-new first."; exit 1; }
# Gate promised by the loop: specialists exist before phase work starts
ls .jdi/agents/jdi-doer-*.md >/dev/null 2>&1 || { echo "Doer specialist missing. Run /jdi-bootstrap first."; exit 1; }
ls .jdi/agents/jdi-reviewer-*.md >/dev/null 2>&1 || { echo "Reviewer specialist missing. Run /jdi-bootstrap first."; exit 1; }
RESOLVED="$(npx -y jdi-cli resolve-phase "$1")" || {
echo "Phase '$1' not found in ROADMAP."
exit 1
}
eval "$RESOLVED"
PHASE_SLUG="$JDI_PHASE_SLUG"
PHASE_DIR="$JDI_PHASE_DIR"
PHASE_POSITION="$JDI_PHASE_POSITION"
PowerShell:
$r = npx -y jdi-cli resolve-phase $args[0] --json | ConvertFrom-Json
if ($LASTEXITCODE -ne 0) { Write-Error "Phase '$($args[0])' not found."; exit $LASTEXITCODE }
$phaseSlug = $r.slug; $phaseDir = $r.dir; $phasePosition = $r.position
If $PHASE_DIR/CONTEXT.md exists, ask: overwrite | skip | view.
Invoke jdi-asker with:
phase_slug=$PHASE_SLUGphase_dir=$PHASE_DIRphase_position=$PHASE_POSITION (display only)mode=auto if --auto, otherwise mode=interactive/jdi-issue) may additionally pass brief=<card text>
(external card = primary source) and dod=auto_only (only executable DoD;
human-only criteria go to ## Deferred to PR review) — see the asker's
<brief_mode>Agent runs its own process. Returns when CONTEXT.md is written to $PHASE_DIR/CONTEXT.md.
test -f "$PHASE_DIR/CONTEXT.md" || { echo "CONTEXT.md not created"; exit 1; }
grep -q '## Definition of Done' "$PHASE_DIR/CONTEXT.md" || { echo "CONTEXT.md missing § Definition of Done (asker Stage 2 incomplete)"; exit 1; }
git add "$PHASE_DIR/CONTEXT.md" .jdi/DECISIONS.md .jdi/todos.md 2>/dev/null
git commit -m "docs($PHASE_SLUG): capture phase context"
Edit .jdi/STATE.md:
current_phase: $PHASE_POSITION (legacy mirror, kept for v1 reading)current_phase_slug: $PHASE_SLUGnext_step: /jdi-plan $PHASE_SLUG# STATE.md is untracked on 0.3.0+ projects — commit only if a legacy project still tracks it
git add .jdi/STATE.md 2>/dev/null || true
git diff --cached --quiet || git commit -m "chore(state): phase $PHASE_SLUG discussed"
CONTEXT.md ok ({lines} lines, {count} decisions, {creep} in todos.md).
Next: /jdi-plan $PHASE_SLUG
- pre: `.jdi/` exists + doer/reviewer specialists exist + phase resolves via `npx -y jdi-cli resolve-phase`
- post: CONTEXT.md written (including `## Definition of Done`) + commit made + STATE.md updated
- ROADMAP.md not found → exit, suggest /jdi-new
- Phase id not resolvable → exit with hint
- CONTEXT.md already exists → ask: overwrite | skip | view
- jdi-asker fails → no commit, no state update, show error