敏捷战略层 (Agile Strategic)
0. 前置条件
| 条件 | 缺失时路由 |
|---|---|
agile-docs/ 目录存在 |
→ using-agile 初始化 |
agile-docs/DOD.md 存在 |
→ using-agile 补 DoD 模板 |
1. 定位
本技能是战略层一体化技能,每个产出阶段前先过决策问询,分三阶段产出三个文件:
| 阶段 | 产出 | 前置问询 | 模板 |
|---|---|---|---|
| 阶段 0 | (无文件) | 决策问询(§2.0) | using-agile/references/interview-protocol.md |
| 阶段 A | agile-docs/VISION.md |
阶段 0 完成 | references/vision-template.md |
| 阶段 B | agile-docs/ARCHITECTURE.md + agile-docs/ADR.md |
选型裁决(§3.1) | references/c4-adr.md |
阶段必须分别完成:决策点问完 → 才产出;阶段 A 写完 VISION 必须停下询问,禁止跨阶段顺手写架构。
决策用选择题问(using-agile/references/interview-protocol.md):先读项目画像/已有文档补事实(文档优先),只把真决策(定位/原则/红线/指标/选型)用「候选 + 推荐 + 自定义」一次一问地喂给用户。
2. 阶段 A:写 VISION.md
2.0 决策问询(写前必跑,using-agile/references/interview-protocol.md)
⚠️ 启动问询前先过 §6 写前战略门禁:若检测到多份矛盾输入或与现有 VISION/ADR 冲突,立即停下生成
STRATEGY_CONFLICT.md(模板见using-agile/references/strategy-conflict-template.md),不进入问询。若该文件已存在(如 using-agile 已生成)→ 跳过不重复生成,仅引用。
按 using-agile/references/interview-protocol.md 用选择题问,本技能落点:
- 文档优先:读
agile-docs/DOD.md头部「项目画像」+ 已存在的 VISION/ADR/Backlog,能查到的事实自己读、不问你。 - 一次一问 + 给推荐:按 §2.1 决策点清单,每个点给候选 + 明确推荐 + 理由 + 自定义兜底;答完再问下一个。
- 决策树深度优先:先定位(上游),再原则/红线/指标(下游)。
- 共识后落盘:决策点问完 → 输出「决策点确认清单」(标来源)→ 你确认后进入 §2.2 产出。
变更快速响应:若是「需求变了」触发的更新而非首次产出,先按 using-agile/references/change-matrix.md §二 分级——L1 措辞就地改、L2 只重问受影响维度、L3 才走完整问询。禁止每次更新都整层重问。
2.1 决策点清单(每项 = 选择题 + 推荐方向)
姿态:不是填空问卷。按 using-agile/references/interview-protocol.md 用选择题问(口径见该文件),含糊答案必追问,追问/跳过遵守 using-agile/references/probing-protocol.md(一次一问、同话题 ≤2 次)。问询中发现新冲突,回到写前战略门禁处理。
逐项问询,每项 = 决策点 + 候选选项方向 + 追问触发 + 兜底(用户明确跳过 → 标 {待确认} 并进文末汇总):
| # | 决策点 | 候选选项方向(结合实际填,给推荐 + 理由) | 追问触发 | 兜底(用户不决时) |
|---|---|---|---|---|
| 1 | 电梯演讲三要素 | 根据项目画像拟 2 版定位供选;推荐与画像最契合的一版 | 目标用户是"所有人"或不做项为空 → 追问"第一批付费/重度用户是谁?最容易跑偏去做的一件事?" | 用推荐版,标 agent 推荐 |
| 2 | 核心用户画像 | 从电梯演讲推导 2 版画像草稿供选 | 画像无场景支撑 → 追问"他在什么情境下打开产品?现在用什么替代方案?" | 用推导草稿,标 agent 推断 |
| 3 | 定位声明 | 选项:A 终稿(不可逆,变更视为 L3,走完整问询 + 变更传播评估)/ B 探索中 | 用户说终稿但与前面答案矛盾 → 指出矛盾请裁决 | 默认「探索中」 |
| 4 | 使命与愿景 | 从电梯演讲提炼 2 句供选/确认 | 空泛("让世界更好")→ 追问"删掉产品用户失去什么?" | 用提炼句,标 agent 推断 |
| 5 | 核心原则 | 给 3 组常见对立原则供勾选(如"交付速度优先于完美架构") | 原则无 trade-off → 追问"为了它你愿牺牲什么?" | 按勾选落盘,标用户给出 |
| 6 | 战略红线 | 从"不做什么"扩写表格草稿供确认 | 红线与电梯演讲"不做什么"矛盾 → 指出请裁决 | 用草稿,标 agent 推断 |
| 7 | 只做清单 | 按核心价值关联度排序,建议砍到 3 项供选 | 清单 >3 项或含无关项 → 逐项问"这件不做首版会怎样?" | 按推荐砍到 3 项 |
| 8 | 成功指标 | 给同类产品参考区间供选(如注册 ≥500/周活 ≥150) | 数值无依据 → 追问"500 基于什么?获客渠道撑得起吗?" | 用参考区间,标 agent 推荐 |
逐项确认(或明确跳过)后,才进入产出。
2.2 产出
只写入 agile-docs/VISION.md 一个文档,使用 references/vision-template.md 融合模板。关键决策(定位/核心原则/战略红线/成功指标)落盘时标注来源——(来源:用户给出 / agent 推断 / agent 推荐待确认),便于变更时追溯。
2.3 阶段 A 写完即停(硬约束,结构化审阅)
按 using-agile/references/probing-protocol.md §四 输出决策点确认清单(重点列 VISION 的定位 / 核心原则 / 战略红线 / 成功指标等关键决策 × 来源),问"继续阶段 B(架构层)还是更新本愿景?"。然后停下等用户表态——禁止跨阶段,即使 VISION 已确认也要等用户明确"继续阶段 B"才进入 §3。
跳层兜底:若用户要求跳过阶段 B 直接去 Backlog,提示"战略层架构未完成会让 T-NNN 缺少 ADR 关联,届时由 agile-backlog 按门禁 ① 拦截"。尊重用户选择。
3. 阶段 B:写 ARCHITECTURE.md + ADR.md
3.1 选型裁决流程(写前必跑,四步,本阶段核心)
姿态同 §2.1(using-agile/references/probing-protocol.md §一):以架构师身份主持选型讨论,而非把用户口述直接写成 ADR。选型问题同样用选择题问(口径见 §2.0)。
步骤 1 — 约束采集(驱动选型的输入,缺什么问什么):
- 先读
agile-docs/DOD.md头部「项目画像」(using-agile 初始化采集:项目类型/团队技能栈/代码基础),已有的不重复问; - 补问缺失项:运维能力(谁运维、能否维护中间件)/ 数据规模预估 / 预算(云服务还是自建)/ 已有基础设施。
步骤 2 — 系统边界与容器划分:
- "画 Level 1 系统上下文图前,先列:用户角色、外部系统、待建系统各有哪些?"
- 容器划分:Web / API / 数据 / 缓存 / 搜索等。
步骤 3 — 必答话题清单(缺失探测,对接门禁预检第 4 条):逐项检查,用户未提及的主动问"本项目需要吗?",不许静默默认,也不许推断为不需要:
| 话题 | 未提及时的提问示例 |
|---|---|
| 数据存储 | "主数据存哪?关系型还是文档型?" |
| 缓存 | "有高频读场景吗?需要独立缓存层还是进程内缓存够用?" |
| 认证授权 | "谁登录?需要角色权限吗?自建还是接第三方?" |
| 部署形态 | "单体还是微服务?部到哪(云/自建/容器)?" |
| 消息与异步 | "有需要解耦/削峰的场景吗?" |
| 可观测性 | "日志/监控/告警用什么方案?" |
| 搜索 | "有全文检索需求吗?数据库 LIKE 够不够?" |
用户明确答"不需要"或明确跳过 → 记录结论(不需要也是决策,可入 ADR);提问节奏遵守节流约束,分轮进行。
步骤 4 — 逐项对比与裁决(每项需要选型的话题逐一走完,才许写 ADR):
- 给 2-3 个候选 + 权衡对比表(在对话中呈现,不进 ADR,与门禁 ④ 兼容;产物去向见
references/c4-adr.md §四); - 给出基于步骤 1 约束的明确推荐及理由;
- 用户已有选择但与约束矛盾时必须提出质疑(如"你选 MongoDB,但前面描述的数据是强关系型的,理由是?"),用户坚持则尊重并在 ADR 背景中如实记录;
- 用户说"你看着办" → 按推荐项执行,ADR 状态标 Proposed 并注"agent 推荐,待用户确认"(
using-agile/references/probing-protocol.md §二规则 2); - 用户裁决后,该项选型才进入 §3.2 写入 ADR。
架构预判瓶颈 → 仅在 ARCHITECTURE.md 末尾标注;后续由 agile-backlog 转为 T-NNN(本层不创建任务条目)。
3.2 产出(两个独立文件)
文件 1:ARCHITECTURE.md
- 路径:
agile-docs/ARCHITECTURE.md - 结构:
## Level 1: 系统上下文图+## Level 2: 容器图(Mermaid) - 模板见
references/c4-adr.md §一 - 更新策略:直接覆盖。架构演进时编辑本文件,不新建版本文件(git 记历史)。
文件 2:ADR.md
- 路径:
agile-docs/ADR.md - 结构:顶部索引表 + 每个 ADR 一章节(4 行强制结构)
- 模板见
references/c4-adr.md §二 - 更新策略:章节式不可篡改(详见 §6 门禁 ②)
- 严谨性要求(决策来源标注):每条 ADR 的「决策」行末尾标注来源与依据——
依据:{来源 + 关键理由}。裁决是「用户拍板」还是「agent 推荐待确认」必须写明,禁止把 agent 推荐混成用户已确认。
3.3 阶段 B 写完即停(结构化审阅)
按 using-agile/references/probing-protocol.md §四 输出决策点确认清单(重点列每条 ADR 决策 + 架构假设 × 来源),问"继续下一步(执行层:agile-backlog 待办池)还是更新本层?"。然后停下等用户表态。
4. 变更快速响应(需求变了时的入口)
首次产出走 §2/§3 完整流程;已产出后遇「需求变了」,先分级再动手(using-agile/references/change-matrix.md §二),不做整层重访:
| 级别 | 本层动作 |
|---|---|
| L1 措辞级(改 VISION 措辞/描述) | 就地改,不重访;结构化审阅一句带过 |
| L2 同层级(改某条核心原则/红线/指标) | 只对受影响维度做增量问询(using-agile/references/change-matrix.md §三),其余复用现有 VISION/ADR;并做下游影响评估(改原则/红线/指标 → Backlog 排序是否受影响) |
| L3 跨层/战略级(改定位/使命/战略红线;改架构选型 → ADR 替代) | 走完整问询(§2.0/§3.1)+ 下游影响评估(改原则→Backlog 排序;改 ADR→关联 T-NNN) |
5. 硬约束
- ✅ 阶段 A 只产
VISION.md;阶段 B 只产ARCHITECTURE.md+ADR.md;❌ 不顺手写 PRODUCT-BACKLOG / Sprint(各阶段写完即停,见 §2.3/§3.3) - ✅ 决策问询是产出前环节,决策点未确认不落盘(§2.0/§3.1,口径见
using-agile/references/interview-protocol.md) - ✅ 关键决策落盘带来源标注(用户给出 / agent 推断 / agent 推荐待确认,§2.2/§3.2)
- ✅ 每项技术选型必须经过候选对比 + 用户裁决(§3.1 步骤 4),禁止未经讨论直接写 ADR
- ✅ ARCHITECTURE.md 可演进覆盖(git 记历史);ADR.md 章节式不可篡改,每条严格 4 行结构(§6 门禁 ②④)
- ✅ 变更先分级(
using-agile/references/change-matrix.md §二),L1/L2 只做增量问询,禁止整层重访(§4)
6. 门禁
门禁 ② ADR 不可篡改
状态为"已接受"的 ADR 章节,决策内容不动。要变更须在 ADR.md 底部新建章节标"替代 ADR-NNN",原章节字段改:
- 状态:
Superseded by ADR-013 - 被替代:
ADR-013
门禁 ④ ADR 内容瘦身
写 ADR 时若超出"4 行结构"或包含禁止内容 → 立即停下,按禁止内容清单(见 using-agile/references/gate-protocol.md §二 ④)引导到正确归属。
写前战略门禁
冲突 / 歧义即停(见 using-agile/references/gate-protocol.md)。若需生成 STRATEGY_CONFLICT.md,模板见 using-agile/references/strategy-conflict-template.md;发现该文件已存在则跳过不重复生成,仅引用。