Co-Authored-By: Claude Code <noreply@anthropic.com>
3.9 KiB
阶段 0 环境版本基线(含 cms 只读基线与 gitignore 验证)
- 记录日期: 2026-10-20 17:16 (UTC+8)
- 记录人: Task 0.1(SiteForge Plan 1 / 阶段 0+1 首个任务)
- 用途: 后续各阶段验收"cms 仓库未被修改"的对照证据。发现任何差异只报告用户,绝不执行 restore/checkout。
1. cms-one 当前 Git 状态
- 分支:
main - 当前 commit(
git rev-parse --short HEAD):
0ead98f
记录时 cms-one 工作树另有一处与本任务无关的既有未提交改动:
M docs/superpowers/plans/2026-10-20-slice-foundation-phase0-1.md(计划文档本身,不属于本任务提交范围)。
2. 环境版本(Step 1)
命令:node -v && pnpm -v && docker --version && docker compose version
v24.13.0
10.7.1
Docker version 29.2.1, build a5c7197
Docker Compose version v5.0.2
| 要求 | 实测 | 结论 |
|---|---|---|
| node ≥ v22.x | v24.13.0 | 通过 |
| pnpm ≥ 9.x | 10.7.1 | 通过 |
| docker 可用 | Docker version 29.2.1 | 通过 |
| compose 可用 | Docker Compose version v5.0.2 | 通过 |
3. cms 只读基线(Step 2,验收对照用)
对冻结仓库 D:\project\cms 只执行了以下两条只读命令,输出原样记录如下。
3.1 git -C D:/project/cms rev-parse HEAD
22a4377a1885983c4a2f5cdc11b06ae219cf81c0
3.2 git -C D:/project/cms status --porcelain
(无输出,退出码 0 —— 工作树干净)
计划中提示"cms 工作树可能存在既有未提交改动(如 about.astro)";实测当前 porcelain 输出为空、退出码 0,即 cms 工作树干净、无未提交改动。
⚠️ 2026-10-20 17:25 更新(规格审查期间发现):cms 是活跃开发中的仓库——审查期间 HEAD 已由
22a4377前进到c8c2aa2(并行会话提交"关于页员工横排网格")。因此本节基线降级为信息性记录(记录我们开始工作时的快照),不再作为"逐字节一致"的验收断言。对本项目真正不变的不变量是:SiteForge 项目自身绝不向 cms 执行任何写操作(流程纪律);阶段验收时另外记录当时所见 cms HEAD 供参考,发现任何异常只报告用户。
4. gitignore 验证(Step 3)
4.1 计划原命令:git check-ignore -v storage artifacts .env
.gitignore:12:.env .env
退出码 0。仅 .env 命中;storage、artifacts 无输出。原因:两者在 .gitignore 中为目录型规则(storage/ 于第 10 行、artifacts/ 于第 5 行),且这两个目录当前尚不存在——对不存在的裸路径名,git 无法判定其为目录,故目录型规则不命中。
4.2 带斜杠复验:git check-ignore -v storage/ artifacts/ .env
.gitignore:10:storage/ storage/
.gitignore:5:artifacts/ artifacts/
.gitignore:12:.env .env
退出码 0。三条路径各命中一条忽略规则,覆盖确认有效(目录一经创建即被忽略)。
4.3 git add --dry-run .env.example
fatal: pathspec '.env.example' did not match any files
退出码 128。原因:.env.example 文件当前尚不存在(属后续脚手架任务的产出),dry-run 无从执行,已如实记录。
4.4 反排除规则的等价验证:git check-ignore -v .env.example
.gitignore:14:!.env.example .env.example
check-ignore 按规则判定、不依赖文件存在:最终匹配的是第 14 行的否定规则 !.env.example,证明反排除生效——.env.example 一经创建即可正常 git add,不会被忽略。
4.5 结论
.gitignore 对 storage/(:10)、artifacts/(:5)、.env(:12)的忽略与 !.env.example(:14)的反排除均验证有效;唯一偏差是 4.3 的 dry-run 因文件不存在而无法执行,已用 4.4 等价验证补足。
5. PostgreSQL 镜像计划
- 使用固定 tag:
postgres:16(不使用latest)。
本文件为验收证据,一经提交不应修改。