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.
- package/README.md +248 -57
- package/dist/adapters/next-only/skills.recommend.json +1 -0
- package/dist/adapters/node-api/skills.recommend.json +1 -0
- package/dist/cli.js +163 -5
- package/dist/cli.js.map +1 -1
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +255 -44
- package/dist/generator.js.map +1 -1
- package/dist/questions.d.ts +11 -1
- package/dist/questions.d.ts.map +1 -1
- package/dist/questions.js +103 -16
- package/dist/questions.js.map +1 -1
- package/dist/templates/claude-md/CLAUDE.zh-CN.md +51 -46
- package/dist/templates/claude-md/next-only/CLAUDE.zh-CN.md +46 -0
- package/dist/templates/claude-md/node-api/CLAUDE.zh-CN.md +47 -0
- package/dist/templates/commands/gstack/cso.md.ejs +213 -0
- package/dist/templates/commands/gstack/office-hours.md.ejs +109 -0
- package/dist/templates/commands/gstack/review.md.ejs +192 -0
- package/dist/templates/commands/gstack/ship.md.ejs +256 -0
- package/dist/templates/commands/opsx/apply.md.ejs +106 -0
- package/dist/templates/commands/opsx/archive.md.ejs +88 -0
- package/dist/templates/commands/opsx/explore.md.ejs +84 -0
- package/dist/templates/commands/opsx/propose.md.ejs +185 -0
- package/dist/templates/commands/superpowers/brainstorm.md.ejs +240 -0
- package/dist/templates/commands/superpowers/tdd.md.ejs +230 -0
- package/dist/templates/commands/superpowers/verify.md.ejs +211 -0
- package/dist/templates/commands/workflow/plan.md.ejs +219 -0
- package/dist/templates/hooks/check-deps.mjs +66 -65
- package/dist/templates/memory/.gitkeep +0 -0
- package/dist/templates/memory/MEMORY.md.ejs +88 -0
- package/dist/templates/memory/dev-notes.md.ejs +61 -0
- package/dist/templates/memory/troubleshooting.md.ejs +30 -0
- package/dist/templates/rules/agents.md +49 -49
- package/dist/templates/rules/coding-style.md +156 -117
- package/dist/templates/rules/development-workflow.md +103 -50
- package/dist/templates/rules/git-workflow.md +103 -47
- package/dist/templates/rules/hooks.md +159 -0
- package/dist/templates/rules/hooks.md.ejs +159 -0
- package/dist/templates/rules/memory.md +106 -0
- package/dist/templates/rules/memory.md.ejs +106 -0
- package/dist/templates/rules/patterns.md +117 -48
- package/dist/templates/rules/performance.md +108 -0
- package/dist/templates/rules/performance.md.ejs +108 -0
- package/dist/templates/rules/security.md +52 -37
- package/dist/templates/rules/testing.md +83 -30
- package/dist/templates/settings/settings.template.json +18 -2
- package/dist/templates/skills/advanced/caveman/SKILL.md.ejs +144 -0
- package/dist/templates/skills/advanced/diagnose/SKILL.md.ejs +159 -0
- package/dist/templates/skills/advanced/grill-with-docs/SKILL.md.ejs +154 -0
- package/dist/templates/skills/advanced/improve-codebase-architecture/SKILL.md.ejs +172 -0
- package/dist/templates/skills/backend/backend-patterns/SKILL.md.ejs +263 -0
- package/dist/templates/skills/database/database-migrations/SKILL.md.ejs +202 -0
- package/dist/templates/skills/database/postgres-patterns/SKILL.md.ejs +235 -0
- package/dist/templates/skills/devops/deployment-patterns/SKILL.md.ejs +228 -0
- package/dist/templates/skills/devops/docker-patterns/SKILL.md.ejs +215 -0
- package/dist/templates/skills/frontend/frontend-patterns/SKILL.md.ejs +195 -0
- package/dist/templates/skills/skill-manifest.json +59 -0
- package/dist/templates/skills/skills-lock.template.json +12 -0
- package/dist/templates/skills/testing/e2e-testing/SKILL.md.ejs +224 -0
- package/dist/templates/skills/workflow/coding-standards/SKILL.md.ejs +143 -0
- package/dist/templates/skills/workflow/search-first/SKILL.md.ejs +103 -0
- package/dist/templates/skills/workflow/security-review/SKILL.md.ejs +146 -0
- package/dist/templates/skills/workflow/strategic-compact/SKILL.md.ejs +108 -0
- package/dist/templates/skills/workflow/tdd-workflow/SKILL.md.ejs +104 -0
- package/dist/templates/skills/workflow/verification-loop/SKILL.md.ejs +144 -0
- package/dist/utils.d.ts +40 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +110 -0
- package/dist/utils.js.map +1 -0
- package/package.json +2 -2
- package/templates/claude-md/CLAUDE.zh-CN.md +51 -46
- package/templates/claude-md/next-only/CLAUDE.zh-CN.md +46 -0
- package/templates/claude-md/node-api/CLAUDE.zh-CN.md +47 -0
- package/templates/commands/gstack/cso.md.ejs +213 -0
- package/templates/commands/gstack/office-hours.md.ejs +109 -0
- package/templates/commands/gstack/review.md.ejs +192 -0
- package/templates/commands/gstack/ship.md.ejs +256 -0
- package/templates/commands/opsx/apply.md.ejs +106 -0
- package/templates/commands/opsx/archive.md.ejs +88 -0
- package/templates/commands/opsx/explore.md.ejs +84 -0
- package/templates/commands/opsx/propose.md.ejs +185 -0
- package/templates/commands/superpowers/brainstorm.md.ejs +240 -0
- package/templates/commands/superpowers/tdd.md.ejs +230 -0
- package/templates/commands/superpowers/verify.md.ejs +211 -0
- package/templates/commands/workflow/plan.md.ejs +219 -0
- package/templates/hooks/check-deps.mjs +66 -65
- package/templates/memory/.gitkeep +0 -0
- package/templates/memory/MEMORY.md.ejs +88 -0
- package/templates/memory/dev-notes.md.ejs +61 -0
- package/templates/memory/troubleshooting.md.ejs +30 -0
- package/templates/rules/agents.md +49 -49
- package/templates/rules/coding-style.md +156 -117
- package/templates/rules/development-workflow.md +103 -50
- package/templates/rules/git-workflow.md +103 -47
- package/templates/rules/hooks.md +159 -0
- package/templates/rules/memory.md +106 -0
- package/templates/rules/patterns.md +117 -48
- package/templates/rules/performance.md +108 -0
- package/templates/rules/security.md +52 -37
- package/templates/rules/testing.md +83 -30
- package/templates/settings/settings.template.json +18 -2
- package/templates/skills/advanced/caveman/SKILL.md.ejs +144 -0
- package/templates/skills/advanced/diagnose/SKILL.md.ejs +159 -0
- package/templates/skills/advanced/grill-with-docs/SKILL.md.ejs +154 -0
- package/templates/skills/advanced/improve-codebase-architecture/SKILL.md.ejs +172 -0
- package/templates/skills/backend/backend-patterns/SKILL.md.ejs +263 -0
- package/templates/skills/database/database-migrations/SKILL.md.ejs +202 -0
- package/templates/skills/database/postgres-patterns/SKILL.md.ejs +235 -0
- package/templates/skills/devops/deployment-patterns/SKILL.md.ejs +228 -0
- package/templates/skills/devops/docker-patterns/SKILL.md.ejs +215 -0
- package/templates/skills/frontend/frontend-patterns/SKILL.md.ejs +195 -0
- package/templates/skills/skill-manifest.json +59 -0
- package/templates/skills/skills-lock.template.json +12 -0
- package/templates/skills/testing/e2e-testing/SKILL.md.ejs +224 -0
- package/templates/skills/workflow/coding-standards/SKILL.md.ejs +143 -0
- package/templates/skills/workflow/search-first/SKILL.md.ejs +103 -0
- package/templates/skills/workflow/security-review/SKILL.md.ejs +146 -0
- package/templates/skills/workflow/strategic-compact/SKILL.md.ejs +108 -0
- package/templates/skills/workflow/tdd-workflow/SKILL.md.ejs +104 -0
- 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
|
-
|
|
3
|
+
[English](#english) | **中文**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> 我在实际项目中验证过的 Claude Code 完整工作流配置。一条命令安装全部:规则 + 技能 + 命令 + 记忆系统。
|
|
6
|
+
> 面向非专业编程人员——用自然语言写代码。
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 我的工作流怎么来的
|
|
11
|
+
|
|
12
|
+
我用这套配置开发了完整的生产系统(21 个业务模块,生产运行数月)。
|
|
13
|
+
|
|
14
|
+
四个开源项目各自独立开发,部分模块存在重叠冲突。我做了以下整合:
|
|
8
15
|
|
|
9
|
-
|
|
16
|
+
- 以 **gstack** 为主干(PR 审查 / 发布流程 / 安全审计)
|
|
17
|
+
- 用 **Superpowers** 补充(TDD 纪律 / 方案探索 / 验证)
|
|
18
|
+
- 用 **OpenSpec** 管需求(规格化 / 任务拆解 / 变更归档)
|
|
19
|
+
- 从 **everything-claude-code** 中选取规则模板和 hooks
|
|
10
20
|
|
|
11
|
-
|
|
21
|
+
**去重、消冲突、整合成一套一致配置**——就是本工具。
|
|
12
22
|
|
|
13
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
33
|
+
| 参数 | 说明 |
|
|
34
|
+
|------|------|
|
|
35
|
+
| (无) | 交互式安装(检测已有配置自动合并) |
|
|
36
|
+
| `--overwrite` | 强制覆盖已有配置 |
|
|
37
|
+
| `--uninstall` | 按安装清单清理所有生成文件 |
|
|
38
|
+
| `--check` | 健康检查:列出每个文件状态 |
|
|
28
39
|
|
|
29
|
-
|
|
40
|
+
---
|
|
30
41
|
|
|
31
|
-
##
|
|
42
|
+
## 安装后生成的文件
|
|
32
43
|
|
|
33
44
|
```
|
|
34
45
|
你的项目/
|
|
35
46
|
├── .claude/
|
|
36
|
-
│ ├── rules/
|
|
37
|
-
│ │ ├── development-workflow.md
|
|
38
|
-
│ │ ├── coding-style.md
|
|
39
|
-
│ │ ├── git-workflow.md
|
|
40
|
-
│ │ ├── agents.md
|
|
41
|
-
│ │ ├── security.md
|
|
42
|
-
│ │ ├── testing.md
|
|
43
|
-
│ │
|
|
44
|
-
│ ├──
|
|
45
|
-
│ │ ├──
|
|
46
|
-
│ │ └──
|
|
47
|
-
│
|
|
48
|
-
|
|
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
|
-
|
|
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
|
-
|
|
56
|
-
|
|
175
|
+
① 项目名称
|
|
176
|
+
② 项目类型?(网页 / API / 全栈 / 不确定)
|
|
177
|
+
③ 主要语言?(TypeScript / Python / Go / ...)
|
|
178
|
+
④ 需要数据库吗?
|
|
179
|
+
⑤ 编程经验?(Vibe Coder / 专业开发者)
|
|
180
|
+
⑥ 确认技能包(可调整勾选)
|
|
57
181
|
```
|
|
58
182
|
|
|
59
|
-
|
|
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
|
-
|
|
|
68
|
-
|
|
|
69
|
-
|
|
|
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
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
82
|
-
A: 重启 Claude Code。如果依赖组件(gstack/superpowers)未安装,启动时会看到安装指引。
|
|
220
|
+
## License
|
|
83
221
|
|
|
84
|
-
|
|
85
|
-
A: 安装器会自动备份到 `.claude/.backup/`,然后进入合并模式。已有的 CLAUDE.md 内容不会丢失。
|
|
222
|
+
[MIT](./LICENSE)
|
|
86
223
|
|
|
87
|
-
|
|
88
|
-
A: 当前 v1 默认适配 NestJS + Next.js。选择"其他技术栈"可手动配置。v2 将支持更多技术栈。
|
|
224
|
+
---
|
|
89
225
|
|
|
90
|
-
|
|
226
|
+
<a name="english"></a>
|
|
91
227
|
|
|
92
|
-
|
|
228
|
+
# Create Vibe Workflow
|
|
93
229
|
|
|
94
|
-
|
|
230
|
+
**[中文](#)** | English
|
|
95
231
|
|
|
96
|
-
|
|
232
|
+
> Battle-tested Claude Code workflow config I use in production. One command installs everything: rules + skills + commands + memory system.
|
|
97
233
|
|
|
98
|
-
|
|
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
|
-
|
|
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
|
|
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/
|
|
25
|
-
console.log(chalk.white('
|
|
26
|
-
console.log(chalk.white('
|
|
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":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/generator.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|