--- name: project-init description: A0 项目初始化——从插件模板幂等地用 Read/Write 落盘 CLAUDE.md / docs/01-需求清单/index.md / docs/04-技术规范.md / docs/08-模块任务管理.md(已存在则跳过),做跨平台依赖检查(git/mysql/node 缺失则按 OS 自动安装,装不上再停下提示用户),并初始化 Git(如未初始化)。plan-start 在 docs/08 缺失时派发本 skill。 user-invocable: false allowed-tools: Read Write Glob Edit Skill Bash(node *) Bash(git init) Bash(git rev-parse *) --- **所有输出必须使用中文。** ## 执行步骤 ### A. 幂等复制模板文件 | 模板 | 目标路径 | |---|---| | `${CLAUDE_SKILL_DIR}/templates/CLAUDE-template.md` | `CLAUDE.md` | | `${CLAUDE_SKILL_DIR}/templates/docs-01-index-template.md` | `docs/01-需求清单/index.md` | | `${CLAUDE_SKILL_DIR}/templates/docs-04-stack-template.md` | `docs/04-技术规范.md` | | `${CLAUDE_SKILL_DIR}/templates/docs-08-initial-template.md` | `docs/08-模块任务管理.md` | 完成后,在 `docs/08-模块任务管理.md` 中勾选: - ` - [ ] 项目文件骨架已创建(CLAUDE.md + docs/01-需求清单/index.md + docs/04-技术规范.md)` ### B. 依赖检查 检测 git/mysql/node 是否在 PATH; 缺失则自动安装;如果安装失败再停下并提示用户. 完成后,在 `docs/08-模块任务管理.md` 中勾选: - ` - [ ] 依赖检查通过` ### C. 初始化 Git(如尚未初始化) 执行 `git rev-parse --is-inside-work-tree`。 - 退出码 `0` 且 stdout 为 `true` → 已在 git 仓库中,跳过。 - 非 `0` → 用 `Bash` 执行 `git init`。 不要用 `.git/` 目录是否存在判断:git worktree / 子模块 / 某些托管环境会使用 `.git` 文件,目录探测会误判。 在 `docs/08-模块任务管理.md` 中勾选(A0 子项 + A0 顶层): - ` - [ ] Git 已初始化` - `- [ ] A0 项目初始化 — project-init` ### D. 打印完成横幅并进入 A1 向用户输出: ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [project-init] 项目初始化完成 已创建: ✓ CLAUDE.md(从插件模板复制) ✓ docs/01-需求清单/index.md(待人工填写模块索引) ✓ docs/04-技术规范.md(默认技术栈,A1 让用户确认) ✓ docs/08-模块任务管理.md(全流程进度跟踪) 已勾选:A0 项目初始化 下一步:A1 scope-lock(填写项目概述 + 技术栈 + 需求索引 + REQ 卡片) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` 立即调用 `Skill(scope-lock)` 进入 A1,不等用户手动输入。 ## 参考 - `${CLAUDE_SKILL_DIR}/templates/CLAUDE-template.md` - `${CLAUDE_SKILL_DIR}/templates/docs-01-index-template.md` - `${CLAUDE_SKILL_DIR}/templates/docs-04-stack-template.md` - `${CLAUDE_SKILL_DIR}/templates/docs-08-initial-template.md`