Skip to content

📄 本页由源文件 skills/dev-flow/references/menu.md 自动投影生成(单一权威源)。请勿直接编辑本页。

dev:ask — 全功能交互式菜单

一、路由声明

  • 加载方式:SKILL.md 触发 → read_file("references/menu.md")
  • 不进入步骤流程:不输出步骤完成标记 JSON,不写入工作上下文,不进入 dev-flow 步骤链
  • 交互协议:每一级菜单必须遵守"双重展示"规则:
    1. 先输出 Markdown 选项表格
    2. 再调用 ask_followup_question 弹出交互式选项
    3. 表格行数与 options 数组长度严格一致
    4. 编号一致

二、状态感知(每次加载时执行,必须)

以下 4 项检测在加载本文件后、弹出主菜单前执行,结果用于决定菜单选项的显示/隐藏:

检测清单

#检测项命令用途
S1活跃流程存在ls ~/.codebuddy/working-context/.active-flows/*.flow 2>/dev/null决定 B1/B4/B5 是否显示
S2已完成工作上下文ls ~/.codebuddy/working-context/*.md 2>/dev/null + grep status: (completed|testing|delivered)决定 B2/B3 是否显示
S3在 git 仓库中git rev-parse --git-dir 2>/dev/null部分选项的前提
S4当前分支git branch --show-current 2>/dev/nullB2/B3 匹配精度

结果处理

  • 无可用选项时:不显示该选项(而非灰显),菜单保持简洁
  • S1 命中时:一级 B 菜单标注 [🔴 有活跃流程]
  • S2 命中时:一级 B 菜单标注 [🟢 有已完成需求]
  • S1 和 S2 均未命中:一级 B 菜单标注 [⚪ 无相关状态]

三、一级菜单

一级菜单始终显示全部 6 个入口,状态徽标根据 §二 检测结果动态更新。

主菜单定义

选项名称状态徽标进入
A🚀 开始新的开发任务→ §四-A
B🔄 继续已有需求 / 修复问题{动态}→ §四-B
C📝 同步文档与知识管理→ §四-C
D📊 查看状态、度量与可视化→ §四-D
E🛠 工具:项目接入、流程图、帮助→ §四-E
F❓ 场景向导(不确定该用什么?)→ §四-F

交互指令

必须先输出以下表格,再立即调用 ask_followup_question

text
选项 A:🚀 开始新的开发任务
选项 B:🔄 继续已有需求 / 修复问题 {S1/S2 徽标}
选项 C:📝 同步文档与知识管理
选项 D:📊 查看状态、度量与可视化
选项 E:🛠 工具:项目接入、流程图、帮助
选项 F:❓ 场景向导(不确定该用什么?帮我判断)

ask_followup_question 参数

  • question: "请选择你要使用的功能:"
  • options: 6 个选项(与表格逐条对应)
  • multiSelect: false

四、二级菜单(全部展开定义)


§四-A:🚀 开始新的开发任务

选项名称说明背后命令行为类型
A1📌 标准开发常规功能开发/Bug修复(阶段0→步骤1→...)dev-flow <描述>需输入→入流程
A2⚡ 精简模式减少交互确认,叠加 --fastdev-flow --fast <描述>需输入→入流程
A3🔧 快速修复≤3文件 + ≤10行/文件 + 已知位置--micro <位置> <改动>需输入→入流程
A0← 返回主菜单回到一级菜单导航

交互指令

先输出表格 + ask_followup_question(A0/A1/A2/A3),用户选择后:

  • A0:重新显示一级主菜单(§三)
  • A1/A2:弹文本提示"请描述你要开发或修复的内容:"→ 收集描述 → 执行 dev-flow [--fast] <描述>
  • A3:弹文本提示"请提供文件路径、行号和改动描述(如 src/utils.ts L42 修复拼写):"→ 收集 → 评估阈值 → 进入 micro-fix 或提示降级

§四-B:🔄 继续已有需求 / 修复问题

状态感知规则

选项名称前提条件背后命令行为类型
B1▶️ 恢复上次中断的流程S1=命中自然语言描述相关话题入流程
B2🔄 迭代修复(提测反馈等)S2=命中dev:fix --iteration "描述"需输入→入流程
B3🔀 需求漂移处理S2=命中dev:fix --drift "描述"需输入→入流程
B4📦 继续下一批S1=命中 + .flow 中 batch_mode=true"继续下一批"入流程
B5🎚 切换交互模式S1=命中"少问我" / "每步都问我"需选择→执行
B0← 返回主菜单始终显示(子菜单存在时)导航

交互指令

先输出表格(仅包含条件满足的选项 + B0)+ ask_followup_question,用户选择后:

  • B0:重新显示一级主菜单(§三)
  • B1:提示"请描述你想继续做什么:"→ 进入活跃流程恢复
  • B2:提示"请描述本次反馈/问题:"→ 执行 dev:fix --iteration "描述"
  • B3:提示"请描述需求变更内容:"→ 执行 dev:fix --drift "描述"
  • B4:直接执行"继续下一批"
  • B5:弹选项"少问我(精简模式)/ 每步都问我(标准模式)"→ 直接切换

S1/S2 均未命中时:B 子菜单不打开(不显示 ask_followup_question),主菜单 B 项标注 [⚪ 无相关状态],点选后直接提示"当前未检测到活跃流程或已完成需求。请使用 A 开始新任务,或 F 场景向导帮你判断。"


§四-C:📝 同步文档与知识管理

选项名称说明背后命令行为类型
C1📄 全量文档同步devlog + knowledge + 文档平台 + 工作上下文dev:sync即执行
C2🧠 知识库管理查看/扫描/搜索/沉淀项目知识dev:kb入流程
C0← 返回主菜单回到一级菜单导航

交互指令

先输出表格 + ask_followup_question(C0/C1/C2),用户选择后:

  • C0:重新显示一级主菜单(§三)
  • C1:直接执行 dev:sync
  • C2:进入 dev:kb 知识库管理流程

§四-D:📊 查看状态、度量与可视化

选项名称背后命令行为类型
D1📈 流程进度概览dev:status即执行
D2🔍 实时观测(Token/红牌/耗时)dev:status --trace即执行
D3📊 开发度量(最近 5 次)dev:metrics即执行
D4📋 全部历史度量dev:metrics --all即执行
D5📈 度量趋势分析dev:metrics --trend即执行
D6📑 指定需求度量报告dev:metrics --report <ID>需输入
D7📐 可视化仪表盘dev:metrics --dashboard即执行
D0← 返回主菜单回到一级菜单导航

交互指令

先输出表格 + ask_followup_question(D0/D1/D2/.../D7),用户选择后:

  • D0:重新显示一级主菜单(§三)
  • D1~D5, D7:直接执行对应命令
  • D6:提示"请输入需求 ID(或需求关键词):"→ 收集后执行

§四-E:🛠 工具:项目接入、流程图、帮助

选项名称背后命令行为类型
E1🆕 项目接入 / 刷新 profiledev:onboard入流程
E2📐 生成/更新流程图dev:flowchart入流程
E3📖 查看完整帮助dev:help即执行
E0← 返回主菜单回到一级菜单导航

交互指令

先输出表格 + ask_followup_question(E0/E1/E2/E3),用户选择后:

  • E0:重新显示一级主菜单(§三)
  • E1~E3:执行对应命令

§四-F:❓ 场景向导

§四-F:❓ 场景向导(决策树式多轮问答)

通过 2 轮交互式问答帮用户定位到正确的命令。

第一轮:判断场景大类

选项场景描述进入
F1我有一个新需求/新功能要开发→ §F.1
F2之前走完流程的需求,现在又发现新问题/新反馈需要修复→ §F.2
F3之前走完流程的需求,又改了代码,只想同步文档→ §F.3
F4产品/需求方改了需求,需要同步更新→ §F.4
F5上次开发中断了,想接着做→ §F.5
F6需要跨多个项目仓库协作修复→ §F.6
F7流程走完了,但仪表盘/度量/文档数据不对→ §F.7
F0← 返回主菜单回到一级菜单

交互指令

先输出表格 + ask_followup_question(F0/F1/F2/.../F7),用户选择后:

  • F0:重新显示一级主菜单(§三)
  • F1~F7:进入对应第二轮

第二轮:细化并推荐

§F.1 新需求开发

进一步判断复杂度 → 推荐 A1/A2/A3。

选项引导问题推荐
F1a改动可能涉及多文件/多模块A1 标准开发
F1b希望减少交互确认A2 精简模式
F1c只是想改个拼写/加个判空(已知位置)A3 快速修复
F1d不确定,帮我评估A1 标准开发(默认)
F1e← 返回上一级回到 F 第一轮场景选择

交互指令

先输出表格 + ask_followup_question(F1a/F1b/F1c/F1d/F1e),用户选择后:

  • F1e:重新显示 F 第一轮场景选择(§四-F 第一轮)
  • F1a~F1d:进入"场景向导终结规则"(§四-F 终结规则),根据推荐命令提示执行

§F.2 完成后又发现问题/反馈

选项引导问题推荐命令
F2a改动较大(>3 文件 或 >30 行),需要完整跟踪记录dev:fix --iteration "描述"
F2b改动较小,仅需同步文档dev:sync
F2c不确定改动范围dev:status 查看上下文,再决定
F2d← 返回上一级回到 F 第一轮场景选择

交互指令

先输出表格 + ask_followup_question(F2a/F2b/F2c/F2d),用户选择后:

  • F2d:重新显示 F 第一轮场景选择(§四-F 第一轮)
  • F2a~F2c:进入"场景向导终结规则"(§四-F 终结规则),根据推荐命令提示执行

§F.3 完成后改了代码,只想同步文档

选项引导问题推荐命令
F3a改动量小,只需把最新状态同步到文档dev:sync
F3b改动有一定规模,想生成 commit 并完整同步dev:fix --iteration "描述"
F3c← 返回上一级回到 F 第一轮场景选择

交互指令

先输出表格 + ask_followup_question(F3a/F3b/F3c),用户选择后:

  • F3c:重新显示 F 第一轮场景选择(§四-F 第一轮)
  • F3a/F3b:进入"场景向导终结规则"(§四-F 终结规则),根据推荐命令提示执行

§F.4 需求变更

直接推荐 → dev:fix --drift "描述"(提示输入变更内容)

§F.5 中断恢复

直接推荐 → 检查 S1,有活跃流程 → 恢复;无 → 提示"未检测到活跃流程,是否改为 F1 新需求?"

§F.6 跨项目修复

直接推荐 → dev-flow <描述>(步骤 2 会自动检测跨项目依赖)

§F.7 流程产物/数据异常

流程已完成但仪表盘、度量、文档等产物与预期不一致。

选项引导问题推荐命令
F7a仪表盘看不到刚完成的需求(可能只是没刷新)dev:metrics --dashboard
F7b怀疑度量 YAML 文件缺失,需要排查dev:metrics --all → 确认缺失后手动补建 → dev:metrics --dashboard
F7c文档(devlog/knowledge/文档平台方案)与代码状态不一致dev:sync
F7d不确定问题在哪,帮我全面诊断dev:statusdev:metrics --all 对比一致性
F7e← 返回上一级回到 F 第一轮场景选择

交互指令

先输出表格 + ask_followup_question(F7a/F7b/F7c/F7d/F7e),用户选择后:

  • F7e:重新显示 F 第一轮场景选择(§四-F 第一轮)
  • F7a~F7d:进入"场景向导终结规则"(§四-F 终结规则),根据推荐命令提示执行

场景向导终结规则

  • 推荐单一命令 → 直接提示执行("将执行 {命令},是否需要额外描述?")
  • 推荐多命令 → 弹出选项让用户选择

五、终结点路由表

所有 0 结尾的导航选项(A0~F0):行为均为重新显示主菜单(一级菜单 §三),不执行任何命令,不进入步骤流程。 F1e/F2d/F3c/F7e:行为为重新显示 F 第一轮场景选择(§四-F)

选项 ID命令行为类型是否进步骤流程额外提示
A0返回主菜单导航重新显示 §三
A1dev-flow <描述>需输入→入流程"请描述你要开发或修复的内容:"
A2dev-flow --fast <描述>需输入→入流程"请描述你要开发或修复的内容:"
A3--micro <位置> <改动>需输入→入流程"请提供文件路径、行号和改动描述:"
B0返回主菜单导航重新显示 §三
B1自然语言恢复入流程"请描述你想继续做什么:"
B2dev:fix --iteration "描述"需输入→入流程"请描述本次反馈/问题:"
B3dev:fix --drift "描述"需输入→入流程"请描述需求变更内容:"
B4"继续下一批"即执行→入流程
B5"少问我" 或 "每步都问我"需选择→执行弹出二选一
C0返回主菜单导航重新显示 §三
C1dev:sync即执行
C2dev:kb入流程
D0返回主菜单导航重新显示 §三
D1dev:status即执行
D2dev:status --trace即执行
D3dev:metrics即执行
D4dev:metrics --all即执行
D5dev:metrics --trend即执行
D6dev:metrics --report <ID>需输入"请输入需求 ID:"
D7dev:metrics --dashboard即执行
E0返回主菜单导航重新显示 §三
E1dev:onboard入流程
E2dev:flowchart入流程
E3dev:help即执行
F0返回主菜单导航重新显示 §三
F1~F7见 §四-F 场景向导多轮→推荐命令视推荐而定
F1e/F2d/F3c/F7e返回 F 第一轮导航重新显示 F 第一轮场景选择

六、完成协议

dev:ask 不输出步骤完成标记 JSON,不进入 dev-flow 步骤体系。

  • 导航类(A0/B0/C0/D0/E0/F0/F1e/F2d/F3c/F7e):重新显示目标菜单(主菜单 §三 或 F 第一轮场景选择),不执行任何命令,不进入任何流程
  • 即执行类:执行命令后输出简短确认,如 ✅ 已执行 dev:status + 命令结果
  • 需输入→入流程类:收集输入后进入 dev-flow 流程(加载 flow.md + 步骤链)
  • 场景向导类:推荐命令后执行,流程同上

不需要更新工作上下文,不需要写 .flow 文件。

基于「单一权威源」哲学构建 —— 文档由源文件投影生成