Skip to main content
kata-doctor Run health checks on Kata project structure, detecting and fixing format issues. Triggers include "doctor", "health check", "fix roadmap", "check project", "kata doctor".
跳到安装 Skills Marketplace 发现并探索由社区构建的 Agent Skills
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/gannonh/kata-marketplace --skill kata-doctor命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
下载 Zip 下载中... 同仓库更多 Skills Capture an idea, task, or issue that surfaces during a Kata session as a structured issue for later work. This skill creates markdown issue files in the .planning/issues/open directory with relevant metadata and content extracted from the conversation. Triggers include "add issue", "capture issue", "new issue", "create issue", "log issue", "file issue", "add todo" (deprecated), "capture todo" (deprecated), "new todo" (deprecated).
Add a milestone to an existing project, starting a new milestone cycle, creating the first milestone after project init, or defining what's next after completing work. Triggers include "add milestone", "new milestone", "start milestone", "create milestone", "first milestone", "next milestone", and "milestone cycle".
Add planned work discovered during execution to the end of the current milestone in the roadmap. This skill appends sequential phases to the current milestone's phase list, automatically calculating the next phase number. Triggers include "add phase", "append phase", "new phase", and "create phase". This skill updates ROADMAP.md and STATE.md accordingly.
SOC
name kata-doctor description Run health checks on Kata project structure, detecting and fixing format issues. Triggers include "doctor", "health check", "fix roadmap", "check project", "kata doctor". metadata {"version":"1.8.0"}
Run diagnostic health checks on a Kata project and fix detected issues.
Health Checks:
Roadmap format migration — Detects old-format ROADMAP.md and migrates to current format
Phase directory collision detection — Detects duplicate numeric prefixes and migrates to globally sequential numbering
When invoked directly by user: run interactively with confirmation prompts.
When invoked by other skills (auto mode): format migration proceeds automatically, collision fix reports the problem and suggests /kata-doctor for interactive resolution.
<execution_context>
@./references/roadmap-format-spec.md
</execution_context>
Mode: $ARGUMENTS (optional: --auto for non-interactive mode)
@.planning/ROADMAP.md
@.planning/STATE.md
Parse arguments for mode:
AUTO_MODE=false
if echo "$ARGUMENTS " | grep -q "\-\-auto" ; then
AUTO_MODE=true
fi
Display diagnostic banner:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Kata ► PROJECT HEALTH CHECK
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Running diagnostics...
Check 1: Roadmap Format node "${CLAUDE_PLUGIN_ROOT} /skills/kata-doctor/scripts/kata-lib.cjs" check-roadmap 2>/dev/null
FORMAT_EXIT=$?
0 = Current format, skip migration
1 = Old format, needs migration
2 = No ROADMAP.md, skip check
✓ ROADMAP.md format: current
— ROADMAP.md: not found (skipped)
⚠ ROADMAP.md format: old (needs migration)
Proceed to roadmap migration.
Only runs if format check returned exit code 1.
Step 1: Parse old-format ROADMAP.md
Read the existing ROADMAP.md and extract:
Project name (from # Roadmap: or # heading)
All phases with their numbers, names, status, plan counts
Any milestone version references
Phase completion dates if present
Step 2: Detect milestone boundaries
Analyze phases to group them by milestone. Look for:
Version references in phase goals or headers
<details> blocks (already partially migrated)
Completed vs in-progress phases
Step 3: Build current-format structure
Transform to canonical format per roadmap-format-spec.md:
Add ## Milestones overview section with status icons
Wrap completed milestone phases in <details> blocks
Add ## Current Milestone: heading for active work
Preserve all phase details and content
Step 4: Write migrated ROADMAP.md
Use Write tool to update .planning/ROADMAP.md with new format.
node "${CLAUDE_PLUGIN_ROOT} /skills/kata-doctor/scripts/kata-lib.cjs" check-roadmap 2>/dev/null
VERIFY_EXIT=$?
✓ ROADMAP.md migrated to current format
✗ ROADMAP.md migration failed - manual review needed
Display the file for user review.
Step 6: Commit (if enabled)
COMMIT_PLANNING_DOCS=$(node "${CLAUDE_PLUGIN_ROOT} /skills/kata-doctor/scripts/kata-lib.cjs" read-config "commit_docs" "true" )
git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
If COMMIT_PLANNING_DOCS=true:
git add .planning/ROADMAP.md
git commit -m "docs: migrate ROADMAP.md to current format"
Check 2: Phase Directory Collisions Scan for duplicate numeric prefixes across all phase state directories:
DUPES=$(for state in active pending completed; do
ls .planning/phases/${state} / 2>/dev/null
done | grep -oE '^[0-9]+' | sort -n | uniq -d)
FLAT_DUPES=$(ls .planning/phases/ 2>/dev/null | grep -E '^[0-9]' | grep -oE '^[0-9]+' | sort -n | uniq -d)
ALL_DUPES=$(echo -e "${DUPES} \n${FLAT_DUPES} " | sort -nu | grep -v '^$' )
✓ Phase directories: no collisions
⚠ Phase directories: collisions detected
Duplicate prefixes: [list]
Collision fix requires user confirmation.
Run `/kata-doctor` interactively to resolve.
Proceed to collision migration.
Only runs if collisions detected AND AUTO_MODE=false.
This step incorporates the full logic from kata-migrate-phases:
Step 1: Validate environment
[ -f .planning/ROADMAP.md ] || { echo "ERROR: No ROADMAP.md found." ; exit 1; }
[ -f .planning/STATE.md ] || { echo "ERROR: No STATE.md found." ; exit 1; }
Step 2: Build milestone chronology
Parse ROADMAP.md to build globally sequential phase numbering:
GLOBAL_SEQ=0
CHRONOLOGY=""
while IFS= read -r line; do
name=$(echo "$line " | grep -oE 'Phase [0-9.]+: .+' | sed 's/Phase [0-9.]*: //' | sed 's/\*\*$//' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | tr -cd 'a-z0-9-' )
if [ -n "$name " ]; then
CHRONOLOGY="${CHRONOLOGY} ${GLOBAL_SEQ} ${name} \n"
GLOBAL_SEQ=$((GLOBAL_SEQ + 1 ))
fi
done < <(grep -E 'Phase [0-9.]+:' .planning/ROADMAP.md)
Display: Chronology ([N] phases): 00 → foundation, 01 → api-endpoints, ...
Step 3: Map directories to phases
For each chronology entry, find matching directory across all states.
Build mapping: STATE/OLD_DIR → STATE/NEW_PREFIX-SLUG
Step 4: Present migration plan
Migration Plan:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
completed/01-foundation → completed/00-foundation
completed/02-api-endpoints → completed/01-api-endpoints
completed/01-setup → completed/02-setup
...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Total: [N] directories to rename
header: "Migration"
question: "Rename [N] directories to globally sequential numbers?"
options:
"Proceed" — Execute all renames
"Cancel" — Abort migration
If cancelled: exit with "Migration cancelled."
Step 5: Execute two-pass rename
Pass 1: Rename all directories to temporary names: mv OLD tmp-{seq}-{slug}
Pass 2: Rename from temporary to final: mv tmp-{seq}-{slug} {padded}-{slug}
For active/pending phases, also rename internal files (*-PLAN.md, *-RESEARCH.md, etc.).
Step 6: Update documentation
Update ROADMAP.md current milestone phase numbers.
Update STATE.md current position.
Leave historical <details> blocks unchanged.
Re-run collision detection:
DUPES=$(for state in active pending completed; do
ls .planning/phases/${state} / 2>/dev/null
done | grep -oE '^[0-9]+' | sort -n | uniq -d)
✓ Phase directories migrated to globally sequential numbers
✓ No duplicate prefixes remain
COMMIT_PLANNING_DOCS=$(node "${CLAUDE_PLUGIN_ROOT} /skills/kata-doctor/scripts/kata-lib.cjs" read-config "commit_docs" "true" )
git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
If COMMIT_PLANNING_DOCS=true:
git add .planning/phases/ .planning/ROADMAP.md .planning/STATE.md
git commit -m "chore: migrate phase directories to globally sequential numbering"
Completion Display completion summary:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Kata ► HEALTH CHECK COMPLETE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[List each check with status]
✓ ROADMAP.md format: [current | migrated | not found]
✓ Phase directories: [no collisions | migrated | skipped]
If any migrations were performed:
Changes committed. Run `/kata-track-progress` to continue.
Don't modify historical <details> blocks content (only add if missing)
Don't rename completed phase internal files during collision fix
Don't run collision fix in auto mode without user confirmation
Don't fail the entire health check if one check has issues
</anti_patterns>