• - auto-continue.sh:sentinel 检测只认 transcript 的 assistant 行(修自匹配 bug——
      block reason 自带 [ERP-HALT] 字面量、下次 Stop 命中自己,钩子实际只能续跑一次);
      窗口 60→200 行,兜住「横幅在前、诊断在后」的回合;删 4000B 字节增长启发式
      (与 PostToolUse 清零重复且方向性错误——纯文字空转一轮也超 4000B,上限永远到不了);
      reason 文案去掉对已删 skill 链的指挥与 [ERP-HALT] 字面量。
    - [ERP-HALT] 补全到全部刻意停下点(合计 12 处打印点):add-req 4 处(前置拦截/
      基线停下/空增量/完成横幅)、coding-start 步骤 1/2、plan 阶段 5 处(plan-start
      终结闸 / downstream-gen A5 / db-design-gen 审阅 / scope-lock 骨架 / project-init
      安装失败);coding-start :130 说明文字去字面量防误触发。
    - StopFailure:官方语义为「输出与退出码被忽略、无 decision 控制」(无法在钩子层
      自动续跑;核实于 2026-06-11 code.claude.com/docs/en/hooks.md)。接线
      log-stop-failure.sh:记录中断时间与 error_type 到 $TMPDIR/erp-stopfailure.log,
      供人工/外部 watcher 据此续跑。
    - coding.mjs preflight:起跑线按 docs/04 § 零探测 node/JDK/DB 客户端/测试入口,
      工具链缺失带安装/配置命令的诊断 halt——不再拖到 test-gate 才爆、白跑几十分钟编码。
    zichun authored
     
    Browse Code »
  • P1#2 — validate-ddl 支持增量 migration:
    - parseDDL 新增第三遍 mergeAlterStatements:ALTER TABLE ADD COLUMN /
      ADD [UNIQUE] INDEX|KEY / ADD PRIMARY KEY 并入对应表(仅追加式,
      MODIFY/CHANGE/DROP/RENAME 不处理;并集与文件顺序无关)。
    - CLI 接受多个 DDL 文件:node validate-ddl docs/03 sql/migrations/V*.sql,
      CREATE + 各 V_n 的 ALTER ADD 并集 ↔ docs/03 累积 SSoT 做 4 维比对。
    - add-req SKILL 新增「增量 DDL 校验(fail-closed)」闸门,替换原「多 migration 不适用」说明。
    - 7 个新测试(含 DEFAULT 字面量里的 ALTER 文本不被误吃);52/52 通过。
    
    P1#3 — coding 首跑自动建需求台账基线:
    - coding-start 透传 pluginRoot;coding.mjs ensureLedgerBaseline()
      首跑若 .req-ledger.json 缺失则 commit 基线(幂等、best-effort、缺 pluginRoot 静默跳过),
      使日后 /add-req 能识别增量、免空跑。
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    yanghl authored
     
    Browse Dir »
  • P0 — add-req 从不 git-commit 自己的产物,导致工作树脏、coding-start 起 coding.mjs
    时撞「工作树必须干净」前置(HALT 或被误并进功能分支):
    - 步骤 0 基线:写 .req-ledger.json 后 git add+commit
    - 步骤 6:把本次全部增量产物(docs/01/02/03/05/08 + sql/migrations/V_n + .req-ledger.json)
      在当前(默认)分支统一 git commit,并用 status --porcelain 复核工作树干净
    
    P1#1 — RESUME.md 原先只在主循环末尾写,硬中断(进程被杀)到不了写入点 → 本次运行零 handoff:
    - 每个模块 runMilestone 落定后即 best-effort 追加一条「✅ 模块完成」(含本模块自主决策摘要),
      按 decStart 水位线切出本模块决策;使硬中断也能复盘已完成到哪、各模块做过哪些假设
    - loop-end 的 halt / 全完成汇总条目保留(halt 原因是 per-milestone 无法捕获的)
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    yanghl authored
     
    Browse Code »
  • 初始 Plan 完结后追加/修改需求时,只跑增量、不必整仓重跑。
    
    - lib/req-ledger.mjs(+单测):对 docs/01 REQ 卡 + docs/08 §三 FE 行算 sha256 内容哈希,
      对比 .req-ledger.json,scan/commit 出 new/changed/removed/unchanged
    - skills/plan/add-req:新增 user-invocable 增量入口。基线→检测→校验真实数据→
      A3-delta(写 V_n migration + 同步 docs/03,永不改 V1)→A5-delta(docs/05/02/08)→
      作废 changed 单元的 req-done/milestone tag→提交台账。Router 无需改动,缺 tag 即重跑
    - 变更识别靠内容哈希(非仅 tag 缺失):改过的老 REQ 也能认出并作废其 req-done,
      否则 Router 会跳过它——OpenSpec delta 思路的零依赖落地
    - 首跑无台账则先建基线,避免把存量误当新增重跑整仓
    - plugin.json 注册第 9 个 skill + 版本 0.2.0→0.3.0;CLAUDE 模板 Schema 演化补增量 V_n 规约
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    yanghl authored
     
    Browse File »