SKILL.md
4.02 KB
name: project-init description: A0 项目初始化——从插件模板幂等地复制 CLAUDE.md / docs/01-需求清单/index.md / docs/04-技术规范.md / docs/08-模块任务管理.md(已存在则跳过),并初始化 Git(如未初始化)。session-start 在 docs/08 缺失时派发本 skill。 user-invocable: false
allowed-tools: Glob Edit Skill Bash(mkdir ) Bash(cp -n *) Bash(git init) Bash(command -v *) Bash(uname *) Bash(brew *) Bash(apt *) Bash(apt-get *) Bash(yum *) Bash(apk *) Bash(export PATH=) Bash(echo *)
所有输出必须使用中文。
你负责在项目目录中创建初始文件结构,已存在的文件不覆盖。
执行步骤
步骤 0:打印当前位置流程图
向用户展示当前在 A 阶段流程中的位置:
┌──────────────────────────────────────────────────────┐
│ 📋 阶段 A:规划(一次性) │
│ │
│ ▶ A0 初始化项目 → A1 锁范围(REQ 卡片) │
│ ↓ │
│ 等你审阅 REQ,重新运行 /plan-start 继续 │
│ ↓ │
│ A2 生成骨架 → A3 生成 DB 设计 → A4 初始化 DB → A5 生成下游文档│
│ ↓ │
│ 规划阶段到此结束 │
└──────────────────────────────────────────────────────┘
A. 幂等复制模板文件
用 Bash 一次性完成。cp -n 表示"不覆盖已存在的文件":
mkdir -p docs/01-需求清单
cp -n "${CLAUDE_SKILL_DIR}/templates/CLAUDE-template.md" CLAUDE.md
cp -n "${CLAUDE_SKILL_DIR}/templates/docs-01-index-template.md" docs/01-需求清单/index.md
cp -n "${CLAUDE_SKILL_DIR}/templates/docs-04-stack-template.md" docs/04-技术规范.md
cp -n "${CLAUDE_SKILL_DIR}/templates/docs-08-initial-template.md" docs/08-模块任务管理.md
完成后,用 Edit 在 docs/08-模块任务管理.md 中勾选:
- [ ] 项目文件骨架已创建(CLAUDE.md + docs/01-需求清单/index.md + docs/04-技术规范.md)
B. 依赖检查 + 自动安装(命令行工具)
对 git、mysql 两个工具依次执行以下流程。
- 如果缺失,尝试自动安装。
- 如果检测到不在 PATH,尝试添加进 PATH,并加载。
全部通过后打印单行汇总再进入步骤 C:
[project-init] 依赖检查: git ✓ mysql ✓
完成后,用 Edit 在 docs/08-模块任务管理.md 中勾选:
- [ ] 依赖检查通过
C. 初始化 Git(如尚未初始化)
用 Glob 检查 .git/ 目录是否存在。
- 不存在 → 用
Bash执行git init。 - 已存在 → 跳过。
完成后,用 Edit 在 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,不等用户手动输入。