@therocketcode/gsd-core 1.4.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 (568) hide show
  1. package/.claude-plugin/plugin.json +23 -0
  2. package/GEMINI.md +53 -0
  3. package/LICENSE +21 -0
  4. package/README.ja-JP.md +125 -0
  5. package/README.ko-KR.md +125 -0
  6. package/README.md +144 -0
  7. package/README.pt-BR.md +125 -0
  8. package/README.zh-CN.md +125 -0
  9. package/agents/gsd-advisor-researcher.md +108 -0
  10. package/agents/gsd-ai-researcher.md +114 -0
  11. package/agents/gsd-assumptions-analyzer.md +105 -0
  12. package/agents/gsd-code-fixer.md +668 -0
  13. package/agents/gsd-code-reviewer.md +387 -0
  14. package/agents/gsd-codebase-mapper.md +853 -0
  15. package/agents/gsd-debug-session-manager.md +314 -0
  16. package/agents/gsd-debugger.md +1452 -0
  17. package/agents/gsd-doc-classifier.md +168 -0
  18. package/agents/gsd-doc-synthesizer.md +204 -0
  19. package/agents/gsd-doc-verifier.md +217 -0
  20. package/agents/gsd-doc-writer.md +616 -0
  21. package/agents/gsd-domain-researcher.md +147 -0
  22. package/agents/gsd-eval-auditor.md +191 -0
  23. package/agents/gsd-eval-planner.md +154 -0
  24. package/agents/gsd-executor.md +785 -0
  25. package/agents/gsd-framework-selector.md +160 -0
  26. package/agents/gsd-integration-checker.md +470 -0
  27. package/agents/gsd-intel-updater.md +342 -0
  28. package/agents/gsd-nyquist-auditor.md +203 -0
  29. package/agents/gsd-pattern-mapper.md +335 -0
  30. package/agents/gsd-phase-researcher.md +867 -0
  31. package/agents/gsd-plan-checker.md +978 -0
  32. package/agents/gsd-planner.md +1204 -0
  33. package/agents/gsd-project-researcher.md +611 -0
  34. package/agents/gsd-research-synthesizer.md +259 -0
  35. package/agents/gsd-roadmapper.md +688 -0
  36. package/agents/gsd-security-auditor.md +155 -0
  37. package/agents/gsd-ui-auditor.md +495 -0
  38. package/agents/gsd-ui-checker.md +309 -0
  39. package/agents/gsd-ui-researcher.md +374 -0
  40. package/agents/gsd-user-profiler.md +171 -0
  41. package/agents/gsd-verifier.md +923 -0
  42. package/assets/gsd-logo-2000-transparent.png +0 -0
  43. package/assets/gsd-logo-2000-transparent.svg +17 -0
  44. package/assets/gsd-logo-2000.png +0 -0
  45. package/assets/gsd-logo-2000.svg +21 -0
  46. package/assets/terminal.svg +68 -0
  47. package/bin/install.js +12726 -0
  48. package/bin/lib/ui-safety-gate.cjs +107 -0
  49. package/commands/gsd/add-tests.md +42 -0
  50. package/commands/gsd/ai-integration-phase.md +37 -0
  51. package/commands/gsd/audit-fix.md +34 -0
  52. package/commands/gsd/audit-milestone.md +37 -0
  53. package/commands/gsd/audit-uat.md +24 -0
  54. package/commands/gsd/autonomous.md +48 -0
  55. package/commands/gsd/capture.md +62 -0
  56. package/commands/gsd/cleanup.md +24 -0
  57. package/commands/gsd/code-review.md +59 -0
  58. package/commands/gsd/complete-milestone.md +143 -0
  59. package/commands/gsd/config.md +56 -0
  60. package/commands/gsd/debug.md +52 -0
  61. package/commands/gsd/discover-product.md +65 -0
  62. package/commands/gsd/discuss-phase.md +77 -0
  63. package/commands/gsd/docs-update.md +49 -0
  64. package/commands/gsd/eval-review.md +33 -0
  65. package/commands/gsd/execute-phase.md +66 -0
  66. package/commands/gsd/explore.md +27 -0
  67. package/commands/gsd/extract-learnings.md +23 -0
  68. package/commands/gsd/fast.md +31 -0
  69. package/commands/gsd/forensics.md +57 -0
  70. package/commands/gsd/graphify.md +204 -0
  71. package/commands/gsd/health.md +31 -0
  72. package/commands/gsd/help.md +28 -0
  73. package/commands/gsd/import.md +45 -0
  74. package/commands/gsd/inbox.md +39 -0
  75. package/commands/gsd/ingest-docs.md +42 -0
  76. package/commands/gsd/manager.md +45 -0
  77. package/commands/gsd/map-codebase.md +83 -0
  78. package/commands/gsd/milestone-summary.md +51 -0
  79. package/commands/gsd/model-domain.md +65 -0
  80. package/commands/gsd/mvp-phase.md +45 -0
  81. package/commands/gsd/new-milestone.md +45 -0
  82. package/commands/gsd/new-project.md +47 -0
  83. package/commands/gsd/ns-context.md +23 -0
  84. package/commands/gsd/ns-ideate.md +24 -0
  85. package/commands/gsd/ns-manage.md +29 -0
  86. package/commands/gsd/ns-project.md +22 -0
  87. package/commands/gsd/ns-review.md +26 -0
  88. package/commands/gsd/ns-workflow.md +28 -0
  89. package/commands/gsd/pause-work.md +43 -0
  90. package/commands/gsd/phase.md +56 -0
  91. package/commands/gsd/plan-phase.md +64 -0
  92. package/commands/gsd/plan-review-convergence.md +59 -0
  93. package/commands/gsd/pr-branch.md +26 -0
  94. package/commands/gsd/profile-user.md +46 -0
  95. package/commands/gsd/progress.md +48 -0
  96. package/commands/gsd/quick.md +174 -0
  97. package/commands/gsd/recommend-architecture.md +64 -0
  98. package/commands/gsd/resume-work.md +30 -0
  99. package/commands/gsd/review-backlog.md +63 -0
  100. package/commands/gsd/review.md +42 -0
  101. package/commands/gsd/secure-phase.md +36 -0
  102. package/commands/gsd/settings.md +29 -0
  103. package/commands/gsd/ship.md +24 -0
  104. package/commands/gsd/sketch.md +60 -0
  105. package/commands/gsd/spec-phase.md +63 -0
  106. package/commands/gsd/spike.md +57 -0
  107. package/commands/gsd/stats.md +20 -0
  108. package/commands/gsd/surface.md +155 -0
  109. package/commands/gsd/testing-strategy.md +65 -0
  110. package/commands/gsd/thread.md +24 -0
  111. package/commands/gsd/ui-phase.md +35 -0
  112. package/commands/gsd/ui-review.md +33 -0
  113. package/commands/gsd/ultraplan-phase.md +34 -0
  114. package/commands/gsd/undo.md +35 -0
  115. package/commands/gsd/update.md +49 -0
  116. package/commands/gsd/validate-phase.md +36 -0
  117. package/commands/gsd/verify-work.md +39 -0
  118. package/commands/gsd/workspace.md +52 -0
  119. package/commands/gsd/workstreams.md +70 -0
  120. package/gemini-extension.json +6 -0
  121. package/gsd-core/bin/check-latest-version.cjs +161 -0
  122. package/gsd-core/bin/gsd-tools.cjs +1928 -0
  123. package/gsd-core/bin/lib/active-workstream-store.cjs +291 -0
  124. package/gsd-core/bin/lib/adr-parser.cjs +399 -0
  125. package/gsd-core/bin/lib/agent-command-router.cjs +68 -0
  126. package/gsd-core/bin/lib/artifacts.cjs +51 -0
  127. package/gsd-core/bin/lib/audit.cjs +743 -0
  128. package/gsd-core/bin/lib/check-command-router.cjs +343 -0
  129. package/gsd-core/bin/lib/cjs-command-router-adapter.cjs +81 -0
  130. package/gsd-core/bin/lib/cli-exit.cjs +42 -0
  131. package/gsd-core/bin/lib/clock.cjs +95 -0
  132. package/gsd-core/bin/lib/clusters.cjs +132 -0
  133. package/gsd-core/bin/lib/code-review-flags.cjs +59 -0
  134. package/gsd-core/bin/lib/command-aliases.cjs +809 -0
  135. package/gsd-core/bin/lib/command-arg-projection.cjs +55 -0
  136. package/gsd-core/bin/lib/command-routing-hub.cjs +300 -0
  137. package/gsd-core/bin/lib/commands.cjs +1203 -0
  138. package/gsd-core/bin/lib/config-schema.cjs +29 -0
  139. package/gsd-core/bin/lib/config-types.cjs +19 -0
  140. package/gsd-core/bin/lib/config.cjs +738 -0
  141. package/gsd-core/bin/lib/configuration.cjs +239 -0
  142. package/gsd-core/bin/lib/context-utilization.cjs +48 -0
  143. package/gsd-core/bin/lib/core.cjs +2051 -0
  144. package/gsd-core/bin/lib/decisions.cjs +118 -0
  145. package/gsd-core/bin/lib/docs.cjs +252 -0
  146. package/gsd-core/bin/lib/drift.cjs +364 -0
  147. package/gsd-core/bin/lib/fallow-runner.cjs +115 -0
  148. package/gsd-core/bin/lib/frontmatter.cjs +442 -0
  149. package/gsd-core/bin/lib/gap-checker.cjs +257 -0
  150. package/gsd-core/bin/lib/graphify.cjs +496 -0
  151. package/gsd-core/bin/lib/gsd2-import.cjs +456 -0
  152. package/gsd-core/bin/lib/init-command-router.cjs +62 -0
  153. package/gsd-core/bin/lib/init.cjs +1815 -0
  154. package/gsd-core/bin/lib/install-profiles.cjs +584 -0
  155. package/gsd-core/bin/lib/installer-migration-authoring.cjs +122 -0
  156. package/gsd-core/bin/lib/installer-migration-report.cjs +350 -0
  157. package/gsd-core/bin/lib/installer-migrations/000-first-time-baseline.cjs +218 -0
  158. package/gsd-core/bin/lib/installer-migrations/001-legacy-orphan-files.cjs +48 -0
  159. package/gsd-core/bin/lib/installer-migrations/002-codex-legacy-hooks-json.cjs +94 -0
  160. package/gsd-core/bin/lib/installer-migrations/003-rename-get-shit-done-to-gsd-core.cjs +108 -0
  161. package/gsd-core/bin/lib/installer-migrations.cjs +823 -0
  162. package/gsd-core/bin/lib/intel.cjs +590 -0
  163. package/gsd-core/bin/lib/learnings.cjs +270 -0
  164. package/gsd-core/bin/lib/legacy-cleanup.cjs +253 -0
  165. package/gsd-core/bin/lib/milestone.cjs +373 -0
  166. package/gsd-core/bin/lib/model-catalog.cjs +154 -0
  167. package/gsd-core/bin/lib/model-profiles.cjs +24 -0
  168. package/gsd-core/bin/lib/observability/event.cjs +51 -0
  169. package/gsd-core/bin/lib/observability/logger.cjs +146 -0
  170. package/gsd-core/bin/lib/observability/redaction.cjs +48 -0
  171. package/gsd-core/bin/lib/package-identity.cjs +35 -0
  172. package/gsd-core/bin/lib/package-legitimacy.cjs +368 -0
  173. package/gsd-core/bin/lib/phase-command-router.cjs +189 -0
  174. package/gsd-core/bin/lib/phase-lifecycle.cjs +74 -0
  175. package/gsd-core/bin/lib/phase.cjs +1307 -0
  176. package/gsd-core/bin/lib/phases-command-router.cjs +43 -0
  177. package/gsd-core/bin/lib/plan-scan.cjs +91 -0
  178. package/gsd-core/bin/lib/planning-workspace.cjs +245 -0
  179. package/gsd-core/bin/lib/profile-output.cjs +1120 -0
  180. package/gsd-core/bin/lib/profile-pipeline.cjs +517 -0
  181. package/gsd-core/bin/lib/project-root.cjs +119 -0
  182. package/gsd-core/bin/lib/prompt-budget.cjs +305 -0
  183. package/gsd-core/bin/lib/research-provider.cjs +137 -0
  184. package/gsd-core/bin/lib/research-store.cjs +167 -0
  185. package/gsd-core/bin/lib/review-reviewer-selection.cjs +121 -0
  186. package/gsd-core/bin/lib/roadmap-command-router.cjs +166 -0
  187. package/gsd-core/bin/lib/roadmap-upgrade.cjs +476 -0
  188. package/gsd-core/bin/lib/roadmap.cjs +600 -0
  189. package/gsd-core/bin/lib/runtime-artifact-layout.cjs +312 -0
  190. package/gsd-core/bin/lib/runtime-config-adapter-registry.cjs +56 -0
  191. package/gsd-core/bin/lib/runtime-homes.cjs +190 -0
  192. package/gsd-core/bin/lib/runtime-name-policy.cjs +96 -0
  193. package/gsd-core/bin/lib/runtime-slash.cjs +119 -0
  194. package/gsd-core/bin/lib/schema-detect.cjs +159 -0
  195. package/gsd-core/bin/lib/secrets.cjs +34 -0
  196. package/gsd-core/bin/lib/security.cjs +480 -0
  197. package/gsd-core/bin/lib/semver-compare.cjs +42 -0
  198. package/gsd-core/bin/lib/shell-command-projection.cjs +533 -0
  199. package/gsd-core/bin/lib/state-command-router.cjs +160 -0
  200. package/gsd-core/bin/lib/state-document.cjs +259 -0
  201. package/gsd-core/bin/lib/state.cjs +2010 -0
  202. package/gsd-core/bin/lib/surface.cjs +449 -0
  203. package/gsd-core/bin/lib/task-command-router.cjs +85 -0
  204. package/gsd-core/bin/lib/template.cjs +237 -0
  205. package/gsd-core/bin/lib/uat.cjs +297 -0
  206. package/gsd-core/bin/lib/ui-safety-gate.cjs +98 -0
  207. package/gsd-core/bin/lib/update-context.cjs +218 -0
  208. package/gsd-core/bin/lib/validate-command-router.cjs +91 -0
  209. package/gsd-core/bin/lib/validate.cjs +112 -0
  210. package/gsd-core/bin/lib/verification-command-router.cjs +31 -0
  211. package/gsd-core/bin/lib/verification.cjs +193 -0
  212. package/gsd-core/bin/lib/verify-command-router.cjs +44 -0
  213. package/gsd-core/bin/lib/verify.cjs +1451 -0
  214. package/gsd-core/bin/lib/workstream-inventory-builder.cjs +81 -0
  215. package/gsd-core/bin/lib/workstream-inventory.cjs +147 -0
  216. package/gsd-core/bin/lib/workstream-name-policy.cjs +91 -0
  217. package/gsd-core/bin/lib/workstream.cjs +380 -0
  218. package/gsd-core/bin/lib/worktree-base-ref.cjs +325 -0
  219. package/gsd-core/bin/lib/worktree-safety.cjs +943 -0
  220. package/gsd-core/bin/shared/config-defaults.manifest.json +98 -0
  221. package/gsd-core/bin/shared/config-schema.manifest.json +192 -0
  222. package/gsd-core/bin/shared/model-catalog.json +149 -0
  223. package/gsd-core/bin/shared/runtime-aliases.manifest.json +75 -0
  224. package/gsd-core/bin/verify-reapply-patches.cjs +349 -0
  225. package/gsd-core/contexts/dev.md +21 -0
  226. package/gsd-core/contexts/research.md +22 -0
  227. package/gsd-core/contexts/review.md +23 -0
  228. package/gsd-core/references/agent-contracts.md +79 -0
  229. package/gsd-core/references/ai-evals.md +156 -0
  230. package/gsd-core/references/ai-frameworks.md +186 -0
  231. package/gsd-core/references/architecture-decision.md +74 -0
  232. package/gsd-core/references/artifact-types.md +131 -0
  233. package/gsd-core/references/auth-in-tests.md +91 -0
  234. package/gsd-core/references/autonomous-smart-discuss.md +277 -0
  235. package/gsd-core/references/checkpoints.md +814 -0
  236. package/gsd-core/references/common-bug-patterns.md +114 -0
  237. package/gsd-core/references/context-budget.md +85 -0
  238. package/gsd-core/references/continuation-format.md +253 -0
  239. package/gsd-core/references/db-test-isolation.md +54 -0
  240. package/gsd-core/references/debugger-philosophy.md +76 -0
  241. package/gsd-core/references/decimal-phase-calculation.md +64 -0
  242. package/gsd-core/references/doc-conflict-engine.md +91 -0
  243. package/gsd-core/references/domain-modeling.md +80 -0
  244. package/gsd-core/references/domain-probes.md +125 -0
  245. package/gsd-core/references/e2e-tiering.md +35 -0
  246. package/gsd-core/references/execute-mvp-tdd.md +81 -0
  247. package/gsd-core/references/executor-examples.md +110 -0
  248. package/gsd-core/references/few-shot-examples/plan-checker.md +73 -0
  249. package/gsd-core/references/few-shot-examples/verifier.md +109 -0
  250. package/gsd-core/references/flaky-test-checklist.md +22 -0
  251. package/gsd-core/references/gate-prompts.md +100 -0
  252. package/gsd-core/references/gates.md +70 -0
  253. package/gsd-core/references/git-integration.md +298 -0
  254. package/gsd-core/references/git-planning-commit.md +40 -0
  255. package/gsd-core/references/ios-scaffold.md +123 -0
  256. package/gsd-core/references/mandatory-initial-read.md +2 -0
  257. package/gsd-core/references/model-profile-resolution.md +38 -0
  258. package/gsd-core/references/model-profiles.md +245 -0
  259. package/gsd-core/references/mvp-concepts.md +49 -0
  260. package/gsd-core/references/phase-argument-parsing.md +61 -0
  261. package/gsd-core/references/planner-antipatterns.md +89 -0
  262. package/gsd-core/references/planner-chunked.md +49 -0
  263. package/gsd-core/references/planner-gap-closure.md +62 -0
  264. package/gsd-core/references/planner-graphify-auto-update.md +67 -0
  265. package/gsd-core/references/planner-human-verify-mode.md +57 -0
  266. package/gsd-core/references/planner-interface-context.md +62 -0
  267. package/gsd-core/references/planner-load-graph-context.md +36 -0
  268. package/gsd-core/references/planner-mvp-mode.md +53 -0
  269. package/gsd-core/references/planner-reviews.md +39 -0
  270. package/gsd-core/references/planner-revision.md +87 -0
  271. package/gsd-core/references/planner-source-audit.md +73 -0
  272. package/gsd-core/references/planning-config.md +473 -0
  273. package/gsd-core/references/product-discovery.md +49 -0
  274. package/gsd-core/references/project-skills-discovery.md +19 -0
  275. package/gsd-core/references/questioning.md +162 -0
  276. package/gsd-core/references/realistic-test-data.md +44 -0
  277. package/gsd-core/references/research-documentation-lookup.md +29 -0
  278. package/gsd-core/references/research-philosophy.md +29 -0
  279. package/gsd-core/references/research-verification-protocol.md +27 -0
  280. package/gsd-core/references/revision-loop.md +97 -0
  281. package/gsd-core/references/scout-codebase.md +51 -0
  282. package/gsd-core/references/skeleton-template.md +48 -0
  283. package/gsd-core/references/sketch-interactivity.md +41 -0
  284. package/gsd-core/references/sketch-theme-system.md +94 -0
  285. package/gsd-core/references/sketch-tooling.md +45 -0
  286. package/gsd-core/references/sketch-variant-patterns.md +81 -0
  287. package/gsd-core/references/spidr-splitting.md +69 -0
  288. package/gsd-core/references/tdd.md +330 -0
  289. package/gsd-core/references/test-containers.md +55 -0
  290. package/gsd-core/references/test-strategy.md +75 -0
  291. package/gsd-core/references/thinking-models-debug.md +44 -0
  292. package/gsd-core/references/thinking-models-execution.md +50 -0
  293. package/gsd-core/references/thinking-models-planning.md +62 -0
  294. package/gsd-core/references/thinking-models-research.md +50 -0
  295. package/gsd-core/references/thinking-models-verification.md +55 -0
  296. package/gsd-core/references/thinking-partner.md +96 -0
  297. package/gsd-core/references/ui-brand.md +162 -0
  298. package/gsd-core/references/universal-anti-patterns.md +63 -0
  299. package/gsd-core/references/user-profiling.md +681 -0
  300. package/gsd-core/references/user-story-template.md +58 -0
  301. package/gsd-core/references/verification-overrides.md +227 -0
  302. package/gsd-core/references/verification-patterns.md +612 -0
  303. package/gsd-core/references/verify-mvp-mode.md +85 -0
  304. package/gsd-core/references/workstream-flag.md +111 -0
  305. package/gsd-core/references/worktree-branch-check.md +38 -0
  306. package/gsd-core/references/worktree-path-safety.md +67 -0
  307. package/gsd-core/templates/AI-SPEC.md +246 -0
  308. package/gsd-core/templates/DEBUG.md +169 -0
  309. package/gsd-core/templates/README.md +77 -0
  310. package/gsd-core/templates/SECURITY.md +61 -0
  311. package/gsd-core/templates/UAT.md +265 -0
  312. package/gsd-core/templates/UI-SPEC.md +100 -0
  313. package/gsd-core/templates/VALIDATION.md +76 -0
  314. package/gsd-core/templates/adr.md +58 -0
  315. package/gsd-core/templates/claude-md.md +145 -0
  316. package/gsd-core/templates/codebase/architecture.md +255 -0
  317. package/gsd-core/templates/codebase/concerns.md +310 -0
  318. package/gsd-core/templates/codebase/conventions.md +307 -0
  319. package/gsd-core/templates/codebase/integrations.md +280 -0
  320. package/gsd-core/templates/codebase/stack.md +186 -0
  321. package/gsd-core/templates/codebase/structure.md +285 -0
  322. package/gsd-core/templates/codebase/testing.md +480 -0
  323. package/gsd-core/templates/config.json +62 -0
  324. package/gsd-core/templates/context.md +352 -0
  325. package/gsd-core/templates/continue-here.md +78 -0
  326. package/gsd-core/templates/copilot-instructions.md +7 -0
  327. package/gsd-core/templates/debug-subagent-prompt.md +91 -0
  328. package/gsd-core/templates/dev-preferences.md +21 -0
  329. package/gsd-core/templates/discovery.md +146 -0
  330. package/gsd-core/templates/discussion-log.md +63 -0
  331. package/gsd-core/templates/domain-model.md +54 -0
  332. package/gsd-core/templates/milestone-archive.md +123 -0
  333. package/gsd-core/templates/milestone.md +115 -0
  334. package/gsd-core/templates/phase-prompt.md +610 -0
  335. package/gsd-core/templates/planner-subagent-prompt.md +117 -0
  336. package/gsd-core/templates/product-brief.md +55 -0
  337. package/gsd-core/templates/project.md +186 -0
  338. package/gsd-core/templates/requirements.md +231 -0
  339. package/gsd-core/templates/research-project/ARCHITECTURE.md +204 -0
  340. package/gsd-core/templates/research-project/FEATURES.md +147 -0
  341. package/gsd-core/templates/research-project/PITFALLS.md +200 -0
  342. package/gsd-core/templates/research-project/STACK.md +120 -0
  343. package/gsd-core/templates/research-project/SUMMARY.md +170 -0
  344. package/gsd-core/templates/research.md +592 -0
  345. package/gsd-core/templates/retrospective.md +54 -0
  346. package/gsd-core/templates/roadmap.md +202 -0
  347. package/gsd-core/templates/spec.md +307 -0
  348. package/gsd-core/templates/state.md +195 -0
  349. package/gsd-core/templates/summary-complex.md +59 -0
  350. package/gsd-core/templates/summary-minimal.md +41 -0
  351. package/gsd-core/templates/summary-standard.md +48 -0
  352. package/gsd-core/templates/summary.md +248 -0
  353. package/gsd-core/templates/test-strategy.md +50 -0
  354. package/gsd-core/templates/user-profile.md +146 -0
  355. package/gsd-core/templates/user-setup.md +311 -0
  356. package/gsd-core/templates/verification-report.md +322 -0
  357. package/gsd-core/workflows/_runtime-launcher.snippet.sh +1 -0
  358. package/gsd-core/workflows/add-backlog.md +91 -0
  359. package/gsd-core/workflows/add-phase.md +113 -0
  360. package/gsd-core/workflows/add-tests.md +355 -0
  361. package/gsd-core/workflows/add-todo.md +161 -0
  362. package/gsd-core/workflows/ai-integration-phase.md +295 -0
  363. package/gsd-core/workflows/analyze-dependencies.md +96 -0
  364. package/gsd-core/workflows/audit-fix.md +178 -0
  365. package/gsd-core/workflows/audit-milestone.md +360 -0
  366. package/gsd-core/workflows/audit-uat.md +110 -0
  367. package/gsd-core/workflows/autonomous.md +797 -0
  368. package/gsd-core/workflows/check-todos.md +180 -0
  369. package/gsd-core/workflows/cleanup.md +195 -0
  370. package/gsd-core/workflows/code-review-fix.md +502 -0
  371. package/gsd-core/workflows/code-review.md +658 -0
  372. package/gsd-core/workflows/complete-milestone.md +855 -0
  373. package/gsd-core/workflows/debug.md +237 -0
  374. package/gsd-core/workflows/diagnose-issues.md +245 -0
  375. package/gsd-core/workflows/discover-product.md +112 -0
  376. package/gsd-core/workflows/discovery-phase.md +291 -0
  377. package/gsd-core/workflows/discuss-phase/modes/advisor.md +176 -0
  378. package/gsd-core/workflows/discuss-phase/modes/all.md +28 -0
  379. package/gsd-core/workflows/discuss-phase/modes/analyze.md +44 -0
  380. package/gsd-core/workflows/discuss-phase/modes/auto.md +57 -0
  381. package/gsd-core/workflows/discuss-phase/modes/batch.md +52 -0
  382. package/gsd-core/workflows/discuss-phase/modes/chain.md +98 -0
  383. package/gsd-core/workflows/discuss-phase/modes/default.md +141 -0
  384. package/gsd-core/workflows/discuss-phase/modes/power.md +44 -0
  385. package/gsd-core/workflows/discuss-phase/modes/text.md +55 -0
  386. package/gsd-core/workflows/discuss-phase/templates/checkpoint.json +18 -0
  387. package/gsd-core/workflows/discuss-phase/templates/context.md +136 -0
  388. package/gsd-core/workflows/discuss-phase/templates/discussion-log.md +50 -0
  389. package/gsd-core/workflows/discuss-phase-assumptions.md +675 -0
  390. package/gsd-core/workflows/discuss-phase-power.md +291 -0
  391. package/gsd-core/workflows/discuss-phase.md +499 -0
  392. package/gsd-core/workflows/do.md +111 -0
  393. package/gsd-core/workflows/docs-update.md +1176 -0
  394. package/gsd-core/workflows/edit-phase.md +295 -0
  395. package/gsd-core/workflows/eval-review.md +156 -0
  396. package/gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md +95 -0
  397. package/gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md +94 -0
  398. package/gsd-core/workflows/execute-phase/steps/post-merge-gate.md +117 -0
  399. package/gsd-core/workflows/execute-phase.md +1752 -0
  400. package/gsd-core/workflows/execute-plan.md +526 -0
  401. package/gsd-core/workflows/explore.md +146 -0
  402. package/gsd-core/workflows/extract-learnings.md +243 -0
  403. package/gsd-core/workflows/fast.md +124 -0
  404. package/gsd-core/workflows/forensics.md +279 -0
  405. package/gsd-core/workflows/graduation.md +196 -0
  406. package/gsd-core/workflows/health.md +224 -0
  407. package/gsd-core/workflows/help/modes/brief.md +22 -0
  408. package/gsd-core/workflows/help/modes/default.md +50 -0
  409. package/gsd-core/workflows/help/modes/full.md +789 -0
  410. package/gsd-core/workflows/help/modes/topic.md +74 -0
  411. package/gsd-core/workflows/help.md +24 -0
  412. package/gsd-core/workflows/import.md +256 -0
  413. package/gsd-core/workflows/inbox.md +387 -0
  414. package/gsd-core/workflows/ingest-docs.md +340 -0
  415. package/gsd-core/workflows/insert-phase.md +152 -0
  416. package/gsd-core/workflows/list-phase-assumptions.md +178 -0
  417. package/gsd-core/workflows/list-workspaces.md +57 -0
  418. package/gsd-core/workflows/manager.md +393 -0
  419. package/gsd-core/workflows/map-codebase.md +446 -0
  420. package/gsd-core/workflows/milestone-summary.md +224 -0
  421. package/gsd-core/workflows/model-domain.md +162 -0
  422. package/gsd-core/workflows/mvp-phase.md +222 -0
  423. package/gsd-core/workflows/new-milestone.md +635 -0
  424. package/gsd-core/workflows/new-project.md +1555 -0
  425. package/gsd-core/workflows/new-workspace.md +240 -0
  426. package/gsd-core/workflows/next.md +299 -0
  427. package/gsd-core/workflows/node-repair.md +92 -0
  428. package/gsd-core/workflows/note.md +158 -0
  429. package/gsd-core/workflows/pause-work.md +244 -0
  430. package/gsd-core/workflows/plan-milestone-gaps.md +281 -0
  431. package/gsd-core/workflows/plan-phase.md +1814 -0
  432. package/gsd-core/workflows/plan-review-convergence.md +346 -0
  433. package/gsd-core/workflows/plant-seed.md +230 -0
  434. package/gsd-core/workflows/pr-branch.md +157 -0
  435. package/gsd-core/workflows/profile-user.md +453 -0
  436. package/gsd-core/workflows/progress.md +699 -0
  437. package/gsd-core/workflows/quick.md +1017 -0
  438. package/gsd-core/workflows/reapply-patches.md +426 -0
  439. package/gsd-core/workflows/recommend-architecture.md +135 -0
  440. package/gsd-core/workflows/remove-phase.md +156 -0
  441. package/gsd-core/workflows/remove-workspace.md +108 -0
  442. package/gsd-core/workflows/resume-project.md +332 -0
  443. package/gsd-core/workflows/review.md +748 -0
  444. package/gsd-core/workflows/scan.md +107 -0
  445. package/gsd-core/workflows/secure-phase.md +182 -0
  446. package/gsd-core/workflows/session-report.md +146 -0
  447. package/gsd-core/workflows/settings-advanced.md +810 -0
  448. package/gsd-core/workflows/settings-integrations.md +312 -0
  449. package/gsd-core/workflows/settings.md +566 -0
  450. package/gsd-core/workflows/ship.md +405 -0
  451. package/gsd-core/workflows/sketch-wrap-up.md +286 -0
  452. package/gsd-core/workflows/sketch.md +361 -0
  453. package/gsd-core/workflows/spec-phase.md +263 -0
  454. package/gsd-core/workflows/spike-wrap-up.md +307 -0
  455. package/gsd-core/workflows/spike.md +453 -0
  456. package/gsd-core/workflows/stats.md +80 -0
  457. package/gsd-core/workflows/sync-skills.md +182 -0
  458. package/gsd-core/workflows/testing-strategy.md +122 -0
  459. package/gsd-core/workflows/thread.md +222 -0
  460. package/gsd-core/workflows/transition.md +694 -0
  461. package/gsd-core/workflows/ui-phase.md +328 -0
  462. package/gsd-core/workflows/ui-review.md +193 -0
  463. package/gsd-core/workflows/ultraplan-phase.md +199 -0
  464. package/gsd-core/workflows/undo.md +314 -0
  465. package/gsd-core/workflows/update.md +496 -0
  466. package/gsd-core/workflows/validate-phase.md +181 -0
  467. package/gsd-core/workflows/verify-phase.md +544 -0
  468. package/gsd-core/workflows/verify-work.md +781 -0
  469. package/hooks/dist/gsd-check-update-worker.js +108 -0
  470. package/hooks/dist/gsd-check-update.js +66 -0
  471. package/hooks/dist/gsd-config-reload.js +133 -0
  472. package/hooks/dist/gsd-context-monitor.js +195 -0
  473. package/hooks/dist/gsd-cursor-post-tool.js +75 -0
  474. package/hooks/dist/gsd-cursor-session-start.js +52 -0
  475. package/hooks/dist/gsd-graphify-update.sh +158 -0
  476. package/hooks/dist/gsd-phase-boundary.sh +47 -0
  477. package/hooks/dist/gsd-prompt-guard.js +97 -0
  478. package/hooks/dist/gsd-read-guard.js +101 -0
  479. package/hooks/dist/gsd-read-injection-scanner.js +203 -0
  480. package/hooks/dist/gsd-session-state.sh +59 -0
  481. package/hooks/dist/gsd-statusline.js +566 -0
  482. package/hooks/dist/gsd-update-banner.js +138 -0
  483. package/hooks/dist/gsd-validate-commit.sh +57 -0
  484. package/hooks/dist/gsd-workflow-guard.js +167 -0
  485. package/hooks/dist/gsd-worktree-path-guard.js +169 -0
  486. package/hooks/dist/lib/git-cmd.js +150 -0
  487. package/hooks/dist/lib/gsd-graphify-rebuild.sh +65 -0
  488. package/hooks/dist/managed-hooks-registry.cjs +38 -0
  489. package/hooks/gsd-check-update-worker.js +108 -0
  490. package/hooks/gsd-check-update.js +66 -0
  491. package/hooks/gsd-config-reload.js +133 -0
  492. package/hooks/gsd-context-monitor.js +195 -0
  493. package/hooks/gsd-cursor-post-tool.js +75 -0
  494. package/hooks/gsd-cursor-session-start.js +52 -0
  495. package/hooks/gsd-graphify-update.sh +158 -0
  496. package/hooks/gsd-phase-boundary.sh +47 -0
  497. package/hooks/gsd-prompt-guard.js +97 -0
  498. package/hooks/gsd-read-guard.js +101 -0
  499. package/hooks/gsd-read-injection-scanner.js +203 -0
  500. package/hooks/gsd-session-state.sh +59 -0
  501. package/hooks/gsd-statusline.js +566 -0
  502. package/hooks/gsd-update-banner.js +138 -0
  503. package/hooks/gsd-validate-commit.sh +57 -0
  504. package/hooks/gsd-workflow-guard.js +167 -0
  505. package/hooks/gsd-worktree-path-guard.js +169 -0
  506. package/hooks/hooks.json +69 -0
  507. package/hooks/lib/git-cmd.js +150 -0
  508. package/hooks/lib/gsd-graphify-rebuild.sh +65 -0
  509. package/hooks/managed-hooks-registry.cjs +38 -0
  510. package/package.json +115 -0
  511. package/scripts/affected-tests-lib.cjs +542 -0
  512. package/scripts/audit-workflow-script-paths.cjs +73 -0
  513. package/scripts/base64-scan.sh +351 -0
  514. package/scripts/build-hooks.js +247 -0
  515. package/scripts/changeset/README.md +129 -0
  516. package/scripts/changeset/cli.cjs +590 -0
  517. package/scripts/changeset/github-release-notes.cjs +199 -0
  518. package/scripts/changeset/lint.cjs +111 -0
  519. package/scripts/changeset/new.cjs +137 -0
  520. package/scripts/changeset/parse.cjs +114 -0
  521. package/scripts/changeset/render.cjs +34 -0
  522. package/scripts/changeset/serialize.cjs +130 -0
  523. package/scripts/check-alias-drift.cjs +114 -0
  524. package/scripts/check-env.cjs +312 -0
  525. package/scripts/check-npm-integrity.cjs +215 -0
  526. package/scripts/ci-guard-runner.cjs +22 -0
  527. package/scripts/ci-prepare-test-scope.cjs +51 -0
  528. package/scripts/ci-rebase-check.cjs +86 -0
  529. package/scripts/ci-test-scope.cjs +431 -0
  530. package/scripts/command-contract-helpers.cjs +64 -0
  531. package/scripts/diff-touches-shipped-paths.cjs +155 -0
  532. package/scripts/fix-slash-commands.cjs +147 -0
  533. package/scripts/gen-inventory-manifest.cjs +115 -0
  534. package/scripts/gen-research-agents.cjs +276 -0
  535. package/scripts/generate-package-identity.cjs +125 -0
  536. package/scripts/issue-dedupe.cjs +278 -0
  537. package/scripts/lib/allowlist-ratchet.cjs +136 -0
  538. package/scripts/lib/cli-exit.cjs +56 -0
  539. package/scripts/lint-command-contract.cjs +114 -0
  540. package/scripts/lint-descriptions.cjs +87 -0
  541. package/scripts/lint-docs-required.cjs +222 -0
  542. package/scripts/lint-legacy-dir-name.cjs +160 -0
  543. package/scripts/lint-package-identity-drift.cjs +141 -0
  544. package/scripts/lint-pr-check-project-dir.cjs +99 -0
  545. package/scripts/lint-shell-command-projection-drift.cjs +62 -0
  546. package/scripts/lint-skill-deps.cjs +185 -0
  547. package/scripts/lint-test-file-count.allowlist.json +135 -0
  548. package/scripts/lint-test-file-count.cjs +246 -0
  549. package/scripts/mutation-matrix.cjs +222 -0
  550. package/scripts/pr-template-policy.cjs +268 -0
  551. package/scripts/prompt-injection-scan.sh +207 -0
  552. package/scripts/release-notes/discord-release-summary.cjs +373 -0
  553. package/scripts/release-notes/format-github-release-notes.cjs +261 -0
  554. package/scripts/release-tarball-smoke.cjs +629 -0
  555. package/scripts/research-profiles.cjs +149 -0
  556. package/scripts/run-affected-tests.cjs +7 -0
  557. package/scripts/run-cross-platform-tests.cjs +67 -0
  558. package/scripts/run-tests.cjs +315 -0
  559. package/scripts/secret-scan-lint.sh +231 -0
  560. package/scripts/secret-scan.sh +358 -0
  561. package/scripts/setup-branch-protection.sh +236 -0
  562. package/scripts/strip-prose-atrefs.cjs +106 -0
  563. package/scripts/sync-manifest-versions.cjs +119 -0
  564. package/scripts/sync-rulesets.sh +34 -0
  565. package/scripts/sync-runtime-launcher.cjs +399 -0
  566. package/scripts/test-failure-reasons.cjs +34 -0
  567. package/scripts/verify-npm-publish.cjs +240 -0
  568. package/scripts/workflow-policy.cjs +450 -0
@@ -0,0 +1,114 @@
1
+ # Common Bug Patterns
2
+
3
+ Checklist of frequent bug patterns to scan before forming hypotheses. Ordered by frequency. Check these FIRST — they cover ~80% of bugs across all technology stacks.
4
+
5
+ <patterns>
6
+
7
+ ## Null / Undefined Access
8
+
9
+ - **Null property access** — accessing property on `null` or `undefined`, missing null check or optional chaining
10
+ - **Missing return value** — function returns `undefined` instead of expected value, missing `return` statement or wrong branch
11
+ - **Destructuring null** — array/object destructuring on `null`/`undefined`, API returned error shape instead of data
12
+ - **Undefaulted optional** — optional parameter used without default, caller omitted argument
13
+
14
+ ## Off-by-One / Boundary
15
+
16
+ - **Wrong loop bound** — loop starts at 1 instead of 0, or ends at `length` instead of `length - 1`
17
+ - **Fence-post error** — "N items need N-1 separators" miscounted
18
+ - **Inclusive vs exclusive** — range boundary `<` vs `<=`, slice/substring end index
19
+ - **Empty collection** — `.length === 0` falls through to logic assuming items exist
20
+
21
+ ## Async / Timing
22
+
23
+ - **Missing await** — async function called without `await`, gets Promise object instead of resolved value
24
+ - **Race condition** — two async operations read/write same state without coordination
25
+ - **Stale closure** — callback captures old variable value, not current one
26
+ - **Initialization order** — event handler fires before setup complete
27
+ - **Leaked timer** — timeout/interval not cleaned up, fires after component/context destroyed
28
+
29
+ ## State Management
30
+
31
+ - **Shared mutation** — object/array modified in place affects other consumers
32
+ - **Stale render** — state updated but UI not re-rendered, missing reactive trigger or wrong reference
33
+ - **Stale handler state** — closure captures state at bind time, not current value
34
+ - **Dual source of truth** — same data stored in two places, one gets out of sync
35
+ - **Invalid transition** — state machine allows transition missing guard condition
36
+
37
+ ## Import / Module
38
+
39
+ - **Circular dependency** — module A imports B, B imports A, one gets `undefined`
40
+ - **Export mismatch** — default vs named export, `import X` vs `import { X }`
41
+ - **Wrong extension** — `.js` vs `.cjs` vs `.mjs`, `.ts` vs `.tsx`
42
+ - **Path case sensitivity** — works on Windows/macOS, fails on Linux
43
+ - **Missing extension** — ESM requires explicit file extensions in imports
44
+
45
+ ## Type / Coercion
46
+
47
+ - **String vs number compare** — `"5" > "10"` is `true` (lexicographic), `5 > 10` is `false`
48
+ - **Implicit coercion** — `==` instead of `===`, truthy/falsy surprises (`0`, `""`, `[]`)
49
+ - **Numeric precision** — `0.1 + 0.2 !== 0.3`, large integers lose precision
50
+ - **Falsy valid value** — value is `0` or `""` which is valid but falsy
51
+
52
+ ## Environment / Config
53
+
54
+ - **Missing env var** — environment variable missing or wrong value in dev vs prod vs CI
55
+ - **Hardcoded path** — works on one machine, fails on another
56
+ - **Port conflict** — port already in use, previous process still running
57
+ - **Permission denied** — different user/group in deployment
58
+ - **Missing dependency** — not in package.json or not installed
59
+
60
+ ## Data Shape / API Contract
61
+
62
+ - **Changed response shape** — backend updated, frontend expects old format
63
+ - **Wrong container type** — array where object expected or vice versa, `data` vs `data.results` vs `data[0]`
64
+ - **Missing required field** — required field omitted in payload, backend returns validation error
65
+ - **Date format mismatch** — ISO string vs timestamp vs locale string
66
+ - **Encoding mismatch** — UTF-8 vs Latin-1, URL encoding, HTML entities
67
+
68
+ ## Regex / String
69
+
70
+ - **Sticky lastIndex** — regex `g` flag with `.test()` then `.exec()`, `lastIndex` not reset between calls
71
+ - **Missing escape** — `.` matches any char, `$` is special, backslash needs doubling
72
+ - **Greedy overmatch** — `.*` eats through delimiters, need `.*?`
73
+ - **Wrong quote type** — string interpolation needs backticks for template literals
74
+
75
+ ## Error Handling
76
+
77
+ - **Swallowed error** — empty `catch {}` or logs but doesn't rethrow/handle
78
+ - **Wrong error type** — catches base `Error` when specific type needed
79
+ - **Error in handler** — cleanup code throws, masking original error
80
+ - **Unhandled rejection** — missing `.catch()` or try/catch around `await`
81
+
82
+ ## Scope / Closure
83
+
84
+ - **Variable shadowing** — inner scope declares same name, hides outer variable
85
+ - **Loop variable capture** — all closures share same `var i`, use `let` or bind
86
+ - **Lost this binding** — callback loses context, need `.bind()` or arrow function
87
+ - **Scope confusion** — `var` hoisted to function, `let`/`const` block-scoped
88
+
89
+ </patterns>
90
+
91
+ <usage>
92
+
93
+ ## How to Use This Checklist
94
+
95
+ 1. **Before forming any hypothesis**, scan the relevant categories based on the symptom
96
+ 2. **Match symptom to pattern** — if the bug involves "undefined is not an object", check Null/Undefined first
97
+ 3. **Each checked pattern is a hypothesis candidate** — verify or eliminate with evidence
98
+ 4. **If no pattern matches**, proceed to open-ended investigation
99
+
100
+ ### Symptom-to-Category Quick Map
101
+
102
+ | Symptom | Check First |
103
+ |---------|------------|
104
+ | "Cannot read property of undefined/null" | Null/Undefined Access |
105
+ | "X is not a function" | Import/Module, Type/Coercion |
106
+ | Works sometimes, fails sometimes | Async/Timing, State Management |
107
+ | Works locally, fails in CI/prod | Environment/Config |
108
+ | Wrong data displayed | Data Shape, State Management |
109
+ | Off by one item / missing last item | Off-by-One/Boundary |
110
+ | "Unexpected token" / parse error | Data Shape, Type/Coercion |
111
+ | Memory leak / growing resource usage | Async/Timing (cleanup), Scope/Closure |
112
+ | Infinite loop / max call stack | State Management, Async/Timing |
113
+
114
+ </usage>
@@ -0,0 +1,85 @@
1
+ # Context Budget Rules
2
+
3
+ Standard rules for keeping orchestrator context lean. Reference this in workflows that spawn subagents or read significant content.
4
+
5
+ See also: `references/universal-anti-patterns.md` for the complete set of universal rules.
6
+
7
+ ---
8
+
9
+ ## Universal Rules
10
+
11
+ Every workflow that spawns agents or reads significant content must follow these rules:
12
+
13
+ 1. **Never** read agent definition files (`agents/*.md`) -- `subagent_type` auto-loads them
14
+ 2. **Never** inline large files into subagent prompts -- tell agents to read files from disk instead
15
+ 3. **Read depth scales with context window** -- check `context_window` in `.planning/config.json`:
16
+ - At < 500000 tokens (default 200k): read only frontmatter, status fields, or summaries. Never read full SUMMARY.md, VERIFICATION.md, or RESEARCH.md bodies.
17
+ - At >= 500000 tokens (1M model): MAY read full subagent output bodies when the content is needed for inline presentation or decision-making. Still avoid unnecessary reads.
18
+ 4. **Delegate** heavy work to subagents -- the orchestrator routes, it doesn't execute
19
+ 5. **Proactive warning**: If you've already consumed significant context (large file reads, multiple subagent results), warn the user: "Context budget is getting heavy. Consider checkpointing progress."
20
+
21
+ ## Read Depth by Context Window
22
+
23
+ | Context Window | Subagent Output Reading | SUMMARY.md | VERIFICATION.md | PLAN.md (other phases) |
24
+ |---------------|------------------------|------------|-----------------|------------------------|
25
+ | < 500k (200k model) | Frontmatter only | Frontmatter only | Frontmatter only | Current phase only |
26
+ | >= 500k (1M model) | Full body permitted | Full body permitted | Full body permitted | Current phase only |
27
+
28
+ **How to check:** Read `.planning/config.json` and inspect `context_window`. If the field is absent, treat as 200k (conservative default).
29
+
30
+ ## Context Degradation Tiers
31
+
32
+ Monitor context usage and adjust behavior accordingly:
33
+
34
+ | Tier | Usage | Behavior |
35
+ |------|-------|----------|
36
+ | PEAK | 0-30% | Full operations. Read bodies, spawn multiple agents, inline results. |
37
+ | GOOD | 30-50% | Normal operations. Prefer frontmatter reads, delegate aggressively. |
38
+ | DEGRADING | 50-70% | Economize. Frontmatter-only reads, minimal inlining, warn user about budget. |
39
+ | POOR | 70%+ | Emergency mode. Checkpoint progress immediately. No new reads unless critical. |
40
+
41
+ ## Context Degradation Warning Signs
42
+
43
+ Quality degrades gradually before panic thresholds fire. Watch for these early signals:
44
+
45
+ - **Silent partial completion** -- agent claims task is done but implementation is incomplete. Self-check catches file existence but not semantic completeness. Always verify agent output meets the plan's must_haves, not just that files exist.
46
+ - **Increasing vagueness** -- agent starts using phrases like "appropriate handling" or "standard patterns" instead of specific code. This indicates context pressure even before budget warnings fire.
47
+ - **Skipped steps** -- agent omits protocol steps it would normally follow. If an agent's success criteria has 8 items but it only reports 5, suspect context pressure.
48
+
49
+ When delegating to agents, the orchestrator cannot verify semantic correctness of agent output -- only structural completeness. This is a fundamental limitation. Mitigate with must_haves.truths and spot-check verification.
50
+
51
+ ## MCP Tool Schema Cost (Harness Concern)
52
+
53
+ Every enabled MCP server injects its tool schema into **every turn**, regardless of whether you call any of its tools. Heavyweight servers can cost 20k+ tokens per turn each — often dwarfing whatever GSD itself can save through `model_profile` tuning. This is a Claude Code harness concern, not a GSD concern: GSD does **not** manage MCP enablement. The toggle lives in `.claude/settings.json` under `enabledMcpjsonServers` and `disabledMcpjsonServers`.
54
+
55
+ ### Why this is the biggest cost lever you don't own
56
+
57
+ Tool schemas count against the same context budget as model context, prompts, and conversation history. If a project has 5 unused MCP servers averaging 5k tokens of schema each, every turn pays a 25k-token tax before the assistant reads a single project file. Trimming MCPs has a **multiplier effect** that compounds with whichever `model_profile` you've chosen — every-turn overhead drops regardless of which model is in use.
58
+
59
+ ### Pre-Phase MCP Audit
60
+
61
+ Before starting a long phase (especially `/gsd:execute-phase`, `/gsd:plan-phase`, or anything that fans out across many subagents), run this audit:
62
+
63
+ - [ ] **Browser / playwright tools enabled?** If this phase has no UI work, disable them. They're among the heaviest per-turn schemas.
64
+ - [ ] **Platform-specific tools enabled?** Mac-tools / Windows-tools / OS-specific helpers should be disabled when not actively needed for the phase at hand.
65
+ - [ ] **Cross-project / stale MCPs?** Servers added for a different project that are still enabled here. These are often forgotten and pay a per-turn tax for zero benefit.
66
+ - [ ] **Duplicate or shadow servers?** Two MCPs offering similar tools (e.g. two different filesystem helpers). Keep one.
67
+
68
+ Each item disabled removes its schema from every subsequent turn for the rest of the session.
69
+
70
+ ### How to toggle
71
+
72
+ The keys live in `.claude/settings.json` (project) or `~/.claude/settings.json` (global) — **not** in `.planning/config.json`:
73
+
74
+ ```json
75
+ {
76
+ "enabledMcpjsonServers": ["context7"],
77
+ "disabledMcpjsonServers": ["playwright", "mac-tools"]
78
+ }
79
+ ```
80
+
81
+ Either list works — `enabledMcpjsonServers` is an explicit allow-list, `disabledMcpjsonServers` is a block-list against the default. See the [Claude Code MCP documentation](https://docs.anthropic.com/en/docs/claude-code/mcp) for the canonical reference; this section just flags it as a context-budget lever GSD users routinely overlook.
82
+
83
+ ### Composition with model_profile
84
+
85
+ Trimming MCPs and tuning `model_profile` are independent levers that **compound**. Disabling a 25k-token MCP saves 25k per turn whether you're running `quality` (opus everywhere) or `budget` (sonnet/haiku); the savings are additive, not in lieu of model tuning. Don't pick one — do both, and audit MCPs first because the per-turn savings show up immediately and stack across every subagent the orchestrator spawns.
@@ -0,0 +1,253 @@
1
+ # Continuation Format
2
+
3
+ Standard format for presenting next steps after completing a command or workflow.
4
+
5
+ ## Core Structure
6
+
7
+ ```
8
+ ---
9
+
10
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
11
+
12
+ **{identifier}: {name}** — {one-line description}
13
+
14
+ `/clear` then:
15
+
16
+ `{command to copy-paste}`
17
+
18
+ ---
19
+
20
+ **Also available:**
21
+ - `{alternative option 1}` — description
22
+ - `{alternative option 2}` — description
23
+
24
+ ---
25
+ ```
26
+
27
+ > If `project_code` is not set in the init context, omit the project identity suffix:
28
+ > `## ▶ Next Up` (no ` — [CODE] Title`).
29
+
30
+ ## Format Rules
31
+
32
+ 1. **Always show what it is** — name + description, never just a command path
33
+ 2. **Pull context from source** — ROADMAP.md for phases, PLAN.md `<objective>` for plans
34
+ 3. **Command in inline code** — backticks, easy to copy-paste, renders as clickable link
35
+ 4. **`/clear` first** — always show `/clear` before the command so users run it in the correct order
36
+ 5. **"Also available" not "Other options"** — sounds more app-like
37
+ 6. **Visual separators** — `---` above and below to make it stand out
38
+ 7. **Project identity in heading** — include `[PROJECT_CODE] PROJECT_TITLE` from init context so handoffs are self-identifying across sessions. If `project_code` is not set, omit the suffix entirely (just `## ▶ Next Up`)
39
+
40
+ ## Variants
41
+
42
+ ### Execute Next Plan
43
+
44
+ ```
45
+ ---
46
+
47
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
48
+
49
+ **02-03: Refresh Token Rotation** — Add /api/auth/refresh with sliding expiry
50
+
51
+ `/clear` then:
52
+
53
+ `/gsd:execute-phase 2`
54
+
55
+ ---
56
+
57
+ **Also available:**
58
+ - Review plan before executing
59
+ - `/gsd:discuss-phase 2 --assumptions` — check assumptions
60
+
61
+ ---
62
+ ```
63
+
64
+ ### Execute Final Plan in Phase
65
+
66
+ Add note that this is the last plan and what comes after:
67
+
68
+ ```
69
+ ---
70
+
71
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
72
+
73
+ **02-03: Refresh Token Rotation** — Add /api/auth/refresh with sliding expiry
74
+ <sub>Final plan in Phase 2</sub>
75
+
76
+ `/clear` then:
77
+
78
+ `/gsd:execute-phase 2`
79
+
80
+ ---
81
+
82
+ **After this completes:**
83
+ - Phase 2 → Phase 3 transition
84
+ - Next: **Phase 3: Core Features** — User dashboard and settings
85
+
86
+ ---
87
+ ```
88
+
89
+ ### Plan a Phase
90
+
91
+ ```
92
+ ---
93
+
94
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
95
+
96
+ **Phase 2: Authentication** — JWT login flow with refresh tokens
97
+
98
+ `/clear` then:
99
+
100
+ `/gsd:plan-phase 2`
101
+
102
+ ---
103
+
104
+ **Also available:**
105
+ - `/gsd:discuss-phase 2` — gather context first
106
+ - `/gsd:plan-phase --research-phase 2` — investigate unknowns
107
+ - Review roadmap
108
+
109
+ ---
110
+ ```
111
+
112
+ ### Phase Complete, Ready for Next
113
+
114
+ Show completion status before next action:
115
+
116
+ ```
117
+ ---
118
+
119
+ ## ✓ Phase 2 Complete
120
+
121
+ 3/3 plans executed
122
+
123
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
124
+
125
+ **Phase 3: Core Features** — User dashboard, settings, and data export
126
+
127
+ `/clear` then:
128
+
129
+ `/gsd:plan-phase 3`
130
+
131
+ ---
132
+
133
+ **Also available:**
134
+ - `/gsd:discuss-phase 3` — gather context first
135
+ - `/gsd:plan-phase --research-phase 3` — investigate unknowns
136
+ - Review what Phase 2 built
137
+
138
+ ---
139
+ ```
140
+
141
+ ### Multiple Equal Options
142
+
143
+ When there's no clear primary action:
144
+
145
+ ```
146
+ ---
147
+
148
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
149
+
150
+ **Phase 3: Core Features** — User dashboard, settings, and data export
151
+
152
+ `/clear` then one of:
153
+
154
+ **To plan directly:** `/gsd:plan-phase 3`
155
+
156
+ **To discuss context first:** `/gsd:discuss-phase 3`
157
+
158
+ **To research unknowns:** `/gsd:plan-phase --research-phase 3`
159
+
160
+ ---
161
+ ```
162
+
163
+ ### Milestone Complete
164
+
165
+ ```
166
+ ---
167
+
168
+ ## 🎉 Milestone v1.0 Complete
169
+
170
+ All 4 phases shipped
171
+
172
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
173
+
174
+ **Start v1.1** — questioning → research → requirements → roadmap
175
+
176
+ `/clear` then:
177
+
178
+ `/gsd:new-milestone`
179
+
180
+ ---
181
+ ```
182
+
183
+ ## Pulling Context
184
+
185
+ ### For phases (from ROADMAP.md):
186
+
187
+ ```markdown
188
+ ### Phase 2: Authentication
189
+ **Goal**: JWT login flow with refresh tokens
190
+ ```
191
+
192
+ Extract: `**Phase 2: Authentication** — JWT login flow with refresh tokens`
193
+
194
+ ### For plans (from ROADMAP.md):
195
+
196
+ ```markdown
197
+ Plans:
198
+ - [ ] 02-03: Add refresh token rotation
199
+ ```
200
+
201
+ Or from PLAN.md `<objective>`:
202
+
203
+ ```xml
204
+ <objective>
205
+ Add refresh token rotation with sliding expiry window.
206
+
207
+ Purpose: Extend session lifetime without compromising security.
208
+ </objective>
209
+ ```
210
+
211
+ Extract: `**02-03: Refresh Token Rotation** — Add /api/auth/refresh with sliding expiry`
212
+
213
+ ## Anti-Patterns
214
+
215
+ ### Don't: Command-only (no context)
216
+
217
+ ```
218
+ ## To Continue
219
+
220
+ Run `/clear`, then paste:
221
+ /gsd:execute-phase 2
222
+ ```
223
+
224
+ User has no idea what 02-03 is about.
225
+
226
+ ### Don't: Missing /clear explanation
227
+
228
+ ```
229
+ `/gsd:plan-phase 3`
230
+
231
+ Run /clear first.
232
+ ```
233
+
234
+ Doesn't explain why. User might skip it.
235
+
236
+ ### Don't: "Other options" language
237
+
238
+ ```
239
+ Other options:
240
+ - Review roadmap
241
+ ```
242
+
243
+ Sounds like an afterthought. Use "Also available:" instead.
244
+
245
+ ### Don't: Fenced code blocks for commands
246
+
247
+ ```
248
+ ```
249
+ /gsd:plan-phase 3
250
+ ```
251
+ ```
252
+
253
+ Fenced blocks inside templates create nesting ambiguity. Use inline backticks instead.
@@ -0,0 +1,54 @@
1
+ # Database Test Isolation & Parallelization
2
+
3
+ How-to reference for keeping DB integration tests deterministic under parallelism — the "passes in isolation, fails in parallel" problem. Read this when tests share a database. Pairs with `test-containers.md`.
4
+
5
+ ## The problem
6
+
7
+ Tests that share a database and run in parallel clobber each other's data → flaky, order-dependent failures. Fix = per-worker isolation + deterministic, test-owned data.
8
+
9
+ ## Strategy tradeoff table
10
+
11
+ | Strategy | How | Parallel-safe | Speed | Tradeoff |
12
+ |---|---|---|---|---|
13
+ | **Txn-per-test + rollback** | open a transaction in setup, roll back in teardown; nothing commits | yes, if each worker has its own connection | fastest (in-memory rollback) | breaks if app code opens its own transactions / parallel queries; can't test commit-time behavior |
14
+ | **TRUNCATE/DELETE between tests** | wipe tables after each test | hard on a shared DB | ok small; slows as data grows | serializes the suite |
15
+ | **Schema-per-worker** | `CREATE SCHEMA w$i` + `search_path`; drop after | yes | ~200 ms clone | conflicts if the app already uses schemas for multi-tenancy |
16
+ | **Database-per-worker** | each parallel worker gets its own DB (by worker index) | yes (strongest) | ~400 ms full clone | more DBs to manage |
17
+ | **Template DB** (`CREATE DATABASE x TEMPLATE app_template`) | build a migrated+seeded template once, copy per worker/test | yes | fast reset (copy beats re-migrating) | **no sessions may be connected to the template during the copy** |
18
+ | **No-truncate + UUID-scoped data** | each test inserts only its own rows keyed by UUID; never clean up | yes | very fast (no reset) | can't assert global counts; assertions must be scoped to test-owned rows |
19
+
20
+ ## Recommended default (parallel CI)
21
+
22
+ **Database-per-worker (or schema-per-worker), seeded from a template DB, with transaction-per-test rollback inside each worker.** Stacks per-worker isolation (no cross-worker races) with cheap per-test reset. Fall back to template-copy or no-truncate+UUID where app code manages its own transactions (rollback won't work there).
23
+
24
+ ## Determinism checklist
25
+
26
+ - One DB/schema per worker → zero shared mutable state.
27
+ - Unique keys via **UUID or a per-factory sequence** — never raw Faker values you assert on (Heisenbugs).
28
+ - Fixed clock + seeded RNG (see `flaky-test-checklist.md`).
29
+ - Order-independent: every test self-seeds; no test depends on another's leftover rows.
30
+
31
+ ## Worker-indexed DB (Playwright example)
32
+
33
+ ```ts
34
+ // derive a per-worker DB from the worker index, in a worker-scoped fixture
35
+ const dbName = `app_w${process.env.TEST_PARALLEL_INDEX ?? test.info().workerIndex}`;
36
+ // CREATE DATABASE ${dbName} TEMPLATE app_template; (drain template connections first)
37
+ ```
38
+
39
+ ## Postgres template DB
40
+
41
+ ```sql
42
+ -- build once (migrated + reference/seed data), then per worker/test:
43
+ -- drain the template first (it must have ZERO active connections):
44
+ SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'app_template' AND pid <> pg_backend_pid();
45
+ CREATE DATABASE app_w0 TEMPLATE app_template; -- run this while connected to another DB (e.g. postgres)
46
+ ```
47
+
48
+ ## Anti-patterns
49
+
50
+ - A single shared DB across parallel workers with TRUNCATE between tests (races; forces serialization).
51
+ - Raw random Faker values in assertions (intermittent failures you can't reproduce).
52
+ - Order-dependent tests (one test relying on another's leftover state).
53
+
54
+ *Sources: conroy.org (schema-per-test); Kevin Burke (parallel DB tests, UUID-scoped); Postgres template-DB docs; Playwright parallel docs. Genuine tradeoff: txn-rollback is fastest but incompatible with app-managed transactions; UUID-scoped never cleans up but can't assert global state — choose by whether your assertions need global counts.*
@@ -0,0 +1,76 @@
1
+ # Debugger Philosophy
2
+
3
+ Evergreen debugging disciplines — applies across every bug, every language, every system. Loaded by `gsd-debugger` via `@file` include.
4
+
5
+ ## User = Reporter, Claude = Investigator
6
+
7
+ The user knows:
8
+ - What they expected to happen
9
+ - What actually happened
10
+ - Error messages they saw
11
+ - When it started / if it ever worked
12
+
13
+ The user does NOT know (don't ask):
14
+ - What's causing the bug
15
+ - Which file has the problem
16
+ - What the fix should be
17
+
18
+ Ask about experience. Investigate the cause yourself.
19
+
20
+ ## Meta-Debugging: Your Own Code
21
+
22
+ When debugging code you wrote, you're fighting your own mental model.
23
+
24
+ **Why this is harder:**
25
+ - You made the design decisions - they feel obviously correct
26
+ - You remember intent, not what you actually implemented
27
+ - Familiarity breeds blindness to bugs
28
+
29
+ **The discipline:**
30
+ 1. **Treat your code as foreign** - Read it as if someone else wrote it
31
+ 2. **Question your design decisions** - Your implementation decisions are hypotheses, not facts
32
+ 3. **Admit your mental model might be wrong** - The code's behavior is truth; your model is a guess
33
+ 4. **Prioritize code you touched** - If you modified 100 lines and something breaks, those are prime suspects
34
+
35
+ **The hardest admission:** "I implemented this wrong." Not "requirements were unclear" - YOU made an error.
36
+
37
+ ## Foundation Principles
38
+
39
+ When debugging, return to foundational truths:
40
+
41
+ - **What do you know for certain?** Observable facts, not assumptions
42
+ - **What are you assuming?** "This library should work this way" - have you verified?
43
+ - **Strip away everything you think you know.** Build understanding from observable facts.
44
+
45
+ ## Cognitive Biases to Avoid
46
+
47
+ | Bias | Trap | Antidote |
48
+ |------|------|----------|
49
+ | **Confirmation** | Only look for evidence supporting your hypothesis | Actively seek disconfirming evidence. "What would prove me wrong?" |
50
+ | **Anchoring** | First explanation becomes your anchor | Generate 3+ independent hypotheses before investigating any |
51
+ | **Availability** | Recent bugs → assume similar cause | Treat each bug as novel until evidence suggests otherwise |
52
+ | **Sunk Cost** | Spent 2 hours on one path, keep going despite evidence | Every 30 min: "If I started fresh, is this still the path I'd take?" |
53
+
54
+ ## Systematic Investigation Disciplines
55
+
56
+ **Change one variable:** Make one change, test, observe, document, repeat. Multiple changes = no idea what mattered.
57
+
58
+ **Complete reading:** Read entire functions, not just "relevant" lines. Read imports, config, tests. Skimming misses crucial details.
59
+
60
+ **Embrace not knowing:** "I don't know why this fails" = good (now you can investigate). "It must be X" = dangerous (you've stopped thinking).
61
+
62
+ ## When to Restart
63
+
64
+ Consider starting over when:
65
+ 1. **2+ hours with no progress** - You're likely tunnel-visioned
66
+ 2. **3+ "fixes" that didn't work** - Your mental model is wrong
67
+ 3. **You can't explain the current behavior** - Don't add changes on top of confusion
68
+ 4. **You're debugging the debugger** - Something fundamental is wrong
69
+ 5. **The fix works but you don't know why** - This isn't fixed, this is luck
70
+
71
+ **Restart protocol:**
72
+ 1. Close all files and terminals
73
+ 2. Write down what you know for certain
74
+ 3. Write down what you've ruled out
75
+ 4. List new hypotheses (different from before)
76
+ 5. Begin again from Phase 1: Evidence Gathering
@@ -0,0 +1,64 @@
1
+ # Decimal Phase Calculation
2
+
3
+ Calculate the next decimal phase number for urgent insertions.
4
+
5
+ ## Using gsd-tools
6
+
7
+ ```bash
8
+ # Get next decimal phase after phase 6
9
+ gsd-tools query phase.next-decimal 6
10
+ ```
11
+
12
+ Output:
13
+ ```json
14
+ {
15
+ "found": true,
16
+ "base_phase": "06",
17
+ "next": "06.1",
18
+ "existing": []
19
+ }
20
+ ```
21
+
22
+ With existing decimals:
23
+ ```json
24
+ {
25
+ "found": true,
26
+ "base_phase": "06",
27
+ "next": "06.3",
28
+ "existing": ["06.1", "06.2"]
29
+ }
30
+ ```
31
+
32
+ ## Extract Values
33
+
34
+ ```bash
35
+ DECIMAL_PHASE=$(gsd-tools query phase.next-decimal "${AFTER_PHASE}" --pick next)
36
+ BASE_PHASE=$(gsd-tools query phase.next-decimal "${AFTER_PHASE}" --pick base_phase)
37
+ ```
38
+
39
+ Or with --raw flag:
40
+ ```bash
41
+ DECIMAL_PHASE=$(gsd-tools query phase.next-decimal "${AFTER_PHASE}" --raw)
42
+ # Returns just: 06.1
43
+ ```
44
+
45
+ ## Examples
46
+
47
+ | Existing Phases | Next Phase |
48
+ |-----------------|------------|
49
+ | 06 only | 06.1 |
50
+ | 06, 06.1 | 06.2 |
51
+ | 06, 06.1, 06.2 | 06.3 |
52
+ | 06, 06.1, 06.3 (gap) | 06.4 |
53
+
54
+ ## Directory Naming
55
+
56
+ Decimal phase directories use the full decimal number:
57
+
58
+ ```bash
59
+ SLUG=$(gsd-tools query generate-slug "$DESCRIPTION" --raw)
60
+ PHASE_DIR=".planning/phases/${DECIMAL_PHASE}-${SLUG}"
61
+ mkdir -p "$PHASE_DIR"
62
+ ```
63
+
64
+ Example: `.planning/phases/06.1-fix-critical-auth-bug/`