Commit Graph
2 Commits
Author SHA1 Message Date
joywayerandClaude Opus 4.8 abc6281ec0 回迁工具:check-redlines 增量模式(--staged-diff)+ 存量扫描(--scan-all)+ setup 脚本
为「老项目回迁这套强制体系」补三件套,核心是不搞大爆炸清理:

- check-redlines.js:新增 --staged-diff(只查本次新增行,老代码存量违规不阻塞,
  新代码从此强制合规)与 --scan-all(可编辑正式代码 ES5 存量违规,只报不挡)。
- .githooks/pre-commit:按本地 git 配置 redlines.stagedmode 选严格(整文件)/增量(新增行)。
- setup-redlines.sh:一键激活+自检——迁移清单、node/权限、set core.hooksPath、
  存量扫描;`--diff` 一键切增量模式供老项目用。
- 已测:scan-all 报本仓库 0 存量违规;增量模式放行含老违规文件的干净新增行、
  拦新增违规行;严格模式整文件拦;setup 幂等且模板保持严格。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 13:19:27 +08:00
joywayerandClaude Opus 4.8 1d9bc049f1 硬约束:机械红线校验(PreToolUse 阻断 + git pre-commit)+ PostCompact 重注入
把可机器判定的硬红线从"投喂"升级为"硬拦截",并补上事后/工具无关/压缩三个缺口:

- .claude/hooks/check-redlines.js:校验「可编辑范围」(路径级,禁改平台/
  vendor/00_Surface/02_Input/server 平台,app.js 例外) 与「严格 ES5」(运行时
  .js 禁箭头/模板串/class/let/const,去注释与字符串后高信号匹配)。双模式:
  PreToolUse 读工具入参、命中即 deny 阻止写入;--staged 扫暂存文件、命中即
  非零退出阻断提交。
- settings.json:PreToolUse 增挂 check-redlines(在 remind 之前);新增
  PostCompact 钩子清空 .spec-injected,使压缩后下次编辑重新全量注入规范。
- .githooks/pre-commit + core.hooksPath=.githooks:提交边界硬闸,工具无关
  (Claude Code/别的编辑器/人手改都过)。
- 已校准:81 个现有运行时 js 零 ES5 误报(可编辑的 framework 25 文件全过),
  平台文件正确判为禁改;真违规(箭头/模板/const/class/改 vendor/改 class)全拦、
  合法 ES5 与注释里的 => 全放行;pre-commit 实测拦住 ES5 违规提交。

判断类规范(职责单一/数据权威设计/房间隔离)机器判不了,不在本层,仍靠投喂
+(可选)改后复审 agent。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 09:25:59 +08:00