@accelerator-mzq/forge 3.0.0 → 4.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.
Files changed (105) hide show
  1. package/README.md +12 -12
  2. package/dist/cli/commands/ack.d.ts.map +1 -1
  3. package/dist/cli/commands/ack.js +87 -12
  4. package/dist/cli/commands/ack.js.map +1 -1
  5. package/dist/cli/commands/archive.d.ts +32 -33
  6. package/dist/cli/commands/archive.d.ts.map +1 -1
  7. package/dist/cli/commands/archive.js +339 -667
  8. package/dist/cli/commands/archive.js.map +1 -1
  9. package/dist/cli/commands/legacy-bridge.js +1 -1
  10. package/dist/cli/commands/legacy-bridge.js.map +1 -1
  11. package/dist/cli/commands/upgrade.d.ts.map +1 -1
  12. package/dist/cli/commands/upgrade.js +2 -51
  13. package/dist/cli/commands/upgrade.js.map +1 -1
  14. package/dist/cli/commands/validate.d.ts.map +1 -1
  15. package/dist/cli/commands/validate.js +4 -25
  16. package/dist/cli/commands/validate.js.map +1 -1
  17. package/dist/cli/index.js +0 -9
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/core/ack/marker-ack.d.ts +28 -0
  20. package/dist/core/ack/marker-ack.d.ts.map +1 -0
  21. package/dist/core/ack/marker-ack.js +155 -0
  22. package/dist/core/ack/marker-ack.js.map +1 -0
  23. package/dist/core/ack-log.d.ts.map +1 -1
  24. package/dist/core/ack-log.js +10 -7
  25. package/dist/core/ack-log.js.map +1 -1
  26. package/dist/core/archive/index.d.ts +2 -3
  27. package/dist/core/archive/index.d.ts.map +1 -1
  28. package/dist/core/archive/index.js +7 -5
  29. package/dist/core/archive/index.js.map +1 -1
  30. package/dist/core/archive/pause-decisions-fence.js +12 -12
  31. package/dist/core/archive/pause-decisions-fence.js.map +1 -1
  32. package/dist/core/archive/summary-builder.d.ts +26 -21
  33. package/dist/core/archive/summary-builder.d.ts.map +1 -1
  34. package/dist/core/archive/summary-builder.js +115 -223
  35. package/dist/core/archive/summary-builder.js.map +1 -1
  36. package/dist/core/archive/summary-render.d.ts +5 -3
  37. package/dist/core/archive/summary-render.d.ts.map +1 -1
  38. package/dist/core/archive/summary-render.js +38 -44
  39. package/dist/core/archive/summary-render.js.map +1 -1
  40. package/dist/core/lock.d.ts +46 -0
  41. package/dist/core/lock.d.ts.map +1 -0
  42. package/dist/core/lock.js +98 -0
  43. package/dist/core/lock.js.map +1 -0
  44. package/dist/core/markers/types.d.ts +27 -134
  45. package/dist/core/markers/types.d.ts.map +1 -1
  46. package/dist/core/markers/types.js +10 -1
  47. package/dist/core/markers/types.js.map +1 -1
  48. package/dist/core/migrate/index.js +1 -1
  49. package/dist/core/migrate/index.js.map +1 -1
  50. package/dist/core/monitor/artifact-observer.d.ts.map +1 -1
  51. package/dist/core/monitor/artifact-observer.js +28 -78
  52. package/dist/core/monitor/artifact-observer.js.map +1 -1
  53. package/dist/core/monitor/divergence-map.d.ts.map +1 -1
  54. package/dist/core/monitor/divergence-map.js +9 -7
  55. package/dist/core/monitor/divergence-map.js.map +1 -1
  56. package/dist/core/monitor/health-verdict.d.ts.map +1 -1
  57. package/dist/core/monitor/health-verdict.js +2 -1
  58. package/dist/core/monitor/health-verdict.js.map +1 -1
  59. package/dist/core/monitor/trace-store.d.ts +1 -1
  60. package/dist/core/monitor/trace-store.js +2 -2
  61. package/dist/core/monitor/trace-store.js.map +1 -1
  62. package/dist/core/monitor/types.d.ts +1 -1
  63. package/dist/core/monitor/types.d.ts.map +1 -1
  64. package/dist/core/monitor/types.js +0 -1
  65. package/dist/core/monitor/types.js.map +1 -1
  66. package/dist/core/schemas/archive-summary.d.ts +39 -109
  67. package/dist/core/schemas/archive-summary.d.ts.map +1 -1
  68. package/dist/core/schemas/archive-summary.js +15 -23
  69. package/dist/core/schemas/archive-summary.js.map +1 -1
  70. package/dist/core/templates/commands/ack-confirm.md +1 -1
  71. package/dist/core/templates/commands/apply.md +51 -114
  72. package/dist/core/templates/commands/archive.md +43 -160
  73. package/dist/core/templates/commands/review.md +49 -74
  74. package/dist/core/templates/commands/upgrade.md +21 -40
  75. package/dist/core/templates/commands/verify.md +43 -146
  76. package/dist/core/templates/skills/_shared/tier23-command-bridge.md +34 -0
  77. package/dist/core/templates/skills/exploring.md +3 -3
  78. package/dist/core/templates/skills/finishing-a-development-branch.md +6 -21
  79. package/dist/core/templates/skills/receiving-code-review.md +14 -45
  80. package/dist/core/templates/skills/requesting-code-review.md +11 -0
  81. package/dist/core/templates/skills/subagent-driven-development.md +33 -29
  82. package/dist/core/templates/skills/subagent-driven-discipline.md +28 -28
  83. package/dist/core/templates/skills/using-forge.md +25 -24
  84. package/dist/core/templates/skills/verification-before-completion.md +7 -18
  85. package/dist/core/templates/skills/verifying-three-dimensions.md +93 -169
  86. package/dist/core/templates/skills/writing-plans.md +6 -17
  87. package/dist/core/validate/archive-summary-schema.d.ts +1 -1
  88. package/dist/core/validate/archive-summary-schema.d.ts.map +1 -1
  89. package/dist/core/validate/archive-summary-schema.js +101 -125
  90. package/dist/core/validate/archive-summary-schema.js.map +1 -1
  91. package/dist/core/validate/index.d.ts +0 -1
  92. package/dist/core/validate/index.d.ts.map +1 -1
  93. package/dist/core/validate/index.js +2 -1
  94. package/dist/core/validate/index.js.map +1 -1
  95. package/dist/core/validate/marker-schema.d.ts +12 -4
  96. package/dist/core/validate/marker-schema.d.ts.map +1 -1
  97. package/dist/core/validate/marker-schema.js +98 -605
  98. package/dist/core/validate/marker-schema.js.map +1 -1
  99. package/dist/index.d.ts +1 -1
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +8 -1
  102. package/dist/index.js.map +1 -1
  103. package/package.json +5 -4
  104. package/scripts/codex-review-helper.mjs +337 -0
  105. package/src/core/codex-review/prompts/adversarial-default.md +105 -0
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![version](https://img.shields.io/github/package-json/v/Accelerator-mzq/forge)](https://github.com/Accelerator-mzq/forge/releases)
5
5
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
6
 
7
- > **v1.1** 三 harness AI 工作流 plugin。融合 [OpenSpec](https://github.com/Fission-AI/OpenSpec) 产物驱动工作流 + [superpowers](https://github.com/obra/superpowers) 行为塑造 skill,**外加 v1.0 反向加固协议(三级 severity / 三维 verify / 三级 fence / ack 两步)防 AI 在 spec 阶段偷懒**。
7
+ > **v3.1** 三 harness AI 工作流 plugin。融合 [OpenSpec](https://github.com/Fission-AI/OpenSpec) 产物驱动工作流 + [superpowers](https://github.com/obra/superpowers) 行为塑造 skill,**外加 v1.0 反向加固协议(三级 severity / 三维 verify / 三级 fence / ack 两步)防 AI 在 spec 阶段偷懒**。
8
8
 
9
9
  ```bash
10
10
  # Tier 1 — Claude Code(全功能,推荐)
@@ -45,11 +45,11 @@ claude # 启动 Claude Code 会话
45
45
 
46
46
  forge 不只是把 superpowers skill 搬到三 harness。v1.0 **fusion completion** 加了 9 块反向加固协议(plan-9a..9j),防 AI 在 spec / verify / archive 三阶段偷懒。
47
47
 
48
- ### 1. 主流程 6 步 + 9 slash 命令
48
+ ### 1. 主流程 6 步 + 10 slash 命令
49
49
 
50
50
  `/forge:brainstorm` → `/forge:propose` → `/forge:apply` → `/forge:review` → `/forge:verify` → `/forge:archive`。
51
51
 
52
- 横切命令:`/forge:explore`(非线性思考空间)、`/forge:ack-confirm`(WARNING 两步 ack)、`/forge:upgrade`(legacy 清理 + marker 重签)。
52
+ 横切命令:`/forge:explore`(非线性思考空间)、`/forge:ack-confirm`(WARNING 两步 ack)、`/forge:upgrade`(legacy 清理 + marker 重签)、`/forge:codex-adversarial`(对抗性 review)
53
53
 
54
54
  每步产强校验 marker,后续阶段读 marker 的 `tasks_hash` / `content_hash` / `git.diff_hash` 验证未漂移(`src/core/markers/types.ts`)。
55
55
 
@@ -84,15 +84,15 @@ forge 不只是把 superpowers skill 搬到三 harness。v1.0 **fusion completio
84
84
 
85
85
  ## 安装(三 harness)
86
86
 
87
- | Harness | 状态 | 入口 |
88
- | --------------- | ---------------------------------------------------------------------- | ------------------------------------------------------ |
89
- | **Claude Code** | Tier 1 ENABLE(全功能 — skill auto-trigger + 9 slash 命令 + CLI helper) | [`docs/claude-install.md`](docs/claude-install.md) |
90
- | **OpenCode** | Tier 2 PARTIAL_SHIP(skills + skill-driven CLI;commands 不支持) | [`docs/opencode-install.md`](docs/opencode-install.md) |
91
- | **Codex** | Tier 3 PARTIAL_SHIP( OpenCode) | [`docs/codex-install.md`](docs/codex-install.md) |
87
+ | Harness | `/forge:*` slash 命令注册 | workflow bridge | 入口 |
88
+ | --------------- | ---------------------------------------------------------- | ------------------------------ | ------------------------------------------------------ |
89
+ | **Claude Code** | 全功能(skill auto-trigger + 10 slash 命令 + CLI helper) | — | [`docs/claude-install.md`](docs/claude-install.md) |
90
+ | **OpenCode** | 不注册 | best-effort(经命令文件桥接) | [`docs/opencode-install.md`](docs/opencode-install.md) |
91
+ | **Codex** | 不注册 | ✅ best-effort(经命令文件桥接) | [`docs/codex-install.md`](docs/codex-install.md) |
92
92
 
93
93
  总览 + 选哪个 tier 见 [`docs/installation.md`](docs/installation.md)。
94
94
 
95
- ## CLI 命令(14 个顶层子命令)
95
+ ## CLI 命令(17 个顶层子命令)
96
96
 
97
97
  按业务分组,详见 [`docs/cli-reference.md`](docs/cli-reference.md):
98
98
 
@@ -129,19 +129,19 @@ forge upgrade --resign-markers <changeId> # plan-9j v1.0+ marker 重签(legacy
129
129
 
130
130
  ## 状态 + 文档导航
131
131
 
132
- **v1.2.0** released 2026-05-15(`CHANGELOG.md:11`):
132
+ **v3.1.0**(本次 Tier 2/3 workflow closure 增量):
133
133
 
134
134
  - 本地 5 命令(`typecheck` / `lint` / `format:check` / `build` / `test`)全 0
135
135
  - **1115 tests pass**(`CHANGELOG.md:23`)
136
136
  - 自动化 skill eval(`pnpm eval`,`forge-eval/scenarios/` 双轨 baseline)
137
- - 16 skill + 9 slash 命令 + 14 CLI 子命令
137
+ - 18 skill + 10 slash 命令 + 17 CLI 子命令
138
138
 
139
139
  **v1.0 fusion completion** 经 Codex CLI(gpt-5.4-codex)累计 5+ 轮对抗性 review(跨 10 sub-plan)+ Opus subagent 多轮自检,共修 200+ 条问题;**v1.1 polish leftover** 经 Codex 七轮 review 累计 32 finding 全处置(0 严重 / 0 阻塞 / 0 Major)。
140
140
 
141
141
  **文档导航**:
142
142
 
143
143
  - [`docs/getting-started.md`](docs/getting-started.md) — v1.1 端到端工作流 + Bug fix 快速路径
144
- - [`docs/cli-reference.md`](docs/cli-reference.md) — 14 CLI 子命令完整参数 + 退出码
144
+ - [`docs/cli-reference.md`](docs/cli-reference.md) — 17 CLI 子命令完整参数 + 退出码
145
145
  - [`docs/installation.md`](docs/installation.md) — 三 harness 安装总览
146
146
  - [`docs/stage-extensions.md`](docs/stage-extensions.md) — stage-extensions framework 协议文档 + config schema + troubleshooting
147
147
  - [`docs/codex-review.md`](docs/codex-review.md) — codex review 预置 extension 用户指南
@@ -1 +1 @@
1
- {"version":3,"file":"ack.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ack.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkCpC;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CA0QzC"}
1
+ {"version":3,"file":"ack.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ack.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwCpC;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CA4VzC"}
@@ -4,11 +4,12 @@
4
4
  // forge ack confirm <changeId> <findingId> — User 确认,转为正式 ack 日志
5
5
  // forge ack reject <changeId> <findingId> --rationale <text> — User 拒绝,删 pending
6
6
  import { Command } from 'commander';
7
- import { readFile, writeFile, unlink, mkdir } from 'node:fs/promises';
7
+ import { readFile, writeFile, unlink, mkdir, copyFile } from 'node:fs/promises';
8
8
  import { execFileSync } from 'node:child_process';
9
9
  import { resolve, dirname } from 'node:path';
10
10
  import { stringify as stringifyYaml, parse as parseYaml } from 'yaml';
11
- import { appendAckLog, getPendingPath, listPending } from '../../core/ack-log.js';
11
+ import { appendAckLog, getPendingPath, listPending, readAllAckLogEntries, } from '../../core/ack-log.js';
12
+ import { applyMarkerAck } from '../../core/ack/marker-ack.js';
12
13
  // ──────────────────────────────────────────────────────────────────────────────
13
14
  // 内部 helper
14
15
  // ──────────────────────────────────────────────────────────────────────────────
@@ -46,7 +47,7 @@ export function buildAckCommand() {
46
47
  .command('propose')
47
48
  .description('AI 写 pending ack 文件(需 user confirm 才生效)')
48
49
  .argument('<changeId>', 'change 目录 ID,如 add-login')
49
- .requiredOption('--finding <id>', 'finding ID(数字字符串)')
50
+ .requiredOption('--finding <id>', 'finding id:`<number>` 或 `pause_decisions:<number>`')
50
51
  .requiredOption('--action <type>', 'ack 类型,如 ack-warning / ack-critical / resign-c-simcode')
51
52
  .option('--rationale <text>', 'AI 给出的 rationale(可选)')
52
53
  .option('--target-severity <sev>', 'resign-c-simcode action 专用 — 目标 severity (WARNING / SUGGESTION)')
@@ -96,7 +97,7 @@ export function buildAckCommand() {
96
97
  .command('confirm')
97
98
  .description('User 确认 AI 提议的 ack,写入 ack-log.jsonl 并删除 pending 文件')
98
99
  .argument('<changeId>', 'change 目录 ID')
99
- .argument('<findingId>', 'finding ID(数字字符串)')
100
+ .argument('<findingId>', 'finding id:`<number>` 或 `pause_decisions:<number>`')
100
101
  .option('--target-severity <sev>', '仅 resign-c-simcode action 必填;confirm 时 user 指定目标 severity 并写回 marker')
101
102
  .action(async (changeId, findingId, opts) => {
102
103
  const changeRoot = resolve(process.cwd(), 'forge', 'changes', changeId);
@@ -135,17 +136,36 @@ export function buildAckCommand() {
135
136
  process.stderr.write(`forge ack confirm: invalid --target-severity "${resolvedTargetSeverity}" (must be WARNING or SUGGESTION)\n`);
136
137
  process.exit(2);
137
138
  }
139
+ // Task A2: marker ack 字段写入 — user/ackedAt 与 ack-log entry 共用同一值保证一致性
140
+ const ackedAt = new Date().toISOString();
141
+ const user = process.env['USER'] ?? process.env['USERNAME'] ?? 'unknown';
142
+ const markerResult = await applyMarkerAck({
143
+ changeDir: changeRoot,
144
+ action: payload.action,
145
+ findingId,
146
+ user,
147
+ ackedAt,
148
+ rationale: payload.rationale ?? null,
149
+ targetSeverity: resolvedTargetSeverity === 'WARNING' || resolvedTargetSeverity === 'SUGGESTION'
150
+ ? resolvedTargetSeverity
151
+ : null,
152
+ });
153
+ if (!markerResult.ok) {
154
+ // marker 写失败(已自恢复) → 不 append ack-log,不删 pending,exit 2
155
+ process.stderr.write(`forge ack confirm: ${markerResult.reason}\n`);
156
+ process.exit(2);
157
+ }
138
158
  const ackEntry = {
139
159
  schema: 'forge-ack-log/v1',
140
160
  kind: 'ack',
141
- timestamp: new Date().toISOString(),
161
+ timestamp: ackedAt,
142
162
  action: payload.action,
143
163
  change_id: changeId,
144
164
  finding_id: findingId,
145
- user: process.env['USER'] ?? process.env['USERNAME'] ?? 'unknown',
165
+ user,
146
166
  rationale: payload.rationale ?? null,
147
167
  git_head: getGitHead(changeRoot),
148
- finding_hash: null,
168
+ finding_hash: markerResult.ackLogFindingHash,
149
169
  target_severity: resolvedTargetSeverity === 'WARNING' || resolvedTargetSeverity === 'SUGGESTION'
150
170
  ? resolvedTargetSeverity
151
171
  : undefined,
@@ -155,10 +175,65 @@ export function buildAckCommand() {
155
175
  target_severity: payload.target_severity ?? null,
156
176
  },
157
177
  };
158
- // 追加到 ack 日志
159
- await appendAckLog(changeRoot, ackEntry);
160
- // 删除 pending 文件(confirm 消费后不再需要)
161
- await unlink(latest.path);
178
+ // applyMarkerAck 返回 ok=true、ackEntry 构造完成后:
179
+ // 幂等读 ack-log + appendAckLog 整体包进同一 rollback try/catch(Codex MAJOR-1)
180
+ // 保证 readAllAckLogEntries 失败时也触发 rollback,不留 marker 已写的半状态
181
+ try {
182
+ const entries = await readAllAckLogEntries(changeRoot);
183
+ const dup = entries.some((e) => e.kind === 'ack' &&
184
+ e.change_id === changeId &&
185
+ e.finding_id === findingId &&
186
+ e.action === payload.action &&
187
+ e.user === user &&
188
+ e.finding_hash === ackEntry.finding_hash);
189
+ if (!dup)
190
+ await appendAckLog(changeRoot, ackEntry); // 幂等:已存在同 entry 则跳过 append
191
+ }
192
+ catch (e) {
193
+ // ack-log 读/写失败 → 尽力从 .bak 恢复所有已写 marker;保留 pending(retry 可重跑)
194
+ // 收集 restore 失败,不让单个失败中断其余恢复;有未恢复项时输出清晰诊断
195
+ const restoreErrors = [];
196
+ for (const bak of markerResult.backups) {
197
+ const marker = bak.replace(/\.bak$/, '');
198
+ try {
199
+ await copyFile(bak, marker);
200
+ }
201
+ catch (re) {
202
+ restoreErrors.push(`${marker}(.bak: ${bak}): ${re instanceof Error ? re.message : String(re)}`);
203
+ }
204
+ }
205
+ if (restoreErrors.length > 0) {
206
+ process.stderr.write(`forge ack confirm: ack-log 操作失败且 rollback incomplete —— 以下 marker 未恢复,` +
207
+ `请手动用对应 .bak 还原: ${restoreErrors.join('; ')}\n`);
208
+ }
209
+ else {
210
+ process.stderr.write(`forge ack confirm: ack-log 操作失败,marker 已回滚: ${e instanceof Error ? e.message : String(e)}\n`);
211
+ }
212
+ process.exit(1);
213
+ }
214
+ // 成功:先删 pending(它是「未完成」标记;marker+ack-log 已一致即可删)
215
+ // ENOENT 视为幂等成功(pending 可能已被并发/外部清理);其他 unlink 错误 → exit 1
216
+ // (pending 残留会被 archive pending fence 拒签,必须让用户知道)
217
+ try {
218
+ await unlink(latest.path);
219
+ }
220
+ catch (e) {
221
+ if (e.code !== 'ENOENT') {
222
+ process.stderr.write(`forge ack confirm: pending 文件删除失败(残留会被 archive 拒签,请手动清理 ${latest.path}): ` +
223
+ `${e instanceof Error ? e.message : String(e)}\n`);
224
+ process.exit(1);
225
+ }
226
+ // ENOENT → pending 已不在,幂等成功,继续清理 .bak
227
+ }
228
+ // best-effort 清理 .bak(.bak 残留不影响 archive,清理失败不阻断)
229
+ for (const bak of markerResult.backups) {
230
+ try {
231
+ await unlink(bak);
232
+ }
233
+ catch {
234
+ /* .bak 清理失败吞错 —— 不阻断,marker+ack-log 已一致 */
235
+ }
236
+ }
162
237
  process.exit(0);
163
238
  });
164
239
  // ──────────────────────────────────────────────────────────────────────────
@@ -168,7 +243,7 @@ export function buildAckCommand() {
168
243
  .command('reject')
169
244
  .description('User 拒绝 AI 提议的 ack,写入 reject 日志并删除 pending 文件')
170
245
  .argument('<changeId>', 'change 目录 ID')
171
- .argument('<findingId>', 'finding ID(数字字符串)')
246
+ .argument('<findingId>', 'finding id:`<number>` 或 `pause_decisions:<number>`')
172
247
  .requiredOption('--rationale <text>', '拒绝理由(必填)')
173
248
  .action(async (changeId, findingId, opts) => {
174
249
  const changeRoot = resolve(process.cwd(), 'forge', 'changes', changeId);
@@ -1 +1 @@
1
- {"version":3,"file":"ack.js","sourceRoot":"","sources":["../../../src/cli/commands/ack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ack.js","sourceRoot":"","sources":["../../../src/cli/commands/ack.ts"],"names":[],"mappings":"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"}
@@ -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"}