create-vibe-workflow 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +248 -57
  2. package/dist/adapters/next-only/skills.recommend.json +1 -0
  3. package/dist/adapters/node-api/skills.recommend.json +1 -0
  4. package/dist/cli.js +163 -5
  5. package/dist/cli.js.map +1 -1
  6. package/dist/generator.d.ts.map +1 -1
  7. package/dist/generator.js +255 -44
  8. package/dist/generator.js.map +1 -1
  9. package/dist/questions.d.ts +11 -1
  10. package/dist/questions.d.ts.map +1 -1
  11. package/dist/questions.js +103 -16
  12. package/dist/questions.js.map +1 -1
  13. package/dist/templates/claude-md/CLAUDE.zh-CN.md +51 -46
  14. package/dist/templates/claude-md/next-only/CLAUDE.zh-CN.md +46 -0
  15. package/dist/templates/claude-md/node-api/CLAUDE.zh-CN.md +47 -0
  16. package/dist/templates/commands/gstack/cso.md.ejs +213 -0
  17. package/dist/templates/commands/gstack/office-hours.md.ejs +109 -0
  18. package/dist/templates/commands/gstack/review.md.ejs +192 -0
  19. package/dist/templates/commands/gstack/ship.md.ejs +256 -0
  20. package/dist/templates/commands/opsx/apply.md.ejs +106 -0
  21. package/dist/templates/commands/opsx/archive.md.ejs +88 -0
  22. package/dist/templates/commands/opsx/explore.md.ejs +84 -0
  23. package/dist/templates/commands/opsx/propose.md.ejs +185 -0
  24. package/dist/templates/commands/superpowers/brainstorm.md.ejs +240 -0
  25. package/dist/templates/commands/superpowers/tdd.md.ejs +230 -0
  26. package/dist/templates/commands/superpowers/verify.md.ejs +211 -0
  27. package/dist/templates/commands/workflow/plan.md.ejs +219 -0
  28. package/dist/templates/hooks/check-deps.mjs +66 -65
  29. package/dist/templates/memory/.gitkeep +0 -0
  30. package/dist/templates/memory/MEMORY.md.ejs +88 -0
  31. package/dist/templates/memory/dev-notes.md.ejs +61 -0
  32. package/dist/templates/memory/troubleshooting.md.ejs +30 -0
  33. package/dist/templates/rules/agents.md +49 -49
  34. package/dist/templates/rules/coding-style.md +156 -117
  35. package/dist/templates/rules/development-workflow.md +103 -50
  36. package/dist/templates/rules/git-workflow.md +103 -47
  37. package/dist/templates/rules/hooks.md +159 -0
  38. package/dist/templates/rules/hooks.md.ejs +159 -0
  39. package/dist/templates/rules/memory.md +106 -0
  40. package/dist/templates/rules/memory.md.ejs +106 -0
  41. package/dist/templates/rules/patterns.md +117 -48
  42. package/dist/templates/rules/performance.md +108 -0
  43. package/dist/templates/rules/performance.md.ejs +108 -0
  44. package/dist/templates/rules/security.md +52 -37
  45. package/dist/templates/rules/testing.md +83 -30
  46. package/dist/templates/settings/settings.template.json +18 -2
  47. package/dist/templates/skills/advanced/caveman/SKILL.md.ejs +144 -0
  48. package/dist/templates/skills/advanced/diagnose/SKILL.md.ejs +159 -0
  49. package/dist/templates/skills/advanced/grill-with-docs/SKILL.md.ejs +154 -0
  50. package/dist/templates/skills/advanced/improve-codebase-architecture/SKILL.md.ejs +172 -0
  51. package/dist/templates/skills/backend/backend-patterns/SKILL.md.ejs +263 -0
  52. package/dist/templates/skills/database/database-migrations/SKILL.md.ejs +202 -0
  53. package/dist/templates/skills/database/postgres-patterns/SKILL.md.ejs +235 -0
  54. package/dist/templates/skills/devops/deployment-patterns/SKILL.md.ejs +228 -0
  55. package/dist/templates/skills/devops/docker-patterns/SKILL.md.ejs +215 -0
  56. package/dist/templates/skills/frontend/frontend-patterns/SKILL.md.ejs +195 -0
  57. package/dist/templates/skills/skill-manifest.json +59 -0
  58. package/dist/templates/skills/skills-lock.template.json +12 -0
  59. package/dist/templates/skills/testing/e2e-testing/SKILL.md.ejs +224 -0
  60. package/dist/templates/skills/workflow/coding-standards/SKILL.md.ejs +143 -0
  61. package/dist/templates/skills/workflow/search-first/SKILL.md.ejs +103 -0
  62. package/dist/templates/skills/workflow/security-review/SKILL.md.ejs +146 -0
  63. package/dist/templates/skills/workflow/strategic-compact/SKILL.md.ejs +108 -0
  64. package/dist/templates/skills/workflow/tdd-workflow/SKILL.md.ejs +104 -0
  65. package/dist/templates/skills/workflow/verification-loop/SKILL.md.ejs +144 -0
  66. package/dist/utils.d.ts +40 -0
  67. package/dist/utils.d.ts.map +1 -0
  68. package/dist/utils.js +110 -0
  69. package/dist/utils.js.map +1 -0
  70. package/package.json +2 -2
  71. package/templates/claude-md/CLAUDE.zh-CN.md +51 -46
  72. package/templates/claude-md/next-only/CLAUDE.zh-CN.md +46 -0
  73. package/templates/claude-md/node-api/CLAUDE.zh-CN.md +47 -0
  74. package/templates/commands/gstack/cso.md.ejs +213 -0
  75. package/templates/commands/gstack/office-hours.md.ejs +109 -0
  76. package/templates/commands/gstack/review.md.ejs +192 -0
  77. package/templates/commands/gstack/ship.md.ejs +256 -0
  78. package/templates/commands/opsx/apply.md.ejs +106 -0
  79. package/templates/commands/opsx/archive.md.ejs +88 -0
  80. package/templates/commands/opsx/explore.md.ejs +84 -0
  81. package/templates/commands/opsx/propose.md.ejs +185 -0
  82. package/templates/commands/superpowers/brainstorm.md.ejs +240 -0
  83. package/templates/commands/superpowers/tdd.md.ejs +230 -0
  84. package/templates/commands/superpowers/verify.md.ejs +211 -0
  85. package/templates/commands/workflow/plan.md.ejs +219 -0
  86. package/templates/hooks/check-deps.mjs +66 -65
  87. package/templates/memory/.gitkeep +0 -0
  88. package/templates/memory/MEMORY.md.ejs +88 -0
  89. package/templates/memory/dev-notes.md.ejs +61 -0
  90. package/templates/memory/troubleshooting.md.ejs +30 -0
  91. package/templates/rules/agents.md +49 -49
  92. package/templates/rules/coding-style.md +156 -117
  93. package/templates/rules/development-workflow.md +103 -50
  94. package/templates/rules/git-workflow.md +103 -47
  95. package/templates/rules/hooks.md +159 -0
  96. package/templates/rules/memory.md +106 -0
  97. package/templates/rules/patterns.md +117 -48
  98. package/templates/rules/performance.md +108 -0
  99. package/templates/rules/security.md +52 -37
  100. package/templates/rules/testing.md +83 -30
  101. package/templates/settings/settings.template.json +18 -2
  102. package/templates/skills/advanced/caveman/SKILL.md.ejs +144 -0
  103. package/templates/skills/advanced/diagnose/SKILL.md.ejs +159 -0
  104. package/templates/skills/advanced/grill-with-docs/SKILL.md.ejs +154 -0
  105. package/templates/skills/advanced/improve-codebase-architecture/SKILL.md.ejs +172 -0
  106. package/templates/skills/backend/backend-patterns/SKILL.md.ejs +263 -0
  107. package/templates/skills/database/database-migrations/SKILL.md.ejs +202 -0
  108. package/templates/skills/database/postgres-patterns/SKILL.md.ejs +235 -0
  109. package/templates/skills/devops/deployment-patterns/SKILL.md.ejs +228 -0
  110. package/templates/skills/devops/docker-patterns/SKILL.md.ejs +215 -0
  111. package/templates/skills/frontend/frontend-patterns/SKILL.md.ejs +195 -0
  112. package/templates/skills/skill-manifest.json +59 -0
  113. package/templates/skills/skills-lock.template.json +12 -0
  114. package/templates/skills/testing/e2e-testing/SKILL.md.ejs +224 -0
  115. package/templates/skills/workflow/coding-standards/SKILL.md.ejs +143 -0
  116. package/templates/skills/workflow/search-first/SKILL.md.ejs +103 -0
  117. package/templates/skills/workflow/security-review/SKILL.md.ejs +146 -0
  118. package/templates/skills/workflow/strategic-compact/SKILL.md.ejs +108 -0
  119. package/templates/skills/workflow/tdd-workflow/SKILL.md.ejs +104 -0
  120. package/templates/skills/workflow/verification-loop/SKILL.md.ejs +144 -0
package/README.md CHANGED
@@ -1,104 +1,295 @@
1
1
  # Create Vibe Workflow
2
2
 
3
- 一条命令,5 分钟拥有专业 AI 协作开发工作流。
3
+ [English](#english) | **中文**
4
4
 
5
- 面向非专业编程人员(Vibe Coder)的 Claude Code 编排插件——把需求→代码→审查→发布的全流程纪律,打包成一键安装。
5
+ > 我在实际项目中验证过的 Claude Code 完整工作流配置。一条命令安装全部:规则 + 技能 + 命令 + 记忆系统。
6
+ > 面向非专业编程人员——用自然语言写代码。
6
7
 
7
- ## 为什么需要这个?
8
+ ---
9
+
10
+ ## 我的工作流怎么来的
11
+
12
+ 我用这套配置开发了完整的生产系统(21 个业务模块,生产运行数月)。
13
+
14
+ 四个开源项目各自独立开发,部分模块存在重叠冲突。我做了以下整合:
8
15
 
9
- Claude Code 很强大,但"随意对话"模式下容易跑偏:忘了写测试、跳过代码审查、需求理解偏差、文档没人更新。
16
+ - **gstack** 为主干(PR 审查 / 发布流程 / 安全审计)
17
+ - 用 **Superpowers** 补充(TDD 纪律 / 方案探索 / 验证)
18
+ - 用 **OpenSpec** 管需求(规格化 / 任务拆解 / 变更归档)
19
+ - 从 **everything-claude-code** 中选取规则模板和 hooks
10
20
 
11
- 这个插件给你一套经过生产验证的 **9 步开发流程**,告诉 AI 什么时候该做什么、不该做什么。它在泉州佳希(魔方培训机构管理系统,21 个业务模块)中验证了几个月。
21
+ **去重、消冲突、整合成一套一致配置**——就是本工具。
12
22
 
13
- ## 5 分钟上手
23
+ ---
24
+
25
+ ## 快速开始
14
26
 
15
27
  ```bash
16
- # 在你的项目目录下运行
17
28
  npx create-vibe-workflow
18
29
  ```
19
30
 
20
- 回答几个问题:
31
+ 交互式问答 → 重启 Claude Code → 全部生效。
21
32
 
22
- ```
23
- ? 项目名称: my-erp
24
- ? 技术栈: NestJS + Next.js(默认)
25
- ? 包含模块: [x] 9步工作流 [x] 代码规范 [x] Agent编排 [ ] TDD
26
- ? 编程经验: 非专业编程人员
27
- ```
33
+ | 参数 | 说明 |
34
+ |------|------|
35
+ | (无) | 交互式安装(检测已有配置自动合并) |
36
+ | `--overwrite` | 强制覆盖已有配置 |
37
+ | `--uninstall` | 按安装清单清理所有生成文件 |
38
+ | `--check` | 健康检查:列出每个文件状态 |
28
39
 
29
- 安装完成,重启 Claude Code 即可使用。
40
+ ---
30
41
 
31
- ## 会生成什么
42
+ ## 安装后生成的文件
32
43
 
33
44
  ```
34
45
  你的项目/
35
46
  ├── .claude/
36
- │ ├── rules/ 7 个规则文件(9步流程/代码规范/Git等)
37
- │ │ ├── development-workflow.md
38
- │ │ ├── coding-style.md
39
- │ │ ├── git-workflow.md
40
- │ │ ├── agents.md
41
- │ │ ├── security.md
42
- │ │ ├── testing.md
43
- │ │ └── patterns.md
44
- │ ├── hooks/ ← 自动化检查脚本
45
- │ │ ├── post-commit-check.js
46
- │ │ └── check-deps.js
47
- └── settings.json 依赖声明
48
- └── CLAUDE.md ← AI 协作配置(含 Skill routing)
47
+ │ ├── rules/ 10 个规则文件
48
+ │ │ ├── development-workflow.md # 9步流程 + 命令对应表
49
+ │ │ ├── coding-style.md # 编码规范
50
+ │ │ ├── git-workflow.md # Git 提交规范
51
+ │ │ ├── agents.md # Agent 编排指南
52
+ │ │ ├── security.md # 安全检查清单
53
+ │ │ ├── testing.md # 测试规范(TDD)
54
+ │ │ ├── patterns.md # 设计模式
55
+ ├── performance.md # 性能优化指南
56
+ │ │ ├── hooks.md # Hook 配置指南
57
+ │ │ └── memory.md # 记忆系统使用规则
58
+ ├── skills/ 16 个技能(按项目领域筛选)
59
+ │ │ ├── tdd-workflow/ # TDD 红绿重构
60
+ │ │ ├── verification-loop/ # 6 阶段验证
61
+ │ │ ├── security-review/ # 安全检查
62
+ │ │ ├── coding-standards/ # 编码标准
63
+ │ │ ├── search-first/ # 先搜索再编码
64
+ │ │ ├── strategic-compact/ # 策略压缩
65
+ │ │ ├── frontend-patterns/ # 前端通用模式
66
+ │ │ ├── backend-patterns/ # 后端通用模式
67
+ │ │ ├── postgres-patterns/ # PostgreSQL 模式
68
+ │ │ ├── database-migrations/ # 数据库迁移
69
+ │ │ ├── e2e-testing/ # E2E 测试
70
+ │ │ ├── docker-patterns/ # Docker 模式
71
+ │ │ ├── deployment-patterns/ # 部署策略
72
+ │ │ ├── caveman/ # 极简沟通(专业开发者)
73
+ │ │ ├── diagnose/ # 诊断循环(专业开发者)
74
+ │ │ ├── improve-codebase-architecture/ # 架构审计(专业开发者)
75
+ │ │ └── grill-with-docs/ # 文档审查(专业开发者)
76
+ │ ├── commands/ ← 12 个命令(4 个来源)
77
+ │ │ ├── gstack/ # office-hours / review / cso / ship
78
+ │ │ ├── opsx/ # propose / apply / archive / explore
79
+ │ │ ├── superpowers/ # brainstorm / tdd / verify
80
+ │ │ └── workflow/ # plan
81
+ │ ├── memory/ ← 记忆系统
82
+ │ │ ├── MEMORY.md # 4 类型记忆索引
83
+ │ │ ├── dev-notes.md # 开发笔记
84
+ │ │ └── troubleshooting.md # 故障排除记录
85
+ │ ├── hooks/
86
+ │ │ ├── post-commit-check.js # 提交后文档反写提醒
87
+ │ │ └── check-deps.mjs # 依赖组件检测
88
+ │ ├── settings.json # 工作流配置 + hooks
89
+ │ ├── skills-lock.json # 外部技能版本锁定
90
+ │ └── skills.recommend.json # 技术栈推荐技能
91
+ └── CLAUDE.md ← AI 协作配置
49
92
  ```
50
93
 
51
- ## 9 步开发流程
94
+ ---
95
+
96
+ ## 9 步开发流程 + 对应命令
97
+
98
+ | 步骤 | 名称 | 命令 | 可跳过? |
99
+ |------|------|------|----------|
100
+ | ①-a | 需求验证 | `/office-hours` | 仅纯技术任务 |
101
+ | ①-b | 需求规格化 | `/opsx:propose` | 仅纯技术任务 |
102
+ | ①-c | 方案探索 | `/brainstorm` | 明确方案时 |
103
+ | ② | 计划拆分 | `/plan` | <50行小修改 |
104
+ | ③ | 研究复用 | search-first skill | 已有明确模式 |
105
+ | ④ | TodoList | 手动确认 | **不可跳过** |
106
+ | ⑤-a | TDD 开发 | `/tdd` | **不可跳过** |
107
+ | ⑤-b | 完成验证 | `/verify` | **不可跳过** |
108
+ | ⑥ | 代码审查 | `/review` | 仅文档变更 |
109
+ | ⑦ | 安全审查 | `/cso` | 非敏感模块 |
110
+ | ⑧ | 文档反写 | post-commit hook | **不可跳过** |
111
+ | ⑨-a | 发布 | `/ship` | **不可跳过** |
112
+ | ⑨-b | 归档 | `/opsx:archive` | **不可跳过** |
113
+
114
+ ---
115
+
116
+ ## 我用的技能组合
117
+
118
+ 这些是本工具依赖的外部项目(安装后 Claude Code 会提示缺少的组件):
119
+
120
+ | 工具 | 用途 | 安装 |
121
+ |------|------|------|
122
+ | **gstack** | PR 审查 / 安全审计 / 发布流程 / 需求验证 | [garrytan/gstack](https://github.com/garrytan/gstack) |
123
+ | **Superpowers** | TDD 纪律 / 方案探索 / 验证循环 | [obra/superpowers](https://github.com/obra/superpowers) |
124
+ | **OpenSpec** | 需求规格化 / 变更追踪 | [Fission-AI/OpenSpec](https://github.com/Fission-AI/OpenSpec) |
125
+ | **everything-claude-code** | 规则模板 / hooks 基础 | [affaan-m/everything-claude-code](https://github.com/affaan-m/everything-claude-code) |
126
+ | **本工具** | 一键安装上述整合配置 | 见下方 |
127
+
128
+ > 以上外部组件**不强制安装**也能用——核心流程和命令都是独立实现的。
129
+
130
+ ---
131
+
132
+ ## 命令说明
133
+
134
+ 本工具生成的 12 个命令分为四组:
135
+
136
+ **需求 & 规划(5 个)**
137
+
138
+ | 命令 | 用途 |
139
+ |------|------|
140
+ | `/office-hours` | 验证需求:值不值得做、最小切口是什么 |
141
+ | `/opsx:propose` | 规格化:proposal + design + tasks |
142
+ | `/brainstorm` | 方案探索:2-3 方案对比、设计文档 |
143
+ | `/plan` | 计划拆分:P0/P1 子任务、todolist.md |
144
+ | `/opsx:explore` | 探索模式:随时思考、不写代码 |
145
+
146
+ **开发 & 验证(2 个)**
147
+
148
+ | 命令 | 用途 |
149
+ |------|------|
150
+ | `/tdd` | TDD 执行:RED→GREEN→REFACTOR |
151
+ | `/verify` | 完成前验证:编译→测试→lint→安全→diff |
152
+
153
+ **审查 & 安全(2 个)**
154
+
155
+ | 命令 | 用途 |
156
+ |------|------|
157
+ | `/review` | 代码审查:SQL/信任边界/副作用/错误处理 |
158
+ | `/cso` | 安全审计:密钥/供应链/CI/CD/OWASP/STRIDE |
159
+
160
+ **发布 & 归档(3 个)**
161
+
162
+ | 命令 | 用途 |
163
+ |------|------|
164
+ | `/ship` | 发布:merge→verify→review→version→PR |
165
+ | `/opsx:apply` | 实现:逐任务执行并标记完成 |
166
+ | `/opsx:archive` | 归档:变更移至 archive/ |
167
+
168
+ ---
169
+
170
+ ## 交互流程
171
+
172
+ 安装时依次回答:
52
173
 
53
174
  ```
54
- 需求澄清 → ② 计划拆分 → ③ 研究复用
55
- TodoList TDD开发 ⑥ 代码审查
56
- 安全审查 文档反写 ⑨ 提交归档
175
+ 项目名称
176
+ 项目类型?(网页 / API / 全栈 / 不确定)
177
+ 主要语言?(TypeScript / Python / Go / ...)
178
+ ④ 需要数据库吗?
179
+ ⑤ 编程经验?(Vibe Coder / 专业开发者)
180
+ ⑥ 确认技能包(可调整勾选)
57
181
  ```
58
182
 
59
- 每一步都有强制检查点,AI 不能跳过。
183
+ 技能包按项目类型自动推荐,也可手动选择:
184
+
185
+ | 领域 | 何时推荐 | 包含技能 |
186
+ |------|---------|---------|
187
+ | 工作流核心 | 始终 | 6 个(tdd/verify/security/coding/search/compact) |
188
+ | 前端开发 | 网页/全栈 | 1 个(frontend-patterns,框架无关) |
189
+ | 后端开发 | API/全栈 | 1 个(backend-patterns,框架无关) |
190
+ | 数据库 | 有 DB | 2 个(postgres/migrations) |
191
+ | 测试 | 所有类型 | 1 个(e2e-testing) |
192
+ | DevOps | 手动勾选 | 2 个(docker/deployment) |
193
+ | 进阶 | 专业开发者 | 4 个(caveman/diagnose/architecture/grill-docs) |
60
194
 
61
- ## 依赖的外部工具
195
+ ---
196
+
197
+ ## 记忆系统
62
198
 
63
- 本插件是"编排层",需要以下组件配合(安装时会提示):
199
+ 整合四项目的记忆机制,分三层:
64
200
 
65
- | 组件 | 用途 | 必需 |
201
+ | 层级 | 机制 | 触发 |
66
202
  |------|------|------|
67
- | [gstack](https://github.com/garrytan/gstack) | 审查/QA/发布流程 | |
68
- | [Superpowers](https://github.com/anthropics/claude-code-superpowers) | TDD纪律/系统调试 | |
69
- | [OpenSpec](https://github.com/anthropics/openspec) | 需求规格化 | ⚠️ 可选 |
203
+ | L1 工作记忆 | `/context-save` → `/context-restore` | 手动 |
204
+ | L2 项目记忆 | 4 类 memory 文件(user/feedback/project/reference) | AI 自动判断 |
205
+ | L3 变更归档 | `openspec/changes/archive/` 时间线 | 功能完成时 |
206
+
207
+ ---
70
208
 
71
- ## 命令参考
209
+ ## 开发
72
210
 
73
211
  ```bash
74
- npx create-vibe-workflow # 交互式安装(合并模式)
75
- npx create-vibe-workflow --overwrite # 强制覆盖已有配置
76
- npx create-vibe-workflow --uninstall # 清理生成的文件
212
+ npm install
213
+ npm test # vitest 单元测试
214
+ npm run build # tsc + copy-assets
215
+ npm run dev # tsx 直接运行
77
216
  ```
78
217
 
79
- ## 常见问题
218
+ ---
80
219
 
81
- **Q: 安装后没有效果?**
82
- A: 重启 Claude Code。如果依赖组件(gstack/superpowers)未安装,启动时会看到安装指引。
220
+ ## License
83
221
 
84
- **Q: 我之前已经有 CLAUDE.md 和 .claude/ 配置怎么办?**
85
- A: 安装器会自动备份到 `.claude/.backup/`,然后进入合并模式。已有的 CLAUDE.md 内容不会丢失。
222
+ [MIT](./LICENSE)
86
223
 
87
- **Q: 我不用 NestJS/Next.js 怎么办?**
88
- A: 当前 v1 默认适配 NestJS + Next.js。选择"其他技术栈"可手动配置。v2 将支持更多技术栈。
224
+ ---
89
225
 
90
- ## 开源协议
226
+ <a name="english"></a>
91
227
 
92
- MIT License
228
+ # Create Vibe Workflow
93
229
 
94
- ---
230
+ **[中文](#)** | English
95
231
 
96
- ## English Summary
232
+ > Battle-tested Claude Code workflow config I use in production. One command installs everything: rules + skills + commands + memory system.
97
233
 
98
- One-command installer for a production-verified Claude Code development workflow. Designed for vibe coders (non-professional programmers) — structured 9-step process with enforced checkpoints, Chinese-first documentation, and cross-platform support.
234
+ ## What This Does
235
+
236
+ Claude Code is powerful, but free-form conversation goes off the rails. This tool installs a **9-step enforced development process** with **16 curated skills**, **12 workflow commands**, and a **three-layer memory system** — into your project's `.claude/` config.
237
+
238
+ Validated in a **21-module production system** over several months.
239
+
240
+ ## Quick Start
99
241
 
100
242
  ```bash
101
243
  npx create-vibe-workflow
102
244
  ```
103
245
 
104
- Generates `.claude/rules/` (7 rule files), `.claude/hooks/` (auto-checks), and `CLAUDE.md` with skill routing. Declares dependencies on gstack + Superpowers without bundling them.
246
+ Restart Claude Code after installation.
247
+
248
+ ## The 9-Step Workflow
249
+
250
+ | Step | Command | Skip? |
251
+ |------|---------|-------|
252
+ | ①-a Validate | `/office-hours` | Tech tasks only |
253
+ | ①-b Specify | `/opsx:propose` | Tech tasks only |
254
+ | ①-c Design | `/brainstorm` | When clear |
255
+ | ② Plan | `/plan` | <50 line changes |
256
+ | ⑤-a TDD | `/tdd` | **Never** |
257
+ | ⑤-b Verify | `/verify` | **Never** |
258
+ | ⑥ Review | `/review` | Doc-only changes |
259
+ | ⑦ Security | `/cso` | Non-sensitive |
260
+ | ⑧ Doc sync | post-commit hook | **Never** |
261
+ | ⑨-a Ship | `/ship` | **Never** |
262
+ | ⑨-b Archive | `/opsx:archive` | **Never** |
263
+
264
+ ## The Skill Stack
265
+
266
+ | Tool | Role |
267
+ |------|------|
268
+ | **gstack** | PR review / security / ship / office-hours |
269
+ | **Superpowers** | TDD / brainstorm / verify |
270
+ | **OpenSpec** | Spec-driven dev / change tracking |
271
+ | **everything-claude-code** | Rule templates / hooks |
272
+ | **This tool** | One-command installer |
273
+
274
+ None are required — core workflows are standalone.
275
+
276
+ ## Commands
277
+
278
+ ```bash
279
+ npx create-vibe-workflow # Interactive install (merge mode)
280
+ npx create-vibe-workflow --overwrite # Force overwrite
281
+ npx create-vibe-workflow --uninstall # Clean up generated files
282
+ npx create-vibe-workflow --check # Health check
283
+ ```
284
+
285
+ ## Contributing
286
+
287
+ PRs welcome.
288
+
289
+ ```bash
290
+ npm install && npm test && npm run build
291
+ ```
292
+
293
+ ## License
294
+
295
+ [MIT](./LICENSE)
@@ -0,0 +1 @@
1
+ {"recommended": ["next-best-practices", "shadcn", "tailwind-patterns", "react-hooks", "frontend-patterns", "e2e-testing", "vercel-deployment"], "optional": ["coding-standards", "tdd-workflow", "search-first", "security-review", "verification-loop"]}
@@ -0,0 +1 @@
1
+ {"recommended": ["backend-patterns", "express-best-practices", "drizzle-orm", "postgres-patterns", "database-migrations", "docker-patterns", "api-design", "testing-patterns"], "optional": ["coding-standards", "tdd-workflow", "search-first", "security-review", "verification-loop"]}
package/dist/cli.js CHANGED
@@ -2,12 +2,167 @@
2
2
  import { askQuestions } from './questions.js';
3
3
  import { generate } from './generator.js';
4
4
  import chalk from 'chalk';
5
+ import fs from 'node:fs';
6
+ import path from 'node:path';
7
+ import { homedir } from 'node:os';
8
+ // ────────────────────────────────────────────────
9
+ // --check 健康检查
10
+ // ────────────────────────────────────────────────
11
+ async function healthCheck(targetDir) {
12
+ console.log(chalk.cyan.bold('\n🔍 Create Vibe Workflow — 健康检查\n'));
13
+ const claudeDir = path.join(targetDir, '.claude');
14
+ const manifestPath = path.join(claudeDir, '.generated-manifest.json');
15
+ if (!fs.existsSync(claudeDir)) {
16
+ console.log(chalk.yellow(' 状态: 未安装工作流'));
17
+ console.log(chalk.dim(' 运行 npx create-vibe-workflow 开始安装\n'));
18
+ process.exit(0);
19
+ return;
20
+ }
21
+ let manifest = null;
22
+ try {
23
+ manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
24
+ }
25
+ catch {
26
+ // manifest 不存在或损坏
27
+ }
28
+ const results = [];
29
+ // 1. 检查规则文件(含新增)
30
+ const expectedRules = [
31
+ 'development-workflow.md', 'coding-style.md', 'git-workflow.md',
32
+ 'security.md', 'testing.md', 'patterns.md',
33
+ 'performance.md', 'hooks.md', 'memory.md',
34
+ ];
35
+ for (const rule of expectedRules) {
36
+ const p = path.join(claudeDir, 'rules', rule);
37
+ results.push({
38
+ name: `.claude/rules/${rule}`,
39
+ status: fs.existsSync(p) ? 'ok' : 'missing',
40
+ });
41
+ }
42
+ // 2. 检查 hooks
43
+ const expectedHooks = ['post-commit-check.js', 'check-deps.mjs'];
44
+ for (const hook of expectedHooks) {
45
+ const p = path.join(claudeDir, 'hooks', hook);
46
+ results.push({
47
+ name: `.claude/hooks/${hook}`,
48
+ status: fs.existsSync(p) ? 'ok' : 'missing',
49
+ });
50
+ }
51
+ // 3. CLAUDE.md
52
+ const claudeMdPath = path.join(targetDir, 'CLAUDE.md');
53
+ results.push({
54
+ name: 'CLAUDE.md',
55
+ status: fs.existsSync(claudeMdPath) ? 'ok' : 'missing',
56
+ });
57
+ // 4. settings.json
58
+ const settingsPath = path.join(claudeDir, 'settings.json');
59
+ results.push({
60
+ name: '.claude/settings.json',
61
+ status: fs.existsSync(settingsPath) ? 'ok' : 'missing',
62
+ });
63
+ // 5. Skills 目录
64
+ const skillsDir = path.join(claudeDir, 'skills');
65
+ if (fs.existsSync(skillsDir) && fs.readdirSync(skillsDir).length > 0) {
66
+ results.push({ name: '.claude/skills/', status: 'ok' });
67
+ }
68
+ else {
69
+ results.push({ name: '.claude/skills/', status: 'missing', detail: '(未安装或为空)' });
70
+ }
71
+ // 6. Commands 目录(检查所有子目录)
72
+ const commandsRootDir = path.join(claudeDir, 'commands');
73
+ if (fs.existsSync(commandsRootDir)) {
74
+ const cmdCategories = fs.readdirSync(commandsRootDir, { withFileTypes: true })
75
+ .filter(d => d.isDirectory()).map(d => d.name);
76
+ if (cmdCategories.length > 0) {
77
+ for (const cat of cmdCategories) {
78
+ const catDir = path.join(commandsRootDir, cat);
79
+ const cmdFiles = fs.readdirSync(catDir).filter(f => f.endsWith('.md'));
80
+ results.push({
81
+ name: `.claude/commands/${cat}/`,
82
+ status: cmdFiles.length > 0 ? 'ok' : 'missing',
83
+ detail: cmdFiles.length > 0 ? `(${cmdFiles.length} 个命令)` : '(目录为空)',
84
+ });
85
+ }
86
+ }
87
+ else {
88
+ results.push({ name: '.claude/commands/', status: 'missing', detail: '(未安装)' });
89
+ }
90
+ }
91
+ else {
92
+ results.push({ name: '.claude/commands/', status: 'missing', detail: '(未安装)' });
93
+ }
94
+ // 7. Memory 目录
95
+ const memoryDir = path.join(claudeDir, 'memory');
96
+ if (fs.existsSync(path.join(memoryDir, 'MEMORY.md'))) {
97
+ results.push({ name: '.claude/memory/MEMORY.md', status: 'ok' });
98
+ }
99
+ else {
100
+ results.push({ name: '.claude/memory/MEMORY.md', status: 'missing' });
101
+ }
102
+ // 8. skills-lock.json
103
+ const skillsLockPath = path.join(claudeDir, 'skills-lock.json');
104
+ results.push({
105
+ name: '.claude/skills-lock.json',
106
+ status: fs.existsSync(skillsLockPath) ? 'ok' : 'missing',
107
+ });
108
+ // 9. 外部依赖检查
109
+ const globalSkillsDir = join(homedir(), '.claude', 'skills');
110
+ const deps = [
111
+ { name: 'gstack', dir: 'gstack' },
112
+ { name: 'superpowers', dir: 'superpowers' },
113
+ { name: 'openspec (可选)', dir: 'openspec', optional: true },
114
+ ];
115
+ for (const dep of deps) {
116
+ const exists = fs.existsSync(join(globalSkillsDir, dep.dir));
117
+ results.push({
118
+ name: `依赖: ${dep.name}`,
119
+ status: exists ? 'ok' : dep.optional ? 'ok' : 'missing',
120
+ detail: exists ? undefined : dep.optional ? '(未安装,可选)' : '(未安装)',
121
+ });
122
+ }
123
+ // 输出报告
124
+ console.log(chalk.white.bold(' 文件清单:\n'));
125
+ const okCount = results.filter(r => r.status === 'ok').length;
126
+ const missingCount = results.filter(r => r.status === 'missing').length;
127
+ for (const r of results) {
128
+ const icon = r.status === 'ok' ? chalk.green('✅') : chalk.red('❌');
129
+ const detail = r.detail ? ` ${chalk.dim(r.detail)}` : '';
130
+ console.log(` ${icon} ${r.name}${detail}`);
131
+ }
132
+ if (manifest) {
133
+ console.log(chalk.white.bold('\n 安装信息:\n'));
134
+ console.log(` ${chalk.dim('生成工具:')}: ${manifest.generatedBy ?? 'unknown'}`);
135
+ console.log(` ${chalk.dim('生成时间:')}: ${manifest.generatedAt ?? 'unknown'}`);
136
+ const files = manifest.files;
137
+ if (files) {
138
+ console.log(` ${chalk.dim('生成文件数:')}: ${files.length}`);
139
+ }
140
+ }
141
+ console.log(chalk.white('\n ───────────────────────────────────'));
142
+ if (missingCount === 0) {
143
+ console.log(chalk.green(` ✅ 全部正常 (${okCount}/${results.length})`));
144
+ }
145
+ else {
146
+ console.log(chalk.yellow(` ⚠️ ${missingCount} 项缺失 (${okCount}/${results.length} 正常)`));
147
+ console.log(chalk.dim('\n 运行 npx create-vibe-workflow --overwrite 补全缺失文件'));
148
+ }
149
+ console.log();
150
+ process.exit(missingCount > 0 ? 1 : 0);
151
+ }
152
+ function join(...parts) {
153
+ return parts.join(path.sep);
154
+ }
5
155
  async function main() {
6
156
  console.log(chalk.cyan.bold('\n🚀 Create Vibe Workflow\n'));
7
- console.log(chalk.dim('面向非专业编程人员的 Claude Code 开发工作流\n'));
157
+ console.log(chalk.dim('面向非专业编程人员的 Claude Code 开发工作流 — 完整技能包\n'));
8
158
  const args = process.argv.slice(2);
9
159
  const isUninstall = args.includes('--uninstall');
10
160
  const isOverwrite = args.includes('--overwrite');
161
+ const isCheck = args.includes('--check');
162
+ if (isCheck) {
163
+ await healthCheck(process.cwd());
164
+ return;
165
+ }
11
166
  if (isUninstall) {
12
167
  const { uninstall } = await import('./generator.js');
13
168
  await uninstall(process.cwd());
@@ -20,10 +175,13 @@ async function main() {
20
175
  await generate(config);
21
176
  console.log(chalk.green.bold('\n✅ 安装完成!\n'));
22
177
  console.log(chalk.dim('已生成以下内容:'));
23
- console.log(chalk.white(' 📁 .claude/rules/ 开发工作流规则'));
24
- console.log(chalk.white(' 📁 .claude/hooks/ — 自动化检查脚本'));
25
- console.log(chalk.white(' 📄 CLAUDE.md 项目 AI 协作配置'));
26
- console.log(chalk.white(' ⚙️ .claude/settings.json 依赖声明'));
178
+ console.log(chalk.white(' 📁 .claude/rules/ 9 个开发工作流规则'));
179
+ console.log(chalk.white(' 📁 .claude/skills/ — 项目领域技能包'));
180
+ console.log(chalk.white(' 📁 .claude/commands/ 工作流命令(propose/apply/archive/explore)'));
181
+ console.log(chalk.white(' 📁 .claude/memory/ 项目记忆系统'));
182
+ console.log(chalk.white(' 📁 .claude/hooks/ — 自动化检查脚本'));
183
+ console.log(chalk.white(' 📄 CLAUDE.md — 项目 AI 协作配置'));
184
+ console.log(chalk.white(' ⚙️ .claude/settings.json — 工作流配置'));
27
185
  console.log();
28
186
  console.log(chalk.yellow('下一步:重启 Claude Code 即可使用新的工作流'));
29
187
  console.log(chalk.dim('如果尚未安装依赖组件(gstack / superpowers),'));
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKjD,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkHD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAgIxE;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBhE"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAajD,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA+ED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAoRxE;AA8ED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoChE"}