ch3sh-lc/myworkflow/project-init
Claude Code and agent skill by ch3sh-lc/myworkflow
- community
Checking that the SKILL.md file is still in the repository.
Use when 需要在一个文件夹上建立项目文档体系的场景——用户说"初始化项目""建立项目文档体系""创建 CLAUDE.md""项目结构设置""搭建项目骨架""给这个项目建文档",或进入一个还没有 CLAUDE.md 的文件夹、准备在这里长期开发东西时
Install
npx vskill@latest install ch3sh-lc/myworkflow/project-initSKILL.md
项目文档初始化
触发
- 必须触发:用户要求初始化项目 / 建立文档体系 / 创建 CLAUDE.md / 搭建项目骨架;进入一个没有 CLAUDE.md 的文件夹并准备长期开发。
- 隐式触发:CLAUDE.md 不存在,但扫描发现 ≥5 个源文件分布在 ≥2 个目录,且用户本轮明确要在该处持续开发 → 主动建议初始化,不默默等待。
- 不触发:已有 CLAUDE.md 与
docs/体系(走「myworkflow-project-maintain」)、单文件脚本、临时小工具、只读浏览、纯问答。
目标
一次把文档体系建对。目标不是"生成几个文件",而是让后续每个智能体都能按问题查表定位,不必判断"这条内容该写哪"。 8 个位置各回答一个问题(心智模型,后续所有写文档动作都靠它定位)= docs/ 六份(GOAL.md、design/、PROGRESS.md、STATE.md、information/、research/)+ 根目录 CLAUDE.md、STRUCTURE.md;docs/other/ 只是兜底目录,不计入。
| 文件 / 目录 | 回答 | 谁可写 | |
|---|---|---|---|
CLAUDE.md | 怎么工作(规则) | agent | |
STRUCTURE.md | 东西在哪(地图) | agent | |
docs/GOAL.md | 为什么做(长期目标) | 仅用户批准 | |
docs/design/ | 做什么(需求与设计) | agent | |
docs/PROGRESS.md | 做了什么(追加式) | agent | |
docs/STATE.md | 现在在哪(刷新式) | agent | |
docs/information/ | 学到了什么(经验条目) | agent | |
docs/research/ | 外部世界怎么说 | myworkflow-deep-research |
docs/是项目开发过程的文档区,不是文件收容所。旧体系的PROGRESS-LITE.md在新体系中取消,职能由docs/PROGRESS.md的条目区继承。
防破坏护栏(五条,任何写入前先读一遍)
- 写入白名单:只允许 Write/Edit
<root>/CLAUDE.md、<root>/STRUCTURE.md、<root>/docs/**(<root>= 本轮确认的文件夹根)。白名单之外的文件一律不动;确需改动先停下问用户。 - docs/ 准入:只放本项目开发过程产生的文档。判断测试是一个单点事实核查:「这份文档是这次开发中写出来的吗?不是 → 原地不动」。禁止把项目里既有的资料、素材、参考文档搬进
docs/。 - 扫描目的限定:扫描只为"看清现状",扫描结果不得作为搬迁依据。任何移动必须先列逐项计划(源路径 → 目标路径 → 原因),经用户逐项确认后才执行。
- 迁移只做"复制 + 归档",不删除;根目录旧文件默认原样保留;删除必须逐文件确认。
- 覆盖保护:写入前若目标已存在必须先 Read;覆盖超过 20 行既有内容前必须展示 diff 摘要并获确认。
主线(6 阶段)
阶段 0:判定「项目文件夹 vs 常规文件夹」(任何 Write 之前)
硬门禁:进行任何 Write / Edit 之前,必须先 ask_user_question 让用户三选一。禁止先建目录再问,禁止用扫描结果代替用户表态。
三选项:项目文件夹 / 常规文件夹 / 拿不准。选「项目」→ 阶段 2;选「常规」→ 阶段 1;选「拿不准」→ 用下表客观判定:
| 项目信号(≥2 即偏项目) | 常规信号(≥2 即偏常规) | |
|---|---|---|
有 .git/ 且已有提交历史 | 以资料/文档/素材为主(pdf/docx/xlsx/图片/视频占比高) | |
有依赖或构建清单:package.json/pyproject.toml/requirements.txt/go.mod/Cargo.toml | 无构建清单、无测试、无 CI | |
有测试目录或测试框架配置(tests/、*.test.*、pytest.ini) | 文件命名多为日期/主题/编号,无代码组织痕迹 | |
有 CI 配置(.github/workflows/、.gitlab-ci.yml) | 已被编号分类体系管理(如 D:\CH3SH\1.xxx / 2.xxx 树) | |
有 ≥2 个源码目录(src/ 之外还有实质代码目录) | 用户从未声明开发目标,只是"往这里放东西" | |
| 用户已声明要"做出什么"并给出验收标准 | 存在大量与本次无关的历史文件 |
项目信号 ≥2 → 项目文件夹;常规信号 ≥2 → 常规文件夹。两组都 ≥2 时禁止代选,必须回到用户,把两列信号逐条摆出来让用户拍板。
阶段 1:常规文件夹分支(只建 CLAUDE.md)
绝对禁止:在常规文件夹里创建docs/、GOAL.md、PROGRESS.md、design/ 等任何项目文档体系。创建 = 毁坏用户的文件夹。
- CLAUDE.md 不存在 → 新建,内容仅三节:
## 本目录性质(常规文件夹)、## 目录工作约定、## 变更记录。 - CLAUDE.md 已存在 → 只允许在文件末尾追加这三节,禁止改写、重排、删除任何既有内容。若同名小节已存在,只在
## 变更记录下追加一行(日期 + 做了什么),不重复追加整节。 - 已存在的
STRUCTURE.md保留原样(可读、可作参考,但不改不删)。 - 报告一句话:判定为常规文件夹,只登记 CLAUDE.md,未创建
docs/,未移动任何文件。
阶段 2:项目文件夹 — 收集信息与确认 GOAL
- 确认项目根:向上查找
.git/ 构建清单;不明确就问用户,别猜。 - 扫描现状(Glob/Bash 目录树):为 STRUCTURE.md 与信号判定取事实,不作搬迁依据。
- 提取事实:
package.json(名称/技术栈/version)、README.md(定位)、.git/config、.env(端口)。 - 确认 GOAL(强制,不可跳过):问清"最终验收是什么",必须拿到可量化判据(数字 / 阈值 / 分母 / 什么算不达标)。用户答不上来就逐条提议让用户选,不要替用户写死目标。
阶段 3:生成文件(模板)
生成顺序:CLAUDE.md → STRUCTURE.md → docs/GOAL.md → docs/PROGRESS.md → docs/STATE.md → docs/design/ → docs/information/ → docs/research/ → docs/other/。
3.1 `<root>/CLAUDE.md`
适配要点:占位符必须替换为实际结构;小型项目(<20 文件)保持简洁;特殊规则(如"改 .ts 后必须 build")追加在「工作规则」之后;「每次工作的强制步骤」一节不可删除。
3.2 `<root>/STRUCTURE.md`(保留在项目根目录,不在 docs/ 下)
关键原则:按重要性分层(顶层 → 主要子目录 → 更深层);注释写用途不照搬文件名;与实际文件系统 100% 一致。「当前核心事实」从配置提取(.nvmrc/.python-version/go.mod/package.json engines、lock 文件、依赖中的测试框架、.env 的 PORT),不编造。
3.3 `<root>/docs/GOAL.md`
3.4 `<root>/docs/PROGRESS.md`(双层 + 版本号)
标签:[New Feature] 新增 / [Debug] 修复 / [Change] 重构优化 / [Build] 构建部署;同日多条按此顺序排。
版本号 a.b.c(初始值:空体系 0.0.0;已有可运行产物 0.1.0;有 package.json 等代码清单的 version 时以代码清单为准):
| 位 | 语义 | 递增条件 | 谁决定 | |
|---|---|---|---|---|
| a | 大版本 | 项目版本策略定义(如正式发布 0→1、大变动);无策略时仅用户明确要求 | 用户 / 项目策略 | |
| b | 小版本 | 项目版本策略定义(如新增功能 / 模块);无策略时不递增 | 用户 / 项目策略 | |
| c | debug | 项目版本策略定义(如修 bug、重构、文档调整);无策略时不递增 | 用户 / 项目策略 |
版本号属于用户 / 项目策略,智能体不擅自递增:单次改动默认不改版本号,一次改动至多一次(取最高语义);不产生版本的工作不递增。权威源可判定:有代码清单version→ 以代码清单为准,docs/PROGRESS.md头部只引用清单,两者不一致时必须在版本记录区显式记一行并在STATE.md列出差异;无代码清单 →docs/PROGRESS.md头部为权威源,其他文件只引用它。递增与写入的权威执行方是「myworkflow-project-maintain」。
3.5 `<root>/docs/STATE.md`(刷新式)
3.6 `<root>/docs/design/design-01-<主题>.md` — 硬下限 ≥20 行,必须含 背景 / 需求 / 验收标准 / 点清单 四节(下表是骨架,填充后须达标;低于 20 行说明需求没写清,不是"项目小")。
design 内容禁令:只放需求 / 功能 / 设计。禁止写具体代码方案——不写函数签名、数据结构、算法步骤、目录布局。design 是"要什么",不是"怎么实现"。
3.7 `<root>/docs/information/information-01-<主题>.md`
信息条目涵盖:试错结论、用户偏好、环境事实、易踩的坑。
3.8 `<root>/docs/research/`、`<root>/docs/other/`
research/:由myworkflow-deep-research落盘,不建 index.json;目录结构以它正文为准(<主题-slug>/00-总览.md+NN-<要点>.md,大要点可升子目录),本技能不重复定义。other/:兜底,严格准入——只有确实不属于上述任何一类、且确实是本次开发产生的文档才放这里;准入提问仍是那一句「这份文档是这次开发中写出来的吗?不是 → 原地不动」。归档文件命名为progress-archive-YYYY.md。
阶段 4:两个 index.json(schema 与示例)
写入权:index.json只由「myworkflow-project-maintain」写入。本阶段只负责建出初始文件,后续任何状态变更都不得由其他技能直接改。
`docs/design/index.json` 字段:根级 schema_version(固定 1)/ project / updated / status_enum(固定四态);designs[] 每项含 id(与文件名前缀一致)、file(相对 docs/design/ 的文件名,必须能在磁盘定位)、title、created、updated、goal_check(GOAL 回望那一行的原文);points[] 每项含 id(如 design-01-P1,全局唯一)、design、file(必须等于其 designs[].file)、title、status(四态枚举之一)、evidence(可指认的证据:命令 + exitCode/退出码,或产物路径 / sha256;截图路径须可定位)、updated、note(如"历史文档补登记")。
`docs/information/index.json` 字段:根级同上(以 entries[] 取代 designs/points);entries[] 每项含 id(如 info-001,与正文条目号一致)、file(相对 docs/information/)、title(一句话结论)、tags(标签数组,用于筛选)、summary(2–3 句展开,够判断"要不要点开")、created、updated。
状态机四条硬门禁(建库即生效,后续由 myworkflow-project-maintain 执行):
未开发 / 阻塞 / 待验收 / 完成 四态封闭枚举,"开发中"不写进 index——它由docs/STATE.md承载。
evidence为空的点不得置「待验收」。必须有可指认的证据(命令 + exitCode/退出码,或产物路径 / sha256;截图路径须可定位),不接受"已测试"这类无证据表述。
除非用户在本轮对话中明确说出"确认没问题 / 可以了 / 通过了 / 我验收通过",否则状态只能停留在「待验收」。禁止以"我已经验证过""测试全绿"为由自行置为「完成」。用户没说话 = 还没验收。
置「阻塞」必须写具体原因(卡在哪、缺什么、依赖谁);只写"没做完"不许置阻塞。
阶段 5:验证与完成报告
产出物
- 项目文件夹:
<root>/CLAUDE.md、<root>/STRUCTURE.md、<root>/docs/{GOAL.md,STATE.md,PROGRESS.md}、两个index.json、首份 design 与 information 主题文件、research/与other/空目录。 - 常规文件夹:仅
<root>/CLAUDE.md(新建或追加三节),不产出任何其他文件。
完成标志
- [ ] 已 ask_user_question 完成三选一(选"拿不准"时按信号表判定;两组都 ≥2 时已回到用户,未代选)
- [ ] 常规文件夹:未创建
docs/,未改动既有内容,仅新增 / 追加 CLAUDE.md 三节 - [ ] 项目文件夹:GOAL 已由用户确认且含可量化判据
- [ ] 8 个位置的文件全部生成,模板占位符已替换为实际内容
- [ ] 两个 index.json 已建且可解析,状态为四态封闭枚举,四条硬门禁已写入
- [ ] 验证清单 6 项全过;五条防破坏护栏逐条自查通过;完成报告已输出
常见问题
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/project-init/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ch3sh-lc/myworkflow/project-init)