@opengsd/gsd-core 1.13.0 → 1.15.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 (441) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.ja-JP.md +3 -3
  4. package/README.ko-KR.md +3 -3
  5. package/README.pt-BR.md +3 -3
  6. package/README.zh-CN.md +3 -3
  7. package/agents/gsd-advisor-researcher.compact.md +85 -0
  8. package/agents/gsd-ai-researcher.compact.md +96 -0
  9. package/agents/gsd-assumptions-analyzer.compact.md +81 -0
  10. package/agents/gsd-code-fixer.compact.md +459 -0
  11. package/agents/gsd-code-fixer.md +9 -8
  12. package/agents/gsd-code-reviewer.compact.md +269 -0
  13. package/agents/gsd-code-reviewer.md +15 -3
  14. package/agents/gsd-codebase-mapper.compact.md +760 -0
  15. package/agents/gsd-debug-session-manager.compact.md +360 -0
  16. package/agents/gsd-debug-session-manager.md +17 -2
  17. package/agents/gsd-debugger.md +2 -2
  18. package/agents/gsd-doc-classifier.compact.md +192 -0
  19. package/agents/gsd-doc-synthesizer.compact.md +200 -0
  20. package/agents/gsd-doc-verifier.compact.md +143 -0
  21. package/agents/gsd-doc-writer.compact.md +440 -0
  22. package/agents/gsd-dom-verifier.compact.md +138 -0
  23. package/agents/gsd-domain-researcher.compact.md +141 -0
  24. package/agents/gsd-eval-auditor.compact.md +160 -0
  25. package/agents/gsd-eval-auditor.md +1 -1
  26. package/agents/gsd-eval-planner.compact.md +137 -0
  27. package/agents/gsd-executor.md +13 -8
  28. package/agents/gsd-framework-selector.compact.md +82 -0
  29. package/agents/gsd-integration-checker.compact.md +245 -0
  30. package/agents/gsd-intel-updater.compact.md +226 -0
  31. package/agents/gsd-intel-updater.md +1 -1
  32. package/agents/gsd-mempalace-curator.compact.md +45 -0
  33. package/agents/gsd-nyquist-auditor.compact.md +179 -0
  34. package/agents/gsd-pattern-mapper.compact.md +275 -0
  35. package/agents/gsd-phase-researcher.md +19 -11
  36. package/agents/gsd-plan-checker.md +8 -7
  37. package/agents/gsd-planner.md +12 -8
  38. package/agents/gsd-project-researcher.compact.md +587 -0
  39. package/agents/gsd-project-researcher.md +1 -1
  40. package/agents/gsd-research-synthesizer.compact.md +212 -0
  41. package/agents/gsd-research-synthesizer.md +1 -1
  42. package/agents/gsd-roadmapper.compact.md +454 -0
  43. package/agents/gsd-roadmapper.md +13 -0
  44. package/agents/gsd-security-auditor.compact.md +162 -0
  45. package/agents/gsd-ui-auditor.compact.md +404 -0
  46. package/agents/gsd-ui-auditor.md +155 -17
  47. package/agents/gsd-ui-checker.compact.md +277 -0
  48. package/agents/gsd-ui-researcher.compact.md +282 -0
  49. package/agents/gsd-ui-researcher.md +1 -1
  50. package/agents/gsd-user-profiler.compact.md +108 -0
  51. package/agents/gsd-verifier.md +10 -9
  52. package/bin/install.js +848 -163
  53. package/commands/gsd/autonomous.md +2 -2
  54. package/commands/gsd/capture.md +1 -1
  55. package/commands/gsd/cleanup.md +1 -0
  56. package/commands/gsd/code-review.md +2 -1
  57. package/commands/gsd/complete-milestone.md +1 -0
  58. package/commands/gsd/config.md +1 -0
  59. package/commands/gsd/debug.md +1 -0
  60. package/commands/gsd/graphify.md +1 -0
  61. package/commands/gsd/health.md +1 -0
  62. package/commands/gsd/mempalace-capture.md +8 -3
  63. package/commands/gsd/mempalace-recall.md +1 -0
  64. package/commands/gsd/new-milestone.md +1 -0
  65. package/commands/gsd/new-project.md +1 -0
  66. package/commands/gsd/next.md +1 -0
  67. package/commands/gsd/pause-work.md +1 -0
  68. package/commands/gsd/phase.md +1 -0
  69. package/commands/gsd/plan-review-convergence.md +6 -6
  70. package/commands/gsd/pr-branch.md +1 -0
  71. package/commands/gsd/progress.md +1 -1
  72. package/commands/gsd/quick-batch.md +1 -1
  73. package/commands/gsd/resume-work.md +1 -0
  74. package/commands/gsd/review-backlog.md +1 -0
  75. package/commands/gsd/review.md +2 -3
  76. package/commands/gsd/settings.md +2 -1
  77. package/commands/gsd/stats.md +1 -0
  78. package/commands/gsd/thread.md +1 -0
  79. package/commands/gsd/workspace.md +1 -0
  80. package/commands/gsd/workstreams.md +1 -0
  81. package/gsd-core/bin/check-latest-version.cjs +8 -3
  82. package/gsd-core/bin/gsd-tools.cjs +672 -146
  83. package/gsd-core/bin/lib/adr-parser.cjs +4 -2
  84. package/gsd-core/bin/lib/artifacts.cjs +2 -1
  85. package/gsd-core/bin/lib/audit.cjs +119 -34
  86. package/gsd-core/bin/lib/broken-windows.cjs +168 -49
  87. package/gsd-core/bin/lib/capability-lifecycle.cjs +10 -6
  88. package/gsd-core/bin/lib/capability-loader.cjs +135 -1
  89. package/gsd-core/bin/lib/capability-registry.cjs +96 -189
  90. package/gsd-core/bin/lib/capability-source.cjs +19 -2
  91. package/gsd-core/bin/lib/capability-validator.cjs +14 -2
  92. package/gsd-core/bin/lib/check-command-router.cjs +213 -49
  93. package/gsd-core/bin/lib/code-review-depth.cjs +2 -2
  94. package/gsd-core/bin/lib/codex-agent-toml.cjs +21 -25
  95. package/gsd-core/bin/lib/commands.cjs +823 -112
  96. package/gsd-core/bin/lib/config-loader.cjs +66 -4
  97. package/gsd-core/bin/lib/config.cjs +186 -45
  98. package/gsd-core/bin/lib/coverage.cjs +1 -1
  99. package/gsd-core/bin/lib/decisions.cjs +164 -45
  100. package/gsd-core/bin/lib/external-descriptor-trust.cjs +29 -14
  101. package/gsd-core/bin/lib/frontmatter.cjs +13 -0
  102. package/gsd-core/bin/lib/graphify.cjs +10 -2
  103. package/gsd-core/bin/lib/gsd2-import.cjs +1 -2
  104. package/gsd-core/bin/lib/health-diagnostic-rules/state-consistency.cjs +12 -1
  105. package/gsd-core/bin/lib/health-diagnostic-rules/worktree-health.cjs +1 -1
  106. package/gsd-core/bin/lib/host-runtime-detection.cjs +9 -0
  107. package/gsd-core/bin/lib/init.cjs +614 -86
  108. package/gsd-core/bin/lib/install-engine.cjs +29 -3
  109. package/gsd-core/bin/lib/install-profiles.cjs +14 -0
  110. package/gsd-core/bin/lib/installer-migrations.cjs +41 -5
  111. package/gsd-core/bin/lib/loop-resolver.cjs +50 -31
  112. package/gsd-core/bin/lib/mcp-catalog.cjs +2 -2
  113. package/gsd-core/bin/lib/milestone.cjs +37 -13
  114. package/gsd-core/bin/lib/model-resolver.cjs +253 -53
  115. package/gsd-core/bin/lib/phase-command-router.cjs +16 -2
  116. package/gsd-core/bin/lib/phase-id-card.cjs +32 -0
  117. package/gsd-core/bin/lib/phase-id-display.cjs +78 -0
  118. package/gsd-core/bin/lib/phase-id.cjs +268 -27
  119. package/gsd-core/bin/lib/phase-lifecycle.cjs +61 -0
  120. package/gsd-core/bin/lib/phase-locator.cjs +29 -10
  121. package/gsd-core/bin/lib/phase.cjs +393 -88
  122. package/gsd-core/bin/lib/plan-document.cjs +49 -1
  123. package/gsd-core/bin/lib/planning-document.cjs +459 -0
  124. package/gsd-core/bin/lib/planning-inspect.cjs +52 -19
  125. package/gsd-core/bin/lib/planning-snapshot.cjs +61 -12
  126. package/gsd-core/bin/lib/planning-workspace.cjs +57 -3
  127. package/gsd-core/bin/lib/pr-branch-patterns.cjs +57 -0
  128. package/gsd-core/bin/lib/pristine-baseline.cjs +182 -0
  129. package/gsd-core/bin/lib/probe-core.cjs +7 -1
  130. package/gsd-core/bin/lib/prohibition-enforcement.cjs +91 -4
  131. package/gsd-core/bin/lib/project-root.cjs +41 -2
  132. package/gsd-core/bin/lib/quick-batch.cjs +1 -1
  133. package/gsd-core/bin/lib/refactor-trigger-command-router.cjs +61 -2
  134. package/gsd-core/bin/lib/research-store.cjs +11 -12
  135. package/gsd-core/bin/lib/review-lane-descriptor.cjs +10 -30
  136. package/gsd-core/bin/lib/review-lane-invocation.cjs +23 -0
  137. package/gsd-core/bin/lib/review-reviewer-selection.cjs +2 -2
  138. package/gsd-core/bin/lib/reviewer-step-dispatch.cjs +337 -0
  139. package/gsd-core/bin/lib/roadmap-command-router.cjs +12 -4
  140. package/gsd-core/bin/lib/roadmap-parser.cjs +219 -18
  141. package/gsd-core/bin/lib/roadmap-upgrade.cjs +1539 -13
  142. package/gsd-core/bin/lib/roadmap.cjs +356 -42
  143. package/gsd-core/bin/lib/runtime-artifact-conversion.cjs +310 -41
  144. package/gsd-core/bin/lib/runtime-artifact-install-plan.cjs +15 -4
  145. package/gsd-core/bin/lib/runtime-artifact-layout.cjs +13 -5
  146. package/gsd-core/bin/lib/runtime-homes.cjs +4 -0
  147. package/gsd-core/bin/lib/runtime-hooks-surface.cjs +408 -37
  148. package/gsd-core/bin/lib/runtime-name-policy.cjs +111 -1
  149. package/gsd-core/bin/lib/security.cjs +126 -7
  150. package/gsd-core/bin/lib/shell-command-projection.cjs +10 -6
  151. package/gsd-core/bin/lib/state-document.cjs +130 -28
  152. package/gsd-core/bin/lib/state-md-schema.cjs +21 -14
  153. package/gsd-core/bin/lib/state-transition.cjs +181 -30
  154. package/gsd-core/bin/lib/state.cjs +265 -27
  155. package/gsd-core/bin/lib/surface.cjs +77 -3
  156. package/gsd-core/bin/lib/task-command-router.cjs +12 -6
  157. package/gsd-core/bin/lib/tdd-red-evidence.cjs +78 -5
  158. package/gsd-core/bin/lib/uat-predicate.cjs +47 -4
  159. package/gsd-core/bin/lib/uat.cjs +9 -1
  160. package/gsd-core/bin/lib/ui-consideration-probe.cjs +15 -2
  161. package/gsd-core/bin/lib/ui-frontend-evidence.cjs +100 -9
  162. package/gsd-core/bin/lib/undo-commit-selection.cjs +131 -0
  163. package/gsd-core/bin/lib/update-context.cjs +30 -24
  164. package/gsd-core/bin/lib/vendor/js-yaml.cjs +11 -3
  165. package/gsd-core/bin/lib/verification.cjs +315 -30
  166. package/gsd-core/bin/lib/verify-command-grounding.cjs +47 -3
  167. package/gsd-core/bin/lib/verify.cjs +320 -48
  168. package/gsd-core/bin/lib/workstream-inventory.cjs +1 -0
  169. package/gsd-core/bin/lib/worktree-base-ref.cjs +482 -73
  170. package/gsd-core/bin/lib/worktree-safety.cjs +797 -58
  171. package/gsd-core/bin/shared/config-defaults.manifest.json +4 -0
  172. package/gsd-core/bin/shared/config-schema.manifest.json +6 -0
  173. package/gsd-core/bin/verify-reapply-patches.cjs +439 -80
  174. package/gsd-core/references/checkpoints.md +5 -3
  175. package/gsd-core/references/compact-content-gate.md +66 -0
  176. package/gsd-core/references/edge-probe-fixtures/01-round-half-even/expected-coverage.json +28 -3
  177. package/gsd-core/references/edge-probe-fixtures/02-merge-intervals/expected-coverage.json +37 -4
  178. package/gsd-core/references/edge-probe-fixtures/03-truncate-graphemes/expected-coverage.json +28 -3
  179. package/gsd-core/references/edge-probe-fixtures/04-money-rounding/expected-coverage.json +28 -3
  180. package/gsd-core/references/edge-probe-fixtures/05-list-dedupe/expected-coverage.json +37 -4
  181. package/gsd-core/references/edge-probe-fixtures/06-resolved-mixed/expected-coverage.json +37 -4
  182. package/gsd-core/references/edge-probe.md +195 -21
  183. package/gsd-core/references/execute-phase-between-wave-reset.md +7 -6
  184. package/gsd-core/references/execute-phase-wave-guard.md +22 -11
  185. package/gsd-core/references/gsd-run-resolver.md +1 -1
  186. package/gsd-core/references/loop-hook-dispatch.md +18 -0
  187. package/gsd-core/references/model-profiles.md +13 -4
  188. package/gsd-core/references/phase-argument-parsing.md +9 -7
  189. package/gsd-core/references/phase-id-convention.md +28 -0
  190. package/gsd-core/references/planner-gap-closure.md +2 -0
  191. package/gsd-core/references/planner-load-graph-context.md +24 -13
  192. package/gsd-core/references/planner-verify-command-grounding.md +14 -0
  193. package/gsd-core/references/planning-config.md +14 -2
  194. package/gsd-core/references/tdd.md +30 -4
  195. package/gsd-core/references/thinking-models-planning.md +18 -2
  196. package/gsd-core/references/ui-consideration-probe.md +10 -5
  197. package/gsd-core/references/verification-patterns.md +17 -4
  198. package/gsd-core/references/verify-command-path-resolvability.md +10 -2
  199. package/gsd-core/references/worktree-path-safety.md +433 -2
  200. package/gsd-core/templates/README.md +7 -1
  201. package/gsd-core/templates/state.md +6 -3
  202. package/gsd-core/templates/summary.compact.md +212 -0
  203. package/gsd-core/templates/user-setup.compact.md +199 -0
  204. package/gsd-core/templates/user-setup.md +0 -9
  205. package/gsd-core/templates/verification-report.md +1 -1
  206. package/gsd-core/workflows/_runtime-launcher.snippet.sh +1 -1
  207. package/gsd-core/workflows/add-backlog.md +1 -1
  208. package/gsd-core/workflows/add-phase.md +1 -1
  209. package/gsd-core/workflows/add-tests.md +2 -2
  210. package/gsd-core/workflows/add-todo.md +6 -5
  211. package/gsd-core/workflows/ai-integration-phase.md +11 -3
  212. package/gsd-core/workflows/audit-fix.md +1 -1
  213. package/gsd-core/workflows/audit-milestone.md +1 -1
  214. package/gsd-core/workflows/audit-uat.md +1 -1
  215. package/gsd-core/workflows/autonomous/steps/converge-fail-fast.md +9 -18
  216. package/gsd-core/workflows/autonomous.md +29 -16
  217. package/gsd-core/workflows/check-todos.md +6 -4
  218. package/gsd-core/workflows/cleanup.md +5 -3
  219. package/gsd-core/workflows/code-review/steps/dispatch-fix.md +4 -3
  220. package/gsd-core/workflows/code-review/steps/structural-pre-pass.md +8 -1
  221. package/gsd-core/workflows/code-review-fix.md +108 -22
  222. package/gsd-core/workflows/code-review.md +216 -73
  223. package/gsd-core/workflows/complete-milestone/detail/elaboration.md +274 -0
  224. package/gsd-core/workflows/complete-milestone.md +41 -264
  225. package/gsd-core/workflows/debug.md +3 -3
  226. package/gsd-core/workflows/diagnose-issues.md +1 -1
  227. package/gsd-core/workflows/discuss-phase/modes/advisor.md +1 -1
  228. package/gsd-core/workflows/discuss-phase/modes/chain.md +1 -1
  229. package/gsd-core/workflows/discuss-phase-assumptions.md +1 -1
  230. package/gsd-core/workflows/discuss-phase.md +1 -1
  231. package/gsd-core/workflows/do.md +2 -2
  232. package/gsd-core/workflows/docs-update/detail/elaboration.md +179 -0
  233. package/gsd-core/workflows/docs-update.md +17 -158
  234. package/gsd-core/workflows/edit-phase.md +1 -1
  235. package/gsd-core/workflows/eval-review.md +10 -3
  236. package/gsd-core/workflows/execute-phase/detail/elaboration.md +124 -0
  237. package/gsd-core/workflows/execute-phase/steps/code-review-disposition.md +1017 -0
  238. package/gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md +19 -4
  239. package/gsd-core/workflows/execute-phase/steps/completion-reconciliation.md +56 -0
  240. package/gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md +43 -4
  241. package/gsd-core/workflows/execute-phase/steps/executor-progress-policy.md +43 -0
  242. package/gsd-core/workflows/execute-phase/steps/gap-closure-artifacts.md +1 -1
  243. package/gsd-core/workflows/execute-phase/steps/partial-wave.md +1 -1
  244. package/gsd-core/workflows/execute-phase/steps/per-plan-executor-routing.md +1 -1
  245. package/gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md +1 -1
  246. package/gsd-core/workflows/execute-phase/steps/post-merge-gate.md +46 -9
  247. package/gsd-core/workflows/execute-phase/steps/protected-branch.md +1 -1
  248. package/gsd-core/workflows/execute-phase/steps/ready-wave-gate.md +37 -0
  249. package/gsd-core/workflows/execute-phase/steps/regression-gate-run.md +1 -1
  250. package/gsd-core/workflows/execute-phase/steps/sequential-root-pin.md +35 -0
  251. package/gsd-core/workflows/execute-phase/steps/stale-reverification.md +24 -0
  252. package/gsd-core/workflows/execute-phase/steps/tdd-applicability-resolution.md +1 -1
  253. package/gsd-core/workflows/execute-phase/steps/threat-id-gate.md +28 -0
  254. package/gsd-core/workflows/execute-phase/steps/wave-post-gate-hooks.md +1 -1
  255. package/gsd-core/workflows/execute-phase/steps/worktree-base-check.md +25 -0
  256. package/gsd-core/workflows/execute-phase.md +83 -172
  257. package/gsd-core/workflows/execute-plan.md +24 -10
  258. package/gsd-core/workflows/explore.md +3 -3
  259. package/gsd-core/workflows/extract-learnings.md +2 -1
  260. package/gsd-core/workflows/fast.md +1 -1
  261. package/gsd-core/workflows/forensics.md +1 -1
  262. package/gsd-core/workflows/graduation.md +1 -1
  263. package/gsd-core/workflows/health.md +2 -2
  264. package/gsd-core/workflows/help/modes/full.compact.md +398 -0
  265. package/gsd-core/workflows/help/modes/full.md +5 -5
  266. package/gsd-core/workflows/help/modes/topic.md +15 -5
  267. package/gsd-core/workflows/help.md +1 -1
  268. package/gsd-core/workflows/import.md +2 -2
  269. package/gsd-core/workflows/inbox.md +2 -2
  270. package/gsd-core/workflows/ingest-docs.md +3 -3
  271. package/gsd-core/workflows/insert-phase.md +1 -1
  272. package/gsd-core/workflows/list-seeds.md +1 -1
  273. package/gsd-core/workflows/list-workspaces.md +1 -1
  274. package/gsd-core/workflows/manager.md +2 -2
  275. package/gsd-core/workflows/map-codebase.md +52 -5
  276. package/gsd-core/workflows/milestone-summary.md +1 -1
  277. package/gsd-core/workflows/mvp-phase.md +1 -1
  278. package/gsd-core/workflows/new-milestone.md +56 -14
  279. package/gsd-core/workflows/new-project/detail/elaboration.md +216 -0
  280. package/gsd-core/workflows/new-project/steps/auto-mode-config.md +3 -3
  281. package/gsd-core/workflows/new-project/steps/codebase-map-offer.md +1 -1
  282. package/gsd-core/workflows/new-project.md +39 -209
  283. package/gsd-core/workflows/new-workspace.md +2 -2
  284. package/gsd-core/workflows/next.md +1 -1
  285. package/gsd-core/workflows/note.md +1 -1
  286. package/gsd-core/workflows/onboard.md +1 -1
  287. package/gsd-core/workflows/pause-work.md +1 -1
  288. package/gsd-core/workflows/plan-phase/detail/elaboration.md +209 -0
  289. package/gsd-core/workflows/plan-phase/steps/chunked-planning-mode.md +17 -5
  290. package/gsd-core/workflows/plan-phase/steps/prd-express-path.md +1 -1
  291. package/gsd-core/workflows/plan-phase/steps/stall-detection-helpers.md +23 -5
  292. package/gsd-core/workflows/plan-phase.md +45 -187
  293. package/gsd-core/workflows/plan-review-convergence.md +21 -5
  294. package/gsd-core/workflows/plant-seed.md +62 -20
  295. package/gsd-core/workflows/pr-branch.md +132 -20
  296. package/gsd-core/workflows/profile-user.md +2 -2
  297. package/gsd-core/workflows/progress.md +1 -1
  298. package/gsd-core/workflows/quick/steps/plan-checker-loop.md +25 -0
  299. package/gsd-core/workflows/quick/steps/quick-verification.md +1 -1
  300. package/gsd-core/workflows/quick/steps/worktree-pre-dispatch-commit.md +1 -1
  301. package/gsd-core/workflows/quick-batch/steps/batch-init.md +1 -1
  302. package/gsd-core/workflows/quick-batch/steps/completion.md +1 -1
  303. package/gsd-core/workflows/quick-batch/steps/merge-wave.md +1 -1
  304. package/gsd-core/workflows/quick-batch/steps/planner-wave.md +1 -1
  305. package/gsd-core/workflows/quick-batch/steps/research-phase.md +1 -1
  306. package/gsd-core/workflows/quick-batch/steps/resume-mode.md +1 -1
  307. package/gsd-core/workflows/quick-batch/steps/verification-wave.md +1 -1
  308. package/gsd-core/workflows/quick-batch/steps/worktree-dispatch.md +1 -1
  309. package/gsd-core/workflows/quick-batch.md +1 -1
  310. package/gsd-core/workflows/quick.md +29 -10
  311. package/gsd-core/workflows/reapply-patches.md +86 -6
  312. package/gsd-core/workflows/remove-phase.md +1 -1
  313. package/gsd-core/workflows/remove-workspace.md +2 -2
  314. package/gsd-core/workflows/resume-project.md +1 -1
  315. package/gsd-core/workflows/review.md +31 -16
  316. package/gsd-core/workflows/scan.md +1 -1
  317. package/gsd-core/workflows/secure-phase.md +3 -2
  318. package/gsd-core/workflows/settings-advanced.md +30 -10
  319. package/gsd-core/workflows/settings-integrations.md +2 -3
  320. package/gsd-core/workflows/settings.md +22 -9
  321. package/gsd-core/workflows/ship.md +3 -2
  322. package/gsd-core/workflows/sketch-wrap-up.md +1 -1
  323. package/gsd-core/workflows/sketch.md +1 -1
  324. package/gsd-core/workflows/smart-entry.md +2 -2
  325. package/gsd-core/workflows/spec-phase.md +15 -5
  326. package/gsd-core/workflows/spike-wrap-up.md +1 -1
  327. package/gsd-core/workflows/spike.md +1 -1
  328. package/gsd-core/workflows/stats.md +1 -1
  329. package/gsd-core/workflows/sync-skills.md +5 -5
  330. package/gsd-core/workflows/thread.md +1 -1
  331. package/gsd-core/workflows/transition.md +1 -1
  332. package/gsd-core/workflows/ui-phase.md +44 -8
  333. package/gsd-core/workflows/ui-review.md +18 -4
  334. package/gsd-core/workflows/ultraplan-phase.md +1 -1
  335. package/gsd-core/workflows/undo.md +339 -20
  336. package/gsd-core/workflows/update.md +14 -12
  337. package/gsd-core/workflows/validate-phase.md +3 -2
  338. package/gsd-core/workflows/verify-work/detail/elaboration.md +230 -0
  339. package/gsd-core/workflows/verify-work/steps/automated-ui-verification.md +1 -1
  340. package/gsd-core/workflows/verify-work/steps/mvp-uat-framing.md +1 -1
  341. package/gsd-core/workflows/verify-work.md +101 -196
  342. package/hooks/dist/gsd-agent-isolation-guard.js +66 -16
  343. package/hooks/dist/gsd-context-monitor.js +88 -15
  344. package/hooks/dist/gsd-cursor-subagent-start.js +34 -14
  345. package/hooks/dist/gsd-secret-read-guard.js +71 -19
  346. package/hooks/dist/gsd-statusline.js +81 -20
  347. package/hooks/dist/gsd-validate-commit.sh +97 -8
  348. package/hooks/dist/gsd-worktree-path-guard.js +25 -14
  349. package/hooks/dist/gsd-write-guard.js +46 -1
  350. package/hooks/dist/lib/dispatch-identity.js +187 -0
  351. package/hooks/dist/lib/filename-classification.js +64 -0
  352. package/hooks/dist/lib/isolation-deny-reason.js +53 -1
  353. package/hooks/dist/lib/isolation-sentinel.js +58 -19
  354. package/hooks/gsd-agent-isolation-guard.js +66 -16
  355. package/hooks/gsd-context-monitor.js +88 -15
  356. package/hooks/gsd-cursor-subagent-start.js +34 -14
  357. package/hooks/gsd-secret-read-guard.js +71 -19
  358. package/hooks/gsd-statusline.js +81 -20
  359. package/hooks/gsd-validate-commit.sh +97 -8
  360. package/hooks/gsd-worktree-path-guard.js +25 -14
  361. package/hooks/gsd-write-guard.js +46 -1
  362. package/hooks/lib/dispatch-identity.js +187 -0
  363. package/hooks/lib/filename-classification.js +64 -0
  364. package/hooks/lib/isolation-deny-reason.js +53 -1
  365. package/hooks/lib/isolation-sentinel.js +58 -19
  366. package/package.json +11 -6
  367. package/scripts/benchmark-compact-content-variants.cjs +298 -0
  368. package/scripts/benchmark-compact-content.cjs +368 -0
  369. package/scripts/build-hooks.js +15 -6
  370. package/scripts/check-contract-drift.cjs +131 -12
  371. package/scripts/check-env.cjs +36 -8
  372. package/scripts/check-glossary-refs.cjs +25 -21
  373. package/scripts/ci-next-health.cjs +271 -0
  374. package/scripts/ci-prepare-test-scope.cjs +7 -7
  375. package/scripts/ci-test-scope.cjs +126 -20
  376. package/scripts/ci-timeout-report.cjs +1 -1
  377. package/scripts/command-contract-helpers.cjs +3 -0
  378. package/scripts/diff-touches-shipped-paths.cjs +1 -1
  379. package/scripts/docs-guard-registry.cjs +35 -2
  380. package/scripts/gen-adr-index.cjs +8 -2
  381. package/scripts/gen-inventory-manifest.cjs +12 -0
  382. package/scripts/gen-loop-host-contract.cjs +69 -0
  383. package/scripts/gen-platform-conformance-tier.cjs +557 -0
  384. package/scripts/lib/drift-scan.cjs +1 -1
  385. package/scripts/lib/macos-conformance-tier.generated.cjs +224 -0
  386. package/scripts/lib/ndjson-reporter.cjs +3 -2
  387. package/scripts/lib/npm-version-check-diagnosis.cjs +59 -0
  388. package/scripts/lib/platform-conformance-tier.generated.cjs +287 -0
  389. package/scripts/lib/suite-detection.cjs +32 -0
  390. package/scripts/lint-allowed-tools-parity.cjs +221 -0
  391. package/scripts/lint-docs-guard-registration.exempt-baseline.cjs +47 -3
  392. package/scripts/lint-phase-arg-assignment.cjs +257 -0
  393. package/scripts/lint-phase-id-drift.cjs +623 -13
  394. package/scripts/lint-pr-branch-pattern-drift.cjs +148 -0
  395. package/scripts/lint-response-language-coverage.cjs +9 -3
  396. package/scripts/lint-retired-runtime-name.cjs +619 -0
  397. package/scripts/lint-source-test-name-collision.cjs +1 -1
  398. package/scripts/lint-state-write-path-drift.cjs +93 -0
  399. package/scripts/lint-test-file-count.allowlist.json +29 -9
  400. package/scripts/lint-vendored-deps.cjs +128 -17
  401. package/scripts/lint-workflow-shellcheck-baseline.json +100 -0
  402. package/scripts/prompt-injection-scan.sh +18 -0
  403. package/scripts/release-tarball-smoke.cjs +194 -1
  404. package/scripts/workflow-size.cjs +139 -0
  405. package/skills/gsd-autonomous/SKILL.md +2 -2
  406. package/skills/gsd-capture/SKILL.md +1 -1
  407. package/skills/gsd-cleanup/SKILL.md +1 -0
  408. package/skills/gsd-code-review/SKILL.md +2 -1
  409. package/skills/gsd-complete-milestone/SKILL.md +1 -0
  410. package/skills/gsd-config/SKILL.md +1 -0
  411. package/skills/gsd-debug/SKILL.md +1 -0
  412. package/skills/gsd-graphify/SKILL.md +1 -0
  413. package/skills/gsd-health/SKILL.md +1 -0
  414. package/skills/gsd-mempalace-capture/SKILL.md +8 -3
  415. package/skills/gsd-mempalace-recall/SKILL.md +1 -0
  416. package/skills/gsd-new-milestone/SKILL.md +1 -0
  417. package/skills/gsd-new-project/SKILL.md +1 -0
  418. package/skills/gsd-next/SKILL.md +1 -0
  419. package/skills/gsd-pause-work/SKILL.md +1 -0
  420. package/skills/gsd-phase/SKILL.md +1 -0
  421. package/skills/gsd-plan-review-convergence/SKILL.md +5 -5
  422. package/skills/gsd-pr-branch/SKILL.md +1 -0
  423. package/skills/gsd-progress/SKILL.md +1 -1
  424. package/skills/gsd-quick-batch/SKILL.md +1 -1
  425. package/skills/gsd-resume-work/SKILL.md +1 -0
  426. package/skills/gsd-review/SKILL.md +2 -3
  427. package/skills/gsd-review-backlog/SKILL.md +1 -0
  428. package/skills/gsd-settings/SKILL.md +2 -1
  429. package/skills/gsd-stats/SKILL.md +1 -0
  430. package/skills/gsd-thread/SKILL.md +1 -0
  431. package/skills/gsd-workspace/SKILL.md +1 -0
  432. package/skills/gsd-workstreams/SKILL.md +1 -0
  433. package/vscode/package.json +1 -1
  434. package/gsd-core/templates/claude-md.md +0 -145
  435. package/gsd-core/templates/codebase/concerns.md +0 -310
  436. package/gsd-core/templates/codebase/conventions.md +0 -307
  437. package/gsd-core/templates/codebase/integrations.md +0 -280
  438. package/gsd-core/templates/codebase/structure.md +0 -285
  439. package/gsd-core/templates/codebase/testing.md +0 -480
  440. package/gsd-core/templates/debug-subagent-prompt.md +0 -91
  441. package/gsd-core/templates/discovery.md +0 -146
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: gsd-review
3
3
  description: "Request cross-AI peer review of phase plans from external AI CLIs"
4
- argument-hint: "--phase N [--gemini] [--claude] [--codex] [--opencode] [--qwen] [--cursor] [--agy] [--all]"
4
+ argument-hint: "--phase N [--claude] [--codex] [--opencode] [--qwen] [--cursor] [--agy] [--all]"
5
5
  allowed-tools:
6
6
  - Read
7
7
  - Write
@@ -12,7 +12,7 @@ allowed-tools:
12
12
 
13
13
 
14
14
  <objective>
15
- Invoke external AI CLIs (Gemini, Claude, Codex, OpenCode, Qwen Code, Cursor) to independently review phase plans.
15
+ Invoke external AI CLIs (Claude, Codex, OpenCode, Qwen Code, Cursor, Antigravity) to independently review phase plans.
16
16
  Produces a structured REVIEWS.md with per-reviewer feedback that can be fed back into
17
17
  planning via /gsd-plan-phase --reviews.
18
18
 
@@ -27,7 +27,6 @@ planning via /gsd-plan-phase --reviews.
27
27
  Phase number: extracted from $ARGUMENTS (required)
28
28
 
29
29
  **Flags:**
30
- - `--gemini` — Include Gemini CLI review
31
30
  - `--claude` — Include Claude CLI review (uses separate session)
32
31
  - `--codex` — Include Codex CLI review
33
32
  - `--opencode` — Include OpenCode review (uses model from user's OpenCode config)
@@ -5,6 +5,7 @@ allowed-tools:
5
5
  - Read
6
6
  - Write
7
7
  - Bash
8
+ - Grep
8
9
  - AskUserQuestion
9
10
  ---
10
11
 
@@ -5,6 +5,7 @@ allowed-tools:
5
5
  - Read
6
6
  - Write
7
7
  - Bash
8
+ - Grep
8
9
  - AskUserQuestion
9
10
  ---
10
11
 
@@ -15,7 +16,7 @@ Interactive configuration of GSD workflow agents and model profile via multi-que
15
16
  Routes to the settings workflow which handles:
16
17
  - Config existence ensuring
17
18
  - Current settings reading and parsing
18
- - Interactive 5-question prompt (model, research, plan_check, verifier, branching)
19
+ - Interactive multi-question prompt covering model profile and workflow toggles (research, plan_check, verifier, drift guard, TDD, code review, worktrees, compact content, and more — see `gsd-core/workflows/settings.md` for the current set)
19
20
  - Config merging and writing
20
21
  - Confirmation display with quick command references
21
22
  </objective>
@@ -4,6 +4,7 @@ description: "Display project statistics — phases, plans, requirements, git me
4
4
  allowed-tools:
5
5
  - Read
6
6
  - Bash
7
+ - Grep
7
8
  ---
8
9
 
9
10
  <objective>
@@ -6,6 +6,7 @@ allowed-tools:
6
6
  - Read
7
7
  - Write
8
8
  - Bash
9
+ - Grep
9
10
  ---
10
11
 
11
12
 
@@ -6,6 +6,7 @@ allowed-tools:
6
6
  - Read
7
7
  - Write
8
8
  - Bash
9
+ - Grep
9
10
  - AskUserQuestion
10
11
  ---
11
12
 
@@ -4,6 +4,7 @@ description: "Manage parallel workstreams — list, create, switch, status, prog
4
4
  allowed-tools:
5
5
  - Read
6
6
  - Bash
7
+ - Grep
7
8
  ---
8
9
 
9
10
 
@@ -2,7 +2,7 @@
2
2
  "name": "gsd-core-vscode",
3
3
  "displayName": "GSD Core",
4
4
  "description": "GSD orchestration engine embedded in VS Code (ADR-1239 IDE profile).",
5
- "version": "1.13.0",
5
+ "version": "1.15.0",
6
6
  "publisher": "opengsd",
7
7
  "engines": {
8
8
  "vscode": "^1.105.0"
@@ -1,145 +0,0 @@
1
- # CLAUDE.md Template
2
-
3
- Template for project-root `CLAUDE.md` — auto-generated by `gsd-tools generate-claude-md`.
4
-
5
- Contains 7 marker-bounded sections. Each section is independently updatable.
6
- The `generate-claude-md` subcommand manages 6 sections (project, stack, conventions, architecture, skills, workflow enforcement).
7
- The profile section is managed exclusively by `generate-claude-profile`.
8
-
9
- ---
10
-
11
- ## Section Templates
12
-
13
- ### Project Section
14
- ```
15
- <!-- GSD:project-start source:PROJECT.md -->
16
- ## Project
17
-
18
- {{project_content}}
19
- <!-- GSD:project-end -->
20
- ```
21
-
22
- **Fallback text:**
23
- ```
24
- Project not yet initialized. Run /gsd:new-project to set up.
25
- ```
26
-
27
- ### Stack Section
28
- ```
29
- <!-- GSD:stack-start source:STACK.md -->
30
- ## Technology Stack
31
-
32
- {{stack_content}}
33
- <!-- GSD:stack-end -->
34
- ```
35
-
36
- **Fallback text:**
37
- ```
38
- Technology stack not yet documented. Will populate after codebase mapping or first phase.
39
- ```
40
-
41
- ### Conventions Section
42
- ```
43
- <!-- GSD:conventions-start source:CONVENTIONS.md -->
44
- ## Conventions
45
-
46
- {{conventions_content}}
47
- <!-- GSD:conventions-end -->
48
- ```
49
-
50
- **Fallback text:**
51
- ```
52
- Conventions not yet established. Will populate as patterns emerge during development.
53
- ```
54
-
55
- ### Architecture Section
56
- ```
57
- <!-- GSD:architecture-start source:ARCHITECTURE.md -->
58
- ## Architecture
59
-
60
- {{architecture_content}}
61
- <!-- GSD:architecture-end -->
62
- ```
63
-
64
- **Fallback text:**
65
- ```
66
- Architecture not yet mapped. Follow existing patterns found in the codebase.
67
- ```
68
-
69
- ### Skills Section
70
- ```
71
- <!-- GSD:skills-start source:skills/ -->
72
- ## Project Skills
73
-
74
- | Skill | Description | Path |
75
- | -------------- | --------------------- | ------------------------- |
76
- | {{skill_name}} | {{skill_description}} | `{{skill_path}}/SKILL.md` |
77
- <!-- GSD:skills-end -->
78
- ```
79
-
80
- **Fallback text:**
81
- ```
82
- No project skills found. Add skills to any of: `.claude/skills/`, `.agents/skills/`, `.cursor/skills/`, or `.github/skills/` with a `SKILL.md` index file.
83
- ```
84
-
85
- **Discovery behavior:**
86
- - Scans `.claude/skills/`, `.agents/skills/`, `.cursor/skills/`, `.github/skills/` for subdirectories containing `SKILL.md`
87
- - Extracts `name` and `description` from YAML frontmatter (supports multi-line descriptions)
88
- - Skips GSD's own installed skills (directories starting with `gsd-`)
89
- - Deduplicates by skill name across directories
90
-
91
- ### Workflow Enforcement Section
92
- ```
93
- <!-- GSD:workflow-start source:GSD defaults -->
94
- ## GSD Workflow Enforcement
95
-
96
- Before using Edit, Write, or other file-changing tools, start work through a GSD command so planning artifacts and execution context stay in sync.
97
-
98
- Use these entry points:
99
- - `/gsd:quick` for small fixes, doc updates, and ad-hoc tasks
100
- - `/gsd:debug` for investigation and bug fixing
101
- - `/gsd:execute-phase` for planned phase work
102
-
103
- Do not make direct repo edits outside a GSD workflow unless the user explicitly asks to bypass it.
104
- <!-- GSD:workflow-end -->
105
- ```
106
-
107
- ### Profile Section (Placeholder Only)
108
- ```
109
- <!-- GSD:profile-start -->
110
- ## Developer Profile
111
-
112
- > Profile not yet configured. Run `/gsd:profile-user` to generate your developer profile.
113
- > This section is managed by `generate-claude-profile` — do not edit manually.
114
- <!-- GSD:profile-end -->
115
- ```
116
-
117
- **Note:** This section is NOT managed by `generate-claude-md`. It is managed exclusively
118
- by `generate-claude-profile`. The placeholder above is only used when creating a new
119
- CLAUDE.md file and no profile section exists yet.
120
-
121
- ---
122
-
123
- ## Section Ordering
124
-
125
- 1. **Project** — Identity and purpose (what this project is)
126
- 2. **Stack** — Technology choices (what tools are used)
127
- 3. **Conventions** — Code patterns and rules (how code is written)
128
- 4. **Architecture** — System structure (how components fit together)
129
- 5. **Skills** — Discovered project skills with name and description (what domain knowledge is available)
130
- 6. **Workflow Enforcement** — Default GSD entry points for file-changing work
131
- 7. **Profile** — Developer behavioral preferences (how to interact)
132
-
133
- ## Marker Format
134
-
135
- - Start: `<!-- GSD:{name}-start source:{file} -->`
136
- - End: `<!-- GSD:{name}-end -->`
137
- - Source attribute enables targeted updates when source files change
138
- - Partial match on start marker (without closing `-->`) for detection
139
-
140
- ## Fallback Behavior
141
-
142
- When a source file is missing, fallback text provides Claude-actionable guidance:
143
- - Guides Claude's behavior in the absence of data
144
- - Not placeholder ads or "missing" notices
145
- - Each fallback tells Claude what to do, not just what's absent
@@ -1,310 +0,0 @@
1
- # Codebase Concerns Template
2
-
3
- Template for `.planning/codebase/CONCERNS.md` - captures known issues and areas requiring care.
4
-
5
- **Purpose:** Surface actionable warnings about the codebase. Focused on "what to watch out for when making changes."
6
-
7
- ---
8
-
9
- ## File Template
10
-
11
- ```markdown
12
- # Codebase Concerns
13
-
14
- **Analysis Date:** [YYYY-MM-DD]
15
-
16
- ## Tech Debt
17
-
18
- **[Area/Component]:**
19
- - Issue: [What's the shortcut/workaround]
20
- - Why: [Why it was done this way]
21
- - Impact: [What breaks or degrades because of it]
22
- - Fix approach: [How to properly address it]
23
-
24
- **[Area/Component]:**
25
- - Issue: [What's the shortcut/workaround]
26
- - Why: [Why it was done this way]
27
- - Impact: [What breaks or degrades because of it]
28
- - Fix approach: [How to properly address it]
29
-
30
- ## Known Bugs
31
-
32
- **[Bug description]:**
33
- - Symptoms: [What happens]
34
- - Trigger: [How to reproduce]
35
- - Workaround: [Temporary mitigation if any]
36
- - Root cause: [If known]
37
- - Blocked by: [If waiting on something]
38
-
39
- **[Bug description]:**
40
- - Symptoms: [What happens]
41
- - Trigger: [How to reproduce]
42
- - Workaround: [Temporary mitigation if any]
43
- - Root cause: [If known]
44
-
45
- ## Security Considerations
46
-
47
- **[Area requiring security care]:**
48
- - Risk: [What could go wrong]
49
- - Current mitigation: [What's in place now]
50
- - Recommendations: [What should be added]
51
-
52
- **[Area requiring security care]:**
53
- - Risk: [What could go wrong]
54
- - Current mitigation: [What's in place now]
55
- - Recommendations: [What should be added]
56
-
57
- ## Performance Bottlenecks
58
-
59
- **[Slow operation/endpoint]:**
60
- - Problem: [What's slow]
61
- - Measurement: [Actual numbers: "500ms p95", "2s load time"]
62
- - Cause: [Why it's slow]
63
- - Improvement path: [How to speed it up]
64
-
65
- **[Slow operation/endpoint]:**
66
- - Problem: [What's slow]
67
- - Measurement: [Actual numbers]
68
- - Cause: [Why it's slow]
69
- - Improvement path: [How to speed it up]
70
-
71
- ## Fragile Areas
72
-
73
- **[Component/Module]:**
74
- - Why fragile: [What makes it break easily]
75
- - Common failures: [What typically goes wrong]
76
- - Safe modification: [How to change it without breaking]
77
- - Test coverage: [Is it tested? Gaps?]
78
-
79
- **[Component/Module]:**
80
- - Why fragile: [What makes it break easily]
81
- - Common failures: [What typically goes wrong]
82
- - Safe modification: [How to change it without breaking]
83
- - Test coverage: [Is it tested? Gaps?]
84
-
85
- ## Scaling Limits
86
-
87
- **[Resource/System]:**
88
- - Current capacity: [Numbers: "100 req/sec", "10k users"]
89
- - Limit: [Where it breaks]
90
- - Symptoms at limit: [What happens]
91
- - Scaling path: [How to increase capacity]
92
-
93
- ## Dependencies at Risk
94
-
95
- **[Package/Service]:**
96
- - Risk: [e.g., "deprecated", "unmaintained", "breaking changes coming"]
97
- - Impact: [What breaks if it fails]
98
- - Migration plan: [Alternative or upgrade path]
99
-
100
- ## Missing Critical Features
101
-
102
- **[Feature gap]:**
103
- - Problem: [What's missing]
104
- - Current workaround: [How users cope]
105
- - Blocks: [What can't be done without it]
106
- - Implementation complexity: [Rough effort estimate]
107
-
108
- ## Test Coverage Gaps
109
-
110
- **[Untested area]:**
111
- - What's not tested: [Specific functionality]
112
- - Risk: [What could break unnoticed]
113
- - Priority: [High/Medium/Low]
114
- - Difficulty to test: [Why it's not tested yet]
115
-
116
- ---
117
-
118
- *Concerns audit: [date]*
119
- *Update as issues are fixed or new ones discovered*
120
- ```
121
-
122
- <good_examples>
123
- ```markdown
124
- # Codebase Concerns
125
-
126
- **Analysis Date:** 2025-01-20
127
-
128
- ## Tech Debt
129
-
130
- **Database queries in React components:**
131
- - Issue: Direct Supabase queries in 15+ page components instead of server actions
132
- - Files: `app/dashboard/page.tsx`, `app/profile/page.tsx`, `app/courses/[id]/page.tsx`, `app/settings/page.tsx` (and 11 more in `app/`)
133
- - Why: Rapid prototyping during MVP phase
134
- - Impact: Can't implement RLS properly, exposes DB structure to client
135
- - Fix approach: Move all queries to server actions in `app/actions/`, add proper RLS policies
136
-
137
- **Manual webhook signature validation:**
138
- - Issue: Copy-pasted Stripe webhook verification code in 3 different endpoints
139
- - Files: `app/api/webhooks/stripe/route.ts`, `app/api/webhooks/checkout/route.ts`, `app/api/webhooks/subscription/route.ts`
140
- - Why: Each webhook added ad-hoc without abstraction
141
- - Impact: Easy to miss verification in new webhooks (security risk)
142
- - Fix approach: Create shared `lib/stripe/validate-webhook.ts` middleware
143
-
144
- ## Known Bugs
145
-
146
- **Race condition in subscription updates:**
147
- - Symptoms: User shows as "free" tier for 5-10 seconds after successful payment
148
- - Trigger: Fast navigation after Stripe checkout redirect, before webhook processes
149
- - Files: `app/checkout/success/page.tsx` (redirect handler), `app/api/webhooks/stripe/route.ts` (webhook)
150
- - Workaround: Stripe webhook eventually updates status (self-heals)
151
- - Root cause: Webhook processing slower than user navigation, no optimistic UI update
152
- - Fix: Add polling in `app/checkout/success/page.tsx` after redirect
153
-
154
- **Inconsistent session state after logout:**
155
- - Symptoms: User redirected to /dashboard after logout instead of /login
156
- - Trigger: Logout via button in mobile nav (desktop works fine)
157
- - File: `components/MobileNav.tsx` (line ~45, logout handler)
158
- - Workaround: Manual URL navigation to /login works
159
- - Root cause: Mobile nav component not awaiting supabase.auth.signOut()
160
- - Fix: Add await to logout handler in `components/MobileNav.tsx`
161
-
162
- ## Security Considerations
163
-
164
- **Admin role check client-side only:**
165
- - Risk: Admin dashboard pages check isAdmin from Supabase client, no server verification
166
- - Files: `app/admin/page.tsx`, `app/admin/users/page.tsx`, `components/AdminGuard.tsx`
167
- - Current mitigation: None (relying on UI hiding)
168
- - Recommendations: Add middleware to admin routes in `middleware.ts`, verify role server-side
169
-
170
- **Unvalidated file uploads:**
171
- - Risk: Users can upload any file type to avatar bucket (no size/type validation)
172
- - File: `components/AvatarUpload.tsx` (upload handler)
173
- - Current mitigation: Supabase bucket limits to 2MB (configured in dashboard)
174
- - Recommendations: Add file type validation (image/* only) in `lib/storage/validate.ts`
175
-
176
- ## Performance Bottlenecks
177
-
178
- **/api/courses endpoint:**
179
- - Problem: Fetching all courses with nested lessons and authors
180
- - File: `app/api/courses/route.ts`
181
- - Measurement: 1.2s p95 response time with 50+ courses
182
- - Cause: N+1 query pattern (separate query per course for lessons)
183
- - Improvement path: Use Prisma include to eager-load lessons in `lib/db/courses.ts`, add Redis caching
184
-
185
- **Dashboard initial load:**
186
- - Problem: Waterfall of 5 serial API calls on mount
187
- - File: `app/dashboard/page.tsx`
188
- - Measurement: 3.5s until interactive on slow 3G
189
- - Cause: Each component fetches own data independently
190
- - Improvement path: Convert to Server Component with single parallel fetch
191
-
192
- ## Fragile Areas
193
-
194
- **Authentication middleware chain:**
195
- - File: `middleware.ts`
196
- - Why fragile: 4 different middleware functions run in specific order (auth -> role -> subscription -> logging)
197
- - Common failures: Middleware order change breaks everything, hard to debug
198
- - Safe modification: Add tests before changing order, document dependencies in comments
199
- - Test coverage: No integration tests for middleware chain (only unit tests)
200
-
201
- **Stripe webhook event handling:**
202
- - File: `app/api/webhooks/stripe/route.ts`
203
- - Why fragile: Giant switch statement with 12 event types, shared transaction logic
204
- - Common failures: New event type added without handling, partial DB updates on error
205
- - Safe modification: Extract each event handler to `lib/stripe/handlers/*.ts`
206
- - Test coverage: Only 3 of 12 event types have tests
207
-
208
- ## Scaling Limits
209
-
210
- **Supabase Free Tier:**
211
- - Current capacity: 500MB database, 1GB file storage, 2GB bandwidth/month
212
- - Limit: ~5000 users estimated before hitting limits
213
- - Symptoms at limit: 429 rate limit errors, DB writes fail
214
- - Scaling path: Upgrade to Pro ($25/mo) extends to 8GB DB, 100GB storage
215
-
216
- **Server-side render blocking:**
217
- - Current capacity: ~50 concurrent users before slowdown
218
- - Limit: Vercel Hobby plan (10s function timeout, 100GB-hrs/mo)
219
- - Symptoms at limit: 504 gateway timeouts on course pages
220
- - Scaling path: Upgrade to Vercel Pro ($20/mo), add edge caching
221
-
222
- ## Dependencies at Risk
223
-
224
- **react-hot-toast:**
225
- - Risk: Unmaintained (last update 18 months ago), React 19 compatibility unknown
226
- - Impact: Toast notifications break, no graceful degradation
227
- - Migration plan: Switch to sonner (actively maintained, similar API)
228
-
229
- ## Missing Critical Features
230
-
231
- **Payment failure handling:**
232
- - Problem: No retry mechanism or user notification when subscription payment fails
233
- - Current workaround: Users manually re-enter payment info (if they notice)
234
- - Blocks: Can't retain users with expired cards, no dunning process
235
- - Implementation complexity: Medium (Stripe webhooks + email flow + UI)
236
-
237
- **Course progress tracking:**
238
- - Problem: No persistent state for which lessons completed
239
- - Current workaround: Users manually track progress
240
- - Blocks: Can't show completion percentage, can't recommend next lesson
241
- - Implementation complexity: Low (add completed_lessons junction table)
242
-
243
- ## Test Coverage Gaps
244
-
245
- **Payment flow end-to-end:**
246
- - What's not tested: Full Stripe checkout -> webhook -> subscription activation flow
247
- - Risk: Payment processing could break silently (has happened twice)
248
- - Priority: High
249
- - Difficulty to test: Need Stripe test fixtures and webhook simulation setup
250
-
251
- **Error boundary behavior:**
252
- - What's not tested: How app behaves when components throw errors
253
- - Risk: White screen of death for users, no error reporting
254
- - Priority: Medium
255
- - Difficulty to test: Need to intentionally trigger errors in test environment
256
-
257
- ---
258
-
259
- *Concerns audit: 2025-01-20*
260
- *Update as issues are fixed or new ones discovered*
261
- ```
262
- </good_examples>
263
-
264
- <guidelines>
265
- **What belongs in CONCERNS.md:**
266
- - Tech debt with clear impact and fix approach
267
- - Known bugs with reproduction steps
268
- - Security gaps and mitigation recommendations
269
- - Performance bottlenecks with measurements
270
- - Fragile code that breaks easily
271
- - Scaling limits with numbers
272
- - Dependencies that need attention
273
- - Missing features that block workflows
274
- - Test coverage gaps
275
-
276
- **What does NOT belong here:**
277
- - Opinions without evidence ("code is messy")
278
- - Complaints without solutions ("auth sucks")
279
- - Future feature ideas (that's for product planning)
280
- - Normal TODOs (those live in code comments)
281
- - Architectural decisions that are working fine
282
- - Minor code style issues
283
-
284
- **When filling this template:**
285
- - **Always include file paths** - Concerns without locations are not actionable. Use backticks: `src/file.ts`
286
- - Be specific with measurements ("500ms p95" not "slow")
287
- - Include reproduction steps for bugs
288
- - Suggest fix approaches, not just problems
289
- - Focus on actionable items
290
- - Prioritize by risk/impact
291
- - Update as issues get resolved
292
- - Add new concerns as discovered
293
-
294
- **Tone guidelines:**
295
- - Professional, not emotional ("N+1 query pattern" not "terrible queries")
296
- - Solution-oriented ("Fix: add index" not "needs fixing")
297
- - Risk-focused ("Could expose user data" not "security is bad")
298
- - Factual ("3.5s load time" not "really slow")
299
-
300
- **Useful for phase planning when:**
301
- - Deciding what to work on next
302
- - Estimating risk of changes
303
- - Understanding where to be careful
304
- - Prioritizing improvements
305
- - Onboarding new Claude contexts
306
- - Planning refactoring work
307
-
308
- **How this gets populated:**
309
- Explore agents detect these during codebase mapping. Manual additions welcome for human-discovered issues. This is living documentation, not a complaint list.
310
- </guidelines>