@xulthekl/team-flow 0.35.0 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/.claude/always/phase-guard.md +1 -1
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/.claude-plugin/plugin.json +1 -1
  4. package/.codex-plugin/plugin.json +1 -1
  5. package/.cursor-plugin/marketplace.json +1 -1
  6. package/.cursor-plugin/plugin.json +1 -1
  7. package/.github/plugin/marketplace.json +2 -2
  8. package/CHANGELOG.md +27 -0
  9. package/GEMINI.md +1 -1
  10. package/INSTALL.md +1 -1
  11. package/README.md +1 -1
  12. package/agents/architecture-reviewer.md +12 -0
  13. package/docs/README_en.md +1 -1
  14. package/gemini-extension.json +1 -1
  15. package/hooks/session-start +2 -2
  16. package/llms.txt +1 -1
  17. package/package.json +1 -1
  18. package/plugin.json +1 -1
  19. package/scripts/guard/checks/arch-gate-exemptions.mjs +68 -0
  20. package/scripts/guard/checks/arch-readiness.mjs +36 -0
  21. package/scripts/guard/checks/arch-snapshot.mjs +35 -0
  22. package/scripts/guard/guard.mjs +10 -2
  23. package/scripts/lib/arch-merge.mjs +405 -316
  24. package/scripts/lib/arch-parse.mjs +162 -0
  25. package/scripts/lib/cmd-arch.mjs +84 -0
  26. package/scripts/team-flow.mjs +4 -0
  27. package/skills/architecture-design/SKILL.md +22 -1
  28. package/skills/architecture-design/chapters/ch06-integration.md +4 -4
  29. package/skills/architecture-design/references/s3.5-architecture-template.md +164 -0
  30. package/skills/architecture-design/references/s3.5-loading-protocol.md +40 -0
  31. package/skills/architecture-design/references/s3.5-product-architecture.md +76 -0
  32. package/skills/session-handoff/references/handoff-template.md +2 -2
  33. package/skills/spec-writer/SKILL.md +1 -0
  34. package/skills/workflow-bootstrap/references/agents/arch-reverse-analyst.md +60 -0
  35. package/skills/workflow-orchestrator/references/feedback-loops.md +2 -0
  36. package/skills/workflow-orchestrator/references/s1-path-router.md +1 -1
  37. package/skills/workflow-orchestrator/references/s3-plan-pipeline.md +2 -1
  38. package/skills/workflow-orchestrator/references/s4-split-validate.md +11 -1
  39. package/skills/workflow-orchestrator/references/state-model.md +52 -0
@@ -0,0 +1,60 @@
1
+ # Arch Reverse Analyst(v0.35.0,v0.14 §63.2)
2
+
3
+ > 旧项目 S3.5 逆向重建子代理。在 `workflow-bootstrap` B1 侦察之后、S3.5 reconstruction 模式派发。
4
+ > 消费 recon-probe.sh 确定性 JSON + codebase-recon-analyst 维度摘要,补齐**产品级逆向重建**维度:
5
+ > 候选限界上下文 / 聚合根候选 / 聚合状态机草图 / 指令事件表。
6
+ > 只读,不修改任何文件。
7
+
8
+ ## 输入契约
9
+
10
+ 派发 prompt 提供:
11
+ - `recon_json`:recon-probe.sh JSON 输出路径(机械基线:目录树/依赖/LOC/DDL)
12
+ - `root`:项目根
13
+ - 上游维度摘要:codebase-recon-analyst 的 modules / data-model / api-surface / architecture 输出(可选)
14
+
15
+ ## 方法论
16
+
17
+ ### Step 0: 消费基线
18
+ 先读 `recon_json` + 上游摘要。机械采集(文件/依赖/DDL)已由脚本完成,不重跑;只做**语义**判断。
19
+
20
+ ### 维度 1: 候选限界上下文(BC)
21
+ - 从目录树 + 模块边界 + 领域词汇(`docs/architecture/CONCEPTS.md` 若有)聚类候选 BC。
22
+ - 判断依据:命名空间/模块独立性、业务能力分组、依赖方向。
23
+ - 输出:候选 BC 列表 + 职责一句话 + 置信度(high/medium/low)+ 证据(目录路径)。
24
+
25
+ ### 维度 2: 聚合根候选
26
+ - 从实体类/Repository/Service 方法识别聚合根候选 + 事务边界。
27
+ - 判断依据:唯一标识、事务边界、Repository 归属。
28
+ - 输出:聚合根候选(`context:Aggregate` 格式)+ 值对象候选 + 事务边界 + 置信度。
29
+
30
+ ### 维度 3: 聚合状态机草图
31
+ - 从状态枚举/字段 + 状态流转逻辑(Service 方法)还原聚合状态机。
32
+ - 输出:状态清单 + 迁移触发(方法名/事件)草图;不确定标 `[待确认]`。
33
+
34
+ ### 维度 4: 指令与事件
35
+ - 从 Command/Service 方法签名 + 事件类识别指令(Command/Read/Query 分流,复用 ch05 阻断测试)与事件。
36
+ - 输出:指令表 + 事件表(类型/来源/消费),不确定标 `[待确认]`。
37
+
38
+ ### 输出规范(provenance + 置信度,v0.14 §63.2)
39
+ - frontmatter 标 `provenance: reverse-engineered`。
40
+ - 逐条目标注来源:`src/xxx/Order.java`(代码推断)/ `docs/legacy/*.md`(文档)/ `schema-baseline.sql`(DDL)/ `user-confirmed`(用户确认)。
41
+ - 置信度判定:代码路径 + DDL 推导 → high;LLM 语义推断 → medium/low。
42
+ - 仅产出 **L0 骨架**(候选 BC + 聚合根候选 + API 表面总览)首轮必做;状态机/指令事件完整深化留 L1 按域渐进(v0.14 §63.3)。
43
+
44
+ ## Tool Guidance
45
+ - Read/Grep/Glob 定位实体/状态/事件;Bash 仅限重新调用 recon-probe.sh(若基线未提供)。
46
+ - 不修改任何文件,只读。
47
+ - 规模阈值:模块<10 且 LOC<2万 可一次性全量;否则 L0+L1 分层渐进。
48
+
49
+ ## Structured Handoff(强制)
50
+ 你的 final response 必须是结构化交接:
51
+ ```
52
+ {
53
+ status: "done" | "done_with_questions" | "blocked",
54
+ deliverable: <候选 BC/聚合根/状态机/指令事件 结构化摘要(含 provenance + 置信度)>,
55
+ blockers: [ { question, why_blocking, options[] } ],
56
+ outstanding_questions: [ { question, default_assumption } ],
57
+ summary: <3-5 行 gist>
58
+ }
59
+ ```
60
+ 规则:非阻断疑问 → 按 default_assumption 继续 + 记入 outstanding_questions;阻断疑问(recon_json 与 root 均缺失、代码库为空)→ status=blocked + blockers[],绝不强行猜测。
@@ -7,6 +7,8 @@
7
7
  | 回退路径 | 触发条件 | 操作 | 制品处置 |
8
8
  |---------|---------|------|---------|
9
9
  | **S3 → S2** | plan 暴露 PRD scope 问题 | PRD vN 内修订 + 记录变更履历(临时解除 frozen_downstream) | plan.md → plan.md.revN(归档),S3 重入时从零产出 |
10
+ | **ARCH → S3** | 架构设计暴露 plan 拆分问题(v0.35.0 新增) | 调整拆分策略 | plan.md → plan.md.revN(归档);iterations/vN/ 快照未完成部分丢弃 |
11
+ | **S4 → ARCH** | 架构快照不覆盖 change 触及的 BC / 架构产物缺失(v0.35.0 新增) | 回 ARCH 阶段补快照 | iterations/vN/ 增量调整,change 拆分保留 |
10
12
  | **S4 → S3** | 依赖图不可执行/粒度不合理 | 调整拆分策略 | 已创建的 change 目录保留,重新拆分后增量调整 |
11
13
  | **S5 → S4** | 跨 change 冲突需要重新拆分 | 重新评估拆分方案 | 见下方「在途 change 处置」 |
12
14
 
@@ -21,7 +21,7 @@ S1 只做编排动作(需求选择、存在性检查、路径判断、阻塞
21
21
  |------|---------|------|------|
22
22
  | **全新需求** | 无现有 PRD,需求模糊 | → S2 | 完整流程 |
23
23
  | **续版需求** | 有 PRD vN,用户要加功能 | → S2(PRD vN+1) | 新版本迭代 |
24
- | **重新计划** | PRD 已冻结,plan 需调整 | → S3 | 跳过 brainstorm |
24
+ | **重新计划** | PRD 已冻结,plan 需调整 | → S3 | 跳过 brainstorm;S3 完成后进 ARCH(产品级架构设计,v0.35.0)再拆 change |
25
25
  | **继续执行** | changes 已拆分,继续下一个 | → S4/S5 | 先输出状态恢复简报,用户确认后继续 |
26
26
  | **单 change 快速通道** | 需求极清晰,无需 PRD(仅限单一功能点、无 UI、无跨模块依赖的极小变更) | → 直接创建 change → workflow-start | 最轻量路径,无 PRD 锚点,**不可触发 S3→S2 回退** |
27
27
  | **紧急修复(Hotfix)** | bug/生产问题,需最小范围修复 | → 直接创建 change(type: hotfix,注入 bug 描述替代 PRD)→ workflow-start | closing 时强制补录复利 |
@@ -42,9 +42,10 @@ ce-plan 在 orchestrator pipeline 上下文中减少仪式开销,但**保留
42
42
 
43
43
  - plan 是否暴露了 PRD 的范围问题?
44
44
  - **是** → 回退 S2,触发 PRD vN 内修订(记录变更原因)。详见 feedback-loops.md「S3 → S2」
45
- - **否** → 进 S4
45
+ - **否** → 进 ARCH(architecture 阶段,v0.35.0 产品级架构设计,见 state-model.md「architecture 阶段」)
46
46
 
47
47
  ## 完成条件
48
48
 
49
49
  - `prd/vN/plan.md` 已产出,含 change 拆分 + 依赖 DAG + 技术方向
50
50
  - `.team-flow/requirements/<req-id>/orchestrator.yaml` 中 S3 状态 = completed
51
+ - 下一步:进入 ARCH 阶段,产出 `docs/architecture/iterations/vN/architecture.md` 后进 S4(v0.35.0)
@@ -14,9 +14,19 @@
14
14
 
15
15
  ## 步骤
16
16
 
17
+ ### 0. 架构就绪门禁(arch-readiness,v0.35.0 新增)
18
+
19
+ > 设计依据:v0.14 §59.4。产品级架构快照必须覆盖 change 拆分触及的限界上下文,拆分审计才有架构依据。
20
+
21
+ 进入拆分前先校验:
22
+
23
+ - **项目 arch_baseline 缺失(存量/重建未完成)** → WARN 不阻断(reason: 'project architecture baseline not established — S3.5 reconstruction pending'),提示先跑 S3.5 重建产出 L0 骨架。
24
+ - **已建档项目** → 校验 `docs/architecture/iterations/vN/architecture.md` 存在且覆盖 plan.md 各 change 触及的全部 BC。不覆盖 → FAIL,回退 ARCH 阶段补快照(feedback-loops.md「S4 → ARCH」)。
25
+ - **skip 物化**:ARCH 阶段显式跳过(iterations/vN/ 占位含 skipped 标记 + 理由)→ PASS。
26
+
17
27
  ### 1. 拆分质量审计(必选门禁,不可跳过)
18
28
 
19
- 调用 `change-split-auditor` agent 对 `plan.md` 做拆分质量审计,输出审计报告(覆盖矩阵 / DAG 无环 / 粒度均衡 / 字段完整 / **拆分维度合规**)。质量自检清单:
29
+ 调用 `change-split-auditor` agent 对 `plan.md`(**+ `docs/architecture/iterations/vN/architecture.md` 作为架构依据**,v0.35.0)做拆分质量审计,输出审计报告(覆盖矩阵 / DAG 无环 / 粒度均衡 / 字段完整 / **拆分维度合规**)。质量自检清单:
20
30
 
21
31
  **必选约束**:审计 verdict = PASS 是 Step 3(创建脚手架)的前置条件。
22
32
  verdict = FAIL → 必须回退 S3 调整拆分后重新审计,不可绕过直接创建 change。
@@ -16,6 +16,7 @@
16
16
 
17
17
  - **迁移兼容**:检测到旧 `<root>/.workflow-orchestrator.yaml` 存在时,自动迁移到 `.team-flow/requirements/<req-id>/orchestrator.yaml` 并提示用户(一次性)。
18
18
  - **变更级状态**:各 change 的状态文件**当前仍为** `<change>/.team-flow.yaml`,检测逻辑不动;**计划 v1.0.0(P1-6 第二阶段)改名**为 `.team-flow.yaml`(对齐设计增强方案 v0.8 §18.3)。改名落地前,编排层与变更层一律以 `.team-flow.yaml` 为准。
19
+ - **项目级架构状态(v0.35.0 新增)**:`.team-flow/arch-state.json`(架构阶段是产品/迭代级,不放 change 状态)。见下文「architecture 阶段」与「arch_baseline 豁免键」。
19
20
 
20
21
  ## registry.yaml Schema
21
22
 
@@ -42,6 +43,8 @@ phases: # 各阶段状态
42
43
  - { id: S1, status: completed, started_at: "...", completed_at: "...", artifacts: [...] }
43
44
  - { id: S2, status: active, started_at: "...", artifacts: [...] }
44
45
  - { id: S3, status: pending }
46
+ - { id: ARCH, name: 产品级架构设计, status: pending, skip: <迭代无结构性变更|null>, artifacts: [docs/architecture/iterations/vN/architecture.md] }
47
+ - { id: S4, status: pending }
45
48
  custom_phases: [] # reserved
46
49
  replan_log: # 重规划履历
47
50
  - { seq: 1, trigger: "用户要求跳过原型", before: "S2→S3", after: "S2(skip-proto)→S3", approved_by: user }
@@ -71,6 +74,55 @@ prd_version: v1 # PRD 版本
71
74
  - **阻塞**:active → blocked → active(S5 检测到 change 卡死)或 blocked → aborted
72
75
  - **终止**:任何非 completed 状态 → aborted(用户放弃编排)
73
76
 
77
+ ## architecture 阶段(S3.5,v0.35.0 新增)
78
+
79
+ > 产品级架构设计阶段,位于 S3 计划之后、S4 拆分之前。设计依据:设计增强方案 v0.14 §59。
80
+
81
+ **phase id**:`ARCH`;顶层 `workflow_phase: architecture`(语义 kebab-case)。
82
+ **命名约定**:新阶段一律用 kebab-case 语义名(历史值保留不迁移,避免无价值 churn)。
83
+
84
+ ```yaml
85
+ phases:
86
+ - { id: S3, status: completed }
87
+ - { id: ARCH, name: 产品级架构设计, workflow_phase: architecture,
88
+ status: completed, skip: null,
89
+ artifacts: [docs/architecture/iterations/vN/architecture.md] }
90
+ - { id: S4, status: pending }
91
+ ```
92
+
93
+ **场景判定(入口三态)**:
94
+ | 场景 | 判定输入 | S3.5 模式 |
95
+ |------|---------|----------|
96
+ | S0 全新项目 | 无代码库 | 正向设计(首轮不可跳过) |
97
+ | S1 存量代码+无基线 | 有 src/,无 baseline.md | 先 workflow-bootstrap → 逆向重建 |
98
+ | S2 存量+瘦锚点 | baseline.md + ARCHITECTURE 无 BC/聚合层 | 逆向重建(深化) |
99
+ | S3 存量+跑过迭代 | baseline + changes/ + prd/vN/,无 arch_baseline | 逆向重建(首轮强制) |
100
+ | S4 已有产品级架构 | arch_baseline 已打戳 + iterations/ | 正向设计(正轨) |
101
+
102
+ **skip 条件(须物化)**:迭代无结构性变更(纯 bugfix/重构/不新增 BC 或聚合/不改变聚合边界或全局契约)。判定者 = **编排器 + 用户确认**(非 LLM 自判,防 v0.13 §54 绕过教训)。**skip 必须物化**:写入 `docs/architecture/iterations/vN/` 占位(含 skipped 标记 + 理由),guard 才放行——否则 hotfix/快速通道 change 会卡在 arch-readiness 上(v0.32.2 C1 死锁链同类)。
103
+
104
+ **时间盒 + 深度分层**:时间盒 ≤1 天;非触及 BC 只维护锚点行,触及 BC 才做按域深化(v0.14 §60.4)。
105
+
106
+ **输入输出契约**:
107
+ - 输入:prd/vN/prd.md(frozen_downstream)+ plan.md + prototype/ + baseline.md + CONCEPTS.md + 现有全局基线(旧项目)
108
+ - 输出:`docs/architecture/iterations/vN/architecture.md`(6 产物权威快照,预测态,provenance 标注)+ 产品级评审 verdict;**不触发全局覆盖写**(P1:预测态不进实际态)
109
+
110
+ **门禁**(v0.14 §59.4):
111
+ | 门禁 | 挂点 | 校验 | 豁免 |
112
+ |------|------|------|------|
113
+ | 产品级评审门 | ARCH→S4 | architecture-reviewer product 视角 PASS | skip 时仍要物化标记 |
114
+ | arch-readiness | S4 拆分 | iterations/vN/ 快照覆盖 change 触及的 BC | arch_baseline 缺失 → WARN 不 FAIL |
115
+ | arch-snapshot | executing→closing | 本轮快照已落盘 | 在途 change legacy 豁免 |
116
+
117
+ ## arch_baseline 豁免键(v0.35.0 新增)
118
+
119
+ 完全复刻 v0.13 §48.1 schema_version 防污染模式(设计增强方案 v0.14 §59.4/§63.1):
120
+
121
+ - **位置**:`.team-flow/arch-state.json`(项目级状态;架构阶段是产品/迭代级,不放 change 的 `.team-flow.yaml`)
122
+ - **内容**:`{ arch_baseline: "v0", established_at: "<date>", mode: "reconstruction" | "design", snapshot_root: "iterations/", baseline_prd_ref: "prd/vN/" }`
123
+ - **防污染**:仅 `tf arch init` 写入;`tf state set`/rebuild/doctor 一律不得追加(缺失 = 存量信号)
124
+ - **判定**:`arch_baseline == null` → arch-readiness/arch-snapshot 均 PASS + WARN(reason: 'project architecture baseline not established — S3.5 reconstruction pending')
125
+
74
126
  ## 双层冻结语义(解决 §17.3 与 §17.9.1 矛盾)
75
127
 
76
128
  - **`frozen_downstream`**(S2 完成时设置):下游阶段(S3/S4/S5)不可直接修改 PRD,只能通过回退到 S2 修改。**S3→S2 回退 = 临时解除 frozen_downstream**,S2 重新完成后恢复。