@accelerator-mzq/forge 3.1.1 → 4.0.1

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 (88) hide show
  1. package/dist/cli/commands/archive.d.ts +32 -33
  2. package/dist/cli/commands/archive.d.ts.map +1 -1
  3. package/dist/cli/commands/archive.js +339 -667
  4. package/dist/cli/commands/archive.js.map +1 -1
  5. package/dist/cli/commands/legacy-bridge.js +1 -1
  6. package/dist/cli/commands/legacy-bridge.js.map +1 -1
  7. package/dist/cli/commands/monitor.d.ts.map +1 -1
  8. package/dist/cli/commands/monitor.js +30 -6
  9. package/dist/cli/commands/monitor.js.map +1 -1
  10. package/dist/cli/commands/preflight.d.ts.map +1 -1
  11. package/dist/cli/commands/preflight.js +98 -0
  12. package/dist/cli/commands/preflight.js.map +1 -1
  13. package/dist/cli/commands/upgrade.d.ts.map +1 -1
  14. package/dist/cli/commands/upgrade.js +2 -51
  15. package/dist/cli/commands/upgrade.js.map +1 -1
  16. package/dist/cli/commands/validate.d.ts.map +1 -1
  17. package/dist/cli/commands/validate.js +4 -25
  18. package/dist/cli/commands/validate.js.map +1 -1
  19. package/dist/cli/index.js +0 -9
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/core/archive/index.d.ts +2 -3
  22. package/dist/core/archive/index.d.ts.map +1 -1
  23. package/dist/core/archive/index.js +7 -5
  24. package/dist/core/archive/index.js.map +1 -1
  25. package/dist/core/archive/summary-builder.d.ts +26 -21
  26. package/dist/core/archive/summary-builder.d.ts.map +1 -1
  27. package/dist/core/archive/summary-builder.js +115 -223
  28. package/dist/core/archive/summary-builder.js.map +1 -1
  29. package/dist/core/archive/summary-render.d.ts +5 -3
  30. package/dist/core/archive/summary-render.d.ts.map +1 -1
  31. package/dist/core/archive/summary-render.js +38 -44
  32. package/dist/core/archive/summary-render.js.map +1 -1
  33. package/dist/core/lock.d.ts +46 -0
  34. package/dist/core/lock.d.ts.map +1 -0
  35. package/dist/core/lock.js +98 -0
  36. package/dist/core/lock.js.map +1 -0
  37. package/dist/core/markers/types.d.ts +27 -134
  38. package/dist/core/markers/types.d.ts.map +1 -1
  39. package/dist/core/markers/types.js +10 -1
  40. package/dist/core/markers/types.js.map +1 -1
  41. package/dist/core/migrate/index.js +1 -1
  42. package/dist/core/migrate/index.js.map +1 -1
  43. package/dist/core/monitor/artifact-observer.d.ts.map +1 -1
  44. package/dist/core/monitor/artifact-observer.js +28 -78
  45. package/dist/core/monitor/artifact-observer.js.map +1 -1
  46. package/dist/core/monitor/divergence-map.d.ts.map +1 -1
  47. package/dist/core/monitor/divergence-map.js +9 -7
  48. package/dist/core/monitor/divergence-map.js.map +1 -1
  49. package/dist/core/monitor/health-verdict.d.ts.map +1 -1
  50. package/dist/core/monitor/health-verdict.js +2 -1
  51. package/dist/core/monitor/health-verdict.js.map +1 -1
  52. package/dist/core/monitor/trace-store.d.ts +1 -1
  53. package/dist/core/monitor/trace-store.js +2 -2
  54. package/dist/core/monitor/trace-store.js.map +1 -1
  55. package/dist/core/monitor/types.d.ts +1 -1
  56. package/dist/core/monitor/types.d.ts.map +1 -1
  57. package/dist/core/monitor/types.js +0 -1
  58. package/dist/core/monitor/types.js.map +1 -1
  59. package/dist/core/schemas/archive-summary.d.ts +39 -109
  60. package/dist/core/schemas/archive-summary.d.ts.map +1 -1
  61. package/dist/core/schemas/archive-summary.js +15 -23
  62. package/dist/core/schemas/archive-summary.js.map +1 -1
  63. package/dist/core/templates/commands/apply.md +49 -112
  64. package/dist/core/templates/commands/archive.md +43 -160
  65. package/dist/core/templates/commands/review.md +49 -74
  66. package/dist/core/templates/commands/upgrade.md +21 -40
  67. package/dist/core/templates/commands/verify.md +43 -146
  68. package/dist/core/templates/skills/_shared/tier23-command-bridge.md +8 -8
  69. package/dist/core/templates/skills/receiving-code-review.md +14 -45
  70. package/dist/core/templates/skills/requesting-code-review.md +4 -4
  71. package/dist/core/templates/skills/subagent-driven-development.md +25 -30
  72. package/dist/core/templates/skills/subagent-driven-discipline.md +28 -28
  73. package/dist/core/templates/skills/using-forge.md +50 -23
  74. package/dist/core/templates/skills/verification-before-completion.md +4 -4
  75. package/dist/core/templates/skills/verifying-three-dimensions.md +93 -169
  76. package/dist/core/validate/archive-summary-schema.d.ts +1 -1
  77. package/dist/core/validate/archive-summary-schema.d.ts.map +1 -1
  78. package/dist/core/validate/archive-summary-schema.js +101 -125
  79. package/dist/core/validate/archive-summary-schema.js.map +1 -1
  80. package/dist/core/validate/index.d.ts +0 -1
  81. package/dist/core/validate/index.d.ts.map +1 -1
  82. package/dist/core/validate/index.js +2 -1
  83. package/dist/core/validate/index.js.map +1 -1
  84. package/dist/core/validate/marker-schema.d.ts +12 -4
  85. package/dist/core/validate/marker-schema.d.ts.map +1 -1
  86. package/dist/core/validate/marker-schema.js +98 -605
  87. package/dist/core/validate/marker-schema.js.map +1 -1
  88. package/package.json +4 -5
@@ -1,16 +1,27 @@
1
1
  import { Command } from 'commander';
2
2
  import type { SyncCheckInput } from '../../core/legacy-bridge/sync-check.js';
3
+ /**
4
+ * Forge archive 命令工厂 — v4 简版(沿 plan §6.1 v9 伪代码)
5
+ *
6
+ * 9 步主流程:
7
+ * 1. forgeRoot + changeId selection
8
+ * 2. legacy-bridge preflight(可 graceful skip)
9
+ * 3. spec validate(blocking,永远跑)
10
+ * 4. marker check + v2 schema validate
11
+ * 5. task progress confirm(--yes 跳过)
12
+ * 6. spec deltas(--skip-specs 跳;否则 readDeltas + confirm + applyDeltas)
13
+ * 7. mv change → archive/<archiveDate>-<changeId>(算一次 archiveDate)
14
+ * 8. buildArchiveSummary + 写 archive_summary.yaml
15
+ * 9. legacy-bridge posthook + generateBacklog + appendTraceEvent
16
+ */
3
17
  export declare function buildArchiveCommand(): Command;
4
18
  /**
5
- * preflight 结果 union — caller try 块内根据 kind 手动 release + exit,
6
- * 与 archive.ts 现有"business-rule fail 处理"convention 一致(line 154 / 160 等)。
19
+ * preflight 结果 union — caller 根据 kind 退出
7
20
  *
8
21
  * kind 'ok':可继续 archive(graceful skip / 无 affected anchor / --api 跑完无 critical)
9
- * kind 'ack-missing':ack 未就绪,caller 应 await release + exit 2
10
- * kind 'critical-pending':**仅 --api 模式产生** —— 进程内跑 sync-check 后发现
11
- * critical pending 差异,sync-state 已写,caller await release + exit 2
12
- * kind 'halted-for-fulfillment':**仅 agent 模式产生** —— emit manifest +
13
- * 暂停态文件已写,archive 应 halt,caller await release + exit 2
22
+ * kind 'ack-missing':ack 未就绪,exit 2
23
+ * kind 'critical-pending':**仅 --api 模式** —— 进程内跑 sync-check 后发现 critical pending
24
+ * kind 'halted-for-fulfillment':**仅 agent 模式** —— emit manifest + 暂停态文件已写,exit 2
14
25
  */
15
26
  export type PreflightResult = {
16
27
  kind: 'ok';
@@ -35,27 +46,20 @@ export type PreflightResult = {
35
46
  * 4. legacy_bridge.enforce_sync != true
36
47
  * 5. 无受影响 anchor / 全部读取失败(buildSyncCheckTask 返 null)
37
48
  *
38
- * 双模式(ack 就绪后):
39
- * - **agent 模式(默认,不带 --api)**:emit sync-check manifest .cache +
40
- * 写暂停态文件 {kind:'halted-for-fulfillment'},archive halt agent fulfill。
41
- * - **--api 模式**:进程内直连 Anthropic API 跑 sync-check + 写 sync-state →
42
- * 含 critical pending 返 {kind:'critical-pending'};否则返 {kind:'ok'} 续跑 archive。
49
+ * 双模式:
50
+ * - **agent 模式(默认)**:emit sync-check manifest + 暂停态 → halted-for-fulfillment
51
+ * - **--api 模式**:进程内直连 API 跑 sync-check + 写 sync-state critical-pending ok
43
52
  *
44
- * ack 不就绪(两模式共有)返 {kind:'ack-missing'}
45
- *
46
- * **不再调 process.exit / console.error**:caller(archive 命令)负责打印消息 +
47
- * release archive.lock + exit,避免本函数内 process.exit 跳过 caller finally
48
- * 导致 archive.lock 文件残留。
53
+ * ack 不就绪 → ack-missing。
49
54
  */
50
55
  export declare function runArchivePreflight(forgeRoot: string, changeId: string, opts?: {
51
56
  api: boolean;
52
57
  }): Promise<PreflightResult>;
53
58
  /**
54
- * Plan 7 §2.5 + Task 6.3:post-archive hook — 不阻塞,仅在 enforce_sync=false 时跑(产报告)。
55
- * enforce_sync=true 已由 preflight 跑过;graceful skip 路径同 preflight。
59
+ * Plan 7 §2.5 + Task 6.3:post-archive hook — 不阻塞,enforce_sync=false 时跑(产报告)。
56
60
  *
57
- * agent 模式:emit sync-check manifest(非阻塞,archive 已完成,fulfill 后跑 --apply 出报告)
58
- * --api 模式:进程内直连 API 跑 sync-check + 写 sync-state(非阻塞,直接出报告)
61
+ * agent 模式:emit sync-check manifest(非阻塞,archive 已完成)
62
+ * --api 模式:进程内直连 API 跑 sync-check + 写 sync-state(非阻塞)
59
63
  *
60
64
  * I-2:archiveDate 由 archive 主流程透传(不自己算 new Date(),避免跨午夜偏一天)。
61
65
  */
@@ -75,28 +79,23 @@ export declare function emitPreflightSyncCheck(forgeRoot: string, changeId: stri
75
79
  kind: 'halted-for-fulfillment' | 'skip';
76
80
  }>;
77
81
  /**
78
- * agent 模式:enforce_sync=false 时 post-archive emit sync-check manifest(非阻塞,无暂停态)(Task 6.3)
82
+ * agent 模式:enforce_sync=false 时 post-archive emit sync-check manifest(非阻塞)。
79
83
  *
80
84
  * archive 已完成;fulfill 后跑 forge legacy-bridge sync-check --apply 出报告。
81
- * 调用前 gate 检查由 runArchivePostHook 负责。
82
- *
83
- * @param ctx 已拼好的 SyncCheckInput(可选;不传则内部自拼,供测试直接调用)
84
85
  */
85
86
  export declare function emitPostHookSyncCheck(forgeRoot: string, changeId: string, ctx?: SyncCheckInput): Promise<{
86
87
  kind: 'emitted' | 'skip';
87
88
  }>;
88
89
  /**
89
- * Task 6.4:forge archive --resume 的 gate 复核。
90
+ * Task 6.4:forge archive --resume 的 gate 复核(legacy 留存 — v4 archive 主流程已无 --resume,
91
+ * 但 tests/cli/legacy-bridge/archive-dualpath.test.ts 直接 import 测试此 gate 逻辑,需保留)。
90
92
  *
91
93
  * 复核两项:
92
- * ① 产物绑定 — sync-stateproduced_from 必须等于暂停态文件的 manifest_hash,
93
- * 确保 sync-check --apply 产出的 sync-state 确实来自本次 preflight emit manifest。
94
- * ② critical 幂等重评 — sync-state 中不得有 severity=critical + status=pending 的差异;
95
- * 若有,说明 agent 未完全 resolve,不可续跑 archive。
94
+ * ① 产物绑定 — sync-state.produced_from 必须等于暂停态文件的 manifest_hash
95
+ * critical 幂等重评 sync-state 中不得有 severity=critical + status=pending 的差异
96
96
  *
97
- * @param forgeRoot forge/ 根目录路径
98
- * @param changeId change id(e.g. 'add-pay')
99
- * @returns { ok: true } 表示 gate 通过;{ ok: false, reason } 表示拒绝并附原因
97
+ * v4 备注:archive 命令本身不再调用此函数;legacy-bridge sync-check 命令(若有 resume 路径)
98
+ * 可调用此函数验证 sync-state 绑定。本函数留存为 sync-check 子系统的 building block。
100
99
  */
101
100
  export declare function resumeArchiveGateCheck(forgeRoot: string, changeId: string): Promise<{
102
101
  ok: true;
@@ -1 +1 @@
1
- {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/archive.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAyD7E,wBAAgB,mBAAmB,IAAI,OAAO,CA6mB7C;AAkBD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,GAAG,EAAE,OAAO,CAAA;CAAmB,GACtC,OAAO,CAAC,eAAe,CAAC,CAiF1B;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CA6Df;AA0DD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC;IAAE,IAAI,EAAE,wBAAwB,GAAG,MAAM,CAAA;CAAE,CAAC,CAgCtD;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC;IAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAAA;CAAE,CAAC,CAevC;AA8BD;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA+DvD"}
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/archive.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAwI7E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAuN7C;AAMD;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,GAAG,EAAE,OAAO,CAAA;CAAmB,GACtC,OAAO,CAAC,eAAe,CAAC,CAuE1B;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CAwDf;AAkDD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC;IAAE,IAAI,EAAE,wBAAwB,GAAG,MAAM,CAAA;CAAE,CAAC,CA0BtD;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC;IAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAAA;CAAE,CAAC,CAUvC;AA8BD;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAqDvD"}