diff --git a/CLAUDE.md b/CLAUDE.md index 925abd0..55ea7b0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -8,6 +8,8 @@ `client/js/01_SubGame/codes/` 和 `server/games` 目前都是**空的**——尚未接入任何具体子游戏。本仓库是平台层 + 可复用框架的脚手架,未来第一个子游戏会在此基础上搭建。 +本仓库是**模板项目**——后续会被克隆出去开新项目。因此所有需要长期保留的约定与知识**一律进仓库**(`docs/` 权威文档、本 CLAUDE.md、`.claude/` 钩子与 `settings.json`、`.githooks/`),**不依赖 Claude memory**(memory 按机器/会话存放、不随 `git clone` 迁移,对模板克隆无效)。 + ## 常用命令 没有配置任何构建/lint/测试工具。仓库里唯一的脚本: @@ -21,6 +23,14 @@ client/scripts/build_spine_data.cmd # 内部调用 build_spine_data.ps1 查看客户端效果需用 HTTP 方式(而非 `file://`)打开 `client/index.html`,例如 `npx http-server client -p 8080`。 +**启用提交前机械红线校验**(严格 ES5、可编辑范围等硬红线的 git 提交闸)——`.githooks/pre-commit` 已随仓库提交,但 `core.hooksPath` 是本地配置、不随克隆迁移,故**每个新克隆需一次性**执行: + +```bash +git config core.hooksPath .githooks +``` + +(Claude Code 内 `.claude/` 的 PreToolUse 钩子会自动生效、无需此步;这一步只为让**提交闸**对所有工具/人手改也生效。测试脚本 `tests/`、`*.test.js`、`*.spec.js` 允许现代语法,不受严格 ES5 拦截;只有正式代码严格 ES5。) + `shared/`(共享算法,待子游戏接入后才有)的改动应按两套文档「§10 测试纪律」的要求跑 Node 单测验证——目前尚未接入测试框架,意味着需要直接用 `node` 运行相应脚本。 ## 可编辑范围