@accelerator-mzq/forge 3.0.0 → 3.1.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 (33) 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/index.js +0 -0
  6. package/dist/core/ack/marker-ack.d.ts +28 -0
  7. package/dist/core/ack/marker-ack.d.ts.map +1 -0
  8. package/dist/core/ack/marker-ack.js +155 -0
  9. package/dist/core/ack/marker-ack.js.map +1 -0
  10. package/dist/core/ack-log.d.ts.map +1 -1
  11. package/dist/core/ack-log.js +10 -7
  12. package/dist/core/ack-log.js.map +1 -1
  13. package/dist/core/archive/pause-decisions-fence.js +12 -12
  14. package/dist/core/archive/pause-decisions-fence.js.map +1 -1
  15. package/dist/core/markers/types.d.ts +2 -2
  16. package/dist/core/markers/types.d.ts.map +1 -1
  17. package/dist/core/templates/commands/ack-confirm.md +1 -1
  18. package/dist/core/templates/commands/apply.md +3 -3
  19. package/dist/core/templates/skills/_shared/tier23-command-bridge.md +34 -0
  20. package/dist/core/templates/skills/exploring.md +3 -3
  21. package/dist/core/templates/skills/finishing-a-development-branch.md +6 -21
  22. package/dist/core/templates/skills/requesting-code-review.md +11 -0
  23. package/dist/core/templates/skills/subagent-driven-development.md +9 -0
  24. package/dist/core/templates/skills/using-forge.md +6 -6
  25. package/dist/core/templates/skills/verification-before-completion.md +7 -18
  26. package/dist/core/templates/skills/writing-plans.md +6 -17
  27. package/dist/index.d.ts +1 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +8 -1
  30. package/dist/index.js.map +1 -1
  31. package/package.json +22 -19
  32. package/scripts/codex-review-helper.mjs +337 -0
  33. 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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"}
package/dist/cli/index.js CHANGED
File without changes
@@ -0,0 +1,28 @@
1
+ export interface MarkerAckResult {
2
+ ok: boolean;
3
+ /** 失败原因(marker/finding 缺失、severity 不合法、marker 写失败已自恢复 等),ok=false 时非空 */
4
+ reason?: string;
5
+ /** ok=true 时:写回 ack-log entry 应带的 finding_hash(ack-pause-warning 为 null) */
6
+ ackLogFindingHash: string | null;
7
+ /**
8
+ * ok=true 时:本次已写 marker 的 .bak 路径列表。供调用方:
9
+ * ack-log 操作失败 → 用 .bak restore 对应 marker(spec §5.1.4 rollback);
10
+ * 成功 → best-effort unlink .bak 清理。ok=false 时为 [](applyMarkerAck 内部已自恢复)。
11
+ */
12
+ backups: string[];
13
+ }
14
+ /**
15
+ * applyMarkerAck — 按 action 定位 marker 并写 ack 字段。**永不抛错**:
16
+ * marker/finding 缺失、severity 不合法、marker 写失败 → 一律返回 { ok:false }
17
+ * (写失败时 writeMarkersAtomic 已自恢复所有 marker)。调用方据 ok=false → exit 2。
18
+ */
19
+ export declare function applyMarkerAck(params: {
20
+ changeDir: string;
21
+ action: string;
22
+ findingId: string;
23
+ user: string;
24
+ ackedAt: string;
25
+ rationale: string | null;
26
+ targetSeverity: 'WARNING' | 'SUGGESTION' | null;
27
+ }): Promise<MarkerAckResult>;
28
+ //# sourceMappingURL=marker-ack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marker-ack.d.ts","sourceRoot":"","sources":["../../../src/core/ack/marker-ack.ts"],"names":[],"mappings":"AA6DA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;OAIG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,SAAS,GAAG,YAAY,GAAG,IAAI,CAAC;CACjD,GAAG,OAAO,CAAC,eAAe,CAAC,CAgH3B"}
@@ -0,0 +1,155 @@
1
+ // marker-ack.ts: Task A2 — marker ack 字段写入 + 定位逻辑
2
+ // 按 action 类型定位对应 marker 文件,写入 severity_acked_by/at 等 ack 字段
3
+ // 采用原子写 + 备份回滚机制,保证 marker 一致性
4
+ import { readFile, writeFile, rename, copyFile } from 'node:fs/promises';
5
+ import { existsSync } from 'node:fs';
6
+ import { join } from 'node:path';
7
+ import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
8
+ import { extractHashPayload, computeFindingHash } from '../validate/finding-hash.js';
9
+ /** 原子写单文件:先写 tmp 再 rename,避免写到一半崩溃留下半文件 */
10
+ async function atomicWriteYaml(filePath, obj) {
11
+ const tmp = `${filePath}.tmp`;
12
+ await writeFile(tmp, stringifyYaml(obj), 'utf8');
13
+ await rename(tmp, filePath);
14
+ }
15
+ /**
16
+ * writeMarkersAtomic — 备份并原子写一组 marker;**任一写失败 → 恢复所有已写的、抛错**。
17
+ * 这是 A3 双 marker 自回滚的核心:写第 2 个 marker 失败时第 1 个会被恢复。
18
+ * 返回 .bak 路径列表(与 writes 顺序对齐)。
19
+ */
20
+ async function writeMarkersAtomic(writes) {
21
+ // 先为每个 marker 建备份
22
+ const backups = writes.map((w) => `${w.path}.bak`);
23
+ for (let i = 0; i < writes.length; i++)
24
+ await copyFile(writes[i].path, backups[i]);
25
+ const written = [];
26
+ try {
27
+ for (let i = 0; i < writes.length; i++) {
28
+ await atomicWriteYaml(writes[i].path, writes[i].content);
29
+ written.push(i);
30
+ }
31
+ }
32
+ catch (e) {
33
+ // 尽力恢复所有已写 marker;收集恢复失败,不让单个失败中断其余恢复
34
+ const restoreErrors = [];
35
+ for (const i of written) {
36
+ try {
37
+ await copyFile(backups[i], writes[i].path);
38
+ }
39
+ catch (re) {
40
+ restoreErrors.push(`${writes[i].path}: ${re instanceof Error ? re.message : String(re)}`);
41
+ }
42
+ }
43
+ if (restoreErrors.length > 0) {
44
+ throw new Error(`marker 写失败且 rollback incomplete —— 未恢复: ${restoreErrors.join('; ')}` +
45
+ `;原错误: ${e instanceof Error ? e.message : String(e)}`);
46
+ }
47
+ throw e;
48
+ }
49
+ return backups;
50
+ }
51
+ /**
52
+ * applyMarkerAck — 按 action 定位 marker 并写 ack 字段。**永不抛错**:
53
+ * marker/finding 缺失、severity 不合法、marker 写失败 → 一律返回 { ok:false }
54
+ * (写失败时 writeMarkersAtomic 已自恢复所有 marker)。调用方据 ok=false → exit 2。
55
+ */
56
+ export async function applyMarkerAck(params) {
57
+ const { changeDir, action, findingId, user, ackedAt } = params;
58
+ const verifyPath = join(changeDir, '.verify-passed');
59
+ const reviewPath = join(changeDir, '.review-passed');
60
+ // 统一的失败构造器
61
+ const FAIL = (reason) => ({
62
+ ok: false,
63
+ reason,
64
+ ackLogFindingHash: null,
65
+ backups: [],
66
+ });
67
+ try {
68
+ if (action === 'ack-warning') {
69
+ // 定位 .verify-passed marker 中的 finding,写 severity_acked_by/at
70
+ if (!existsSync(verifyPath))
71
+ return FAIL('.verify-passed 不存在');
72
+ const marker = parseYaml(await readFile(verifyPath, 'utf8'));
73
+ const findings = marker.verify_findings ?? [];
74
+ const f = findings.find((x) => String(x.id) === findingId);
75
+ if (!f)
76
+ return FAIL(`verify_findings 无 id=${findingId}`);
77
+ // 写入 ack 字段
78
+ f.severity_acked_by = user;
79
+ f.severity_acked_at = ackedAt;
80
+ // 原子写,备份用于 A5 事务回滚
81
+ const backups = await writeMarkersAtomic([{ path: verifyPath, content: marker }]);
82
+ // 计算 finding_hash 并返回(ack-warning 不修改 8 字段 payload,hash 不变)
83
+ return {
84
+ ok: true,
85
+ ackLogFindingHash: computeFindingHash(extractHashPayload(f)),
86
+ backups,
87
+ };
88
+ }
89
+ if (action === 'ack-pause-warning') {
90
+ // §5.1.3 步骤 4-5:同步写 .verify-passed 与 .review-passed 的 pause_decisions ack 字段
91
+ // 1. 先全量校验两个 marker 都存在且都含该 pause decision,fail-closed:任一不满足 → 不写任何 marker
92
+ if (!existsSync(verifyPath))
93
+ return FAIL('.verify-passed 不存在');
94
+ if (!existsSync(reviewPath))
95
+ return FAIL('.review-passed 不存在');
96
+ // 剥 "pause_decisions:" 前缀得到数字 id 字符串
97
+ const pdIdStr = findingId.replace(/^pause_decisions:/, '');
98
+ const verifyMarker = parseYaml(await readFile(verifyPath, 'utf8'));
99
+ const reviewMarker = parseYaml(await readFile(reviewPath, 'utf8'));
100
+ const verifyPds = verifyMarker.pause_decisions ?? [];
101
+ const reviewPds = reviewMarker.pause_decisions ?? [];
102
+ const verifyPd = verifyPds.find((pd) => String(pd['id']) === pdIdStr);
103
+ if (!verifyPd)
104
+ return FAIL(`.verify-passed pause_decisions 无 id=${pdIdStr}`);
105
+ const reviewPd = reviewPds.find((pd) => String(pd['id']) === pdIdStr);
106
+ if (!reviewPd)
107
+ return FAIL(`.review-passed pause_decisions 无 id=${pdIdStr}`);
108
+ // 2. 两个 marker 都校验通过 → 写入同一 ack 值(保证一致性)
109
+ verifyPd['severity_acked_by'] = user;
110
+ verifyPd['severity_acked_at'] = ackedAt;
111
+ reviewPd['severity_acked_by'] = user;
112
+ reviewPd['severity_acked_at'] = ackedAt;
113
+ // 3. 双 marker 原子写:第二个写失败时 writeMarkersAtomic 自动恢复第一个并抛错
114
+ const backups = await writeMarkersAtomic([
115
+ { path: verifyPath, content: verifyMarker },
116
+ { path: reviewPath, content: reviewMarker },
117
+ ]);
118
+ // 4. pause decision 无 FindingHashPayload,ackLogFindingHash 为 null
119
+ return { ok: true, ackLogFindingHash: null, backups };
120
+ }
121
+ if (action === 'downgrade') {
122
+ // §5.1 downgrade 行:仅允许 WARNING → SUGGESTION,CRITICAL/SUGGESTION 均拒绝
123
+ if (!existsSync(verifyPath))
124
+ return FAIL('.verify-passed 不存在');
125
+ const marker = parseYaml(await readFile(verifyPath, 'utf8'));
126
+ const findings = marker.verify_findings ?? [];
127
+ const f = findings.find((x) => String(x.id) === findingId);
128
+ if (!f)
129
+ return FAIL(`verify_findings 无 id=${findingId}`);
130
+ // severity 校验:仅 WARNING 允许 downgrade;CRITICAL 无 ack 路径,SUGGESTION 无需降级
131
+ if (f.severity !== 'WARNING') {
132
+ return FAIL(`downgrade 仅允许 WARNING → SUGGESTION,当前 severity=${String(f.severity)} 不支持`);
133
+ }
134
+ // 固定写 'WARNING'(spec 语义:downgraded_from 记录降级前的原始级别)
135
+ f.downgraded_from = 'WARNING';
136
+ // 先改 severity,再重算 hash(使 hash 反映新 severity=SUGGESTION)
137
+ f.severity = 'SUGGESTION';
138
+ f.downgrade_acked_by = params.user;
139
+ f.downgrade_rationale = params.rationale;
140
+ // 重算 finding_hash:此时 f.severity 已是 SUGGESTION
141
+ const newHash = computeFindingHash(extractHashPayload(f));
142
+ f.finding_hash = newHash;
143
+ // 原子写 .verify-passed,备份供 A5 事务回滚
144
+ const backups = await writeMarkersAtomic([{ path: verifyPath, content: marker }]);
145
+ return { ok: true, ackLogFindingHash: newHash, backups };
146
+ }
147
+ // 其余 action:不写 marker,finding_hash 为 null
148
+ return { ok: true, ackLogFindingHash: null, backups: [] };
149
+ }
150
+ catch (e) {
151
+ // marker 写失败 → writeMarkersAtomic 已自恢复所有已写 marker;此处转 ok:false
152
+ return FAIL(`marker 写入失败(已回滚): ${e instanceof Error ? e.message : String(e)}`);
153
+ }
154
+ }
155
+ //# sourceMappingURL=marker-ack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marker-ack.js","sourceRoot":"","sources":["../../../src/core/ack/marker-ack.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ack-log.d.ts","sourceRoot":"","sources":["../../src/core/ack-log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ack-log.d.ts","sourceRoot":"","sources":["../../src/core/ack-log.ts"],"names":[],"mappings":"AAaA,6BAA6B;AAC7B,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;IAC3C;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,YAAY,GAAG,eAAe,GAAG,eAAe,GAAG,QAAQ,CAAC;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;8EAE8E;AAC9E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,mBAAmB;AACnB,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAM7E,0BAA0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAmBD;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BxF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAQ/F;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA2ChG;AAMD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAkBrF;AAED,wCAAwC;AACxC,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,WAAW,EAAE,EACzB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAC9B,uBAAuB,CAsCzB"}
@@ -10,10 +10,11 @@ import { canonicalHash } from './canonical-json.js'; // plan-9g Task 3:全 JSONL
10
10
  // ──────────────────────────────────────────────────────────────────────────────
11
11
  /** pending-acks 目录相对于 changeRoot 的路径 */
12
12
  const PENDING_DIR_REL = '.evidence/pending-acks';
13
- /** 文件名正则:匹配 <findingId>-<safeTimestamp>.yaml */
14
- // findingId 由数字组成;\d+ 捕获
15
- // safeTimestamp ISO 时间戳中冒号已替换为连字符后的结果
16
- const PENDING_FILE_RE = /^(\d+)-(.+)\.yaml$/;
13
+ /** 文件名正则:匹配 <encodeURIComponent(findingId)>-<safeTimestamp>.yaml */
14
+ // 文件名 <encodeURIComponent(findingId)>-<safeTimestamp>.yaml
15
+ // safeTimestamp = ISO 时间戳冒号替换连字符:YYYY-MM-DDTHH-MM-SS.mmmZ
16
+ // timestamp 段从右精确锚定 → group 1(findingId)即使含 '-' 也无切分歧义
17
+ const PENDING_FILE_RE = /^(.+)-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2}\.\d{3}Z)\.yaml$/;
17
18
  // ──────────────────────────────────────────────────────────────────────────────
18
19
  // 公开 API
19
20
  // ──────────────────────────────────────────────────────────────────────────────
@@ -62,9 +63,10 @@ export async function appendAckLog(changeRoot, entry) {
62
63
  * Windows 安全:ISO 时间戳中的 ':' 替换为 '-'(冒号在 Windows 文件名中非法)
63
64
  */
64
65
  export function getPendingPath(changeRoot, findingId, timestamp) {
65
- // 将 ISO 时间戳中的冒号替换为连字符,确保 Windows 文件系统兼容
66
66
  const safeTimestamp = timestamp.replace(/:/g, '-');
67
- const fileName = `${findingId}-${safeTimestamp}.yaml`;
67
+ // findingId 可能含 ':'(pause_decisions:<id>),encodeURIComponent 编码为 %3A;
68
+ // 纯数字 id 编码后不变 → 向后兼容
69
+ const fileName = `${encodeURIComponent(findingId)}-${safeTimestamp}.yaml`;
68
70
  // path.join 在 Windows 上返回反斜杠;统一替换为正斜杠,使路径在跨平台测试中可靠匹配
69
71
  // Windows 文件系统 API 同时接受正斜杠路径
70
72
  return path.join(changeRoot, PENDING_DIR_REL, fileName).replace(/\\/g, '/');
@@ -99,7 +101,8 @@ export async function listPending(changeRoot, findingId) {
99
101
  if (!match)
100
102
  continue; // 跳过不符合命名规范的文件
101
103
  // match[1] 和 match[2] 由正则捕获组保证存在,但 TypeScript 认为可能 undefined
102
- const parsedFindingId = match[1] ?? '';
104
+ // group 1 encodeURIComponent 编码后的 findingId,decodeURIComponent 还原原始值
105
+ const parsedFindingId = decodeURIComponent(match[1] ?? '');
103
106
  const safeTimestamp = match[2] ?? '';
104
107
  // 可选 findingId 过滤
105
108
  if (findingId !== undefined && parsedFindingId !== findingId)
@@ -1 +1 @@
1
- {"version":3,"file":"ack-log.js","sourceRoot":"","sources":["../../src/core/ack-log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ack-log.js","sourceRoot":"","sources":["../../src/core/ack-log.ts"],"names":[],"mappings":"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"}