kata-plan-milestone-gaps
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese<objective>
Create all phases necessary to close gaps identified by `/kata-audit-milestone`.
Reads MILESTONE-AUDIT.md, groups gaps into logical phases, creates phase entries in ROADMAP.md, and offers to plan each phase.
One command creates all fix phases — no manual per gap.
</objective>
/kata-add-phase<execution_context>
<!-- Spawns kata-planner agent which has all planning expertise baked in -->
</execution_context>
<context>
**Audit results:**
Glob: .planning/v*-MILESTONE-AUDIT.md (use most recent)
Original intent (for prioritization):
@.planning/PROJECT.md
@.planning/REQUIREMENTS.md
Current state:
@.planning/ROADMAP.md
@.planning/STATE.md
</context>
<process><objective>
创建所有必要的阶段,以解决`/kata-audit-milestone`识别出的差距。
读取MILESTONE-AUDIT.md,将差距按逻辑分组为不同阶段,在ROADMAP.md中创建阶段条目,并提供每个阶段的规划选项。
只需一条命令即可创建所有修复阶段——无需为每个差距手动执行。
</objective>
/kata-add-phase<execution_context>
<!-- 启动kata-planner agent,该agent内置了所有规划专业能力 -->
</execution_context>
<context>
**审计结果:**
通配符:.planning/v*-MILESTONE-AUDIT.md(使用最新版本)
原始意图(用于优先级排序):
@.planning/PROJECT.md
@.planning/REQUIREMENTS.md
当前状态:
@.planning/ROADMAP.md
@.planning/STATE.md
</context>
<process>1. Load Audit Results
1. 加载审计结果
bash
undefinedbash
undefinedFind the most recent audit file
查找最新的审计文件
find .planning -maxdepth 1 -name "v*-MILESTONE-AUDIT.md" 2>/dev/null | head -1
Parse YAML frontmatter to extract structured gaps:
- `gaps.requirements` — unsatisfied requirements
- `gaps.integration` — missing cross-phase connections
- `gaps.flows` — broken E2E flows
If no audit file exists or has no gaps, error:No audit gaps found. Run first.
/kata-audit-milestoneundefinedfind .planning -maxdepth 1 -name "v*-MILESTONE-AUDIT.md" 2>/dev/null | head -1
解析YAML前置元数据以提取结构化差距:
- `gaps.requirements` — 未满足的需求
- `gaps.integration` — 缺失的跨阶段连接
- `gaps.flows` — 损坏的端到端流程
如果不存在审计文件或文件中没有差距,返回错误:未找到审计差距。请先运行。
/kata-audit-milestoneundefined2. Prioritize Gaps
2. 为差距划分优先级
Group gaps by priority from REQUIREMENTS.md:
| Priority | Action |
|---|---|
| Create phase, blocks milestone |
| Create phase, recommended |
| Ask user: include or defer? |
For integration/flow gaps, infer priority from affected requirements.
根据REQUIREMENTS.md中的优先级对差距进行分组:
| 优先级 | 操作 |
|---|---|
| 创建阶段,会阻碍里程碑达成 |
| 创建阶段,建议执行 |
| 询问用户:包含还是推迟? |
对于集成/流程差距,从受影响的需求推断优先级。
3. Group Gaps into Phases
3. 将差距分组为阶段
Cluster related gaps into logical phases:
Grouping rules:
- Same affected phase → combine into one fix phase
- Same subsystem (auth, API, UI) → combine
- Dependency order (fix stubs before wiring)
- Keep phases focused: 2-4 tasks each
Example grouping:
Gap: DASH-01 unsatisfied (Dashboard doesn't fetch)
Gap: Integration Phase 1→3 (Auth not passed to API calls)
Gap: Flow "View dashboard" broken at data fetch
→ Phase 6: "Wire Dashboard to API"
- Add fetch to Dashboard.tsx
- Include auth header in fetch
- Handle response, update state
- Render user data将相关差距聚类为逻辑阶段:
分组规则:
- 影响同一阶段 → 合并为一个修复阶段
- 属于同一子系统(认证、API、UI)→ 合并
- 按依赖顺序(先修复存根再进行连接)
- 保持阶段聚焦:每个阶段包含2-4个任务
分组示例:
差距:DASH-01未满足(仪表板未获取数据)
差距:集成阶段1→3(认证信息未传递到API调用)
差距:“查看仪表板”流程在数据获取环节中断
→ 阶段6:“连接仪表板与API”
- 为Dashboard.tsx添加数据获取逻辑
- 在请求中包含认证头
- 处理响应并更新状态
- 渲染用户数据4. Determine Phase Numbers
4. 确定阶段编号
Find highest existing phase:
bash
undefined查找当前最高阶段编号:
bash
undefinedScan all phase directories across states
扫描所有状态下的阶段目录
ALL_PHASE_DIRS=""
for state in active pending completed; do
[ -d ".planning/phases/${state}" ] && ALL_PHASE_DIRS="${ALL_PHASE_DIRS} $(find .planning/phases/${state} -maxdepth 1 -type d -not -name "${state}" 2>/dev/null)"
done
ALL_PHASE_DIRS=""
for state in active pending completed; do
[ -d ".planning/phases/${state}" ] && ALL_PHASE_DIRS="${ALL_PHASE_DIRS} $(find .planning/phases/${state} -maxdepth 1 -type d -not -name "${state}" 2>/dev/null)"
done
Fallback: include flat directories (backward compatibility)
兼容处理:包含扁平目录(向后兼容)
FLAT_DIRS=$(find .planning/phases -maxdepth 1 -type d -name "[0-9]*" 2>/dev/null)
[ -n "$FLAT_DIRS" ] && ALL_PHASE_DIRS="${ALL_PHASE_DIRS} ${FLAT_DIRS}"
echo "$ALL_PHASE_DIRS" | tr ' ' '\n' | sort -V | tail -1
New phases continue from there:
- If Phase 5 is highest, gaps become Phase 6, 7, 8...FLAT_DIRS=$(find .planning/phases -maxdepth 1 -type d -name "[0-9]*" 2>/dev/null)
[ -n "$FLAT_DIRS" ] && ALL_PHASE_DIRS="${ALL_PHASE_DIRS} ${FLAT_DIRS}"
echo "$ALL_PHASE_DIRS" | tr ' ' '\n' | sort -V | tail -1
新阶段从该编号开始依次递增:
- 如果当前最高阶段是5,那么新差距对应的阶段为6、7、8...5. Present Gap Closure Plan
5. 展示差距修复计划
markdown
undefinedmarkdown
undefinedGap Closure Plan
差距修复计划
Milestone: {version}
Gaps to close: {N} requirements, {M} integration, {K} flows
里程碑: {版本号}
待解决差距: {N}项需求差距,{M}项集成差距,{K}项流程差距
Proposed Phases
拟议阶段
Phase {N}: {Name}
Closes:
- {REQ-ID}: {description}
- Integration: {from} → {to} Tasks: {count}
Phase {N+1}: {Name}
Closes:
- {REQ-ID}: {description}
- Flow: {flow name} Tasks: {count}
{If nice-to-have gaps exist:}
阶段{N}:{名称}
解决以下差距:
- {REQ-ID}:{描述}
- 集成:{来源阶段} → {目标阶段} 任务数量:{count}
阶段{N+1}:{名称}
解决以下差距:
- {REQ-ID}:{描述}
- 流程:{流程名称} 任务数量:{count}
{如果存在nice-to-have类差距:}
Deferred (nice-to-have)
推迟项(nice-to-have)
These gaps are optional. Include them?
- {gap description}
- {gap description}
Create these {X} phases? (yes / adjust / defer all optional)
Wait for user confirmation.这些差距为可选项。是否包含它们?
- {差距描述}
- {差距描述}
是否创建这{X}个阶段?(是/调整/推迟所有可选项)
等待用户确认。6. Update ROADMAP.md
6. 更新ROADMAP.md
Add new phases to current milestone:
markdown
undefined在当前里程碑中添加新阶段:
markdown
undefinedPhase {N}: {Name}
阶段{N}:{名称}
Goal: {derived from gaps being closed}
Requirements: {REQ-IDs being satisfied}
Gap Closure: Closes gaps from audit
目标: {从待解决差距推导}
需求: {待满足的REQ-ID}
差距修复: 解决审计中发现的差距
Phase {N+1}: {Name}
阶段{N+1}:{名称}
...
undefined...
undefined7. Create Phase Directories
7. 创建阶段目录
bash
undefinedbash
undefinedNew gap closure phases go into pending/ subdirectory
新的差距修复阶段放入pending/子目录
mkdir -p ".planning/phases/pending/{NN}-{name}"
undefinedmkdir -p ".planning/phases/pending/{NN}-{name}"
undefined8. Commit Roadmap Update
8. 提交路线图更新
Check planning config:
bash
COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=falseIf : Skip git operations
COMMIT_PLANNING_DOCS=falseIf (default):
COMMIT_PLANNING_DOCS=truebash
git add .planning/ROADMAP.md
git commit -m "docs(roadmap): add gap closure phases {N}-{M}"检查规划配置:
bash
COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false如果: 跳过Git操作
COMMIT_PLANNING_DOCS=false如果(默认值):
COMMIT_PLANNING_DOCS=truebash
git add .planning/ROADMAP.md
git commit -m "docs(roadmap): add gap closure phases {N}-{M}"9. Offer Next Steps
9. 提供后续步骤建议
markdown
undefinedmarkdown
undefined✓ Gap Closure Phases Created
✓ 差距修复阶段已创建
Phases added: {N} - {M}
Gaps addressed: {count} requirements, {count} integration, {count} flows
已添加阶段: {N} - {M}
已处理差距: {count}项需求差距,{count}项集成差距,{count}项流程差距
▶ Next Up
▶ 下一步
Plan first gap closure phase
/kata-plan-phase {N}<sub> first → fresh context window</sub>
/clearAlso available:
- — if plans already exist
/kata-execute-phase {N} - — see updated roadmap
cat .planning/ROADMAP.md
After all gap phases complete:
/kata-audit-milestone/kata-complete-milestone {version}
</process>
<gap_to_phase_mapping>规划首个差距修复阶段
/kata-plan-phase {N}<sub>先执行 → 刷新上下文窗口</sub>
/clear其他可用操作:
- — 若阶段规划已存在
/kata-execute-phase {N} - — 查看更新后的路线图
cat .planning/ROADMAP.md
所有差距修复阶段完成后:
/kata-audit-milestone/kata-complete-milestone {version}
</process>
<gap_to_phase_mapping>How Gaps Become Tasks
差距如何转化为任务
Requirement gap → Tasks:
yaml
gap:
id: DASH-01
description: "User sees their data"
reason: "Dashboard exists but doesn't fetch from API"
missing:
- "useEffect with fetch to /api/user/data"
- "State for user data"
- "Render user data in JSX"
becomes:
phase: "Wire Dashboard Data"
tasks:
- name: "Add data fetching"
files: [src/components/Dashboard.tsx]
action: "Add useEffect that fetches /api/user/data on mount"
- name: "Add state management"
files: [src/components/Dashboard.tsx]
action: "Add useState for userData, loading, error states"
- name: "Render user data"
files: [src/components/Dashboard.tsx]
action: "Replace placeholder with userData.map rendering"Integration gap → Tasks:
yaml
gap:
from_phase: 1
to_phase: 3
connection: "Auth token → API calls"
reason: "Dashboard API calls don't include auth header"
missing:
- "Auth header in fetch calls"
- "Token refresh on 401"
becomes:
phase: "Add Auth to Dashboard API Calls"
tasks:
- name: "Add auth header to fetches"
files: [src/components/Dashboard.tsx, src/lib/api.ts]
action: "Include Authorization header with token in all API calls"
- name: "Handle 401 responses"
files: [src/lib/api.ts]
action: "Add interceptor to refresh token or redirect to login on 401"Flow gap → Tasks:
yaml
gap:
name: "User views dashboard after login"
broken_at: "Dashboard data load"
reason: "No fetch call"
missing:
- "Fetch user data on mount"
- "Display loading state"
- "Render user data"
becomes:需求差距 → 任务:
yaml
gap:
id: DASH-01
description: "用户可查看自己的数据"
reason: "仪表板已存在但未从API获取数据"
missing:
- "使用useEffect调用/api/user/data接口"
- "用户数据状态管理"
- "在JSX中渲染用户数据"
转化为:
phase: "连接仪表板数据"
tasks:
- name: "添加数据获取逻辑"
files: [src/components/Dashboard.tsx]
action: "添加useEffect,在组件挂载时调用/api/user/data接口"
- name: "添加状态管理"
files: [src/components/Dashboard.tsx]
action: "为userData、loading、error状态添加useState"
- name: "渲染用户数据"
files: [src/components/Dashboard.tsx]
action: "替换占位符,使用userData.map进行渲染"集成差距 → 任务:
yaml
gap:
from_phase: 1
to_phase: 3
connection: "认证令牌 → API调用"
reason: "仪表板API调用未包含认证头"
missing:
- "在请求中添加认证头"
- "401错误时刷新令牌"
转化为:
phase: "为仪表板API调用添加认证"
tasks:
- name: "为请求添加认证头"
files: [src/components/Dashboard.tsx, src/lib/api.ts]
action: "在所有API调用中包含带令牌的Authorization头"
- name: "处理401响应"
files: [src/lib/api.ts]
action: "添加拦截器,在收到401时刷新令牌或重定向到登录页"流程差距 → 任务:
yaml
gap:
name: "用户登录后查看仪表板"
broken_at: "仪表板数据加载环节"
reason: "未执行请求调用"
missing:
- "组件挂载时获取用户数据"
- "显示加载状态"
- "渲染用户数据"
转化为:Usually same phase as requirement/integration gap
通常与需求/集成差距属于同一阶段
Flow gaps often overlap with other gap types
流程差距通常与其他类型的差距重叠
</gap_to_phase_mapping>
<success_criteria>
- [ ] MILESTONE-AUDIT.md loaded and gaps parsed
- [ ] Gaps prioritized (must/should/nice)
- [ ] Gaps grouped into logical phases
- [ ] User confirmed phase plan
- [ ] ROADMAP.md updated with new phases
- [ ] Phase directories created
- [ ] Changes committed
- [ ] User knows to run `/kata-plan-phase` next
</success_criteria>
</gap_to_phase_mapping>
<success_criteria>
- [ ] 已加载MILESTONE-AUDIT.md并解析差距
- [ ] 已为差距划分优先级(must/should/nice)
- [ ] 已将差距分组为逻辑阶段
- [ ] 用户已确认阶段计划
- [ ] 已使用新阶段更新ROADMAP.md
- [ ] 已创建阶段目录
- [ ] 已提交变更
- [ ] 用户知晓下一步需运行`/kata-plan-phase`
</success_criteria>