硬约束:机械红线校验(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>
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
# 机械红线校验:对本次暂存的文件做「可编辑范围 + 严格 ES5」硬检查,命中即阻断提交。
|
||||
# 工具无关——无论 Claude Code、别的编辑器还是人手改,提交都会过这道闸。
|
||||
# 启用(每个克隆一次性):git config core.hooksPath .githooks
|
||||
exec node "$(git rev-parse --show-toplevel)/.claude/hooks/check-redlines.js" --staged
|
||||
Reference in New Issue
Block a user