agentic-flow-kit 0.9.1 → 1.0.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.
- package/README.md +93 -93
- package/modules/hosts/claude/commands/wf-build.md +3 -3
- package/modules/hosts/claude/commands/wf-design.md +3 -3
- package/modules/hosts/claude/commands/wf-new-task.md +14 -2
- package/modules/hosts/claude/commands/wf-pipeline-run.md +35 -0
- package/modules/hosts/claude/commands/wf-plan.md +3 -3
- package/modules/hosts/claude/commands/wf-sync-hosts.md +1 -1
- package/modules/hosts/claude/commands/wf-test.md +1 -1
- package/modules/hosts/codex/commands/wf-build.md +3 -3
- package/modules/hosts/codex/commands/wf-design.md +3 -3
- package/modules/hosts/codex/commands/wf-new-task.md +14 -2
- package/modules/hosts/codex/commands/wf-pipeline-run.md +35 -0
- package/modules/hosts/codex/commands/wf-plan.md +3 -3
- package/modules/hosts/codex/commands/wf-sync-hosts.md +1 -1
- package/modules/hosts/codex/commands/wf-test.md +1 -1
- package/modules/hosts/cursor/commands/wf-build.md +3 -3
- package/modules/hosts/cursor/commands/wf-design.md +3 -3
- package/modules/hosts/cursor/commands/wf-new-task.md +14 -2
- package/modules/hosts/cursor/commands/wf-pipeline-run.md +35 -0
- package/modules/hosts/cursor/commands/wf-plan.md +3 -3
- package/modules/hosts/cursor/commands/wf-sync-hosts.md +1 -1
- package/modules/hosts/cursor/commands/wf-test.md +1 -1
- package/modules/hosts/opencode/commands/wf-build.md +3 -3
- package/modules/hosts/opencode/commands/wf-design.md +3 -3
- package/modules/hosts/opencode/commands/wf-new-task.md +14 -2
- package/modules/hosts/opencode/commands/wf-pipeline-run.md +35 -0
- package/modules/hosts/opencode/commands/wf-plan.md +3 -3
- package/modules/hosts/opencode/commands/wf-sync-hosts.md +1 -1
- package/modules/hosts/opencode/commands/wf-test.md +1 -1
- package/modules/hosts/trae/commands/wf-build.md +3 -3
- package/modules/hosts/trae/commands/wf-design.md +3 -3
- package/modules/hosts/trae/commands/wf-new-task.md +14 -2
- package/modules/hosts/trae/commands/wf-pipeline-run.md +36 -0
- package/modules/hosts/trae/commands/wf-plan.md +3 -3
- package/modules/hosts/trae/commands/wf-sync-hosts.md +1 -1
- package/modules/hosts/trae/commands/wf-test.md +1 -1
- package/modules/hosts/trae/rules/project-workflow.md +1 -1
- package/package.json +45 -45
- package/templates/_agents/commands/build.md +2 -2
- package/templates/_agents/commands/design.md +1 -1
- package/templates/_agents/commands/new-task.md +1 -0
- package/templates/_agents/commands/pipeline-run.md +43 -0
- package/templates/_agents/commands/plan.md +3 -3
- package/templates/_agents/commands/sync-hosts.md +1 -1
- package/templates/_agents/scripts/check-lane-surface.mjs +20 -7
- package/templates/_agents/scripts/check-lane-surface.test.mjs +24 -2
- package/templates/_agents/scripts/check-ledger-invariant.mjs +135 -0
- package/templates/_agents/scripts/check-ledger-invariant.test.mjs +161 -0
- package/templates/_agents/scripts/check-loop.mjs +70 -18
- package/templates/_agents/scripts/check-loop.test.mjs +155 -8
- package/templates/_agents/scripts/confirm-doc.mjs +19 -7
- package/templates/_agents/scripts/confirm-doc.test.mjs +31 -0
- package/templates/_agents/scripts/fill-intent.mjs +1 -1
- package/templates/_agents/scripts/fill-plan.test.mjs +4 -3
- package/templates/_agents/scripts/gate-checklist.mjs +1 -0
- package/templates/_agents/scripts/gen-workflow-metrics.mjs +75 -5
- package/templates/_agents/scripts/gen-workflow-metrics.test.mjs +104 -2
- package/templates/_agents/scripts/pipeline-run.mjs +999 -0
- package/templates/_agents/scripts/pipeline-run.test.mjs +537 -0
- package/templates/_agents/scripts/policy.mjs +1 -0
- package/templates/_agents/scripts/pre-push.test.mjs +8 -1
- package/templates/_agents/scripts/solidify-task.test.mjs +5 -2
- package/templates/_agents/scripts/stage-gates.mjs +29 -6
- package/templates/_agents/scripts/trust-mode.test.mjs +110 -0
- package/templates/_agents/scripts-test-exempt.txt +10 -0
- package/templates/_githooks/pre-commit +12 -0
- package/templates/workflow/README.md +3 -2
- package/templates/workflow/plans/_TEMPLATE.md +1 -1
|
@@ -18,11 +18,23 @@ description: AI-Native 闭环总入口:6 阶段指令索引(Plan→Design→Buil
|
|
|
18
18
|
| **Maintain** | [.agents/commands/maintain.md](.agents/commands/maintain.md) | "线上出事了" / "记一笔 incident" | `implementer`(方案确认后) | 三件套要点确认 |
|
|
19
19
|
| **Review**(横切,不占 6 阶段) | [.agents/commands/review.md](.agents/commands/review.md) | "评审一下" / "过 review 标准" | `independent-reviewer`(L2/L3 必须独立复核) | 问题定性与合入时机确认 |
|
|
20
20
|
|
|
21
|
+
## 风险定级(第 0 步,先定级再路由)
|
|
22
|
+
|
|
23
|
+
动工前先按下表定风险级 L0-L3(就高不就低;判据细则见下节「级别判断」),级别即风险级,决定走哪条泳道——确认放事前,还是审计补事后:
|
|
24
|
+
|
|
25
|
+
| 泳道 | 级别 | 确认与审计口径 |
|
|
26
|
+
|------|------|---------------|
|
|
27
|
+
| **协作道**(敏捷优先,审计异步补) | L0 例行 / L1 实现级 | L0 直接 commit,豁免 intent;L1 快车道(intent 一句话确认 + 极简 plan)即动工。独立复核不设同步前置,check-loop 与事后 review 兜底;确认/代录可 `--batch` 批量(仅 L0/L1) |
|
|
28
|
+
| **防御道**(严谨优先,确认同步拦) | L2 规则/契约 / L3 数据与运行时结构 | 同步确认门:spec 确认通过方可起草 plan,plan 确认后方可动手;L3 加新会话独立复核,未确认不放行 |
|
|
29
|
+
|
|
30
|
+
> 定级结果落 intent frontmatter `risk_level`(=级别,`fill-intent.mjs` 自动写入,机器选道用);协作道勾触达红线会被 check-loop 判「红线判低」hard 拦(就高升级 L2/L3 并补同名 spec)。
|
|
31
|
+
|
|
21
32
|
## 路由判断
|
|
22
33
|
|
|
34
|
+
- **自动化驱动(并列入口,可选)**:一句话全程走 [pipeline-run.md](pipeline-run.md)——状态机驱动+工单协议+原话代录,与下述手动路由二选一,同一任务不混用
|
|
23
35
|
- **新需求 / 功能**:从 `plan.md` 进,立 **intent**(`workflow/intents/`)
|
|
24
36
|
- **修复类任务 / 事故**:从 `maintain.md` 进,立 **incident**(`workflow/incidents/`);incident 在 L1+ 即 **intent 等价物**(check-loop 认 incident≡intent),不必另立 intent。先检索同类历史(`node .agents/scripts/kb-search.mjs "<关键词>" --scope workflow --type incidents,plans`),有同类先读其历史三件套;再按级别走:
|
|
25
|
-
|
|
37
|
+
- L0 → 直接修复;L1 → 立 incident 后进 `build.md` 起草并确认同名 Quick-Plan → `test.md`
|
|
26
38
|
- L2/L3 → 立 incident 后进 `design.md` 起草并确认同名 spec,再进 `build.md` 起草并确认同名 plan → `test.md`
|
|
27
39
|
- 仅当根因属系统性 / 门禁缺位(maintain.md 三件套「是否需要新 intent」选"是")才另立 `workflow/intents/` 同名 intent
|
|
28
40
|
- **改完代码要验证**:直接进 `test.md`(验证通过即关单;L1 到此结束)
|
|
@@ -34,7 +46,7 @@ description: AI-Native 闭环总入口:6 阶段指令索引(Plan→Design→Buil
|
|
|
34
46
|
| 级别 | 改什么 | 流程 |
|
|
35
47
|
|------|--------|------|
|
|
36
48
|
| L0 | 文档/样式微调(无行为影响) | 直接 commit,豁免 intent |
|
|
37
|
-
| L1 | **实现级改动**(未命中 L2/L3) |
|
|
49
|
+
| L1 | **实现级改动**(未命中 L2/L3) | 快车道:液态草稿(.zcode/drafts) $\rightarrow$ 实现 $\rightarrow$ 固化(`solidify-task.mjs`)——用户确认后带 `--delegated "<原话>"` 执行;无确认来源只迁移不落账 |
|
|
38
50
|
| L2 | **规则 / 契约**(一处改、多处依赖) | 入口文档(intent / incident) + spec + plan 三件套 |
|
|
39
51
|
| L3 | **数据与运行时结构**(schema / 迁移 SQL / DI 链 / 认证与中间件管线) | 同 L2 + spec 新会话独立复核 |
|
|
40
52
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: pipeline-run 自动化驱动入口——单命令驱动六阶段闭环(工单协议+机器门+原话代录)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# pipeline-run · 全自动闭环执行器入口
|
|
6
|
+
|
|
7
|
+
> 确定性部分由 `pipeline-run.mjs` 状态机驱动(机器门序列:fill-* → confirm-doc → verify.mjs → git,退出码全记录);
|
|
8
|
+
> AI 槽位经工单协议交宿主执行;人件门到点即停、原话代录。宿主只按本协议驱动,不自行改状态。
|
|
9
|
+
|
|
10
|
+
## 驱动协议(宿主 AI 逐条执行)
|
|
11
|
+
|
|
12
|
+
1. **启动**:`node .agents/scripts/pipeline-run.mjs start "<需求原文>"`(可预判则加 `--hint "kind=… level=… module=…"`)。
|
|
13
|
+
2. **循环读停机点**:每次命令的 stdout 末行是机器标记 `PIPELINE-STOP <type> …`,按 type 分流:
|
|
14
|
+
- `work-order <runId> <工单id>`——读工单全文(目标/步骤/约束/验收),**按单干活**:
|
|
15
|
+
- triage:判级回填 `next --triage "kind=… level=… module=… topic=<英文kebab>"`(就高不就低)
|
|
16
|
+
- draft:起草指定文档;implement/fix:按授权文件实现(**偏离即停**——公共接口/计划外文件/新依赖→停机向用户上报,不自行放行);review/closeout:按单产出并写入指定位
|
|
17
|
+
- 干完回跑 `next`(implement/fix 须 `--files "a,b"` 回填改动清单;review-only 汇报后 `--done` 收尾)
|
|
18
|
+
- `await-confirm <runId> <doc>`——**人件门**:向用户转述「要点」索确认;用户明确放行后
|
|
19
|
+
`next --delegated "<用户原话>"`(逐字原话,**永不编造、永不复用旧句**;一次一份)
|
|
20
|
+
- `gate-fail <runId> <stage>`——读 problems 原因,修复后原路重跑(不绕门、不加 `--no-verify`)
|
|
21
|
+
- `done <runId>`——向用户汇报总结(阶段条/门数/提交链),流程结束
|
|
22
|
+
- `aborted <runId>`——已显式放弃,汇报放弃态与留档位置
|
|
23
|
+
3. **放弃**:用户明确不做时 `abort --run <id> --to superseded|cancelled --delegated "<原话>"`(approved 文档逐份走 confirm-doc --to)。
|
|
24
|
+
4. **观测**(可选):`status [--run <id>] [--json]` 全量事件流水;`watch` 终端轮询视图。
|
|
25
|
+
|
|
26
|
+
## 硬纪律(违反即协议破坏)
|
|
27
|
+
|
|
28
|
+
- 状态迁移唯一入口是脚本内部的 confirm-doc 调用——宿主**永不直改** workflow 文档 frontmatter 状态。
|
|
29
|
+
- `--delegated` 的原话必须是用户当次对话原话(台账 `confirmations.jsonl` 留痕可对质)。
|
|
30
|
+
- 修复环超限(3 次)时停机交人工,不带病推进;verify 非绿不关单。
|
|
31
|
+
- run 文件(.agents/cache/pipeline-runs/)是脚本亲写的机器事实——宿主只读不写。
|
|
32
|
+
|
|
33
|
+
## 与 new-task 的关系
|
|
34
|
+
|
|
35
|
+
本命令是**自动化驱动的并列入口**(单命令走全程);new-task.md 是手动阶段路由入口。同一套门禁与确认语义,二者只选其一驱动一个任务,不混用。
|
|
@@ -13,11 +13,11 @@ description: Plan 阶段:立 intent(需求来源 / 目标 / 约束 / 触达红
|
|
|
13
13
|
1. 若 `workflow/intents/` 已有目标 intent 且状态为 approved → 按级别跳 next(L1 → `build.md`,L2/L3 → `design.md`)
|
|
14
14
|
2. 否则起草新 intent:
|
|
15
15
|
- **先检索同类**:`node .agents/scripts/kb-search.mjs "<关键词>" --scope workflow --type intents,specs`——命中同类先读其结论与验收,新 intent 引用(防重复立项 / 重复踩坑)
|
|
16
|
-
- **填空工具先跑**:`node .agents/scripts/fill-intent.mjs --module <模块> --level <L0|L1|L2|L3> --topic <主题> --output workflow/intents/<date>-<主题>.md --notes "<备注>"`——输出含 frontmatter 6 字段(含 risk_level)+
|
|
16
|
+
- **填空工具先跑**:`node .agents/scripts/fill-intent.mjs --module <模块> --level <L0|L1|L2|L3> --topic <主题> --output workflow/intents/<date>-<主题>.md --notes "<备注>"`——输出含 frontmatter 6 字段(含 risk_level)+ 9 节(背景与问题/历史教训防复发/目标/非目标/约束/影响面/触达红线/验收标准 8 节正文 + 确认与复核)的草稿;AI 据此填实,模板与节标题机器保证不出错
|
|
17
17
|
- 复制 `workflow/intents/_TEMPLATE.md` → `workflow/intents/YYYY-MM-DD-<主题>.md`
|
|
18
18
|
- frontmatter 填 `模块:`(词表见 `.agents/workflow-modules.txt`,新建文档必填,check-loop 会警告)
|
|
19
|
-
- 按
|
|
20
|
-
- 红线勾选对照根 `AGENTS.md
|
|
19
|
+
- 按 8 节填写:背景与问题 / 历史教训防复发 / 目标(可验证) / 非目标 / 约束 / 影响面 / 触达红线 / 验收标准(L1 微改动可省非目标/约束两节,不硬填)
|
|
20
|
+
- 红线勾选对照根 `AGENTS.md` 红线/约束相关节(如「项目适配区」「门禁与提交」)+ 改动域目录级 `AGENTS.md`(如有);**没触及就全不勾**,不要硬填
|
|
21
21
|
3. 写不出可测试判据 = 还没想清楚 → 反问澄清,不要硬填
|
|
22
22
|
4. 起草后停下,输出草稿全文给用户过目,一句"可以"即确认
|
|
23
23
|
|
|
@@ -9,7 +9,7 @@ description: 跨宿主适配层同步(正文段 sha 比对 + 用户拍板 +
|
|
|
9
9
|
|
|
10
10
|
## 何时跑
|
|
11
11
|
|
|
12
|
-
- 改 `templates/_agents/commands/*.md` 正文后(
|
|
12
|
+
- 改 `templates/_agents/commands/*.md` 正文后(11 个 commands 文件)
|
|
13
13
|
- 改 `templates/_agents/roles/*.md` 正文后(3 个 roles 文件)
|
|
14
14
|
- 装户跑 `flow-kit doctor` 报"跨宿主薄适配正文漂移 N 对" WARN 时
|
|
15
15
|
- 不跑:仅改 frontmatter;改 trae 钩子/规则;改包源其他文件
|
|
@@ -55,7 +55,7 @@ node bin/flow-kit.mjs doctor # §6.5 delegations + §6.6 o
|
|
|
55
55
|
- 失败项已修复并复测通过
|
|
56
56
|
- **关单**(日常闭环点,不依赖是否上 prod):
|
|
57
57
|
- 关单前一键过门:`node .agents/scripts/verify.mjs`(npm test + check-loop 固定编排,任一失败非零退出,非绿不关单)
|
|
58
|
-
- 新需求:逐条勾验入口 intent
|
|
58
|
+
- 新需求:逐条勾验入口 intent「验收标准」,每条补「证据:」(例如:粘贴 CI 运行结果、UI 截图路径、或具体的 commit SHA),intent $\rightarrow$ done;同名 spec/Quick-Plan(若有)仍 approved $\rightarrow$ done。**注意:勾选但缺证据会被 check-loop 拦截(hard-block)**
|
|
59
59
|
- **approved 留痕提交**(2026-09-30 起):done 确认前确认**本次关单文档**的 approved 态已进 git 历史(越早越好——approved 后即应提交;若尚未,先补提交再 done;门为逐份校验,三件套均关单时逐份各自满足)——confirm-doc 的 done 前置门硬校验(历史未出现「状态: approved」→ 拒绝落账);done 后再提交 done 态与其余改动
|
|
60
60
|
**确认落态唯一入口**(2026-09-27 起):用户在终端跑 `node .agents/scripts/confirm-doc.mjs <path>` 键入「可以」(draft→approved / approved→done;对话内明确确认后 AI 可 `--delegated "<原话>"` 代录,台账如实记 source/quote——**逐件调用 + 逐件原话**(一次一份,build.md「逐件确认」口径;多份并录被 confirm-doc 拒绝。--delegated 每次传当次实际放行的措辞,不复用同句——复用同句使台账 quote 失去分辨力))。check-loop 15 如实口径:缺记录/指纹不配对 → hard-block 拦截;伪造台账本地不可机器防,留痕供事后对质;done 内容绑定(2026-09-28 起)——**关单编辑(勾验/回填确认结果)先于 done 确认、confirm-doc 是最后一次写入**,此后修订走 superseded 或新 intent。
|
|
61
61
|
- 修复:防复发验证已落地,incident → closed(经确认门 confirm-doc:open→fixed / fixed→closed 两跳、无单跳;2026-09-28 起 check-loop 15 对账——关单编辑先于 closed 确认,口径同 done 内容绑定)
|
|
@@ -13,8 +13,8 @@ description: Build 阶段 · 起 plan + 实现代码 + 自验(两道确认门
|
|
|
13
13
|
1. 确认同名入口文档(approved intent 或已确认的 incident)+ spec(若 L2/L3)均已确认;否则回上一阶段(fill/confirm 未过即拒)
|
|
14
14
|
2. 起草 plan:
|
|
15
15
|
- 复制 `workflow/plans/_TEMPLATE.md` → `workflow/plans/YYYY-MM-DD-<主题>.md`(与入口文档同名)
|
|
16
|
-
- L2/L3 按 4
|
|
17
|
-
- L1
|
|
16
|
+
- L2/L3 按 4 节填写:改动方案 / 任务拆解(每个任务有判据) / 执行顺序 / 验证计划(与 fill-plan.mjs 单源一致)
|
|
17
|
+
- L1 使用 Quick-Plan 极简三节:改动方案 / 约束与风险(原 Spec 核心) / 验证计划;多文件多步骤时可补任务拆解/执行顺序
|
|
18
18
|
3. 停下,输出 plan 草稿全文给用户过目,一句"可以"即确认。**逐件确认**:入口文档 / spec / plan 各自的确认点不得并作一次,plan 草稿须全文过目(不接受摘要代替)。**逐件配逐件原话**:`--delegated` 每次传当次实际放行的措辞,不复用同句——复用同句使台账 quote 失去分辨力(事后对质看不出放行的是哪一件);原因与根治见 workflow/papercuts.md 2026-09-28
|
|
19
19
|
**确认落态唯一入口**(2026-09-27 起):用户在终端跑 `node .agents/scripts/confirm-doc.mjs <path>` 键入「可以」(draft→approved / approved→done;对话内明确确认后 AI 可 `--delegated "<原话>"` 代录,台账如实记 source/quote——**逐件调用 + 逐件原话**(一次一份,build.md「逐件确认」口径;多份并录被 confirm-doc 拒绝。--delegated 每次传当次实际放行的措辞,不复用同句——复用同句使台账 quote 失去分辨力))。check-loop 15 如实口径:缺记录/指纹不配对 → hard-block 拦截;伪造台账本地不可机器防,留痕供事后对质;done 内容绑定(2026-09-28 起)——关单编辑(勾验/回填)先于 done 确认、confirm-doc 是最后一次写入,此后修订走 superseded 或新 intent。
|
|
20
20
|
4. 确认后 → plan 状态 draft → approved,并在 plan 内补「确认与复核」节(确认结果 + 日期)。确认环节须在文档留痕:`approved` 是确认的机器可见态,`done` 只在关单出现,禁从 `draft` 直跳 `done`;确认后立即 `docs(workflow)` 单独提交留痕(根 `AGENTS.md` 提交约定;check-loop 检查 14 口径)
|
|
@@ -26,7 +26,7 @@ description: Build 阶段 · 起 plan + 实现代码 + 自验(两道确认门
|
|
|
26
26
|
- 列改动文件清单(读后改 vs 新建)
|
|
27
27
|
- 列步骤(改 X 文件做 Y → 改 Z 文件做 W)
|
|
28
28
|
- **owned 文件同步**:kit.owned 列表文件(AGENTS.md / workflow 模板等)sync 不动,须列「手动同步装副本」步骤(见 incidents/2026-09-25-wf-runtime 复盘)
|
|
29
|
-
- 标注触达红线(对照根 `AGENTS.md
|
|
29
|
+
- 标注触达红线(对照根 `AGENTS.md` 红线/约束相关节(如「项目适配区」「门禁与提交」)+ 改动域目录级 `AGENTS.md`(如有))
|
|
30
30
|
6. 停下,等用户确认改动清单
|
|
31
31
|
|
|
32
32
|
### 实现
|
|
@@ -4,20 +4,20 @@ description: Design 阶段 · 起 spec(L2/L3 强制,L1 可省略直接进 bu
|
|
|
4
4
|
|
|
5
5
|
# Design · 起 spec
|
|
6
6
|
|
|
7
|
-
> L2/L3 强制;L1
|
|
7
|
+
> L2/L3 强制;L1 走快车道(直接跳 `next: build.md` 起草 Quick-Plan)。
|
|
8
8
|
|
|
9
9
|
## 执行
|
|
10
10
|
|
|
11
11
|
1. 确认同名入口文档已批准:新需求为 approved intent,修复为已确认的 incident 草稿;否则拒绝,分别回 `plan.md` / `maintain.md`(2026-09-30 起机器强制:fill-spec / confirm-doc 对前置未过直接拒绝 exit 2、不落盘不记账)
|
|
12
12
|
2. 级别判断(对照 AGENTS.md 第 3 条):
|
|
13
|
-
- **L1**(实现级改动,未命中 L2/L3)→
|
|
13
|
+
- **L1**(实现级改动,未命中 L2/L3)→ 走快车道,省略 spec,直接跳 `next: build.md` 起草 Quick-Plan
|
|
14
14
|
- **L2**(改规则 / 契约:编码权威 / 共享契约 / 既有接口语义 / 全局横切口径,闭集见 `new-task.md` §级别判断)→ 必须有 spec
|
|
15
15
|
- **L3**(数据与运行时结构:schema / 迁移 SQL / DI 链 / 认证与中间件管线)→ 必须有 spec + **新会话独立复核**
|
|
16
16
|
3. 起草 spec:
|
|
17
17
|
- **填空工具先跑**:`node .agents/scripts/fill-spec.mjs --level <L1|L2|L3> --topic <主题> --output workflow/specs/<date>-<主题>.md`——输出含 frontmatter 5 字段 + 5 节正文(功能行为/数据流/系统改动/约束遵守映射/风险评估)的草稿;AI 据此填实
|
|
18
18
|
- 复制 `workflow/specs/_TEMPLATE.md` → `workflow/specs/YYYY-MM-DD-<主题>.md`(与入口文档同名)
|
|
19
19
|
- 按 5 节填写:功能行为 / 数据流 / 系统改动 / 约束遵守映射 / 风险评估
|
|
20
|
-
- 约束映射必须对照根 `AGENTS.md
|
|
20
|
+
- 约束映射必须对照根 `AGENTS.md` 红线/约束相关节(如「项目适配区」「门禁与提交」)与改动域目录级 `AGENTS.md`(如有)逐条说明如何满足
|
|
21
21
|
- 存在多个可行方案时,在 spec 中列出各方案取舍与 AI 建议项,由用户选定后方可确认
|
|
22
22
|
- **页面/交互入口形态必须用户确认**:spec 须写明入口是「表单(字段清单)」还是「选择器/弹窗」,禁止自行推定交互形态
|
|
23
23
|
4. 起草后停下,输出草稿全文给用户过目
|
|
@@ -18,11 +18,23 @@ description: AI-Native 闭环总入口 · 6 阶段路由(新需求 → plan /
|
|
|
18
18
|
| **Maintain** | [.agents/commands/maintain.md](.agents/commands/maintain.md) | "线上出事了" / "记一笔 incident" | `implementer`(方案确认后) | 三件套要点确认 |
|
|
19
19
|
| **Review**(横切,不占 6 阶段) | [.agents/commands/review.md](.agents/commands/review.md) | "评审一下" / "过 review 标准" | `independent-reviewer`(L2/L3 必须独立复核) | 问题定性与合入时机确认 |
|
|
20
20
|
|
|
21
|
+
## 风险定级(第 0 步,先定级再路由)
|
|
22
|
+
|
|
23
|
+
动工前先按下表定风险级 L0-L3(就高不就低;判据细则见下节「级别判断」),级别即风险级,决定走哪条泳道——确认放事前,还是审计补事后:
|
|
24
|
+
|
|
25
|
+
| 泳道 | 级别 | 确认与审计口径 |
|
|
26
|
+
|------|------|---------------|
|
|
27
|
+
| **协作道**(敏捷优先,审计异步补) | L0 例行 / L1 实现级 | L0 直接 commit,豁免 intent;L1 快车道(intent 一句话确认 + 极简 plan)即动工。独立复核不设同步前置,check-loop 与事后 review 兜底;确认/代录可 `--batch` 批量(仅 L0/L1) |
|
|
28
|
+
| **防御道**(严谨优先,确认同步拦) | L2 规则/契约 / L3 数据与运行时结构 | 同步确认门:spec 确认通过方可起草 plan,plan 确认后方可动手;L3 加新会话独立复核,未确认不放行 |
|
|
29
|
+
|
|
30
|
+
> 定级结果落 intent frontmatter `risk_level`(=级别,`fill-intent.mjs` 自动写入,机器选道用);协作道勾触达红线会被 check-loop 判「红线判低」hard 拦(就高升级 L2/L3 并补同名 spec)。
|
|
31
|
+
|
|
21
32
|
## 路由判断
|
|
22
33
|
|
|
34
|
+
- **自动化驱动(并列入口,可选)**:一句话全程走 [pipeline-run.md](pipeline-run.md)——状态机驱动+工单协议+原话代录,与下述手动路由二选一,同一任务不混用
|
|
23
35
|
- **新需求 / 功能**:从 `plan.md` 进,立 **intent**(`workflow/intents/`)
|
|
24
36
|
- **修复类任务 / 事故**:从 `maintain.md` 进,立 **incident**(`workflow/incidents/`);incident 在 L1+ 即 **intent 等价物**(check-loop 认 incident≡intent),不必另立 intent。先检索同类历史(`node .agents/scripts/kb-search.mjs "<关键词>" --scope workflow --type incidents,plans`),有同类先读其历史三件套;再按级别走:
|
|
25
|
-
|
|
37
|
+
- L0 → 直接修复;L1 → 立 incident 后进 `build.md` 起草并确认同名 Quick-Plan → `test.md`
|
|
26
38
|
- L2/L3 → 立 incident 后进 `design.md` 起草并确认同名 spec,再进 `build.md` 起草并确认同名 plan → `test.md`
|
|
27
39
|
- 仅当根因属系统性 / 门禁缺位(maintain.md 三件套「是否需要新 intent」选"是")才另立 `workflow/intents/` 同名 intent
|
|
28
40
|
- **改完代码要验证**:直接进 `test.md`(验证通过即关单;L1 到此结束)
|
|
@@ -34,7 +46,7 @@ description: AI-Native 闭环总入口 · 6 阶段路由(新需求 → plan /
|
|
|
34
46
|
| 级别 | 改什么 | 流程 |
|
|
35
47
|
|------|--------|------|
|
|
36
48
|
| L0 | 文档/样式微调(无行为影响) | 直接 commit,豁免 intent |
|
|
37
|
-
| L1 | **实现级改动**(未命中 L2/L3) |
|
|
49
|
+
| L1 | **实现级改动**(未命中 L2/L3) | 快车道:液态草稿(.zcode/drafts) $\rightarrow$ 实现 $\rightarrow$ 固化(`solidify-task.mjs`)——用户确认后带 `--delegated "<原话>"` 执行;无确认来源只迁移不落账 |
|
|
38
50
|
| L2 | **规则 / 契约**(一处改、多处依赖) | 入口文档(intent / incident) + spec + plan 三件套 |
|
|
39
51
|
| L3 | **数据与运行时结构**(schema / 迁移 SQL / DI 链 / 认证与中间件管线) | 同 L2 + spec 新会话独立复核 |
|
|
40
52
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: pipeline-run 自动化驱动入口——单命令驱动六阶段闭环(工单协议+机器门+原话代录)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# pipeline-run · 全自动闭环执行器入口
|
|
6
|
+
|
|
7
|
+
> 确定性部分由 `pipeline-run.mjs` 状态机驱动(机器门序列:fill-* → confirm-doc → verify.mjs → git,退出码全记录);
|
|
8
|
+
> AI 槽位经工单协议交宿主执行;人件门到点即停、原话代录。宿主只按本协议驱动,不自行改状态。
|
|
9
|
+
|
|
10
|
+
## 驱动协议(宿主 AI 逐条执行)
|
|
11
|
+
|
|
12
|
+
1. **启动**:`node .agents/scripts/pipeline-run.mjs start "<需求原文>"`(可预判则加 `--hint "kind=… level=… module=…"`)。
|
|
13
|
+
2. **循环读停机点**:每次命令的 stdout 末行是机器标记 `PIPELINE-STOP <type> …`,按 type 分流:
|
|
14
|
+
- `work-order <runId> <工单id>`——读工单全文(目标/步骤/约束/验收),**按单干活**:
|
|
15
|
+
- triage:判级回填 `next --triage "kind=… level=… module=… topic=<英文kebab>"`(就高不就低)
|
|
16
|
+
- draft:起草指定文档;implement/fix:按授权文件实现(**偏离即停**——公共接口/计划外文件/新依赖→停机向用户上报,不自行放行);review/closeout:按单产出并写入指定位
|
|
17
|
+
- 干完回跑 `next`(implement/fix 须 `--files "a,b"` 回填改动清单;review-only 汇报后 `--done` 收尾)
|
|
18
|
+
- `await-confirm <runId> <doc>`——**人件门**:向用户转述「要点」索确认;用户明确放行后
|
|
19
|
+
`next --delegated "<用户原话>"`(逐字原话,**永不编造、永不复用旧句**;一次一份)
|
|
20
|
+
- `gate-fail <runId> <stage>`——读 problems 原因,修复后原路重跑(不绕门、不加 `--no-verify`)
|
|
21
|
+
- `done <runId>`——向用户汇报总结(阶段条/门数/提交链),流程结束
|
|
22
|
+
- `aborted <runId>`——已显式放弃,汇报放弃态与留档位置
|
|
23
|
+
3. **放弃**:用户明确不做时 `abort --run <id> --to superseded|cancelled --delegated "<原话>"`(approved 文档逐份走 confirm-doc --to)。
|
|
24
|
+
4. **观测**(可选):`status [--run <id>] [--json]` 全量事件流水;`watch` 终端轮询视图。
|
|
25
|
+
|
|
26
|
+
## 硬纪律(违反即协议破坏)
|
|
27
|
+
|
|
28
|
+
- 状态迁移唯一入口是脚本内部的 confirm-doc 调用——宿主**永不直改** workflow 文档 frontmatter 状态。
|
|
29
|
+
- `--delegated` 的原话必须是用户当次对话原话(台账 `confirmations.jsonl` 留痕可对质)。
|
|
30
|
+
- 修复环超限(3 次)时停机交人工,不带病推进;verify 非绿不关单。
|
|
31
|
+
- run 文件(.agents/cache/pipeline-runs/)是脚本亲写的机器事实——宿主只读不写。
|
|
32
|
+
|
|
33
|
+
## 与 new-task 的关系
|
|
34
|
+
|
|
35
|
+
本命令是**自动化驱动的并列入口**(单命令走全程);new-task.md 是手动阶段路由入口。同一套门禁与确认语义,二者只选其一驱动一个任务,不混用。
|
|
@@ -13,11 +13,11 @@ description: Plan 阶段 · 立 intent(AI 起草、用户确认;本阶段不
|
|
|
13
13
|
1. 若 `workflow/intents/` 已有目标 intent 且状态为 approved → 按级别跳 next(L1 → `build.md`,L2/L3 → `design.md`)
|
|
14
14
|
2. 否则起草新 intent:
|
|
15
15
|
- **先检索同类**:`node .agents/scripts/kb-search.mjs "<关键词>" --scope workflow --type intents,specs`——命中同类先读其结论与验收,新 intent 引用(防重复立项 / 重复踩坑)
|
|
16
|
-
- **填空工具先跑**:`node .agents/scripts/fill-intent.mjs --module <模块> --level <L0|L1|L2|L3> --topic <主题> --output workflow/intents/<date>-<主题>.md --notes "<备注>"`——输出含 frontmatter 6 字段(含 risk_level)+
|
|
16
|
+
- **填空工具先跑**:`node .agents/scripts/fill-intent.mjs --module <模块> --level <L0|L1|L2|L3> --topic <主题> --output workflow/intents/<date>-<主题>.md --notes "<备注>"`——输出含 frontmatter 6 字段(含 risk_level)+ 9 节(背景与问题/历史教训防复发/目标/非目标/约束/影响面/触达红线/验收标准 8 节正文 + 确认与复核)的草稿;AI 据此填实,模板与节标题机器保证不出错
|
|
17
17
|
- 复制 `workflow/intents/_TEMPLATE.md` → `workflow/intents/YYYY-MM-DD-<主题>.md`
|
|
18
18
|
- frontmatter 填 `模块:`(词表见 `.agents/workflow-modules.txt`,新建文档必填,check-loop 会警告)
|
|
19
|
-
- 按
|
|
20
|
-
- 红线勾选对照根 `AGENTS.md
|
|
19
|
+
- 按 8 节填写:背景与问题 / 历史教训防复发 / 目标(可验证) / 非目标 / 约束 / 影响面 / 触达红线 / 验收标准(L1 微改动可省非目标/约束两节,不硬填)
|
|
20
|
+
- 红线勾选对照根 `AGENTS.md` 红线/约束相关节(如「项目适配区」「门禁与提交」)+ 改动域目录级 `AGENTS.md`(如有);**没触及就全不勾**,不要硬填
|
|
21
21
|
3. 写不出可测试判据 = 还没想清楚 → 反问澄清,不要硬填
|
|
22
22
|
4. 起草后停下,输出草稿全文给用户过目,一句"可以"即确认
|
|
23
23
|
|
|
@@ -9,7 +9,7 @@ description: 跨宿主适配层同步(正文段 sha 比对 + 用户拍板 +
|
|
|
9
9
|
|
|
10
10
|
## 何时跑
|
|
11
11
|
|
|
12
|
-
- 改 `templates/_agents/commands/*.md` 正文后(
|
|
12
|
+
- 改 `templates/_agents/commands/*.md` 正文后(11 个 commands 文件)
|
|
13
13
|
- 改 `templates/_agents/roles/*.md` 正文后(3 个 roles 文件)
|
|
14
14
|
- 装户跑 `flow-kit doctor` 报"跨宿主薄适配正文漂移 N 对" WARN 时
|
|
15
15
|
- 不跑:仅改 frontmatter;改 trae 钩子/规则;改包源其他文件
|
|
@@ -55,7 +55,7 @@ node bin/flow-kit.mjs doctor # §6.5 delegations + §6.6 o
|
|
|
55
55
|
- 失败项已修复并复测通过
|
|
56
56
|
- **关单**(日常闭环点,不依赖是否上 prod):
|
|
57
57
|
- 关单前一键过门:`node .agents/scripts/verify.mjs`(npm test + check-loop 固定编排,任一失败非零退出,非绿不关单)
|
|
58
|
-
- 新需求:逐条勾验入口 intent
|
|
58
|
+
- 新需求:逐条勾验入口 intent「验收标准」,每条补「证据:」(例如:粘贴 CI 运行结果、UI 截图路径、或具体的 commit SHA),intent $\rightarrow$ done;同名 spec/Quick-Plan(若有)仍 approved $\rightarrow$ done。**注意:勾选但缺证据会被 check-loop 拦截(hard-block)**
|
|
59
59
|
- **approved 留痕提交**(2026-09-30 起):done 确认前确认**本次关单文档**的 approved 态已进 git 历史(越早越好——approved 后即应提交;若尚未,先补提交再 done;门为逐份校验,三件套均关单时逐份各自满足)——confirm-doc 的 done 前置门硬校验(历史未出现「状态: approved」→ 拒绝落账);done 后再提交 done 态与其余改动
|
|
60
60
|
**确认落态唯一入口**(2026-09-27 起):用户在终端跑 `node .agents/scripts/confirm-doc.mjs <path>` 键入「可以」(draft→approved / approved→done;对话内明确确认后 AI 可 `--delegated "<原话>"` 代录,台账如实记 source/quote——**逐件调用 + 逐件原话**(一次一份,build.md「逐件确认」口径;多份并录被 confirm-doc 拒绝。--delegated 每次传当次实际放行的措辞,不复用同句——复用同句使台账 quote 失去分辨力))。check-loop 15 如实口径:缺记录/指纹不配对 → hard-block 拦截;伪造台账本地不可机器防,留痕供事后对质;done 内容绑定(2026-09-28 起)——**关单编辑(勾验/回填确认结果)先于 done 确认、confirm-doc 是最后一次写入**,此后修订走 superseded 或新 intent。
|
|
61
61
|
- 修复:防复发验证已落地,incident → closed(经确认门 confirm-doc:open→fixed / fixed→closed 两跳、无单跳;2026-09-28 起 check-loop 15 对账——关单编辑先于 closed 确认,口径同 done 内容绑定)
|
|
@@ -14,8 +14,8 @@ description: Build 阶段 · 起 plan + 实现代码 + 自验(两道确认门
|
|
|
14
14
|
1. 确认同名入口文档(approved intent 或已确认的 incident)+ spec(若 L2/L3)均已确认;否则回上一阶段(fill/confirm 未过即拒)
|
|
15
15
|
2. 起草 plan:
|
|
16
16
|
- 复制 `workflow/plans/_TEMPLATE.md` → `workflow/plans/YYYY-MM-DD-<主题>.md`(与入口文档同名)
|
|
17
|
-
- L2/L3 按 4
|
|
18
|
-
- L1
|
|
17
|
+
- L2/L3 按 4 节填写:改动方案 / 任务拆解(每个任务有判据) / 执行顺序 / 验证计划(与 fill-plan.mjs 单源一致)
|
|
18
|
+
- L1 使用 Quick-Plan 极简三节:改动方案 / 约束与风险(原 Spec 核心) / 验证计划;多文件多步骤时可补任务拆解/执行顺序
|
|
19
19
|
3. 停下,输出 plan 草稿全文给用户过目,一句"可以"即确认。**逐件确认**:入口文档 / spec / plan 各自的确认点不得并作一次,plan 草稿须全文过目(不接受摘要代替)。**逐件配逐件原话**:`--delegated` 每次传当次实际放行的措辞,不复用同句——复用同句使台账 quote 失去分辨力(事后对质看不出放行的是哪一件);原因与根治见 workflow/papercuts.md 2026-09-28
|
|
20
20
|
**确认落态唯一入口**(2026-09-27 起):用户在终端跑 `node .agents/scripts/confirm-doc.mjs <path>` 键入「可以」(draft→approved / approved→done;对话内明确确认后 AI 可 `--delegated "<原话>"` 代录,台账如实记 source/quote——**逐件调用 + 逐件原话**(一次一份,build.md「逐件确认」口径;多份并录被 confirm-doc 拒绝。--delegated 每次传当次实际放行的措辞,不复用同句——复用同句使台账 quote 失去分辨力))。check-loop 15 如实口径:缺记录/指纹不配对 → hard-block 拦截;伪造台账本地不可机器防,留痕供事后对质;done 内容绑定(2026-09-28 起)——关单编辑(勾验/回填)先于 done 确认、confirm-doc 是最后一次写入,此后修订走 superseded 或新 intent。
|
|
21
21
|
4. 确认后 → plan 状态 draft → approved,并在 plan 内补「确认与复核」节(确认结果 + 日期)。确认环节须在文档留痕:`approved` 是确认的机器可见态,`done` 只在关单出现,禁从 `draft` 直跳 `done`;确认后立即 `docs(workflow)` 单独提交留痕(根 `AGENTS.md` 提交约定;check-loop 检查 14 口径)
|
|
@@ -27,7 +27,7 @@ description: Build 阶段 · 起 plan + 实现代码 + 自验(两道确认门
|
|
|
27
27
|
- 列改动文件清单(读后改 vs 新建)
|
|
28
28
|
- 列步骤(改 X 文件做 Y → 改 Z 文件做 W)
|
|
29
29
|
- **owned 文件同步**:kit.owned 列表文件(AGENTS.md / workflow 模板等)sync 不动,须列「手动同步装副本」步骤(见 incidents/2026-09-25-wf-runtime 复盘)
|
|
30
|
-
- 标注触达红线(对照根 `AGENTS.md
|
|
30
|
+
- 标注触达红线(对照根 `AGENTS.md` 红线/约束相关节(如「项目适配区」「门禁与提交」)+ 改动域目录级 `AGENTS.md`(如有))
|
|
31
31
|
6. 停下,等用户确认改动清单
|
|
32
32
|
|
|
33
33
|
### 实现
|
|
@@ -5,20 +5,20 @@ description: Design 阶段 · 起 spec(L2/L3 强制,L1 可省略直接进 wf
|
|
|
5
5
|
|
|
6
6
|
# Design · 起 spec
|
|
7
7
|
|
|
8
|
-
> L2/L3 强制;L1
|
|
8
|
+
> L2/L3 强制;L1 走快车道(直接跳 `next: build.md` 起草 Quick-Plan)。
|
|
9
9
|
|
|
10
10
|
## 执行
|
|
11
11
|
|
|
12
12
|
1. 确认同名入口文档已批准:新需求为 approved intent,修复为已确认的 incident 草稿;否则拒绝,分别回 `plan.md` / `maintain.md`(2026-09-30 起机器强制:fill-spec / confirm-doc 对前置未过直接拒绝 exit 2、不落盘不记账)
|
|
13
13
|
2. 级别判断(对照 AGENTS.md 第 3 条):
|
|
14
|
-
- **L1**(实现级改动,未命中 L2/L3)→
|
|
14
|
+
- **L1**(实现级改动,未命中 L2/L3)→ 走快车道,省略 spec,直接跳 `next: build.md` 起草 Quick-Plan
|
|
15
15
|
- **L2**(改规则 / 契约:编码权威 / 共享契约 / 既有接口语义 / 全局横切口径,闭集见 `new-task.md` §级别判断)→ 必须有 spec
|
|
16
16
|
- **L3**(数据与运行时结构:schema / 迁移 SQL / DI 链 / 认证与中间件管线)→ 必须有 spec + **新会话独立复核**
|
|
17
17
|
3. 起草 spec:
|
|
18
18
|
- **填空工具先跑**:`node .agents/scripts/fill-spec.mjs --level <L1|L2|L3> --topic <主题> --output workflow/specs/<date>-<主题>.md`——输出含 frontmatter 5 字段 + 5 节正文(功能行为/数据流/系统改动/约束遵守映射/风险评估)的草稿;AI 据此填实
|
|
19
19
|
- 复制 `workflow/specs/_TEMPLATE.md` → `workflow/specs/YYYY-MM-DD-<主题>.md`(与入口文档同名)
|
|
20
20
|
- 按 5 节填写:功能行为 / 数据流 / 系统改动 / 约束遵守映射 / 风险评估
|
|
21
|
-
- 约束映射必须对照根 `AGENTS.md
|
|
21
|
+
- 约束映射必须对照根 `AGENTS.md` 红线/约束相关节(如「项目适配区」「门禁与提交」)与改动域目录级 `AGENTS.md`(如有)逐条说明如何满足
|
|
22
22
|
- 存在多个可行方案时,在 spec 中列出各方案取舍与 AI 建议项,由用户选定后方可确认
|
|
23
23
|
- **页面/交互入口形态必须用户确认**:spec 须写明入口是「表单(字段清单)」还是「选择器/弹窗」,禁止自行推定交互形态
|
|
24
24
|
4. 起草后停下,输出草稿全文给用户过目
|
|
@@ -19,11 +19,23 @@ description: 闭环总入口 · 路由判断(新需求 → wf-plan / 修复
|
|
|
19
19
|
| **Maintain** | [.agents/commands/maintain.md](.agents/commands/maintain.md) | "线上出事了" / "记一笔 incident" | `implementer`(方案确认后) | 三件套要点确认 |
|
|
20
20
|
| **Review**(横切,不占 6 阶段) | [.agents/commands/review.md](.agents/commands/review.md) | "评审一下" / "过 review 标准" | `independent-reviewer`(L2/L3 必须独立复核) | 问题定性与合入时机确认 |
|
|
21
21
|
|
|
22
|
+
## 风险定级(第 0 步,先定级再路由)
|
|
23
|
+
|
|
24
|
+
动工前先按下表定风险级 L0-L3(就高不就低;判据细则见下节「级别判断」),级别即风险级,决定走哪条泳道——确认放事前,还是审计补事后:
|
|
25
|
+
|
|
26
|
+
| 泳道 | 级别 | 确认与审计口径 |
|
|
27
|
+
|------|------|---------------|
|
|
28
|
+
| **协作道**(敏捷优先,审计异步补) | L0 例行 / L1 实现级 | L0 直接 commit,豁免 intent;L1 快车道(intent 一句话确认 + 极简 plan)即动工。独立复核不设同步前置,check-loop 与事后 review 兜底;确认/代录可 `--batch` 批量(仅 L0/L1) |
|
|
29
|
+
| **防御道**(严谨优先,确认同步拦) | L2 规则/契约 / L3 数据与运行时结构 | 同步确认门:spec 确认通过方可起草 plan,plan 确认后方可动手;L3 加新会话独立复核,未确认不放行 |
|
|
30
|
+
|
|
31
|
+
> 定级结果落 intent frontmatter `risk_level`(=级别,`fill-intent.mjs` 自动写入,机器选道用);协作道勾触达红线会被 check-loop 判「红线判低」hard 拦(就高升级 L2/L3 并补同名 spec)。
|
|
32
|
+
|
|
22
33
|
## 路由判断
|
|
23
34
|
|
|
35
|
+
- **自动化驱动(并列入口,可选)**:一句话全程走 [pipeline-run.md](pipeline-run.md)——状态机驱动+工单协议+原话代录,与下述手动路由二选一,同一任务不混用
|
|
24
36
|
- **新需求 / 功能**:从 `plan.md` 进,立 **intent**(`workflow/intents/`)
|
|
25
37
|
- **修复类任务 / 事故**:从 `maintain.md` 进,立 **incident**(`workflow/incidents/`);incident 在 L1+ 即 **intent 等价物**(check-loop 认 incident≡intent),不必另立 intent。先检索同类历史(`node .agents/scripts/kb-search.mjs "<关键词>" --scope workflow --type incidents,plans`),有同类先读其历史三件套;再按级别走:
|
|
26
|
-
|
|
38
|
+
- L0 → 直接修复;L1 → 立 incident 后进 `build.md` 起草并确认同名 Quick-Plan → `test.md`
|
|
27
39
|
- L2/L3 → 立 incident 后进 `design.md` 起草并确认同名 spec,再进 `build.md` 起草并确认同名 plan → `test.md`
|
|
28
40
|
- 仅当根因属系统性 / 门禁缺位(maintain.md 三件套「是否需要新 intent」选"是")才另立 `workflow/intents/` 同名 intent
|
|
29
41
|
- **改完代码要验证**:直接进 `test.md`(验证通过即关单;L1 到此结束)
|
|
@@ -35,7 +47,7 @@ description: 闭环总入口 · 路由判断(新需求 → wf-plan / 修复
|
|
|
35
47
|
| 级别 | 改什么 | 流程 |
|
|
36
48
|
|------|--------|------|
|
|
37
49
|
| L0 | 文档/样式微调(无行为影响) | 直接 commit,豁免 intent |
|
|
38
|
-
| L1 | **实现级改动**(未命中 L2/L3) |
|
|
50
|
+
| L1 | **实现级改动**(未命中 L2/L3) | 快车道:液态草稿(.zcode/drafts) $\rightarrow$ 实现 $\rightarrow$ 固化(`solidify-task.mjs`)——用户确认后带 `--delegated "<原话>"` 执行;无确认来源只迁移不落账 |
|
|
39
51
|
| L2 | **规则 / 契约**(一处改、多处依赖) | 入口文档(intent / incident) + spec + plan 三件套 |
|
|
40
52
|
| L3 | **数据与运行时结构**(schema / 迁移 SQL / DI 链 / 认证与中间件管线) | 同 L2 + spec 新会话独立复核 |
|
|
41
53
|
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wf-pipeline-run
|
|
3
|
+
description: pipeline-run 自动化驱动入口——单命令驱动六阶段闭环(工单协议+机器门+原话代录)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# pipeline-run · 全自动闭环执行器入口
|
|
7
|
+
|
|
8
|
+
> 确定性部分由 `pipeline-run.mjs` 状态机驱动(机器门序列:fill-* → confirm-doc → verify.mjs → git,退出码全记录);
|
|
9
|
+
> AI 槽位经工单协议交宿主执行;人件门到点即停、原话代录。宿主只按本协议驱动,不自行改状态。
|
|
10
|
+
|
|
11
|
+
## 驱动协议(宿主 AI 逐条执行)
|
|
12
|
+
|
|
13
|
+
1. **启动**:`node .agents/scripts/pipeline-run.mjs start "<需求原文>"`(可预判则加 `--hint "kind=… level=… module=…"`)。
|
|
14
|
+
2. **循环读停机点**:每次命令的 stdout 末行是机器标记 `PIPELINE-STOP <type> …`,按 type 分流:
|
|
15
|
+
- `work-order <runId> <工单id>`——读工单全文(目标/步骤/约束/验收),**按单干活**:
|
|
16
|
+
- triage:判级回填 `next --triage "kind=… level=… module=… topic=<英文kebab>"`(就高不就低)
|
|
17
|
+
- draft:起草指定文档;implement/fix:按授权文件实现(**偏离即停**——公共接口/计划外文件/新依赖→停机向用户上报,不自行放行);review/closeout:按单产出并写入指定位
|
|
18
|
+
- 干完回跑 `next`(implement/fix 须 `--files "a,b"` 回填改动清单;review-only 汇报后 `--done` 收尾)
|
|
19
|
+
- `await-confirm <runId> <doc>`——**人件门**:向用户转述「要点」索确认;用户明确放行后
|
|
20
|
+
`next --delegated "<用户原话>"`(逐字原话,**永不编造、永不复用旧句**;一次一份)
|
|
21
|
+
- `gate-fail <runId> <stage>`——读 problems 原因,修复后原路重跑(不绕门、不加 `--no-verify`)
|
|
22
|
+
- `done <runId>`——向用户汇报总结(阶段条/门数/提交链),流程结束
|
|
23
|
+
- `aborted <runId>`——已显式放弃,汇报放弃态与留档位置
|
|
24
|
+
3. **放弃**:用户明确不做时 `abort --run <id> --to superseded|cancelled --delegated "<原话>"`(approved 文档逐份走 confirm-doc --to)。
|
|
25
|
+
4. **观测**(可选):`status [--run <id>] [--json]` 全量事件流水;`watch` 终端轮询视图。
|
|
26
|
+
|
|
27
|
+
## 硬纪律(违反即协议破坏)
|
|
28
|
+
|
|
29
|
+
- 状态迁移唯一入口是脚本内部的 confirm-doc 调用——宿主**永不直改** workflow 文档 frontmatter 状态。
|
|
30
|
+
- `--delegated` 的原话必须是用户当次对话原话(台账 `confirmations.jsonl` 留痕可对质)。
|
|
31
|
+
- 修复环超限(3 次)时停机交人工,不带病推进;verify 非绿不关单。
|
|
32
|
+
- run 文件(.agents/cache/pipeline-runs/)是脚本亲写的机器事实——宿主只读不写。
|
|
33
|
+
|
|
34
|
+
## 与 new-task 的关系
|
|
35
|
+
|
|
36
|
+
本命令是**自动化驱动的并列入口**(单命令走全程);new-task.md 是手动阶段路由入口。同一套门禁与确认语义,二者只选其一驱动一个任务,不混用。
|
|
@@ -14,11 +14,11 @@ description: Plan 阶段 · 立 intent(AI 起草、用户确认;本阶段不
|
|
|
14
14
|
1. 若 `workflow/intents/` 已有目标 intent 且状态为 approved → 按级别跳 next(L1 → `build.md`,L2/L3 → `design.md`)
|
|
15
15
|
2. 否则起草新 intent:
|
|
16
16
|
- **先检索同类**:`node .agents/scripts/kb-search.mjs "<关键词>" --scope workflow --type intents,specs`——命中同类先读其结论与验收,新 intent 引用(防重复立项 / 重复踩坑)
|
|
17
|
-
- **填空工具先跑**:`node .agents/scripts/fill-intent.mjs --module <模块> --level <L0|L1|L2|L3> --topic <主题> --output workflow/intents/<date>-<主题>.md --notes "<备注>"`——输出含 frontmatter 6 字段(含 risk_level)+
|
|
17
|
+
- **填空工具先跑**:`node .agents/scripts/fill-intent.mjs --module <模块> --level <L0|L1|L2|L3> --topic <主题> --output workflow/intents/<date>-<主题>.md --notes "<备注>"`——输出含 frontmatter 6 字段(含 risk_level)+ 9 节(背景与问题/历史教训防复发/目标/非目标/约束/影响面/触达红线/验收标准 8 节正文 + 确认与复核)的草稿;AI 据此填实,模板与节标题机器保证不出错
|
|
18
18
|
- 复制 `workflow/intents/_TEMPLATE.md` → `workflow/intents/YYYY-MM-DD-<主题>.md`
|
|
19
19
|
- frontmatter 填 `模块:`(词表见 `.agents/workflow-modules.txt`,新建文档必填,check-loop 会警告)
|
|
20
|
-
- 按
|
|
21
|
-
- 红线勾选对照根 `AGENTS.md
|
|
20
|
+
- 按 8 节填写:背景与问题 / 历史教训防复发 / 目标(可验证) / 非目标 / 约束 / 影响面 / 触达红线 / 验收标准(L1 微改动可省非目标/约束两节,不硬填)
|
|
21
|
+
- 红线勾选对照根 `AGENTS.md` 红线/约束相关节(如「项目适配区」「门禁与提交」)+ 改动域目录级 `AGENTS.md`(如有);**没触及就全不勾**,不要硬填
|
|
22
22
|
3. 写不出可测试判据 = 还没想清楚 → 反问澄清,不要硬填
|
|
23
23
|
4. 起草后停下,输出草稿全文给用户过目,一句"可以"即确认
|
|
24
24
|
|
|
@@ -10,7 +10,7 @@ description: 跨宿主适配层同步(正文段 sha 比对 + 用户拍板 +
|
|
|
10
10
|
|
|
11
11
|
## 何时跑
|
|
12
12
|
|
|
13
|
-
- 改 `templates/_agents/commands/*.md` 正文后(
|
|
13
|
+
- 改 `templates/_agents/commands/*.md` 正文后(11 个 commands 文件)
|
|
14
14
|
- 改 `templates/_agents/roles/*.md` 正文后(3 个 roles 文件)
|
|
15
15
|
- 装户跑 `flow-kit doctor` 报"跨宿主薄适配正文漂移 N 对" WARN 时
|
|
16
16
|
- 不跑:仅改 frontmatter;改 trae 钩子/规则;改包源其他文件
|
|
@@ -56,7 +56,7 @@ node bin/flow-kit.mjs doctor # §6.5 delegations + §6.6 o
|
|
|
56
56
|
- 失败项已修复并复测通过
|
|
57
57
|
- **关单**(日常闭环点,不依赖是否上 prod):
|
|
58
58
|
- 关单前一键过门:`node .agents/scripts/verify.mjs`(npm test + check-loop 固定编排,任一失败非零退出,非绿不关单)
|
|
59
|
-
- 新需求:逐条勾验入口 intent
|
|
59
|
+
- 新需求:逐条勾验入口 intent「验收标准」,每条补「证据:」(例如:粘贴 CI 运行结果、UI 截图路径、或具体的 commit SHA),intent $\rightarrow$ done;同名 spec/Quick-Plan(若有)仍 approved $\rightarrow$ done。**注意:勾选但缺证据会被 check-loop 拦截(hard-block)**
|
|
60
60
|
- **approved 留痕提交**(2026-09-30 起):done 确认前确认**本次关单文档**的 approved 态已进 git 历史(越早越好——approved 后即应提交;若尚未,先补提交再 done;门为逐份校验,三件套均关单时逐份各自满足)——confirm-doc 的 done 前置门硬校验(历史未出现「状态: approved」→ 拒绝落账);done 后再提交 done 态与其余改动
|
|
61
61
|
**确认落态唯一入口**(2026-09-27 起):用户在终端跑 `node .agents/scripts/confirm-doc.mjs <path>` 键入「可以」(draft→approved / approved→done;对话内明确确认后 AI 可 `--delegated "<原话>"` 代录,台账如实记 source/quote——**逐件调用 + 逐件原话**(一次一份,build.md「逐件确认」口径;多份并录被 confirm-doc 拒绝。--delegated 每次传当次实际放行的措辞,不复用同句——复用同句使台账 quote 失去分辨力))。check-loop 15 如实口径:缺记录/指纹不配对 → hard-block 拦截;伪造台账本地不可机器防,留痕供事后对质;done 内容绑定(2026-09-28 起)——**关单编辑(勾验/回填确认结果)先于 done 确认、confirm-doc 是最后一次写入**,此后修订走 superseded 或新 intent。
|
|
62
62
|
- 修复:防复发验证已落地,incident → closed(经确认门 confirm-doc:open→fixed / fixed→closed 两跳、无单跳;2026-09-28 起 check-loop 15 对账——关单编辑先于 closed 确认,口径同 done 内容绑定)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
alwaysApply: true
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
本项目工作流唯一权威是根目录 `AGENTS.md`:开工前必须完整读取并严格遵循(任务流程 /
|
|
5
|
+
本项目工作流唯一权威是根目录 `AGENTS.md`:开工前必须完整读取并严格遵循(任务流程 / 通用约束与红线 / 目录级规则 / 运行时与验证标准),本规则只做入口指针,不复制内容。
|
|
6
6
|
|
|
7
7
|
- 规则加载是惰性的:根 `AGENTS.md` 常驻;目录级 `AGENTS.md`(如有,如 `backend/AGENTS.md`、`frontend/AGENTS.md`)只在该目录文件被读取或被提及时才生效——动对应目录前先主动读,别凭记忆。
|
|
8
8
|
- 终端环境差异(shell 可用性 / 退出码取法 /「命令不存在 ⇒ 假绿」)见 `.agents/notes/runtime-env.md` §1。
|
package/package.json
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "agentic-flow-kit",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "AI-Native 闭环工作流 + wiki 知识层脚手架——flow-kit init 一条命令为新项目装好 .agents 工作流引擎(阶段命令/角色契约/门禁钩子/kb 检索/看板/规则面预算)+ workflow 文档闭环 + wiki 知识库,装完自包含、零运行时依赖",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"test": "node src/run-tests.mjs",
|
|
8
|
-
"prepack": "node -e \"require('fs').rmSync('templates/_agents/cache',{recursive:true,force:true})\" && node scripts/check-pack-eol.mjs"
|
|
9
|
-
},
|
|
10
|
-
"bin": {
|
|
11
|
-
"flow-kit": "bin/flow-kit.mjs"
|
|
12
|
-
},
|
|
13
|
-
"files": [
|
|
14
|
-
"bin",
|
|
15
|
-
"src",
|
|
16
|
-
"templates",
|
|
17
|
-
"modules",
|
|
18
|
-
"README.md",
|
|
19
|
-
"!templates/_agents/cache",
|
|
20
|
-
"!templates/_agents/cache/**"
|
|
21
|
-
],
|
|
22
|
-
"engines": {
|
|
23
|
-
"node": ">=18.0.0"
|
|
24
|
-
},
|
|
25
|
-
"keywords": [
|
|
26
|
-
"ai-native",
|
|
27
|
-
"workflow",
|
|
28
|
-
"agent",
|
|
29
|
-
"scaffold",
|
|
30
|
-
"cli",
|
|
31
|
-
"wiki",
|
|
32
|
-
"check-loop",
|
|
33
|
-
"closed-loop"
|
|
34
|
-
],
|
|
35
|
-
"license": "MIT",
|
|
36
|
-
"private": false,
|
|
37
|
-
"repository": {
|
|
38
|
-
"type": "git",
|
|
39
|
-
"url": "git+https://github.com/zerosloney/agentic-flow-kit.git"
|
|
40
|
-
},
|
|
41
|
-
"bugs": {
|
|
42
|
-
"url": "https://github.com/zerosloney/agentic-flow-kit/issues"
|
|
43
|
-
},
|
|
44
|
-
"homepage": "https://github.com/zerosloney/agentic-flow-kit#readme"
|
|
45
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "agentic-flow-kit",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "AI-Native 闭环工作流 + wiki 知识层脚手架——flow-kit init 一条命令为新项目装好 .agents 工作流引擎(阶段命令/角色契约/门禁钩子/kb 检索/看板/规则面预算)+ workflow 文档闭环 + wiki 知识库,装完自包含、零运行时依赖",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "node src/run-tests.mjs",
|
|
8
|
+
"prepack": "node -e \"require('fs').rmSync('templates/_agents/cache',{recursive:true,force:true})\" && node scripts/check-pack-eol.mjs"
|
|
9
|
+
},
|
|
10
|
+
"bin": {
|
|
11
|
+
"flow-kit": "bin/flow-kit.mjs"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"bin",
|
|
15
|
+
"src",
|
|
16
|
+
"templates",
|
|
17
|
+
"modules",
|
|
18
|
+
"README.md",
|
|
19
|
+
"!templates/_agents/cache",
|
|
20
|
+
"!templates/_agents/cache/**"
|
|
21
|
+
],
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": ">=18.0.0"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"ai-native",
|
|
27
|
+
"workflow",
|
|
28
|
+
"agent",
|
|
29
|
+
"scaffold",
|
|
30
|
+
"cli",
|
|
31
|
+
"wiki",
|
|
32
|
+
"check-loop",
|
|
33
|
+
"closed-loop"
|
|
34
|
+
],
|
|
35
|
+
"license": "MIT",
|
|
36
|
+
"private": false,
|
|
37
|
+
"repository": {
|
|
38
|
+
"type": "git",
|
|
39
|
+
"url": "git+https://github.com/zerosloney/agentic-flow-kit.git"
|
|
40
|
+
},
|
|
41
|
+
"bugs": {
|
|
42
|
+
"url": "https://github.com/zerosloney/agentic-flow-kit/issues"
|
|
43
|
+
},
|
|
44
|
+
"homepage": "https://github.com/zerosloney/agentic-flow-kit#readme"
|
|
45
|
+
}
|
|
@@ -28,7 +28,7 @@ next: .agents/commands/test.md
|
|
|
28
28
|
1. 确认同名入口文档(approved intent 或已确认的 incident)+ spec(若 L2/L3)均已确认;否则回上一阶段(fill/confirm 未过即拒)
|
|
29
29
|
2. 起草 plan:
|
|
30
30
|
- 复制 `workflow/plans/_TEMPLATE.md` → `workflow/plans/YYYY-MM-DD-<主题>.md`(与入口文档同名)
|
|
31
|
-
- L2/L3 按 4
|
|
31
|
+
- L2/L3 按 4 节填写:改动方案 / 任务拆解(每个任务有判据) / 执行顺序 / 验证计划(与 fill-plan.mjs 单源一致)
|
|
32
32
|
- L1 使用 Quick-Plan 极简三节:改动方案 / 约束与风险(原 Spec 核心) / 验证计划;多文件多步骤时可补任务拆解/执行顺序
|
|
33
33
|
3. 停下,输出 plan 草稿全文给用户过目,一句"可以"即确认。**逐件确认**:入口文档 / spec / plan 各自的确认点不得并作一次,plan 草稿须全文过目(不接受摘要代替)。**逐件配逐件原话**:`--delegated` 每次传当次实际放行的措辞,不复用同句——复用同句使台账 quote 失去分辨力(事后对质看不出放行的是哪一件);原因与根治见 workflow/papercuts.md 2026-09-28
|
|
34
34
|
**确认落态唯一入口**(2026-09-27 起):用户在终端跑 `node .agents/scripts/confirm-doc.mjs <path>` 键入「可以」(draft→approved / approved→done;对话内明确确认后 AI 可 `--delegated "<原话>"` 代录,台账如实记 source/quote——**逐件调用 + 逐件原话**(一次一份,build.md「逐件确认」口径;多份并录被 confirm-doc 拒绝。--delegated 每次传当次实际放行的措辞,不复用同句——复用同句使台账 quote 失去分辨力))。check-loop 15 如实口径:缺记录/指纹不配对 → hard-block 拦截;伪造台账本地不可机器防,留痕供事后对质;done 内容绑定(2026-09-28 起)——关单编辑(勾验/回填)先于 done 确认、confirm-doc 是最后一次写入,此后修订走 superseded 或新 intent。
|
|
@@ -41,7 +41,7 @@ next: .agents/commands/test.md
|
|
|
41
41
|
- 列改动文件清单(读后改 vs 新建)
|
|
42
42
|
- 列步骤(改 X 文件做 Y → 改 Z 文件做 W)
|
|
43
43
|
- **owned 文件同步**:kit.owned 列表文件(AGENTS.md / workflow 模板等)sync 不动,须列「手动同步装副本」步骤(见 incidents/2026-09-25-wf-runtime 复盘)
|
|
44
|
-
- 标注触达红线(对照根 `AGENTS.md
|
|
44
|
+
- 标注触达红线(对照根 `AGENTS.md` 红线/约束相关节(如「项目适配区」「门禁与提交」)+ 改动域目录级 `AGENTS.md`(如有))
|
|
45
45
|
6. 停下,等用户确认改动清单
|
|
46
46
|
|
|
47
47
|
### 实现
|
|
@@ -31,7 +31,7 @@ next: .agents/commands/build.md
|
|
|
31
31
|
- **填空工具先跑**:`node .agents/scripts/fill-spec.mjs --level <L1|L2|L3> --topic <主题> --output workflow/specs/<date>-<主题>.md`——输出含 frontmatter 5 字段 + 5 节正文(功能行为/数据流/系统改动/约束遵守映射/风险评估)的草稿;AI 据此填实
|
|
32
32
|
- 复制 `workflow/specs/_TEMPLATE.md` → `workflow/specs/YYYY-MM-DD-<主题>.md`(与入口文档同名)
|
|
33
33
|
- 按 5 节填写:功能行为 / 数据流 / 系统改动 / 约束遵守映射 / 风险评估
|
|
34
|
-
- 约束映射必须对照根 `AGENTS.md
|
|
34
|
+
- 约束映射必须对照根 `AGENTS.md` 红线/约束相关节(如「项目适配区」「门禁与提交」)与改动域目录级 `AGENTS.md`(如有)逐条说明如何满足
|
|
35
35
|
- 存在多个可行方案时,在 spec 中列出各方案取舍与 AI 建议项,由用户选定后方可确认
|
|
36
36
|
- **页面/交互入口形态必须用户确认**:spec 须写明入口是「表单(字段清单)」还是「选择器/弹窗」,禁止自行推定交互形态
|
|
37
37
|
4. 起草后停下,输出草稿全文给用户过目
|
|
@@ -39,6 +39,7 @@ next: 按阶段路由
|
|
|
39
39
|
|
|
40
40
|
## 路由判断
|
|
41
41
|
|
|
42
|
+
- **自动化驱动(并列入口,可选)**:一句话全程走 [pipeline-run.md](pipeline-run.md)——状态机驱动+工单协议+原话代录,与下述手动路由二选一,同一任务不混用
|
|
42
43
|
- **新需求 / 功能**:从 `plan.md` 进,立 **intent**(`workflow/intents/`)
|
|
43
44
|
- **修复类任务 / 事故**:从 `maintain.md` 进,立 **incident**(`workflow/incidents/`);incident 在 L1+ 即 **intent 等价物**(check-loop 认 incident≡intent),不必另立 intent。先检索同类历史(`node .agents/scripts/kb-search.mjs "<关键词>" --scope workflow --type incidents,plans`),有同类先读其历史三件套;再按级别走:
|
|
44
45
|
- L0 → 直接修复;L1 → 立 incident 后进 `build.md` 起草并确认同名 Quick-Plan → `test.md`
|