agentic-flow-kit 0.5.0 → 0.7.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 (85) hide show
  1. package/README.md +2 -0
  2. package/modules/gates/dotnet-ca/check-architecture.sh +23 -5
  3. package/modules/hosts/omp/agents/implementer.md +2 -0
  4. package/modules/hosts/omp/agents/independent-reviewer.md +2 -0
  5. package/modules/hosts/omp/agents/ui-verifier.md +2 -0
  6. package/modules/hosts/opencode/agents/implementer.md +2 -0
  7. package/modules/hosts/opencode/agents/independent-reviewer.md +2 -0
  8. package/modules/hosts/opencode/agents/ui-verifier.md +2 -0
  9. package/modules/hosts/opencode/commands/build.md +20 -1
  10. package/modules/hosts/opencode/commands/design.md +2 -0
  11. package/modules/hosts/opencode/commands/gate-checklist.md +77 -0
  12. package/modules/hosts/opencode/commands/maintain.md +2 -3
  13. package/modules/hosts/opencode/commands/plan.md +4 -1
  14. package/modules/hosts/opencode/commands/review.md +1 -0
  15. package/modules/hosts/opencode/commands/source-sync-check.md +89 -0
  16. package/modules/hosts/opencode/commands/sync-hosts.md +66 -0
  17. package/modules/hosts/opencode/commands/test.md +4 -2
  18. package/modules/hosts/trae/agents/implementer.md +2 -0
  19. package/modules/hosts/trae/agents/independent-reviewer.md +2 -0
  20. package/modules/hosts/trae/agents/ui-verifier.md +2 -0
  21. package/modules/hosts/trae/commands/wf-build.md +20 -1
  22. package/modules/hosts/trae/commands/wf-design.md +2 -0
  23. package/modules/hosts/trae/commands/wf-gate-checklist.md +78 -0
  24. package/modules/hosts/trae/commands/wf-maintain.md +2 -3
  25. package/modules/hosts/trae/commands/wf-plan.md +4 -1
  26. package/modules/hosts/trae/commands/wf-review.md +1 -0
  27. package/modules/hosts/trae/commands/wf-source-sync-check.md +90 -0
  28. package/modules/hosts/trae/commands/wf-sync-hosts.md +67 -0
  29. package/modules/hosts/trae/commands/wf-test.md +4 -2
  30. package/modules/hosts/trae/hooks/post-edit-check.cjs +3 -2
  31. package/modules/hosts/trae/hooks/pre-shell-check.cjs +40 -9
  32. package/modules/hosts/trae/hooks.json +1 -1
  33. package/modules/hosts/zcode/agents/implementer.md +2 -0
  34. package/modules/hosts/zcode/agents/independent-reviewer.md +2 -0
  35. package/modules/hosts/zcode/agents/ui-verifier.md +2 -0
  36. package/package.json +2 -2
  37. package/src/add-gate.mjs +5 -3
  38. package/src/doctor.mjs +121 -18
  39. package/src/gate-dotnet-ca.test.mjs +124 -0
  40. package/src/init.mjs +79 -17
  41. package/src/init.test.mjs +60 -1
  42. package/src/profiles.mjs +19 -2
  43. package/src/render.mjs +64 -4
  44. package/src/run-tests.mjs +3 -0
  45. package/src/sync-hosts.mjs +3 -2
  46. package/src/sync.mjs +64 -20
  47. package/src/sync.test.mjs +42 -0
  48. package/src/trae-hooks.test.mjs +115 -0
  49. package/templates/AGENTS.md +1 -0
  50. package/templates/_agents/board/index.html +32 -3
  51. package/templates/_agents/commands/build.md +5 -4
  52. package/templates/_agents/commands/design.md +1 -0
  53. package/templates/_agents/commands/maintain.md +1 -2
  54. package/templates/_agents/commands/plan.md +2 -0
  55. package/templates/_agents/commands/test.md +2 -1
  56. package/templates/_agents/hooks/check-pairing-incremental.sh +20 -7
  57. package/templates/_agents/metric-claims.txt +81 -0
  58. package/templates/_agents/roles/implementer.md +2 -0
  59. package/templates/_agents/roles/independent-reviewer.md +2 -0
  60. package/templates/_agents/roles/ui-verifier.md +2 -0
  61. package/templates/_agents/scripts/agg-delegations.cjs +39 -30
  62. package/templates/_agents/scripts/agg-delegations.test.mjs +32 -0
  63. package/templates/_agents/scripts/check-loop.mjs +538 -16
  64. package/templates/_agents/scripts/check-loop.test.mjs +1116 -0
  65. package/templates/_agents/scripts/confirm-doc.mjs +228 -0
  66. package/templates/_agents/scripts/confirm-doc.test.mjs +321 -0
  67. package/templates/_agents/scripts/doctor.test.mjs +81 -3
  68. package/templates/_agents/scripts/ensure-board.mjs +29 -2
  69. package/templates/_agents/scripts/gate-checklist.mjs +3 -0
  70. package/templates/_agents/scripts/gate-checklist.test.mjs +3 -3
  71. package/templates/_agents/scripts/gen-wiki-board.mjs +38 -24
  72. package/templates/_agents/scripts/gen-wiki-board.test.mjs +18 -0
  73. package/templates/_agents/scripts/gen-workflow-metrics.mjs +31 -3
  74. package/templates/_agents/scripts/kb-search.mjs +22 -8
  75. package/templates/_agents/scripts/kb-search.test.mjs +38 -8
  76. package/templates/_agents/scripts/source-sync-check.mjs +30 -5
  77. package/templates/_agents/scripts/source-sync-check.test.mjs +133 -8
  78. package/templates/_agents/scripts/verify-wiki-consistency.mjs +46 -23
  79. package/templates/_agents/scripts/workflow-board-server.mjs +64 -9
  80. package/templates/_agents/scripts/workflow-board-server.test.mjs +136 -0
  81. package/templates/_agents/scripts/workflow-enums.mjs +4 -2
  82. package/templates/_agents/scripts/workflows-check.test.mjs +14 -3
  83. package/templates/_agents/workflow-enums.txt +3 -3
  84. package/templates/_agents/workflows/_TEMPLATE.md +1 -0
  85. package/templates/_githooks/pre-commit +16 -1
@@ -226,12 +226,23 @@ const fm = (extra = '') => `---\nname: t\ndescription: t\n${extra}---\n\n# w\n\n
226
226
 
227
227
  // ---- S14 真实仓库自扫 baseline:0 error(_TEMPLATE 排除后三份可执行件全过)----
228
228
  {
229
+ // **本场景是包源仓库的 baseline 断言,装户环境应 SKIP**(2026-09-28 修正):
230
+ // 它上溯三级定位「真实仓库」,从 `templates/_agents/scripts/` 出发正确落在包源根;
231
+ // 但从装户的 `.agents/scripts/` 出发会落到 `<install>/..`,扫不到可执行编排件 →
232
+ // `files.length >= 3` 必假。首版没区分这两种上下文,导致**装户径下该套件恒红**——
233
+ // 实测:CI 新增「shipped 套件」步骤后,`.agents/scripts/workflows-check.test.mjs`
234
+ // 报 `FAIL S14(扫描面:)`(空扫描面),而包源侧同字节跑出 15/0。
235
+ // 判据:扫不到任何可执行件 = 本环境不适用 → SKIP(沿 doctor.test.mjs 同口径)。
229
236
  const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..', '..');
230
237
  const r = lintWorkflows({ root: ROOT });
231
238
  const names = r.files.map((f) => f.file).join('、');
232
- check('S14 真实仓库 .agents/workflows/ 自扫 0 error(扫描面:' + names + ')',
233
- r.errorCount === 0 && r.files.length >= 3,
234
- JSON.stringify(r.files.filter((f) => f.errors.length).map((f) => ({ f: f.file, e: f.errors }))));
239
+ if (r.files.length === 0) {
240
+ check('S14 真实仓库自扫 SKIP(本环境无 .agents/workflows/ 可执行件——装户径,沿 doctor.test 同口径)', true);
241
+ } else {
242
+ check('S14 真实仓库 .agents/workflows/ 自扫 0 error(扫描面:' + names + ')',
243
+ r.errorCount === 0 && r.files.length >= 3,
244
+ JSON.stringify(r.files.filter((f) => f.errors.length).map((f) => ({ f: f.file, e: f.errors }))));
245
+ }
235
246
  }
236
247
 
237
248
  // ---- S14 human 确认门(第四形态):单形态全绿 / 双填 E9 / ×retries W4 / 缺列兼容 ----
@@ -1,7 +1,7 @@
1
1
  # workflow 文档枚举单源(2026-09-25 enum-single-source)
2
- # 本文件会被 core.autocrlf 检出为 CRLF——读取方显式去 \r(check-loop enum_val / node parseEnums),禁止依赖行尾格式(rule-budgets.txt 同约定)。
3
- # 消费方:check-loop.sh / workflow-board-server.mjs / kb-search.mjs / gen-workflow-index.mjs /
4
- # fill-{intent,plan,spec}.mjs(经 scripts/workflow-enums.mjs 读取器)——改枚举改这里,别改消费方。
2
+ # 本文件会被 core.autocrlf 检出为 CRLF——读取方显式去 \r(node parseEnums),禁止依赖行尾格式(rule-budgets.txt 同约定)。
3
+ # 消费方:check-loop.mjs / workflow-board-server.mjs / kb-search.mjs / gen-workflow-index.mjs /
4
+ # fill-{intent,plan,spec}.mjs(均经 scripts/workflow-enums.mjs 读取器)——改枚举改这里,别改消费方。
5
5
  # 格式:key=value value value(空格分隔;# 注释行忽略;键重复 / 值重复 / 缺键 = 消费方 fail-loud)
6
6
  # 语义:doc = intent/spec/plan 三件;incident = 事故件。
7
7
  # all 全生命周期状态
@@ -70,5 +70,6 @@ params: env(目标环境);timeout-min(可选,默认 10)
70
70
  - 子智能体不跨确认门、不 commit / push(派单红线行:只改授权文件;缺输入或需偏离 → `BLOCKER:` 停下)。确认门一律用 human 形态行表达,不得派子智能体代行。
71
71
  - 收敛复核:派单返回后核对 diff 与授权文件范围(与 build.md 委派约定同口径);BLOCKER 停住待处置。
72
72
  - **run journal 三条**:① 每个 stage 每次尝试出结果即 `wf-journal.mjs add` 记一行(含重试与 human 门结论);② 中止后重跑先 `status`——已 pass 不重跑,从就绪层续;③ 收尾可把本 run 的 status 汇总粘 `workflow/delegations.md` 留痕(聚合脚本不读 journal)。
73
+ - **journal 是自报态,非验证态**:run journal 由执行者(宿主 AI)自己记——concurrency / retry / 断点续跑语义的保证取决于记账纪律,编排层无运行时派发器强制(wf-run 已废,执行按本机制文档语义);中止续跑时对「已 pass」结论保留人工核对权(2026-09-27 audit-gate-hardening 边界声明)。
73
74
  - 留痕:每个派单 / step stage 完成后向 `workflow/delegations.md` 委派结果表追加一行(`一次通过` / `返工×N` / `返工待修`,口径与 agg-delegations.cjs 对齐)。
74
75
  - 解析校验先行(机器门):`node .agents/scripts/workflows-check.mjs`——role ∈ `.agents/roles/`、step ∈ `steps/`、after 引用存在且无环、四形态恰填一项、retries/concurrency 数值合法;任一不过即拒,不执行。
@@ -1,6 +1,6 @@
1
1
  #!/bin/sh
2
2
  # Git 原生 pre-commit hook(经 core.hooksPath 挂载,git 执行、不依赖 agent 客户端)— agentic-flow-kit 通用编排
3
- # 通用门禁序:闭环配对(增量) → wiki 台账(增量) → 常驻面体积预算(增量) → 项目门禁(local-pre-commit) → 敏感信息扫描+条件构建(commit-check.cjs)
3
+ # 通用门禁序:闭环配对(增量) → wiki 台账(增量) → 常驻面体积预算(增量) → 双源一致性(增量) → 项目门禁(local-pre-commit) → 敏感信息扫描+条件构建(commit-check.cjs)
4
4
  # 项目专属门禁(架构红线/业务守卫等)放 .agents/hooks/local-pre-commit——存在即在本钩子内执行,返回非零即阻断提交
5
5
  # 合并提交场景由 .githooks/pre-merge-commit 原样转发到本脚本(合并时 git 调的是 pre-merge-commit,
6
6
  # 不是 pre-commit)——门禁清单只此一份,避免两处分叉
@@ -31,6 +31,21 @@ if [ -f .agents/scripts/rule-budget.sh ] && [ -f .agents/rule-budgets.txt ]; the
31
31
  run_gate "常驻面体积预算" .agents/scripts/rule-budget.sh --staged
32
32
  fi
33
33
 
34
+ # 双源一致性(增量,2026-09-27 audit-gate-hardening):包源 templates/_agents/ 与装副本 .agents/ 须同提交成对。
35
+ # 暂存触及任一侧时跑 source-sync-check --gate(缺失/漂移 exit 1,孤儿只报告)——拦「包源改了装副本没跟」
36
+ # (doctor §4 台账 sha 对此静默:盘面=台账即 PASS;该故障模式曾两次真实发生,见 incidents/2026-09-25-wf-runtime)。
37
+ # 比较工作树而非暂存区(口径沿 check-pairing-incremental 先例):两侧都已改好、分两笔提交时不拦——最终一致即可。
38
+ # 已知边界(复核 P2-2 声明,2026-09-27 gate-hardening-p2-batch):包源删除文件不触发缺失/漂移——装副本残件
39
+ # 退化为「孤儿」只报告不计失败,删包源时须手动同步清理装副本(sync 对 removed 同样仅报告不删盘)。
40
+ # 装户环境(无 templates/_agents/ 包源)自然跳过。
41
+ if [ -d templates/_agents ] && [ -f .agents/scripts/source-sync-check.mjs ] \
42
+ && git -c core.quotepath=off diff --cached --name-only | grep -qE '^(templates/_agents/|\.agents/)'; then
43
+ if ! node .agents/scripts/source-sync-check.mjs --gate; then
44
+ echo "pre-commit: 双源一致性(增量)未通过,提交已阻止——单边改动先跑 node bin/flow-kit.mjs sync 成对后原路重试" >&2
45
+ exit 1
46
+ fi
47
+ fi
48
+
34
49
  # 项目门禁挂载点:.agents/hooks/local-pre-commit(项目自建门禁/门禁模块接线处,存在即执行)
35
50
  if [ -f .agents/hooks/local-pre-commit ]; then
36
51
  run_gate "项目门禁(local-pre-commit)" .agents/hooks/local-pre-commit