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
|
@@ -1,46 +1,51 @@
|
|
|
1
|
-
<!-- WORKFLOW-START -->
|
|
2
|
-
<!-- 此区域由 create-vibe-workflow 自动生成,重跑 CLI 时会更新 -->
|
|
3
|
-
|
|
4
|
-
## AI 协作工具链
|
|
5
|
-
|
|
6
|
-
本项目使用多层 AI
|
|
7
|
-
|
|
8
|
-
```
|
|
9
|
-
你的业务需求
|
|
10
|
-
↓
|
|
11
|
-
①
|
|
12
|
-
↓
|
|
13
|
-
②
|
|
14
|
-
↓
|
|
15
|
-
③
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
### 标准开发流程
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
|
29
|
-
|
|
30
|
-
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
1
|
+
<!-- WORKFLOW-START -->
|
|
2
|
+
<!-- 此区域由 create-vibe-workflow 自动生成,重跑 CLI 时会更新 -->
|
|
3
|
+
|
|
4
|
+
## AI 协作工具链
|
|
5
|
+
|
|
6
|
+
本项目使用多层 AI 工具协作体系,确保代码质量和开发纪律:
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
你的业务需求
|
|
10
|
+
↓
|
|
11
|
+
① 需求规格化 — 把想法变成结构化需求
|
|
12
|
+
↓
|
|
13
|
+
② 计划审查 — 拆解任务、验证假设、识别风险
|
|
14
|
+
↓
|
|
15
|
+
③ 流程纪律 — TDD / 文档反写 / 安全检查 / 代码审查
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### 标准开发流程
|
|
19
|
+
|
|
20
|
+
> 完整 9 步流程(含各步骤完成标志 / 跳过条件)见 `.claude/rules/development-workflow.md`
|
|
21
|
+
|
|
22
|
+
### 常用命令
|
|
23
|
+
|
|
24
|
+
| 场景 | 命令 | 说明 |
|
|
25
|
+
|------|------|------|
|
|
26
|
+
| 开发新功能 | 从第①步开始 | 先澄清需求,再拆计划 |
|
|
27
|
+
| 修 Bug | 先写复现步骤 → ⑤→⑥ | 遵循 TDD + 审查流程 |
|
|
28
|
+
| 代码审查 | 第⑥步 | 写完代码立即执行 |
|
|
29
|
+
| 安全检查 | 第⑦步 | 敏感模块必须执行 |
|
|
30
|
+
| 提交代码 | 第⑧→⑨步 | 同步文档后再提交 |
|
|
31
|
+
|
|
32
|
+
## 技术栈
|
|
33
|
+
|
|
34
|
+
- **语言**: TypeScript 5.x (strict mode)
|
|
35
|
+
- **前端**: Next.js 15 (App Router) + shadcn/ui + Tailwind CSS
|
|
36
|
+
- **后端**: NestJS 11 (REST API)
|
|
37
|
+
- **数据库**: PostgreSQL 16+ + Drizzle ORM
|
|
38
|
+
- **校验**: Zod(前后端共享 schema)
|
|
39
|
+
- **测试**: Vitest (单元) + Playwright (E2E)
|
|
40
|
+
|
|
41
|
+
## 项目约定
|
|
42
|
+
|
|
43
|
+
| 约定 | 说明 |
|
|
44
|
+
|------|------|
|
|
45
|
+
| 代码风格 | 见 `.claude/rules/coding-style.md` |
|
|
46
|
+
| Git 规范 | 见 `.claude/rules/git-workflow.md` |
|
|
47
|
+
| 测试要求 | 见 `.claude/rules/testing.md` |
|
|
48
|
+
| 安全标准 | 见 `.claude/rules/security.md`(仅 auth/finance/system 模块强制执行) |
|
|
49
|
+
| 设计模式 | 统一使用 Repository + Service 层 |
|
|
50
|
+
|
|
51
|
+
<!-- WORKFLOW-END -->
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<!-- WORKFLOW-START -->
|
|
2
|
+
<!-- 此区域由 create-vibe-workflow 自动生成,重跑 CLI 时会更新 -->
|
|
3
|
+
|
|
4
|
+
## AI 协作工具链
|
|
5
|
+
|
|
6
|
+
本项目使用多层 AI 工具协作体系:
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
你的业务需求
|
|
10
|
+
↓
|
|
11
|
+
① 需求规格化 — 把想法变成结构化需求
|
|
12
|
+
↓
|
|
13
|
+
② 计划审查 — 拆解任务、验证假设
|
|
14
|
+
↓
|
|
15
|
+
③ 流程纪律 — TDD / 文档反写 / 安全检查
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### 标准开发流程
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
① 需求澄清 → ② 计划拆分 → ③ 研究复用
|
|
22
|
+
→ ④ TodoList编写 → ⑤ TDD开发 → ⑥ 代码审查
|
|
23
|
+
→ ⑦ 安全审查 → ⑧ 文档反写 → ⑨ 提交归档
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 常用命令
|
|
27
|
+
|
|
28
|
+
| 场景 | 命令 |
|
|
29
|
+
|------|------|
|
|
30
|
+
| 开发新功能 | 从第①步开始,先写 PRD/用户故事 |
|
|
31
|
+
| 修 Bug | 先写复现步骤,再修 |
|
|
32
|
+
| 审查代码 | 每次写完代码后执行 |
|
|
33
|
+
| 提交代码 | 检查文档同步后提交 |
|
|
34
|
+
|
|
35
|
+
## 技术栈
|
|
36
|
+
|
|
37
|
+
- 语言: TypeScript 5.x (strict mode)
|
|
38
|
+
- 框架: Next.js 15 (App Router)
|
|
39
|
+
- UI: shadcn/ui + Tailwind CSS 4
|
|
40
|
+
- 样式: CSS Modules / Tailwind CSS
|
|
41
|
+
- 状态管理: React hooks + Server State (SWR/TanStack Query)
|
|
42
|
+
- 校验: Zod schema
|
|
43
|
+
- 测试: Vitest (单元) + Playwright (E2E)
|
|
44
|
+
- 部署: Vercel
|
|
45
|
+
|
|
46
|
+
<!-- WORKFLOW-END -->
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!-- WORKFLOW-START -->
|
|
2
|
+
<!-- 此区域由 create-vibe-workflow 自动生成,重跑 CLI 时会更新 -->
|
|
3
|
+
|
|
4
|
+
## AI 协作工具链
|
|
5
|
+
|
|
6
|
+
本项目使用多层 AI 工具协作体系:
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
你的业务需求
|
|
10
|
+
↓
|
|
11
|
+
① 需求规格化 — 把想法变成结构化需求
|
|
12
|
+
↓
|
|
13
|
+
② 计划审查 — 拆解任务、验证假设
|
|
14
|
+
↓
|
|
15
|
+
③ 流程纪律 — TDD / 文档反写 / 安全检查
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### 标准开发流程
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
① 需求澄清 → ② 计划拆分 → ③ 研究复用
|
|
22
|
+
→ ④ TodoList编写 → ⑤ TDD开发 → ⑥ 代码审查
|
|
23
|
+
→ ⑦ 安全审查 → ⑧ 文档反写 → ⑨ 提交归档
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 常用命令
|
|
27
|
+
|
|
28
|
+
| 场景 | 命令 |
|
|
29
|
+
|------|------|
|
|
30
|
+
| 开发新功能 | 从第①步开始,先写 PRD/用户故事 |
|
|
31
|
+
| 修 Bug | 先写复现步骤,再修 |
|
|
32
|
+
| 审查代码 | 每次写完代码后执行 |
|
|
33
|
+
| 提交代码 | 检查文档同步后提交 |
|
|
34
|
+
|
|
35
|
+
## 技术栈
|
|
36
|
+
|
|
37
|
+
- 语言: TypeScript 5.x (strict mode)
|
|
38
|
+
- 运行时: Node.js 20+ (LTS)
|
|
39
|
+
- 框架: Express / Fastify (REST API)
|
|
40
|
+
- 数据库: PostgreSQL 16+ / MySQL / SQLite(按需)
|
|
41
|
+
- ORM: Drizzle ORM / Prisma
|
|
42
|
+
- 校验: Zod schema(可前后端共享)
|
|
43
|
+
- 认证: JWT / Session-based
|
|
44
|
+
- 测试: Vitest (单元+集成)
|
|
45
|
+
- 部署: Docker + PM2 / Systemd
|
|
46
|
+
|
|
47
|
+
<!-- WORKFLOW-END -->
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "CSO"
|
|
3
|
+
description: "首席安全官模式 — 基础设施优先的安全审计。源自 gstack /cso"
|
|
4
|
+
category: "Security"
|
|
5
|
+
tags: ["安全", "审计", "OWASP", "STRIDE", "gstack"]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# CSO
|
|
9
|
+
|
|
10
|
+
## 职责
|
|
11
|
+
|
|
12
|
+
以首席安全官(Chief Security Officer)视角执行基础设施级安全审计。覆盖代码、依赖、CI/CD 和架构层面的安全风险。
|
|
13
|
+
|
|
14
|
+
## 触发条件
|
|
15
|
+
|
|
16
|
+
| 条件 | 操作 |
|
|
17
|
+
|------|------|
|
|
18
|
+
| 修改了 auth/认证模块 | **必须**运行 |
|
|
19
|
+
| 修改了 finance/支付模块 | **必须**运行 |
|
|
20
|
+
| 修改了 system/系统管理模块 | **必须**运行 |
|
|
21
|
+
| 涉及用户数据处理 | **必须**运行 |
|
|
22
|
+
| 其他模块 | **可以**跳过 |
|
|
23
|
+
|
|
24
|
+
如果不需要安全审查,跳过此步骤。
|
|
25
|
+
|
|
26
|
+
## 工作模式
|
|
27
|
+
|
|
28
|
+
<%= USER_LEVEL === 'vibe-coder' ? `
|
|
29
|
+
### 面向非专业编程人员(Vibe Coder)
|
|
30
|
+
|
|
31
|
+
安全审查就是"检查你的项目有没有被攻击的风险":
|
|
32
|
+
- 会用通俗语言解释每个安全问题——"这个像你家门没锁"
|
|
33
|
+
- 修复建议是可操作的具体步骤
|
|
34
|
+
- 不要担心发现很多问题——早发现比晚上线出问题好得多
|
|
35
|
+
- 重点关注:密码泄露、数据泄露、权限漏洞
|
|
36
|
+
` : `
|
|
37
|
+
### 面向专业开发者
|
|
38
|
+
|
|
39
|
+
- 两层模式:daily(零噪音,高置信度)和 comprehensive(深度扫描)
|
|
40
|
+
- 关注架构层面的安全设计,而非具体代码风格
|
|
41
|
+
- 评估威胁模型,而不仅仅是漏洞扫描
|
|
42
|
+
` %>
|
|
43
|
+
|
|
44
|
+
## 两种运行模式
|
|
45
|
+
|
|
46
|
+
### Daily 模式(默认)
|
|
47
|
+
|
|
48
|
+
**适用**:每次提交前快速检查
|
|
49
|
+
**置信度门槛**:8/10——只报告高置信度问题
|
|
50
|
+
**检查范围**:核心安全项
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# 运行 daily 模式
|
|
54
|
+
/cso
|
|
55
|
+
# 或
|
|
56
|
+
/cso daily
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Comprehensive 模式
|
|
60
|
+
|
|
61
|
+
**适用**:月度深度安全审查 / 大版本发布前
|
|
62
|
+
**置信度门槛**:2/10——任何可疑项都报告
|
|
63
|
+
**检查范围**:全部 5 个阶段
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# 运行 comprehensive 模式
|
|
67
|
+
/cso comprehensive
|
|
68
|
+
# 或
|
|
69
|
+
/cso full
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## 步骤
|
|
73
|
+
|
|
74
|
+
### 阶段 1:Secrets Archaeology(密钥考古)
|
|
75
|
+
|
|
76
|
+
扫描所有代码、配置文件和 git 历史中的敏感信息:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
### 扫描内容
|
|
80
|
+
|
|
81
|
+
□ 代码中硬编码的 API Key(搜索模式:/sk-[a-zA-Z0-9]{20,}|api[-_]?key|api_key/)
|
|
82
|
+
□ 密码硬编码(搜索模式:/password\s*[=:]["']\w+/)
|
|
83
|
+
□ Token 硬编码(搜索模式:/token\s*[=:]["']\w+/)
|
|
84
|
+
□ 私钥文件(*.key, *.pem, *.pfx, *.p12)
|
|
85
|
+
□ .env 文件是否被提交到 git 历史
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Daily 模式**:只扫描工作区变更文件。
|
|
89
|
+
**Comprehensive 模式**:扫描整个代码库 + `git log --all -p` 搜索历史。
|
|
90
|
+
|
|
91
|
+
### 阶段 2:依赖供应链安全
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
### 检查项
|
|
95
|
+
|
|
96
|
+
□ 已知漏洞(运行 npm audit / pip audit / cargo audit)
|
|
97
|
+
□ 未固定版本(package.json 中的 ^ ~ 前缀)
|
|
98
|
+
□ 过期的依赖(超过 1 年未更新)
|
|
99
|
+
□ 引入的新的依赖是否有安全记录
|
|
100
|
+
□ devDependencies 是否包含不应出现在 production 的包
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# 根据项目语言运行
|
|
105
|
+
npm audit 2>&1 | tail -20
|
|
106
|
+
# 或
|
|
107
|
+
pnpm audit 2>&1 | tail -20
|
|
108
|
+
# 或其他语言的依赖审计
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 阶段 3:CI/CD 管道安全
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
### 检查项
|
|
115
|
+
|
|
116
|
+
□ CI 中是否暴露了环境变量(如 PR 中打印 env)
|
|
117
|
+
□ CI 脚本是否有注入风险(如 eval 用户输入)
|
|
118
|
+
□ CI 是否有 artifact 泄露风险
|
|
119
|
+
□ 是否使用了有风险的 GitHub Actions(unpinned third-party actions)
|
|
120
|
+
□ CI 中是否缓存了凭证/token
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**检查文件**:`.github/workflows/`、`.gitlab-ci.yml`、`Jenkinsfile` 等。
|
|
124
|
+
|
|
125
|
+
### 阶段 4:OWASP Top 10 快速扫描
|
|
126
|
+
|
|
127
|
+
| 类别 | 检查项 |
|
|
128
|
+
|------|--------|
|
|
129
|
+
| **A01: Broken Access Control** | API 端点是否都有权限检查?IDOR 风险? |
|
|
130
|
+
| **A02: Cryptographic Failures** | 密码是否 hash?传输是否用 HTTPS? |
|
|
131
|
+
| **A03: Injection** | SQL/NoSQL/Command 注入风险? |
|
|
132
|
+
| **A04: Insecure Design** | 是否有速率限制?是否有重放攻击防护? |
|
|
133
|
+
| **A05: Security Misconfiguration** | 是否留有 debug 端点?CORS 配置? |
|
|
134
|
+
| **A06: Vulnerable Components** | 依赖版本是否过旧? |
|
|
135
|
+
| **A07: Auth Failures** | Session 管理?MFA?暴力破解防护? |
|
|
136
|
+
| **A08: Data Integrity Failures** | 是否有反序列化风险?签名验证? |
|
|
137
|
+
| **A09: Logging Failures** | 是否有审计日志?异常检测? |
|
|
138
|
+
| **A10: SSRF** | 是否允许用户指定 URL 请求? |
|
|
139
|
+
|
|
140
|
+
**Daily 模式**:只检查被修改的模块相关条目。
|
|
141
|
+
**Comprehensive 模式**:检查所有条目。
|
|
142
|
+
|
|
143
|
+
### 阶段 5:STRIDE 威胁模型(仅 Comprehensive)
|
|
144
|
+
|
|
145
|
+
如果涉及 auth / finance / system 模块,执行 STRIDE 威胁建模:
|
|
146
|
+
|
|
147
|
+
| 威胁 | 问题 | 评估 |
|
|
148
|
+
|------|------|------|
|
|
149
|
+
| **S**poofing(伪造) | 能否伪造身份? | ✅ / ⚠️ / ❌ |
|
|
150
|
+
| **T**ampering(篡改) | 能否篡改数据? | ✅ / ⚠️ / ❌ |
|
|
151
|
+
| **R**epudiation(抵赖) | 能否否认操作? | ✅ / ⚠️ / ❌ |
|
|
152
|
+
| **I**nformation Disclosure(信息泄露) | 数据是否泄露? | ✅ / ⚠️ / ❌ |
|
|
153
|
+
| **D**enial of Service(拒绝服务) | 能否让服务不可用? | ✅ / ⚠️ / ❌ |
|
|
154
|
+
| **E**levation of Privilege(权限提升) | 能否越权操作? | ✅ / ⚠️ / ❌ |
|
|
155
|
+
|
|
156
|
+
每个威胁评估包括:
|
|
157
|
+
- 受影响的功能
|
|
158
|
+
- 攻击向量
|
|
159
|
+
- 影响范围
|
|
160
|
+
- 缓解措施
|
|
161
|
+
|
|
162
|
+
## 输出报告
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
## CSO 审计报告
|
|
166
|
+
|
|
167
|
+
模式:Daily / Comprehensive
|
|
168
|
+
范围:<模块列表>
|
|
169
|
+
|
|
170
|
+
### 阶段 1:Secrets Archaeology ✅ / ❌
|
|
171
|
+
发现:<N> 个问题
|
|
172
|
+
|
|
173
|
+
### 阶段 2:Dependency Supply Chain ✅ / ❌
|
|
174
|
+
发现:<N> 个问题
|
|
175
|
+
|
|
176
|
+
### 阶段 3:CI/CD Security ✅ / ❌ / ⏭ 跳过
|
|
177
|
+
发现:<N> 个问题
|
|
178
|
+
|
|
179
|
+
### 阶段 4:OWASP Top 10 ✅ / ❌
|
|
180
|
+
发现:<N> 个问题
|
|
181
|
+
|
|
182
|
+
### 阶段 5:STRIDE Threat Model ✅ / ❌ / ⏭ 跳过
|
|
183
|
+
发现:<N> 个问题
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### 需要立即修复(CRITICAL)
|
|
188
|
+
|
|
189
|
+
1. <问题> — <修复步骤>
|
|
190
|
+
|
|
191
|
+
### 建议修复(HIGH)
|
|
192
|
+
|
|
193
|
+
1. <问题> — <修复步骤>
|
|
194
|
+
|
|
195
|
+
### 安全评级:A / B / C / D / F
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## 安全评级标准
|
|
199
|
+
|
|
200
|
+
| 级别 | 标准 |
|
|
201
|
+
|------|------|
|
|
202
|
+
| A | 零 CRITICAL,零 HIGH |
|
|
203
|
+
| B | 零 CRITICAL,1-3 个 HIGH |
|
|
204
|
+
| C | 1 个 CRITICAL 或 4+ 个 HIGH |
|
|
205
|
+
| D | 2+ 个 CRITICAL |
|
|
206
|
+
| F | 涉及数据泄露/权限提升的 CRITICAL |
|
|
207
|
+
|
|
208
|
+
## 提示
|
|
209
|
+
|
|
210
|
+
- Daily 模式保持零噪音——只报告需要关注的问题
|
|
211
|
+
- Comprehensive 模式用于月审或大版本发布前
|
|
212
|
+
- 发现 secrets 泄露后立即指导用户轮换密钥
|
|
213
|
+
- 不要为了检查而检查——每个问题要提供可操作的修复步骤
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Office Hours"
|
|
3
|
+
description: "YC Office Hours — 产品需求验证:值不值得做,最小切口是什么,用户是否有迫切需求"
|
|
4
|
+
category: "Planning"
|
|
5
|
+
tags: ["需求", "策略", "验证", "gstack"]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Office Hours
|
|
9
|
+
|
|
10
|
+
## 职责
|
|
11
|
+
|
|
12
|
+
在动手写代码之前,先验证这个想法是否值得做。来自 gstack `/office-hours`。
|
|
13
|
+
|
|
14
|
+
核心问题:**在投入大量时间之前,确认你要解决的确实是真正的问题。**
|
|
15
|
+
|
|
16
|
+
## 两种模式
|
|
17
|
+
|
|
18
|
+
### Startup 模式(新产品/新功能探索)
|
|
19
|
+
|
|
20
|
+
用六个强制性问题挑战需求假设:
|
|
21
|
+
|
|
22
|
+
1. **需求现实** — 用户现在用什么方式解决这个问题?(如果没有现行的替代方案,可能不是真需求)
|
|
23
|
+
2. **现状束缚** — 用户为什么不能/不愿意继续用现有方案?
|
|
24
|
+
3. **迫切程度** — 这个问题有多痛?用户愿意花多少钱/时间解决?
|
|
25
|
+
4. **最小切口** — 最窄的场景是什么?只做一件什么事就能验证?
|
|
26
|
+
5. **观察方式** — 你怎么知道用户真的用了、真的需要?
|
|
27
|
+
6. **未来适配** — 6 个月后这个方案还能持续满足吗?
|
|
28
|
+
|
|
29
|
+
### Builder 模式(业余项目/Hackathon/学习项目)
|
|
30
|
+
|
|
31
|
+
面向构建者的设计思考:
|
|
32
|
+
|
|
33
|
+
1. 你想创造什么体验?
|
|
34
|
+
2. 相似的项目有哪些?你与它们的不同是什么?
|
|
35
|
+
3. 你手里有哪些工具/资源/技能?
|
|
36
|
+
4. 如果只做 20%,实现 80% 的体验——砍掉哪 80%?
|
|
37
|
+
5. 你个人最兴奋的 1 个点是什么?(聚焦那个点)
|
|
38
|
+
|
|
39
|
+
## 工作模式
|
|
40
|
+
|
|
41
|
+
<%= USER_LEVEL === 'vibe-coder' ? `
|
|
42
|
+
### 面向非专业编程人员(Vibe Coder)
|
|
43
|
+
|
|
44
|
+
- 用生活化的语言提问,不要用 "demand validation"、"market sizing" 之类的词
|
|
45
|
+
- 用户可能描述的是"我想做一个 XX 工具",你不知道是市场还是个人需求
|
|
46
|
+
- 帮用户分清"真需求"和"一时兴起"
|
|
47
|
+
- 如果需求不够聚焦,帮用户缩小到最小可用版本
|
|
48
|
+
- 用类比和举例帮用户理解
|
|
49
|
+
` : `
|
|
50
|
+
### 面向专业开发者
|
|
51
|
+
|
|
52
|
+
- 可以直接讨论 TAM、竞争格局、商业模式
|
|
53
|
+
- 关注技术可行性和资源约束
|
|
54
|
+
- 可以一起做竞品分析和技术预研
|
|
55
|
+
` %>
|
|
56
|
+
|
|
57
|
+
## 步骤
|
|
58
|
+
|
|
59
|
+
### 1. 理解需求
|
|
60
|
+
|
|
61
|
+
用户描述想做什么。不要急于挑战,先完整理解。
|
|
62
|
+
|
|
63
|
+
### 2. 选择模式
|
|
64
|
+
|
|
65
|
+
根据需求的成熟度选择模式:
|
|
66
|
+
- 用户很确定要做 → Startup 模式
|
|
67
|
+
- 用户还在探索/不确定 → Builder 模式
|
|
68
|
+
- 用户可以自己选
|
|
69
|
+
|
|
70
|
+
### 3. 逐问题讨论
|
|
71
|
+
|
|
72
|
+
一个问题一个问题地引导讨论。每轮只问一个问题,等用户回答后再继续。
|
|
73
|
+
|
|
74
|
+
### 4. 产出决策记录
|
|
75
|
+
|
|
76
|
+
讨论结束后,将结论写入 `docs/designs/YYYY-MM-DD-<topic>-office-hours.md`:
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
# Office Hours: <主题>
|
|
80
|
+
日期: YYYY-MM-DD
|
|
81
|
+
|
|
82
|
+
## 核心判断
|
|
83
|
+
<值不值得做?为什么?>
|
|
84
|
+
|
|
85
|
+
## 最小切口
|
|
86
|
+
<P0 是什么?>
|
|
87
|
+
|
|
88
|
+
## 关键风险
|
|
89
|
+
<最可能失败的原因?>
|
|
90
|
+
|
|
91
|
+
## 下一步
|
|
92
|
+
<做什么?>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 什么时候用 / 什么时候不用
|
|
96
|
+
|
|
97
|
+
| 用 `/office-hours` | 跳过 |
|
|
98
|
+
|-------------------|------|
|
|
99
|
+
| 新功能想法 | Bug 修复 |
|
|
100
|
+
| 新产品方向 | 纯技术重构 |
|
|
101
|
+
| 用户说"我想做 X..." | 用户说"修复 Y" |
|
|
102
|
+
| 不确定优先级 | 需求已在 PRD 中明确 |
|
|
103
|
+
| 探讨"值不值得做" | 已经确定了要做,只需"怎么做" |
|
|
104
|
+
|
|
105
|
+
## 与其他命令的关系
|
|
106
|
+
|
|
107
|
+
- `/office-hours` → 确认值得做 → `/brainstorm` → 方案设计
|
|
108
|
+
- `/office-hours` → 确认不值得做 → 记录原因,不用再深入
|
|
109
|
+
- `/office-hours` → 不确定 → 建议先做小实验验证
|