小组项目任务 · 四件事按顺序完成:建仓库 → 定规约 → 立规范 → 落骨架。规范要写在 Harness 读得到的地方,后面几课都在这个基础上增量交付
README.md(一句话定位 + 本机怎么跑起来)、.gitignore、可选的 LICENSE。.gitignore 必须先于任何代码入库;仓库留一份只写键名的 .env.example,明文值只存在于各人本机的 .env。YYYY-MM-DD-短横小写英文名 命名,验收通过后归档;提交信息写清「改了什么、依据哪条规约」。README.md 跑通一次,确认不存在「只在某人机器上能跑」。openspec init --tools <你的 Harness> 把仓库规约化;本课用到四个命令:/opsx-propose、/opsx-validate、/opsx-apply、/opsx-archive。/opsx-propose 起草变更,四份文件齐全:proposal.md(为什么做与边界)、design.md(选型与取舍)、specs/<能力>/spec.md(每条能力一组 Scenario)、tasks.md(可执行清单,骨架排最前)。/opsx-validate <变更名> --strict 通过;另起一个不带历史上下文的 Harness 会话,只给仓库路径与变更名,它能照 tasks.md 实现;每条能力与 Scenario 的对应关系能列成两列表。规范只有两种落法:常驻约束写成规则(规则目录里的规则文件,或根目录的 AGENTS.md / CLAUDE.md),每次改代码都会被读到;按场景执行的流程写成技能(如「按规范补测试」)。没落进这两处的规范,等于没有规范。每条都要写清检查方式;对照课件里的 CampusClaw 样例文件自查——差距通常在判据,不在篇幅。
/opsx-apply 只跑 tasks.md 里的骨架这一组,先得到一个能启动的壳,不要一次生成整套业务代码;壳的结构要符合上节定的分层。/health;日志从骨架起就按规范写成一行一条 JSON。.env → 一条命令启动 → /health 成功,按 README.md 走,中间不需要口头补充。v0.0.1-skeleton);实现过程中的调整同步回 design.md、tasks.md 与规范文件。README.md 能从零跑起来;在全部提交历史中搜不到任何密钥明文值。--strict 校验通过;每条能力至少一组 Scenario,其中失败路径不少于四条;能力与 Scenario 一一对应。/health 免认证可访问并返回依赖连通状态;日志一行一条 JSON 且带请求标识。docs/lesson-07/;交叉评审(peer review)——组内另一人在自己机器上从零启动成功。密钥只放在各人本机的 .env,不进代码、不进镜像层、不进前端,也不进版本历史。