specops 0.2.5 → 0.3.2

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 (201) hide show
  1. package/.opencode/agent/specops-codebase-mapper.md +764 -0
  2. package/.opencode/agent/specops-debugger.md +1246 -0
  3. package/.opencode/agent/specops-executor.md +475 -0
  4. package/.opencode/agent/specops-integration-checker.md +443 -0
  5. package/.opencode/agent/specops-phase-researcher.md +547 -0
  6. package/.opencode/agent/specops-plan-checker.md +690 -0
  7. package/.opencode/agent/specops-planner.md +581 -0
  8. package/.opencode/agent/specops-project-researcher.md +354 -0
  9. package/.opencode/agent/specops-research-synthesizer.md +242 -0
  10. package/.opencode/agent/specops-roadmapper.md +642 -0
  11. package/.opencode/agent/specops-work-verifier.md +573 -0
  12. package/.opencode/references/checkpoints.md +776 -0
  13. package/.opencode/references/continuation-format.md +249 -0
  14. package/.opencode/references/decimal-phase-calculation.md +65 -0
  15. package/.opencode/references/git-integration.md +248 -0
  16. package/.opencode/references/git-planning-commit.md +38 -0
  17. package/.opencode/references/model-profile-resolution.md +34 -0
  18. package/.opencode/references/model-profiles.md +92 -0
  19. package/.opencode/references/phase-argument-parsing.md +61 -0
  20. package/.opencode/references/planning-config.md +196 -0
  21. package/.opencode/references/questioning.md +145 -0
  22. package/.opencode/references/tdd.md +263 -0
  23. package/.opencode/references/ui-brand.md +160 -0
  24. package/.opencode/references/verification-patterns.md +612 -0
  25. package/.opencode/templates/DEBUG.md +164 -0
  26. package/.opencode/templates/UAT.md +180 -0
  27. package/.opencode/templates/VALIDATION.md +76 -0
  28. package/.opencode/templates/codebase/architecture.md +255 -0
  29. package/.opencode/templates/codebase/concerns.md +310 -0
  30. package/.opencode/templates/codebase/conventions.md +307 -0
  31. package/.opencode/templates/codebase/integrations.md +280 -0
  32. package/.opencode/templates/codebase/stack.md +186 -0
  33. package/.opencode/templates/codebase/structure.md +285 -0
  34. package/.opencode/templates/codebase/testing.md +480 -0
  35. package/.opencode/templates/context.md +221 -0
  36. package/.opencode/templates/continue-here.md +78 -0
  37. package/.opencode/templates/debug-subagent-prompt.md +91 -0
  38. package/.opencode/templates/discovery.md +147 -0
  39. package/.opencode/templates/milestone-archive.md +123 -0
  40. package/.opencode/templates/milestone.md +115 -0
  41. package/.opencode/templates/phase-prompt.md +333 -0
  42. package/.opencode/templates/planner-subagent-prompt.md +117 -0
  43. package/.opencode/templates/project.md +184 -0
  44. package/.opencode/templates/requirements.md +130 -0
  45. package/.opencode/templates/research-project/ARCHITECTURE.md +204 -0
  46. package/.opencode/templates/research-project/FEATURES.md +147 -0
  47. package/.opencode/templates/research-project/PITFALLS.md +200 -0
  48. package/.opencode/templates/research-project/STACK.md +120 -0
  49. package/.opencode/templates/research-project/SUMMARY.md +170 -0
  50. package/.opencode/templates/research.md +278 -0
  51. package/.opencode/templates/retrospective.md +54 -0
  52. package/.opencode/templates/roadmap.md +202 -0
  53. package/.opencode/templates/state.md +176 -0
  54. package/.opencode/templates/summary-complex.md +59 -0
  55. package/.opencode/templates/summary-minimal.md +41 -0
  56. package/.opencode/templates/summary-standard.md +48 -0
  57. package/.opencode/templates/summary.md +248 -0
  58. package/.opencode/templates/user-setup.md +311 -0
  59. package/.opencode/templates/verification-report.md +322 -0
  60. package/.opencode/workflows/add-phase.md +111 -0
  61. package/.opencode/workflows/add-tests.md +350 -0
  62. package/.opencode/workflows/add-todo.md +157 -0
  63. package/.opencode/workflows/audit-milestone.md +297 -0
  64. package/.opencode/workflows/check-todos.md +176 -0
  65. package/.opencode/workflows/cleanup.md +152 -0
  66. package/.opencode/workflows/complete-milestone.md +763 -0
  67. package/.opencode/workflows/diagnose-issues.md +219 -0
  68. package/.opencode/workflows/discovery-phase.md +288 -0
  69. package/.opencode/workflows/discuss-phase.md +542 -0
  70. package/.opencode/workflows/execute-phase.md +449 -0
  71. package/.opencode/workflows/execute-plan.md +447 -0
  72. package/.opencode/workflows/health.md +156 -0
  73. package/.opencode/workflows/help.md +489 -0
  74. package/.opencode/workflows/insert-phase.md +129 -0
  75. package/.opencode/workflows/list-phase-assumptions.md +178 -0
  76. package/.opencode/workflows/map-codebase.md +315 -0
  77. package/.opencode/workflows/new-milestone.md +382 -0
  78. package/.opencode/workflows/new-project.md +1116 -0
  79. package/.opencode/workflows/pause-work.md +122 -0
  80. package/.opencode/workflows/plan-milestone-gaps.md +274 -0
  81. package/.opencode/workflows/plan-phase.md +569 -0
  82. package/.opencode/workflows/progress.md +381 -0
  83. package/.opencode/workflows/quick.md +453 -0
  84. package/.opencode/workflows/remove-phase.md +154 -0
  85. package/.opencode/workflows/research-phase.md +73 -0
  86. package/.opencode/workflows/resume-project.md +304 -0
  87. package/.opencode/workflows/set-profile.md +80 -0
  88. package/.opencode/workflows/settings.md +213 -0
  89. package/.opencode/workflows/transition.md +544 -0
  90. package/.opencode/workflows/update.md +219 -0
  91. package/.opencode/workflows/verify-phase.md +242 -0
  92. package/.opencode/workflows/verify-work.md +569 -0
  93. package/commands/specops/add-phase.md +43 -0
  94. package/commands/specops/add-tests.md +41 -0
  95. package/commands/specops/add-todo.md +47 -0
  96. package/commands/specops/audit-milestone.md +36 -0
  97. package/commands/specops/check-todos.md +45 -0
  98. package/commands/specops/cleanup.md +18 -0
  99. package/commands/specops/complete-milestone.md +136 -0
  100. package/commands/specops/debug.md +167 -0
  101. package/commands/specops/discuss-phase.md +83 -0
  102. package/commands/specops/execute-phase.md +41 -0
  103. package/commands/specops/health.md +22 -0
  104. package/commands/specops/help.md +22 -0
  105. package/commands/specops/insert-phase.md +32 -0
  106. package/commands/specops/join-discord.md +18 -0
  107. package/commands/specops/list-phase-assumptions.md +46 -0
  108. package/commands/specops/map-codebase.md +71 -0
  109. package/commands/specops/new-milestone.md +44 -0
  110. package/commands/specops/new-project.md +42 -0
  111. package/commands/specops/pause-work.md +38 -0
  112. package/commands/specops/plan-milestone-gaps.md +34 -0
  113. package/commands/specops/plan-phase.md +45 -0
  114. package/commands/specops/progress.md +24 -0
  115. package/commands/specops/quick.md +41 -0
  116. package/commands/specops/reapply-patches.md +111 -0
  117. package/commands/specops/remove-phase.md +31 -0
  118. package/commands/specops/research-phase.md +189 -0
  119. package/commands/specops/resume-work.md +40 -0
  120. package/commands/specops/set-profile.md +34 -0
  121. package/commands/specops/settings.md +36 -0
  122. package/commands/specops/update.md +37 -0
  123. package/commands/specops/verify-work.md +38 -0
  124. package/dist/__integration__/fixtures/generator.d.ts +4 -0
  125. package/dist/__integration__/fixtures/generator.js +1 -0
  126. package/dist/__integration__/mocks/server.d.ts +7 -0
  127. package/dist/__integration__/mocks/server.js +1 -0
  128. package/dist/__integration__/setup.d.ts +6 -0
  129. package/dist/__integration__/setup.js +1 -0
  130. package/dist/acceptance/lazyDetector.js +1 -1
  131. package/dist/acceptance/reporter.js +1 -1
  132. package/dist/acceptance/runner.js +1 -1
  133. package/dist/cli.js +1 -1
  134. package/dist/context/index.js +1 -1
  135. package/dist/context/promptTemplate.js +1 -1
  136. package/dist/context/techContextLoader.js +1 -1
  137. package/dist/engine.d.ts +1 -0
  138. package/dist/engine.js +1 -1
  139. package/dist/evolution/distiller.js +1 -1
  140. package/dist/evolution/index.js +1 -1
  141. package/dist/evolution/memoryGraph.js +1 -1
  142. package/dist/evolution/selector.js +1 -1
  143. package/dist/evolution/signals.js +1 -1
  144. package/dist/evolution/solidify.js +1 -1
  145. package/dist/evolution/store.js +1 -1
  146. package/dist/evolution/types.js +1 -1
  147. package/dist/init.d.ts +4 -3
  148. package/dist/init.js +1 -1
  149. package/dist/machines/agentMachine.js +1 -1
  150. package/dist/machines/supervisorMachine.js +1 -1
  151. package/dist/persistence/schema.js +1 -1
  152. package/dist/persistence/stateFile.js +1 -1
  153. package/dist/plugin-engine.js +1 -1
  154. package/dist/plugin.js +1 -1
  155. package/dist/requirement-analysis/analyzers/repository-parser.d.ts +121 -0
  156. package/dist/requirement-analysis/analyzers/repository-parser.js +1 -0
  157. package/dist/requirement-analysis/generators/prd-generator.d.ts +90 -0
  158. package/dist/requirement-analysis/generators/prd-generator.js +1 -0
  159. package/dist/requirement-analysis/integrations/v1-integration.d.ts +73 -0
  160. package/dist/requirement-analysis/integrations/v1-integration.js +1 -0
  161. package/dist/requirement-analysis/tools/analyze-requirements.js +1 -0
  162. package/dist/requirement-analysis/types/analysis-result.d.ts +326 -0
  163. package/dist/requirement-analysis/types/analysis-result.js +1 -0
  164. package/dist/requirement-analysis/types/feature-mapping.d.ts +294 -0
  165. package/dist/requirement-analysis/types/feature-mapping.js +1 -0
  166. package/dist/requirement-analysis/types/index.d.ts +171 -0
  167. package/dist/requirement-analysis/types/index.js +1 -0
  168. package/dist/requirement-analysis/types/tech-stack.d.ts +213 -0
  169. package/dist/requirement-analysis/types/tech-stack.js +1 -0
  170. package/dist/requirement-analysis/utils/error-handler.d.ts +112 -0
  171. package/dist/requirement-analysis/utils/error-handler.js +1 -0
  172. package/dist/types/index.d.ts +4 -2
  173. package/dist/types/index.js +1 -1
  174. package/dist/utils/id.js +1 -1
  175. package/package.json +4 -2
  176. package/skills/competitor-search/SKILL.md +169 -0
  177. package/skills/demand-analysis/SKILL.md +307 -0
  178. package/skills/feature-search/SKILL.md +182 -0
  179. package/skills/requirement-analysis/README.md +464 -0
  180. package/skills/requirement-analysis/SKILL.md +224 -0
  181. package/skills/requirement-analysis/templates/feature-mapping-template.json +210 -0
  182. package/skills/requirement-analysis/templates/prd-template.md +104 -0
  183. package/skills/tech-selection/SKILL.md +198 -0
  184. package/dist/__e2e__/01-state-engine.e2e.test.d.ts +0 -10
  185. package/dist/__e2e__/01-state-engine.e2e.test.js +0 -1
  186. package/dist/acceptance/lazyDetector.test.d.ts +0 -1
  187. package/dist/acceptance/lazyDetector.test.js +0 -1
  188. package/dist/acceptance/reporter.test.d.ts +0 -1
  189. package/dist/acceptance/reporter.test.js +0 -1
  190. package/dist/acceptance/runner.test.d.ts +0 -1
  191. package/dist/acceptance/runner.test.js +0 -1
  192. package/dist/context/promptTemplate.test.d.ts +0 -1
  193. package/dist/context/promptTemplate.test.js +0 -1
  194. package/dist/context/techContextLoader.test.d.ts +0 -1
  195. package/dist/context/techContextLoader.test.js +0 -1
  196. package/dist/machines/agentMachine.test.d.ts +0 -1
  197. package/dist/machines/agentMachine.test.js +0 -1
  198. package/dist/machines/supervisorMachine.test.d.ts +0 -1
  199. package/dist/machines/supervisorMachine.test.js +0 -1
  200. package/dist/persistence/stateFile.test.d.ts +0 -1
  201. package/dist/persistence/stateFile.test.js +0 -1
@@ -0,0 +1,280 @@
1
+ # 外部集成模板
2
+
3
+ `.planning/codebase/INTEGRATIONS.md` 的模板 - 记录外部服务依赖。
4
+
5
+ **用途:** 记录本代码库与哪些外部系统通信。聚焦于"我们代码之外依赖的东西"。
6
+
7
+ ---
8
+
9
+ ## 文件模板
10
+
11
+ ```markdown
12
+ # 外部集成
13
+
14
+ **分析日期:** [YYYY-MM-DD]
15
+
16
+ ## API 与外部服务
17
+
18
+ **支付处理:**
19
+ - [服务] - [用途:例如 "订阅计费、一次性支付"]
20
+ - SDK/客户端:[例如 "stripe npm 包 v14.x"]
21
+ - 认证:[例如 "STRIPE_SECRET_KEY 环境变量中的 API 密钥"]
22
+ - 使用的端点:[例如 "checkout sessions、webhooks"]
23
+
24
+ **邮件/短信:**
25
+ - [服务] - [用途:例如 "事务性邮件"]
26
+ - SDK/客户端:[例如 "sendgrid/mail v8.x"]
27
+ - 认证:[例如 "SENDGRID_API_KEY 环境变量中的 API 密钥"]
28
+ - 模板:[例如 "在 SendGrid 仪表板中管理"]
29
+
30
+ **外部 API:**
31
+ - [服务] - [用途]
32
+ - 集成方式:[例如 "通过 fetch 的 REST API"、"GraphQL 客户端"]
33
+ - 认证:[例如 "AUTH_TOKEN 环境变量中的 OAuth2 令牌"]
34
+ - 速率限制:[如适用]
35
+
36
+ ## 数据存储
37
+
38
+ **数据库:**
39
+ - [类型/提供商] - [例如 "Supabase 上的 PostgreSQL"]
40
+ - 连接:[例如 "通过 DATABASE_URL 环境变量"]
41
+ - 客户端:[例如 "Prisma ORM v5.x"]
42
+ - 迁移:[例如 "migrations/ 中的 prisma migrate"]
43
+
44
+ **文件存储:**
45
+ - [服务] - [例如 "AWS S3 用于用户上传"]
46
+ - SDK/客户端:[例如 "@aws-sdk/client-s3"]
47
+ - 认证:[例如 "AWS_* 环境变量中的 IAM 凭证"]
48
+ - 存储桶:[例如 "prod-uploads、dev-uploads"]
49
+
50
+ **缓存:**
51
+ - [服务] - [例如 "Redis 用于会话存储"]
52
+ - 连接:[例如 "REDIS_URL 环境变量"]
53
+ - 客户端:[例如 "ioredis v5.x"]
54
+
55
+ ## 认证与身份
56
+
57
+ **认证提供商:**
58
+ - [服务] - [例如 "Supabase Auth"、"Auth0"、"自定义 JWT"]
59
+ - 实现:[例如 "Supabase 客户端 SDK"]
60
+ - 令牌存储:[例如 "httpOnly cookies"、"localStorage"]
61
+ - 会话管理:[例如 "JWT 刷新令牌"]
62
+
63
+ **OAuth 集成:**
64
+ - [提供商] - [例如 "Google OAuth 用于登录"]
65
+ - 凭证:[例如 "GOOGLE_CLIENT_ID、GOOGLE_CLIENT_SECRET"]
66
+ - 作用域:[例如 "email、profile"]
67
+
68
+ ## 监控与可观测性
69
+
70
+ **错误追踪:**
71
+ - [服务] - [例如 "Sentry"]
72
+ - DSN:[例如 "SENTRY_DSN 环境变量"]
73
+ - 版本追踪:[例如 "通过 SENTRY_RELEASE"]
74
+
75
+ **分析:**
76
+ - [服务] - [例如 "Mixpanel 用于产品分析"]
77
+ - 令牌:[例如 "MIXPANEL_TOKEN 环境变量"]
78
+ - 追踪的事件:[例如 "用户操作、页面浏览"]
79
+
80
+ **日志:**
81
+ - [服务] - [例如 "CloudWatch"、"Datadog"、"无(仅 stdout)"]
82
+ - 集成:[例如 "AWS Lambda 内置"]
83
+
84
+ ## CI/CD 与部署
85
+
86
+ **托管:**
87
+ - [平台] - [例如 "Vercel"、"AWS Lambda"、"ECS 上的 Docker"]
88
+ - 部署:[例如 "main 分支推送时自动部署"]
89
+ - 环境变量:[例如 "在 Vercel 仪表板中配置"]
90
+
91
+ **CI 流水线:**
92
+ - [服务] - [例如 "GitHub Actions"]
93
+ - 工作流:[例如 "test.yml、deploy.yml"]
94
+ - 密钥:[例如 "存储在 GitHub 仓库密钥中"]
95
+
96
+ ## 环境配置
97
+
98
+ **开发环境:**
99
+ - 必需环境变量:[列出关键变量]
100
+ - 密钥位置:[例如 ".env.local(已 gitignore)"、"1Password 保险库"]
101
+ - Mock/桩服务:[例如 "Stripe 测试模式"、"本地 PostgreSQL"]
102
+
103
+ **预发布环境:**
104
+ - 环境特定差异:[例如 "使用预发布 Stripe 账户"]
105
+ - 数据:[例如 "独立的预发布数据库"]
106
+
107
+ **生产环境:**
108
+ - 密钥管理:[例如 "Vercel 环境变量"]
109
+ - 故障转移/冗余:[例如 "多区域数据库复制"]
110
+
111
+ ## Webhook 与回调
112
+
113
+ **入站:**
114
+ - [服务] - [端点:例如 "/api/webhooks/stripe"]
115
+ - 验证:[例如 "通过 stripe.webhooks.constructEvent 进行签名验证"]
116
+ - 事件:[例如 "payment_intent.succeeded、customer.subscription.updated"]
117
+
118
+ **出站:**
119
+ - [服务] - [触发条件]
120
+ - 端点:[例如 "用户注册时的外部 CRM webhook"]
121
+ - 重试逻辑:[如适用]
122
+
123
+ ---
124
+
125
+ *集成审计:[date]*
126
+ *添加/移除外部服务时更新*
127
+ ```
128
+
129
+ <good_examples>
130
+ ```markdown
131
+ # 外部集成
132
+
133
+ **分析日期:** 2025-01-20
134
+
135
+ ## API 与外部服务
136
+
137
+ **支付处理:**
138
+ - Stripe - 订阅计费和一次性课程支付
139
+ - SDK/客户端:stripe npm 包 v14.8
140
+ - 认证:STRIPE_SECRET_KEY 环境变量中的 API 密钥
141
+ - 使用的端点:checkout sessions、customer portal、webhooks
142
+
143
+ **邮件/短信:**
144
+ - SendGrid - 事务性邮件(收据、密码重置)
145
+ - SDK/客户端:@sendgrid/mail v8.1
146
+ - 认证:SENDGRID_API_KEY 环境变量中的 API 密钥
147
+ - 模板:在 SendGrid 仪表板中管理(模板 ID 在代码中)
148
+
149
+ **外部 API:**
150
+ - OpenAI API - 课程内容生成
151
+ - 集成方式:通过 openai npm 包 v4.x 的 REST API
152
+ - 认证:OPENAI_API_KEY 环境变量中的 Bearer 令牌
153
+ - 速率限制:3500 请求/分钟(tier 3)
154
+
155
+ ## 数据存储
156
+
157
+ **数据库:**
158
+ - Supabase 上的 PostgreSQL - 主数据存储
159
+ - 连接:通过 DATABASE_URL 环境变量
160
+ - 客户端:Prisma ORM v5.8
161
+ - 迁移:prisma/migrations/ 中的 prisma migrate
162
+
163
+ **文件存储:**
164
+ - Supabase Storage - 用户上传(头像、课程材料)
165
+ - SDK/客户端:@supabase/supabase-js v2.x
166
+ - 认证:SUPABASE_SERVICE_ROLE_KEY 中的服务角色密钥
167
+ - 存储桶:avatars(公开)、course-materials(私有)
168
+
169
+ **缓存:**
170
+ - 当前无(所有数据库查询,无 Redis)
171
+
172
+ ## 认证与身份
173
+
174
+ **认证提供商:**
175
+ - Supabase Auth - 邮箱/密码 + OAuth
176
+ - 实现:Supabase 客户端 SDK,服务端会话管理
177
+ - 令牌存储:通过 @supabase/ssr 的 httpOnly cookies
178
+ - 会话管理:Supabase 处理的 JWT 刷新令牌
179
+
180
+ **OAuth 集成:**
181
+ - Google OAuth - 社交登录
182
+ - 凭证:GOOGLE_CLIENT_ID、GOOGLE_CLIENT_SECRET(Supabase 仪表板)
183
+ - 作用域:email、profile
184
+
185
+ ## 监控与可观测性
186
+
187
+ **错误追踪:**
188
+ - Sentry - 服务端和客户端错误
189
+ - DSN:SENTRY_DSN 环境变量
190
+ - 版本追踪:通过 SENTRY_RELEASE 的 Git commit SHA
191
+
192
+ **分析:**
193
+ - 无(计划中:Mixpanel)
194
+
195
+ **日志:**
196
+ - Vercel 日志 - 仅 stdout/stderr
197
+ - 保留期:Pro 计划 7 天
198
+
199
+ ## CI/CD 与部署
200
+
201
+ **托管:**
202
+ - Vercel - Next.js 应用托管
203
+ - 部署:main 分支推送时自动部署
204
+ - 环境变量:在 Vercel 仪表板中配置(同步到 .env.example)
205
+
206
+ **CI 流水线:**
207
+ - GitHub Actions - 测试和类型检查
208
+ - 工作流:.github/workflows/ci.yml
209
+ - 密钥:不需要(仅公开仓库测试)
210
+
211
+ ## 环境配置
212
+
213
+ **开发环境:**
214
+ - 必需环境变量:DATABASE_URL、NEXT_PUBLIC_SUPABASE_URL、NEXT_PUBLIC_SUPABASE_ANON_KEY
215
+ - 密钥位置:.env.local(已 gitignore),团队通过 1Password 保险库共享
216
+ - Mock/桩服务:Stripe 测试模式、Supabase 本地开发项目
217
+
218
+ **预发布环境:**
219
+ - 使用独立的 Supabase 预发布项目
220
+ - Stripe 测试模式
221
+ - 同一 Vercel 账户,不同环境
222
+
223
+ **生产环境:**
224
+ - 密钥管理:Vercel 环境变量
225
+ - 数据库:Supabase 生产项目,每日备份
226
+
227
+ ## Webhook 与回调
228
+
229
+ **入站:**
230
+ - Stripe - /api/webhooks/stripe
231
+ - 验证:通过 stripe.webhooks.constructEvent 进行签名验证
232
+ - 事件:payment_intent.succeeded、customer.subscription.updated、customer.subscription.deleted
233
+
234
+ **出站:**
235
+ - 无
236
+
237
+ ---
238
+
239
+ *集成审计:2025-01-20*
240
+ *添加/移除外部服务时更新*
241
+ ```
242
+ </good_examples>
243
+
244
+ <guidelines>
245
+ **INTEGRATIONS.md 中应包含的内容:**
246
+ - 代码通信的外部服务
247
+ - 认证模式(密钥存放位置,而非密钥本身)
248
+ - 使用的 SDK 和客户端库
249
+ - 环境变量名称(而非值)
250
+ - Webhook 端点和验证方法
251
+ - 数据库连接模式
252
+ - 文件存储位置
253
+ - 监控和日志服务
254
+
255
+ **不应包含的内容:**
256
+ - 实际 API 密钥或密钥(绝对不要写入)
257
+ - 内部架构(那是 ARCHITECTURE.md 的内容)
258
+ - 代码模式(那是 PATTERNS.md 的内容)
259
+ - 技术选型(那是 STACK.md 的内容)
260
+ - 性能问题(那是 CONCERNS.md 的内容)
261
+
262
+ **填写此模板时:**
263
+ - 检查 .env.example 或 .env.template 中的必需环境变量
264
+ - 查找 SDK 导入(stripe、@sendgrid/mail 等)
265
+ - 检查路由/端点中的 webhook 处理器
266
+ - 记录密钥管理位置(而非密钥本身)
267
+ - 记录环境特定差异(开发/预发布/生产)
268
+ - 包含每个服务的认证模式
269
+
270
+ **在阶段规划中的用途:**
271
+ - 添加新的外部服务集成
272
+ - 调试认证问题
273
+ - 了解应用外部的数据流
274
+ - 搭建新环境
275
+ - 审计第三方依赖
276
+ - 规划服务中断或迁移
277
+
278
+ **安全提示:**
279
+ 记录密钥存放在哪里(环境变量、Vercel 仪表板、1Password),绝不记录密钥是什么。
280
+ </guidelines>
@@ -0,0 +1,186 @@
1
+ # 技术栈模板
2
+
3
+ `.planning/codebase/STACK.md` 的模板 - 记录技术基础。
4
+
5
+ **用途:** 记录本代码库运行的技术。聚焦于"运行代码时执行的是什么"。
6
+
7
+ ---
8
+
9
+ ## 文件模板
10
+
11
+ ```markdown
12
+ # 技术栈
13
+
14
+ **分析日期:** [YYYY-MM-DD]
15
+
16
+ ## 语言
17
+
18
+ **主要:**
19
+ - [语言] [版本] - [使用场景:例如 "所有应用代码"]
20
+
21
+ **次要:**
22
+ - [语言] [版本] - [使用场景:例如 "构建脚本、工具"]
23
+
24
+ ## 运行时
25
+
26
+ **环境:**
27
+ - [运行时] [版本] - [例如 "Node.js 20.x"]
28
+ - [其他要求(如有)]
29
+
30
+ **包管理器:**
31
+ - [管理器] [版本] - [例如 "npm 10.x"]
32
+ - 锁文件:[例如 "存在 package-lock.json"]
33
+
34
+ ## 框架
35
+
36
+ **核心:**
37
+ - [框架] [版本] - [用途:例如 "Web 服务器"、"UI 框架"]
38
+
39
+ **测试:**
40
+ - [框架] [版本] - [例如 "Jest 用于单元测试"]
41
+ - [框架] [版本] - [例如 "Playwright 用于端到端测试"]
42
+
43
+ **构建/开发:**
44
+ - [工具] [版本] - [例如 "Vite 用于打包"]
45
+ - [工具] [版本] - [例如 "TypeScript 编译器"]
46
+
47
+ ## 关键依赖
48
+
49
+ [仅包含对理解技术栈至关重要的依赖 - 限制在 5-10 个最重要的]
50
+
51
+ **核心:**
52
+ - [包] [版本] - [重要原因:例如 "认证"、"数据库访问"]
53
+ - [包] [版本] - [重要原因]
54
+
55
+ **基础设施:**
56
+ - [包] [版本] - [例如 "Express 用于 HTTP 路由"]
57
+ - [包] [版本] - [例如 "PostgreSQL 客户端"]
58
+
59
+ ## 配置
60
+
61
+ **环境:**
62
+ - [配置方式:例如 ".env 文件"、"环境变量"]
63
+ - [关键配置:例如 "需要 DATABASE_URL、API_KEY"]
64
+
65
+ **构建:**
66
+ - [构建配置文件:例如 "vite.config.ts、tsconfig.json"]
67
+
68
+ ## 平台要求
69
+
70
+ **开发:**
71
+ - [操作系统要求或"任何平台"]
72
+ - [额外工具:例如 "Docker 用于本地数据库"]
73
+
74
+ **生产:**
75
+ - [部署目标:例如 "Vercel"、"AWS Lambda"、"Docker 容器"]
76
+ - [版本要求]
77
+
78
+ ---
79
+
80
+ *技术栈分析:[date]*
81
+ *主要依赖变更后更新*
82
+ ```
83
+
84
+ <good_examples>
85
+ ```markdown
86
+ # 技术栈
87
+
88
+ **分析日期:** 2025-01-20
89
+
90
+ ## 语言
91
+
92
+ **主要:**
93
+ - TypeScript 5.3 - 所有应用代码
94
+
95
+ **次要:**
96
+ - JavaScript - 构建脚本、配置文件
97
+
98
+ ## 运行时
99
+
100
+ **环境:**
101
+ - Node.js 20.x(LTS)
102
+ - 无浏览器运行时(仅 CLI 工具)
103
+
104
+ **包管理器:**
105
+ - npm 10.x
106
+ - 锁文件:存在 `package-lock.json`
107
+
108
+ ## 框架
109
+
110
+ **核心:**
111
+ - 无(原生 Node.js CLI)
112
+
113
+ **测试:**
114
+ - Vitest 1.0 - 单元测试
115
+ - tsx - 无需构建步骤的 TypeScript 执行
116
+
117
+ **构建/开发:**
118
+ - TypeScript 5.3 - 编译为 JavaScript
119
+ - esbuild - Vitest 使用的快速转换
120
+
121
+ ## 关键依赖
122
+
123
+ **核心:**
124
+ - commander 11.x - CLI 参数解析和命令结构
125
+ - chalk 5.x - 终端输出样式
126
+ - fs-extra 11.x - 扩展文件系统操作
127
+
128
+ **基础设施:**
129
+ - Node.js 内置模块 - fs、path、child_process 用于文件操作
130
+
131
+ ## 配置
132
+
133
+ **环境:**
134
+ - 不需要环境变量
135
+ - 仅通过 CLI 标志配置
136
+
137
+ **构建:**
138
+ - `tsconfig.json` - TypeScript 编译器选项
139
+ - `vitest.config.ts` - 测试运行器配置
140
+
141
+ ## 平台要求
142
+
143
+ **开发:**
144
+ - macOS/Linux/Windows(任何有 Node.js 的平台)
145
+ - 无外部依赖
146
+
147
+ **生产:**
148
+ - 作为 npm 包分发
149
+ - 通过 npm install -g 全局安装
150
+ - 在用户的 Node.js 安装上运行
151
+
152
+ ---
153
+
154
+ *技术栈分析:2025-01-20*
155
+ *主要依赖变更后更新*
156
+ ```
157
+ </good_examples>
158
+
159
+ <guidelines>
160
+ **STACK.md 中应包含的内容:**
161
+ - 语言和版本
162
+ - 运行时要求(Node、Bun、Deno、浏览器)
163
+ - 包管理器和锁文件
164
+ - 框架选择
165
+ - 关键依赖(限制在 5-10 个最重要的)
166
+ - 构建工具
167
+ - 平台/部署要求
168
+
169
+ **不应包含的内容:**
170
+ - 文件结构(那是 STRUCTURE.md 的内容)
171
+ - 架构模式(那是 ARCHITECTURE.md 的内容)
172
+ - package.json 中的每个依赖(仅关键的)
173
+ - 实现细节(参考代码)
174
+
175
+ **填写此模板时:**
176
+ - 检查 package.json 中的依赖
177
+ - 从 .nvmrc 或 package.json engines 记录运行时版本
178
+ - 仅包含影响理解的依赖(不是每个工具库)
179
+ - 仅在版本重要时指定版本(破坏性变更、兼容性)
180
+
181
+ **在阶段规划中的用途:**
182
+ - 添加新依赖时(检查兼容性)
183
+ - 升级框架时(了解当前使用情况)
184
+ - 选择实现方法时(必须与现有技术栈兼容)
185
+ - 了解构建要求
186
+ </guidelines>