@opengsd/gsd-pi 1.3.0 → 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 (912) hide show
  1. package/README.md +10 -10
  2. package/dist/cli.js +32 -4
  3. package/dist/headless-answers.js +1 -1
  4. package/dist/headless-context.js +0 -1
  5. package/dist/headless-ui.d.ts +1 -1
  6. package/dist/headless-ui.js +1 -1
  7. package/dist/headless.js +1 -1
  8. package/dist/help-text.js +29 -0
  9. package/dist/hermes-integration-install.d.ts +17 -0
  10. package/dist/hermes-integration-install.js +199 -0
  11. package/dist/jiti-workspace-aliases.d.ts +11 -2
  12. package/dist/jiti-workspace-aliases.js +19 -3
  13. package/dist/read-cli.d.ts +23 -0
  14. package/dist/read-cli.js +90 -0
  15. package/dist/resource-loader.d.ts +3 -3
  16. package/dist/resource-loader.js +4 -13
  17. package/dist/resources/.managed-resources-content-hash +1 -1
  18. package/dist/resources/GSD-WORKFLOW.md +22 -22
  19. package/dist/resources/extensions/claude-code-cli/index.js +7 -1
  20. package/dist/resources/extensions/claude-code-cli/models.js +9 -0
  21. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +84 -22
  22. package/dist/resources/extensions/google-cli/stream-adapter.js +82 -15
  23. package/dist/resources/extensions/gsd/artifact-verification.js +427 -0
  24. package/dist/resources/extensions/gsd/auto/dispatch-history.js +6 -1
  25. package/dist/resources/extensions/gsd/auto/loop.js +67 -2
  26. package/dist/resources/extensions/gsd/auto/orchestrator.js +28 -10
  27. package/dist/resources/extensions/gsd/auto/session.js +11 -0
  28. package/dist/resources/extensions/gsd/auto/verification-retry-policy.js +1 -1
  29. package/dist/resources/extensions/gsd/auto/workflow-kernel.js +15 -1
  30. package/dist/resources/extensions/gsd/auto-artifact-paths.js +108 -19
  31. package/dist/resources/extensions/gsd/auto-budget.js +5 -1
  32. package/dist/resources/extensions/gsd/auto-dispatch.js +62 -27
  33. package/dist/resources/extensions/gsd/auto-model-selection.js +8 -5
  34. package/dist/resources/extensions/gsd/auto-post-unit.js +28 -22
  35. package/dist/resources/extensions/gsd/auto-prompts.js +68 -43
  36. package/dist/resources/extensions/gsd/auto-recovery.js +14 -483
  37. package/dist/resources/extensions/gsd/auto-runtime-state.js +17 -5
  38. package/dist/resources/extensions/gsd/auto-start.js +56 -30
  39. package/dist/resources/extensions/gsd/auto-timeout-recovery.js +3 -3
  40. package/dist/resources/extensions/gsd/auto-verification.js +10 -4
  41. package/dist/resources/extensions/gsd/auto-worktree.js +117 -91
  42. package/dist/resources/extensions/gsd/auto.js +40 -15
  43. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +141 -65
  44. package/dist/resources/extensions/gsd/bootstrap/core-session-tools.js +39 -0
  45. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +11 -5
  46. package/dist/resources/extensions/gsd/bootstrap/exec-tools.js +2 -0
  47. package/dist/resources/extensions/gsd/bootstrap/fallback-continuation.js +25 -0
  48. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +23 -1
  49. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +117 -27
  50. package/dist/resources/extensions/gsd/bootstrap/system-context.js +190 -43
  51. package/dist/resources/extensions/gsd/bootstrap/tool-call-loop-guard.js +96 -10
  52. package/dist/resources/extensions/gsd/bootstrap/tool-search-shim.js +22 -3
  53. package/dist/resources/extensions/gsd/bootstrap/write-gate.js +73 -16
  54. package/dist/resources/extensions/gsd/closeout-consistency-gate.js +95 -5
  55. package/dist/resources/extensions/gsd/codebase-generator.js +5 -8
  56. package/dist/resources/extensions/gsd/commands/catalog.js +6 -0
  57. package/dist/resources/extensions/gsd/commands/dispatcher.js +3 -0
  58. package/dist/resources/extensions/gsd/commands/gsd-core-aliases-handler.js +39 -0
  59. package/dist/resources/extensions/gsd/commands/gsd-core-aliases.js +44 -0
  60. package/dist/resources/extensions/gsd/commands/handlers/auto.js +1 -1
  61. package/dist/resources/extensions/gsd/commands/handlers/core.js +30 -0
  62. package/dist/resources/extensions/gsd/commands/handlers/ops.js +225 -1
  63. package/dist/resources/extensions/gsd/commands-cmux.js +3 -1
  64. package/dist/resources/extensions/gsd/commands-context.js +19 -1
  65. package/dist/resources/extensions/gsd/commands-gsd-core.js +868 -0
  66. package/dist/resources/extensions/gsd/commands-handlers.js +67 -1
  67. package/dist/resources/extensions/gsd/commands-maintenance.js +79 -2
  68. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +23 -12
  69. package/dist/resources/extensions/gsd/commands-usage.js +1 -1
  70. package/dist/resources/extensions/gsd/commands-verdict.js +17 -11
  71. package/dist/resources/extensions/gsd/commands-worktree.js +12 -10
  72. package/dist/resources/extensions/gsd/compat/compat-marker.js +172 -0
  73. package/dist/resources/extensions/gsd/compat/index.js +3 -0
  74. package/dist/resources/extensions/gsd/compat/planning-compat.js +142 -0
  75. package/dist/resources/extensions/gsd/config-overlay.js +2 -2
  76. package/dist/resources/extensions/gsd/consent-question.js +12 -0
  77. package/dist/resources/extensions/gsd/consent-verdict.js +10 -0
  78. package/dist/resources/extensions/gsd/dashboard-overlay.js +71 -6
  79. package/dist/resources/extensions/gsd/db/engine.js +31 -1
  80. package/dist/resources/extensions/gsd/db/queries.js +114 -0
  81. package/dist/resources/extensions/gsd/db/unit-dispatches.js +22 -1
  82. package/dist/resources/extensions/gsd/db-memory-fts-schema.js +34 -0
  83. package/dist/resources/extensions/gsd/db-workspace.js +68 -4
  84. package/dist/resources/extensions/gsd/delegation-policy.js +1 -1
  85. package/dist/resources/extensions/gsd/discussion-handoff.js +9 -5
  86. package/dist/resources/extensions/gsd/docs/preferences-reference.md +2 -2
  87. package/dist/resources/extensions/gsd/doctor-engine-checks.js +192 -4
  88. package/dist/resources/extensions/gsd/doctor-git-checks.js +25 -3
  89. package/dist/resources/extensions/gsd/doctor-providers.js +92 -8
  90. package/dist/resources/extensions/gsd/doctor-runtime-checks.js +5 -15
  91. package/dist/resources/extensions/gsd/doctor.js +28 -7
  92. package/dist/resources/extensions/gsd/error-classifier.js +13 -1
  93. package/dist/resources/extensions/gsd/escalation.js +11 -4
  94. package/dist/resources/extensions/gsd/exec-sandbox.js +53 -11
  95. package/dist/resources/extensions/gsd/export-html.js +10 -3
  96. package/dist/resources/extensions/gsd/export.js +73 -0
  97. package/dist/resources/extensions/gsd/file-lock.js +1 -1
  98. package/dist/resources/extensions/gsd/flat-phase-migration.js +221 -0
  99. package/dist/resources/extensions/gsd/forensics.js +4 -33
  100. package/dist/resources/extensions/gsd/git-service.js +68 -8
  101. package/dist/resources/extensions/gsd/gitignore.js +10 -3
  102. package/dist/resources/extensions/gsd/guidance.js +7 -7
  103. package/dist/resources/extensions/gsd/guided-flow-queue.js +66 -5
  104. package/dist/resources/extensions/gsd/guided-flow.js +11 -6
  105. package/dist/resources/extensions/gsd/health-widget.js +55 -29
  106. package/dist/resources/extensions/gsd/json-persistence.js +20 -0
  107. package/dist/resources/extensions/gsd/knowledge-backfill.js +18 -11
  108. package/dist/resources/extensions/gsd/layout-policy.js +77 -0
  109. package/dist/resources/extensions/gsd/markdown-renderer.js +396 -122
  110. package/dist/resources/extensions/gsd/mcp-filter.js +44 -10
  111. package/dist/resources/extensions/gsd/md-importer.js +153 -51
  112. package/dist/resources/extensions/gsd/memory-backfill.js +28 -21
  113. package/dist/resources/extensions/gsd/memory-consolidation-scanner.js +44 -21
  114. package/dist/resources/extensions/gsd/metrics.js +22 -14
  115. package/dist/resources/extensions/gsd/migrate/layout-detect.js +32 -0
  116. package/dist/resources/extensions/gsd/migrate/planning-writer.js +203 -0
  117. package/dist/resources/extensions/gsd/migrate-external.js +62 -8
  118. package/dist/resources/extensions/gsd/migration-auto-check.js +27 -14
  119. package/dist/resources/extensions/gsd/milestone-actions.js +5 -3
  120. package/dist/resources/extensions/gsd/milestone-closeout.js +12 -2
  121. package/dist/resources/extensions/gsd/milestone-ids.js +79 -18
  122. package/dist/resources/extensions/gsd/milestone-implementation-evidence.js +26 -20
  123. package/dist/resources/extensions/gsd/milestone-planning-persistence.js +8 -0
  124. package/dist/resources/extensions/gsd/milestone-validation-verdict.js +7 -4
  125. package/dist/resources/extensions/gsd/model-router.js +79 -20
  126. package/dist/resources/extensions/gsd/notification-store.js +22 -29
  127. package/dist/resources/extensions/gsd/notifications.js +36 -7
  128. package/dist/resources/extensions/gsd/observability-validator.js +12 -4
  129. package/dist/resources/extensions/gsd/orphan-stash-audit.js +92 -16
  130. package/dist/resources/extensions/gsd/parallel-monitor-overlay.js +133 -35
  131. package/dist/resources/extensions/gsd/parsers-legacy.js +40 -14
  132. package/dist/resources/extensions/gsd/paths.js +356 -44
  133. package/dist/resources/extensions/gsd/planning-depth.js +2 -1
  134. package/dist/resources/extensions/gsd/post-execution-checks.js +26 -3
  135. package/dist/resources/extensions/gsd/preferences-models.js +23 -11
  136. package/dist/resources/extensions/gsd/preferences.js +62 -13
  137. package/dist/resources/extensions/gsd/prompts/ai-integration-phase.md +28 -0
  138. package/dist/resources/extensions/gsd/prompts/audit-fix.md +39 -0
  139. package/dist/resources/extensions/gsd/prompts/audit-milestone.md +26 -0
  140. package/dist/resources/extensions/gsd/prompts/audit-uat.md +24 -0
  141. package/dist/resources/extensions/gsd/prompts/autonomous.md +31 -0
  142. package/dist/resources/extensions/gsd/prompts/code-review.md +39 -0
  143. package/dist/resources/extensions/gsd/prompts/complete-slice.md +21 -16
  144. package/dist/resources/extensions/gsd/prompts/discuss-phase.md +31 -0
  145. package/dist/resources/extensions/gsd/prompts/docs-update.md +13 -0
  146. package/dist/resources/extensions/gsd/prompts/execute-phase.md +33 -0
  147. package/dist/resources/extensions/gsd/prompts/explore.md +58 -0
  148. package/dist/resources/extensions/gsd/prompts/graphify.md +27 -0
  149. package/dist/resources/extensions/gsd/prompts/health.md +37 -0
  150. package/dist/resources/extensions/gsd/prompts/import.md +30 -0
  151. package/dist/resources/extensions/gsd/prompts/inbox.md +27 -0
  152. package/dist/resources/extensions/gsd/prompts/ingest-docs.md +30 -0
  153. package/dist/resources/extensions/gsd/prompts/manager.md +21 -0
  154. package/dist/resources/extensions/gsd/prompts/map-codebase.md +42 -0
  155. package/dist/resources/extensions/gsd/prompts/milestone-summary.md +27 -0
  156. package/dist/resources/extensions/gsd/prompts/mvp-phase.md +23 -0
  157. package/dist/resources/extensions/gsd/prompts/pause-work.md +24 -0
  158. package/dist/resources/extensions/gsd/prompts/phase.md +22 -0
  159. package/dist/resources/extensions/gsd/prompts/plan-milestone.md +2 -2
  160. package/dist/resources/extensions/gsd/prompts/plan-phase.md +34 -0
  161. package/dist/resources/extensions/gsd/prompts/plan-review-convergence.md +34 -0
  162. package/dist/resources/extensions/gsd/prompts/plan-slice.md +3 -3
  163. package/dist/resources/extensions/gsd/prompts/profile-user.md +28 -0
  164. package/dist/resources/extensions/gsd/prompts/progress.md +30 -0
  165. package/dist/resources/extensions/gsd/prompts/resume-work.md +20 -0
  166. package/dist/resources/extensions/gsd/prompts/review-backlog.md +21 -0
  167. package/dist/resources/extensions/gsd/prompts/review.md +27 -0
  168. package/dist/resources/extensions/gsd/prompts/secure-phase.md +24 -0
  169. package/dist/resources/extensions/gsd/prompts/settings.md +24 -0
  170. package/dist/resources/extensions/gsd/prompts/sketch.md +59 -0
  171. package/dist/resources/extensions/gsd/prompts/spec-phase.md +29 -0
  172. package/dist/resources/extensions/gsd/prompts/spike.md +59 -0
  173. package/dist/resources/extensions/gsd/prompts/stats.md +43 -0
  174. package/dist/resources/extensions/gsd/prompts/surface.md +25 -0
  175. package/dist/resources/extensions/gsd/prompts/thread.md +24 -0
  176. package/dist/resources/extensions/gsd/prompts/ui-phase.md +29 -0
  177. package/dist/resources/extensions/gsd/prompts/ui-review.md +29 -0
  178. package/dist/resources/extensions/gsd/prompts/ultraplan-phase.md +24 -0
  179. package/dist/resources/extensions/gsd/prompts/validate-phase.md +26 -0
  180. package/dist/resources/extensions/gsd/prompts/verify-work.md +24 -0
  181. package/dist/resources/extensions/gsd/prompts/workspace.md +22 -0
  182. package/dist/resources/extensions/gsd/prompts/workstreams.md +24 -0
  183. package/dist/resources/extensions/gsd/queue-order.js +3 -2
  184. package/dist/resources/extensions/gsd/quick.js +45 -2
  185. package/dist/resources/extensions/gsd/recovery-classification.js +8 -0
  186. package/dist/resources/extensions/gsd/roadmap-slices.js +1 -1
  187. package/dist/resources/extensions/gsd/root-write-leak-guard.js +7 -1
  188. package/dist/resources/extensions/gsd/safety/content-validator.js +2 -1
  189. package/dist/resources/extensions/gsd/safety/destructive-guard.js +8 -1
  190. package/dist/resources/extensions/gsd/safety/evidence-collector.js +16 -1
  191. package/dist/resources/extensions/gsd/safety/evidence-cross-ref.js +43 -1
  192. package/dist/resources/extensions/gsd/safety/file-change-validator.js +5 -2
  193. package/dist/resources/extensions/gsd/service-tier.js +2 -1
  194. package/dist/resources/extensions/gsd/session-forensics.js +11 -1
  195. package/dist/resources/extensions/gsd/session-lock.js +7 -6
  196. package/dist/resources/extensions/gsd/skills/gsd-headless/SKILL.md +3 -0
  197. package/dist/resources/extensions/gsd/skills/gsd-headless/references/commands.md +51 -0
  198. package/dist/resources/extensions/gsd/state/derive/cache.js +28 -0
  199. package/dist/resources/extensions/gsd/state/derive/db-open.js +39 -0
  200. package/dist/resources/extensions/gsd/state/derive/from-db.js +452 -0
  201. package/dist/resources/extensions/gsd/state/derive/index.js +75 -0
  202. package/dist/resources/extensions/gsd/state/derive/interrupted-work.js +21 -0
  203. package/dist/resources/extensions/gsd/state-reconciliation/drift/artifact-db.js +38 -4
  204. package/dist/resources/extensions/gsd/state-reconciliation/drift/completion.js +24 -3
  205. package/dist/resources/extensions/gsd/state-reconciliation/drift/external-markdown-edit.js +82 -0
  206. package/dist/resources/extensions/gsd/state-reconciliation/drift/external-planning-edit.js +142 -0
  207. package/dist/resources/extensions/gsd/state-reconciliation/drift/project-md.js +19 -6
  208. package/dist/resources/extensions/gsd/state-reconciliation/drift/roadmap.js +2 -2
  209. package/dist/resources/extensions/gsd/state-reconciliation/drift/stale-render.js +138 -19
  210. package/dist/resources/extensions/gsd/state-reconciliation/index.js +84 -26
  211. package/dist/resources/extensions/gsd/state-reconciliation/registry.js +34 -18
  212. package/dist/resources/extensions/gsd/state.js +13 -581
  213. package/dist/resources/extensions/gsd/sync-lock.js +11 -18
  214. package/dist/resources/extensions/gsd/tool-surface-readiness.js +205 -16
  215. package/dist/resources/extensions/gsd/tools/complete-milestone.js +8 -4
  216. package/dist/resources/extensions/gsd/tools/complete-slice.js +14 -4
  217. package/dist/resources/extensions/gsd/tools/complete-task.js +58 -15
  218. package/dist/resources/extensions/gsd/tools/exec-tool.js +7 -2
  219. package/dist/resources/extensions/gsd/tools/plan-slice.js +60 -47
  220. package/dist/resources/extensions/gsd/tools/plan-task.js +40 -2
  221. package/dist/resources/extensions/gsd/tools/reassess-roadmap.js +9 -3
  222. package/dist/resources/extensions/gsd/tools/validate-milestone.js +8 -3
  223. package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +44 -5
  224. package/dist/resources/extensions/gsd/triage-resolution.js +14 -7
  225. package/dist/resources/extensions/gsd/undo.js +51 -15
  226. package/dist/resources/extensions/gsd/unit-context-composer.js +23 -7
  227. package/dist/resources/extensions/gsd/unit-registry.js +63 -9
  228. package/dist/resources/extensions/gsd/unmerged-milestone-guard.js +91 -5
  229. package/dist/resources/extensions/gsd/validation-block-guard.js +54 -4
  230. package/dist/resources/extensions/gsd/verification-gate.js +7 -0
  231. package/dist/resources/extensions/gsd/visualizer-data.js +35 -0
  232. package/dist/resources/extensions/gsd/visualizer-views.js +21 -2
  233. package/dist/resources/extensions/gsd/workflow-manifest.js +126 -13
  234. package/dist/resources/extensions/gsd/workflow-mcp.js +9 -1
  235. package/dist/resources/extensions/gsd/workflow-projections.js +44 -18
  236. package/dist/resources/extensions/gsd/workspace-git-preflight.js +30 -1
  237. package/dist/resources/extensions/gsd/worktree-command.js +6 -6
  238. package/dist/resources/extensions/gsd/worktree-health.js +6 -3
  239. package/dist/resources/extensions/gsd/worktree-manager.js +59 -17
  240. package/dist/resources/extensions/gsd/worktree-safety.js +20 -11
  241. package/dist/resources/extensions/mcp-client/manager.js +3 -3
  242. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  243. package/dist/update-check.js +15 -4
  244. package/dist/web/standalone/.next/BUILD_ID +1 -1
  245. package/dist/web/standalone/.next/app-path-routes-manifest.json +11 -11
  246. package/dist/web/standalone/.next/build-manifest.json +3 -3
  247. package/dist/web/standalone/.next/react-loadable-manifest.json +9 -9
  248. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  249. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  250. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  251. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  252. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  253. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  254. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  255. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  256. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  257. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  258. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  259. package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
  260. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  261. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  262. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  263. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  264. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  265. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  266. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  267. package/dist/web/standalone/.next/server/app/index.html +1 -1
  268. package/dist/web/standalone/.next/server/app/index.rsc +2 -2
  269. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  270. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +2 -2
  271. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  272. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  273. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  274. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  275. package/dist/web/standalone/.next/server/app-paths-manifest.json +11 -11
  276. package/dist/web/standalone/.next/server/chunks/1128.js +1 -1
  277. package/dist/web/standalone/.next/server/chunks/5124.js +1 -1
  278. package/dist/web/standalone/.next/server/chunks/8357.js +1 -1
  279. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  280. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  281. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  282. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  283. package/dist/web/standalone/.next/static/chunks/{2659.b7b129ee6a769448.js → 2659.58e950899a9bb82f.js} +1 -1
  284. package/dist/web/standalone/.next/static/chunks/2772.a7c1fcc69a4685ef.js +1 -0
  285. package/dist/web/standalone/.next/static/chunks/{3616.3c60753b8ffcbd2e.js → 3616.61a2af74bb8833c8.js} +1 -1
  286. package/dist/web/standalone/.next/static/chunks/{4283.e4873b058df143a1.js → 4283.d0d9e0a955e441cb.js} +2 -2
  287. package/dist/web/standalone/.next/static/chunks/{5826.a46ecdd1cfe8dabc.js → 5826.5421d66c72b9f34e.js} +1 -1
  288. package/dist/web/standalone/.next/static/chunks/8785.e29b3134cab1d153.js +1 -0
  289. package/dist/web/standalone/.next/static/chunks/8937.640dc9c2aaa1dfad.js +10 -0
  290. package/dist/web/standalone/.next/static/chunks/app/{page-a48b7c48333b31c8.js → page-bc4c723c6a19c6f0.js} +1 -1
  291. package/dist/web/standalone/.next/static/chunks/webpack-9c401904f87ded16.js +1 -0
  292. package/dist/web/standalone/node_modules/@gsd/native/package.json +1 -1
  293. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  294. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  295. package/dist/web-mode.d.ts +3 -1
  296. package/dist/web-mode.js +7 -5
  297. package/integrations/hermes/README.md +48 -0
  298. package/integrations/hermes/docs/setup.md +272 -0
  299. package/integrations/hermes/docs/upstream-hermes-pr.md +40 -0
  300. package/integrations/hermes/open_gsd_hermes/__init__.py +105 -0
  301. package/integrations/hermes/open_gsd_hermes/binding.py +107 -0
  302. package/integrations/hermes/open_gsd_hermes/commands.py +186 -0
  303. package/integrations/hermes/open_gsd_hermes/config.py +59 -0
  304. package/integrations/hermes/open_gsd_hermes/credentials.py +51 -0
  305. package/integrations/hermes/open_gsd_hermes/cron.py +85 -0
  306. package/integrations/hermes/open_gsd_hermes/formatting.py +13 -0
  307. package/integrations/hermes/open_gsd_hermes/gsd_client.py +269 -0
  308. package/integrations/hermes/open_gsd_hermes/inject.py +31 -0
  309. package/integrations/hermes/open_gsd_hermes/memory.py +66 -0
  310. package/integrations/hermes/open_gsd_hermes/notifications.py +71 -0
  311. package/integrations/hermes/open_gsd_hermes/snapshot.py +42 -0
  312. package/integrations/hermes/open_gsd_hermes/supervisor.py +180 -0
  313. package/integrations/hermes/open_gsd_hermes/types.py +100 -0
  314. package/integrations/hermes/plugin.yaml +38 -0
  315. package/integrations/hermes/pyproject.toml +32 -0
  316. package/integrations/hermes/scripts/preflight.sh +92 -0
  317. package/integrations/hermes/tests/fixtures/minimal-project/.gsd/STATE.md +17 -0
  318. package/integrations/hermes/tests/golden/memory_prefetch.txt +5 -0
  319. package/integrations/hermes/tests/golden/snapshot.txt +8 -0
  320. package/integrations/hermes/tests/test_binding.py +103 -0
  321. package/integrations/hermes/tests/test_config.py +36 -0
  322. package/integrations/hermes/tests/test_cron.py +34 -0
  323. package/integrations/hermes/tests/test_gsd_client_cache.py +120 -0
  324. package/integrations/hermes/tests/test_memory.py +59 -0
  325. package/integrations/hermes/tests/test_read_cli_contract.py +50 -0
  326. package/integrations/hermes/tests/test_register.py +56 -0
  327. package/integrations/hermes/tests/test_snapshot.py +53 -0
  328. package/integrations/hermes/tests/test_supervisor_fsm.py +581 -0
  329. package/package.json +7 -6
  330. package/packages/cloud-mcp-gateway/dist/runtime-registry.d.ts +8 -0
  331. package/packages/cloud-mcp-gateway/dist/runtime-registry.d.ts.map +1 -1
  332. package/packages/cloud-mcp-gateway/dist/runtime-registry.js +19 -2
  333. package/packages/cloud-mcp-gateway/dist/runtime-registry.js.map +1 -1
  334. package/packages/cloud-mcp-gateway/dist/runtime-registry.test.js +71 -2
  335. package/packages/cloud-mcp-gateway/dist/runtime-registry.test.js.map +1 -1
  336. package/packages/cloud-mcp-gateway/package.json +2 -2
  337. package/packages/contracts/dist/workflow.d.ts +1 -0
  338. package/packages/contracts/dist/workflow.d.ts.map +1 -1
  339. package/packages/contracts/dist/workflow.js +2 -0
  340. package/packages/contracts/dist/workflow.js.map +1 -1
  341. package/packages/contracts/package.json +1 -1
  342. package/packages/daemon/package.json +4 -4
  343. package/packages/gsd-agent-core/dist/agent-session.d.ts +1 -0
  344. package/packages/gsd-agent-core/dist/agent-session.d.ts.map +1 -1
  345. package/packages/gsd-agent-core/dist/agent-session.js +3 -0
  346. package/packages/gsd-agent-core/dist/agent-session.js.map +1 -1
  347. package/packages/gsd-agent-core/dist/extension-ui-snapshot.d.ts +41 -0
  348. package/packages/gsd-agent-core/dist/extension-ui-snapshot.d.ts.map +1 -0
  349. package/packages/gsd-agent-core/dist/extension-ui-snapshot.js +62 -0
  350. package/packages/gsd-agent-core/dist/extension-ui-snapshot.js.map +1 -0
  351. package/packages/gsd-agent-core/dist/index.d.ts +2 -0
  352. package/packages/gsd-agent-core/dist/index.d.ts.map +1 -1
  353. package/packages/gsd-agent-core/dist/index.js +2 -0
  354. package/packages/gsd-agent-core/dist/index.js.map +1 -1
  355. package/packages/gsd-agent-core/dist/session/agent-session-events.js +1 -1
  356. package/packages/gsd-agent-core/dist/session/agent-session-events.js.map +1 -1
  357. package/packages/gsd-agent-core/dist/session/agent-session-host.d.ts +1 -0
  358. package/packages/gsd-agent-core/dist/session/agent-session-host.d.ts.map +1 -1
  359. package/packages/gsd-agent-core/dist/session/agent-session-host.js.map +1 -1
  360. package/packages/gsd-agent-core/dist/session/agent-session-prompt.d.ts +5 -0
  361. package/packages/gsd-agent-core/dist/session/agent-session-prompt.d.ts.map +1 -1
  362. package/packages/gsd-agent-core/dist/session/agent-session-prompt.js +60 -3
  363. package/packages/gsd-agent-core/dist/session/agent-session-prompt.js.map +1 -1
  364. package/packages/gsd-agent-core/dist/transcript-store.d.ts +58 -0
  365. package/packages/gsd-agent-core/dist/transcript-store.d.ts.map +1 -0
  366. package/packages/gsd-agent-core/dist/transcript-store.js +132 -0
  367. package/packages/gsd-agent-core/dist/transcript-store.js.map +1 -0
  368. package/packages/gsd-agent-core/package.json +5 -5
  369. package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.d.ts +2 -0
  370. package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  371. package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.js +25 -11
  372. package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.js.map +1 -1
  373. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller-latency.d.ts +4 -0
  374. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller-latency.d.ts.map +1 -0
  375. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller-latency.js +7 -0
  376. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller-latency.js.map +1 -0
  377. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.d.ts +3 -24
  378. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  379. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js +26 -829
  380. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  381. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-handoff-filter.d.ts +58 -0
  382. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-handoff-filter.d.ts.map +1 -0
  383. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-handoff-filter.js +312 -0
  384. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-handoff-filter.js.map +1 -0
  385. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-pinned-zone.d.ts +31 -0
  386. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-pinned-zone.d.ts.map +1 -0
  387. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-pinned-zone.js +130 -0
  388. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-pinned-zone.js.map +1 -0
  389. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-segment-walker.d.ts +15 -0
  390. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-segment-walker.d.ts.map +1 -0
  391. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-segment-walker.js +258 -0
  392. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-segment-walker.js.map +1 -0
  393. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-tool-rollup.d.ts +13 -0
  394. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-tool-rollup.d.ts.map +1 -0
  395. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-tool-rollup.js +118 -0
  396. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-tool-rollup.js.map +1 -0
  397. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.d.ts +9 -0
  398. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.d.ts.map +1 -1
  399. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.js +1 -1
  400. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.js.map +1 -1
  401. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-ui-state.d.ts +54 -0
  402. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-ui-state.d.ts.map +1 -0
  403. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-ui-state.js +20 -0
  404. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-ui-state.js.map +1 -0
  405. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.d.ts +4 -1
  406. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  407. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.js +9 -0
  408. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.js.map +1 -1
  409. package/packages/gsd-agent-modes/dist/modes/interactive/streaming-render-state.d.ts +56 -0
  410. package/packages/gsd-agent-modes/dist/modes/interactive/streaming-render-state.d.ts.map +1 -0
  411. package/packages/gsd-agent-modes/dist/modes/interactive/streaming-render-state.js +44 -0
  412. package/packages/gsd-agent-modes/dist/modes/interactive/streaming-render-state.js.map +1 -0
  413. package/packages/gsd-agent-modes/dist/modes/interactive/tui-transcript-tracker.d.ts +5 -0
  414. package/packages/gsd-agent-modes/dist/modes/interactive/tui-transcript-tracker.d.ts.map +1 -0
  415. package/packages/gsd-agent-modes/dist/modes/interactive/tui-transcript-tracker.js +77 -0
  416. package/packages/gsd-agent-modes/dist/modes/interactive/tui-transcript-tracker.js.map +1 -0
  417. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-client.d.ts +2 -0
  418. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  419. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-client.js +23 -5
  420. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-client.js.map +1 -1
  421. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  422. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.js +18 -0
  423. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.js.map +1 -1
  424. package/packages/gsd-agent-modes/package.json +7 -7
  425. package/packages/mcp-server/README.md +11 -1
  426. package/packages/mcp-server/dist/cli-errors.d.ts +11 -0
  427. package/packages/mcp-server/dist/cli-errors.d.ts.map +1 -1
  428. package/packages/mcp-server/dist/cli-errors.js +12 -0
  429. package/packages/mcp-server/dist/cli-errors.js.map +1 -1
  430. package/packages/mcp-server/dist/cli-runner.d.ts.map +1 -1
  431. package/packages/mcp-server/dist/cli-runner.js +33 -0
  432. package/packages/mcp-server/dist/cli-runner.js.map +1 -1
  433. package/packages/mcp-server/dist/cli.d.ts +1 -0
  434. package/packages/mcp-server/dist/cli.d.ts.map +1 -1
  435. package/packages/mcp-server/dist/cli.js +1 -0
  436. package/packages/mcp-server/dist/cli.js.map +1 -1
  437. package/packages/mcp-server/dist/server.d.ts +30 -1
  438. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  439. package/packages/mcp-server/dist/server.js +85 -6
  440. package/packages/mcp-server/dist/server.js.map +1 -1
  441. package/packages/mcp-server/dist/workflow-tools.d.ts +13 -1
  442. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  443. package/packages/mcp-server/dist/workflow-tools.js +35 -21
  444. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  445. package/packages/mcp-server/package.json +21 -5
  446. package/packages/native/package.json +1 -1
  447. package/packages/pi-agent-core/dist/agent-loop.js +3 -2
  448. package/packages/pi-agent-core/dist/agent-loop.js.map +1 -1
  449. package/packages/pi-agent-core/package.json +1 -1
  450. package/packages/pi-ai/dist/models.generated.d.ts +46 -0
  451. package/packages/pi-ai/dist/models.generated.d.ts.map +1 -1
  452. package/packages/pi-ai/dist/models.generated.js +38 -0
  453. package/packages/pi-ai/dist/models.generated.js.map +1 -1
  454. package/packages/pi-ai/package.json +1 -1
  455. package/packages/pi-coding-agent/README.md +3 -2
  456. package/packages/pi-coding-agent/dist/core/session-manager-context.d.ts +9 -0
  457. package/packages/pi-coding-agent/dist/core/session-manager-context.d.ts.map +1 -0
  458. package/packages/pi-coding-agent/dist/core/session-manager-context.js +94 -0
  459. package/packages/pi-coding-agent/dist/core/session-manager-context.js.map +1 -0
  460. package/packages/pi-coding-agent/dist/core/session-manager-list.d.ts +8 -0
  461. package/packages/pi-coding-agent/dist/core/session-manager-list.d.ts.map +1 -0
  462. package/packages/pi-coding-agent/dist/core/session-manager-list.js +244 -0
  463. package/packages/pi-coding-agent/dist/core/session-manager-list.js.map +1 -0
  464. package/packages/pi-coding-agent/dist/core/session-manager-migration.d.ts +12 -0
  465. package/packages/pi-coding-agent/dist/core/session-manager-migration.d.ts.map +1 -0
  466. package/packages/pi-coding-agent/dist/core/session-manager-migration.js +84 -0
  467. package/packages/pi-coding-agent/dist/core/session-manager-migration.js.map +1 -0
  468. package/packages/pi-coding-agent/dist/core/session-manager-types.d.ts +135 -0
  469. package/packages/pi-coding-agent/dist/core/session-manager-types.d.ts.map +1 -0
  470. package/packages/pi-coding-agent/dist/core/session-manager-types.js +2 -0
  471. package/packages/pi-coding-agent/dist/core/session-manager-types.js.map +1 -0
  472. package/packages/pi-coding-agent/dist/core/session-manager.d.ts +6 -154
  473. package/packages/pi-coding-agent/dist/core/session-manager.d.ts.map +1 -1
  474. package/packages/pi-coding-agent/dist/core/session-manager.js +22 -459
  475. package/packages/pi-coding-agent/dist/core/session-manager.js.map +1 -1
  476. package/packages/pi-coding-agent/dist/theme/theme-schema.d.ts +75 -75
  477. package/packages/pi-coding-agent/dist/theme/theme-schema.d.ts.map +1 -1
  478. package/packages/pi-coding-agent/dist/theme/theme-schema.js +1 -1
  479. package/packages/pi-coding-agent/dist/theme/theme-schema.js.map +1 -1
  480. package/packages/pi-coding-agent/dist/theme/theme.d.ts.map +1 -1
  481. package/packages/pi-coding-agent/dist/theme/theme.js +11 -7
  482. package/packages/pi-coding-agent/dist/theme/theme.js.map +1 -1
  483. package/packages/pi-coding-agent/package.json +7 -7
  484. package/packages/pi-tui/package.json +2 -2
  485. package/packages/rpc-client/package.json +2 -2
  486. package/pkg/dist/theme/theme-schema.d.ts +75 -75
  487. package/pkg/dist/theme/theme-schema.d.ts.map +1 -1
  488. package/pkg/dist/theme/theme-schema.js +1 -1
  489. package/pkg/dist/theme/theme-schema.js.map +1 -1
  490. package/pkg/dist/theme/theme.d.ts.map +1 -1
  491. package/pkg/dist/theme/theme.js +11 -7
  492. package/pkg/dist/theme/theme.js.map +1 -1
  493. package/pkg/package.json +1 -1
  494. package/src/resources/GSD-WORKFLOW.md +22 -22
  495. package/src/resources/extensions/claude-code-cli/index.ts +8 -1
  496. package/src/resources/extensions/claude-code-cli/models.ts +9 -0
  497. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +103 -22
  498. package/src/resources/extensions/claude-code-cli/tests/index.test.ts +61 -0
  499. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +262 -10
  500. package/src/resources/extensions/google-cli/stream-adapter.ts +106 -19
  501. package/src/resources/extensions/gsd/artifact-verification.ts +464 -0
  502. package/src/resources/extensions/gsd/auto/dispatch-history.ts +19 -1
  503. package/src/resources/extensions/gsd/auto/loop-deps.ts +1 -0
  504. package/src/resources/extensions/gsd/auto/loop.ts +69 -2
  505. package/src/resources/extensions/gsd/auto/orchestrator.ts +38 -13
  506. package/src/resources/extensions/gsd/auto/session.ts +14 -0
  507. package/src/resources/extensions/gsd/auto/verification-retry-policy.ts +3 -1
  508. package/src/resources/extensions/gsd/auto/workflow-kernel.ts +25 -3
  509. package/src/resources/extensions/gsd/auto-artifact-paths.ts +129 -20
  510. package/src/resources/extensions/gsd/auto-budget.ts +12 -1
  511. package/src/resources/extensions/gsd/auto-dispatch.ts +68 -34
  512. package/src/resources/extensions/gsd/auto-model-selection.ts +8 -1
  513. package/src/resources/extensions/gsd/auto-post-unit.ts +37 -23
  514. package/src/resources/extensions/gsd/auto-prompts.ts +81 -44
  515. package/src/resources/extensions/gsd/auto-recovery.ts +21 -484
  516. package/src/resources/extensions/gsd/auto-runtime-state.ts +17 -5
  517. package/src/resources/extensions/gsd/auto-start.ts +63 -34
  518. package/src/resources/extensions/gsd/auto-timeout-recovery.ts +3 -2
  519. package/src/resources/extensions/gsd/auto-verification.ts +10 -8
  520. package/src/resources/extensions/gsd/auto-worktree.ts +48 -15
  521. package/src/resources/extensions/gsd/auto.ts +46 -11
  522. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +164 -71
  523. package/src/resources/extensions/gsd/bootstrap/core-session-tools.ts +44 -0
  524. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +11 -5
  525. package/src/resources/extensions/gsd/bootstrap/exec-tools.ts +2 -0
  526. package/src/resources/extensions/gsd/bootstrap/fallback-continuation.ts +31 -0
  527. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +23 -1
  528. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +139 -27
  529. package/src/resources/extensions/gsd/bootstrap/system-context.ts +219 -46
  530. package/src/resources/extensions/gsd/bootstrap/tests/write-gate-basepath.test.ts +49 -1
  531. package/src/resources/extensions/gsd/bootstrap/tool-call-loop-guard.ts +104 -10
  532. package/src/resources/extensions/gsd/bootstrap/tool-search-shim.ts +21 -3
  533. package/src/resources/extensions/gsd/bootstrap/write-gate.ts +86 -18
  534. package/src/resources/extensions/gsd/closeout-consistency-gate.ts +109 -4
  535. package/src/resources/extensions/gsd/codebase-generator.ts +6 -9
  536. package/src/resources/extensions/gsd/commands/catalog.ts +6 -0
  537. package/src/resources/extensions/gsd/commands/dispatcher.ts +3 -0
  538. package/src/resources/extensions/gsd/commands/gsd-core-aliases-handler.ts +48 -0
  539. package/src/resources/extensions/gsd/commands/gsd-core-aliases.ts +63 -0
  540. package/src/resources/extensions/gsd/commands/handlers/auto.ts +1 -1
  541. package/src/resources/extensions/gsd/commands/handlers/core.ts +31 -0
  542. package/src/resources/extensions/gsd/commands/handlers/ops.ts +225 -1
  543. package/src/resources/extensions/gsd/commands-cmux.ts +3 -0
  544. package/src/resources/extensions/gsd/commands-context.ts +18 -1
  545. package/src/resources/extensions/gsd/commands-gsd-core.ts +1142 -0
  546. package/src/resources/extensions/gsd/commands-handlers.ts +76 -1
  547. package/src/resources/extensions/gsd/commands-maintenance.ts +98 -2
  548. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +21 -10
  549. package/src/resources/extensions/gsd/commands-usage.ts +1 -1
  550. package/src/resources/extensions/gsd/commands-verdict.ts +16 -15
  551. package/src/resources/extensions/gsd/commands-worktree.ts +12 -10
  552. package/src/resources/extensions/gsd/compat/compat-marker.ts +210 -0
  553. package/src/resources/extensions/gsd/compat/index.ts +12 -0
  554. package/src/resources/extensions/gsd/compat/planning-compat.ts +168 -0
  555. package/src/resources/extensions/gsd/config-overlay.ts +3 -1
  556. package/src/resources/extensions/gsd/consent-question.ts +11 -1
  557. package/src/resources/extensions/gsd/consent-verdict.ts +30 -1
  558. package/src/resources/extensions/gsd/dashboard-overlay.ts +73 -7
  559. package/src/resources/extensions/gsd/db/engine.ts +34 -1
  560. package/src/resources/extensions/gsd/db/queries.ts +157 -0
  561. package/src/resources/extensions/gsd/db/unit-dispatches.ts +24 -0
  562. package/src/resources/extensions/gsd/db-memory-fts-schema.ts +45 -0
  563. package/src/resources/extensions/gsd/db-workspace.ts +76 -3
  564. package/src/resources/extensions/gsd/delegation-policy.ts +1 -1
  565. package/src/resources/extensions/gsd/discussion-handoff.ts +9 -5
  566. package/src/resources/extensions/gsd/docs/preferences-reference.md +2 -2
  567. package/src/resources/extensions/gsd/doctor-engine-checks.ts +233 -5
  568. package/src/resources/extensions/gsd/doctor-git-checks.ts +24 -2
  569. package/src/resources/extensions/gsd/doctor-providers.ts +103 -9
  570. package/src/resources/extensions/gsd/doctor-runtime-checks.ts +5 -15
  571. package/src/resources/extensions/gsd/doctor-types.ts +4 -0
  572. package/src/resources/extensions/gsd/doctor.ts +30 -7
  573. package/src/resources/extensions/gsd/error-classifier.ts +14 -1
  574. package/src/resources/extensions/gsd/escalation.ts +9 -4
  575. package/src/resources/extensions/gsd/exec-sandbox.ts +56 -11
  576. package/src/resources/extensions/gsd/export-html.ts +11 -4
  577. package/src/resources/extensions/gsd/export.ts +88 -1
  578. package/src/resources/extensions/gsd/file-lock.ts +1 -1
  579. package/src/resources/extensions/gsd/flat-phase-migration.ts +249 -0
  580. package/src/resources/extensions/gsd/forensics.ts +4 -34
  581. package/src/resources/extensions/gsd/git-constants.ts +1 -1
  582. package/src/resources/extensions/gsd/git-service.ts +76 -7
  583. package/src/resources/extensions/gsd/gitignore.ts +11 -4
  584. package/src/resources/extensions/gsd/guidance.ts +7 -7
  585. package/src/resources/extensions/gsd/guided-flow-queue.ts +89 -4
  586. package/src/resources/extensions/gsd/guided-flow.ts +11 -6
  587. package/src/resources/extensions/gsd/health-widget.ts +69 -32
  588. package/src/resources/extensions/gsd/json-persistence.ts +20 -0
  589. package/src/resources/extensions/gsd/knowledge-backfill.ts +16 -10
  590. package/src/resources/extensions/gsd/layout-policy.ts +86 -0
  591. package/src/resources/extensions/gsd/markdown-renderer.ts +409 -112
  592. package/src/resources/extensions/gsd/mcp-filter.ts +59 -10
  593. package/src/resources/extensions/gsd/md-importer.ts +215 -65
  594. package/src/resources/extensions/gsd/memory-backfill.ts +26 -20
  595. package/src/resources/extensions/gsd/memory-consolidation-scanner.ts +51 -19
  596. package/src/resources/extensions/gsd/metrics.ts +26 -13
  597. package/src/resources/extensions/gsd/migrate/layout-detect.ts +38 -0
  598. package/src/resources/extensions/gsd/migrate/planning-writer.ts +259 -0
  599. package/src/resources/extensions/gsd/migrate-external.ts +57 -8
  600. package/src/resources/extensions/gsd/migration-auto-check.ts +27 -13
  601. package/src/resources/extensions/gsd/milestone-actions.ts +5 -2
  602. package/src/resources/extensions/gsd/milestone-closeout.ts +13 -2
  603. package/src/resources/extensions/gsd/milestone-ids.ts +78 -19
  604. package/src/resources/extensions/gsd/milestone-implementation-evidence.ts +35 -21
  605. package/src/resources/extensions/gsd/milestone-planning-persistence.ts +8 -0
  606. package/src/resources/extensions/gsd/milestone-validation-verdict.ts +7 -9
  607. package/src/resources/extensions/gsd/model-router.ts +98 -18
  608. package/src/resources/extensions/gsd/notification-store.ts +17 -28
  609. package/src/resources/extensions/gsd/notifications.ts +37 -6
  610. package/src/resources/extensions/gsd/observability-validator.ts +12 -4
  611. package/src/resources/extensions/gsd/orphan-stash-audit.ts +108 -20
  612. package/src/resources/extensions/gsd/parallel-monitor-overlay.ts +151 -31
  613. package/src/resources/extensions/gsd/parsers-legacy.ts +42 -15
  614. package/src/resources/extensions/gsd/paths.ts +348 -39
  615. package/src/resources/extensions/gsd/planning-depth.ts +2 -1
  616. package/src/resources/extensions/gsd/post-execution-checks.ts +43 -3
  617. package/src/resources/extensions/gsd/preferences-models.ts +25 -9
  618. package/src/resources/extensions/gsd/preferences.ts +80 -12
  619. package/src/resources/extensions/gsd/prompts/ai-integration-phase.md +28 -0
  620. package/src/resources/extensions/gsd/prompts/audit-fix.md +39 -0
  621. package/src/resources/extensions/gsd/prompts/audit-milestone.md +26 -0
  622. package/src/resources/extensions/gsd/prompts/audit-uat.md +24 -0
  623. package/src/resources/extensions/gsd/prompts/autonomous.md +31 -0
  624. package/src/resources/extensions/gsd/prompts/code-review.md +39 -0
  625. package/src/resources/extensions/gsd/prompts/complete-slice.md +21 -16
  626. package/src/resources/extensions/gsd/prompts/discuss-phase.md +31 -0
  627. package/src/resources/extensions/gsd/prompts/docs-update.md +13 -0
  628. package/src/resources/extensions/gsd/prompts/execute-phase.md +33 -0
  629. package/src/resources/extensions/gsd/prompts/explore.md +58 -0
  630. package/src/resources/extensions/gsd/prompts/graphify.md +27 -0
  631. package/src/resources/extensions/gsd/prompts/health.md +37 -0
  632. package/src/resources/extensions/gsd/prompts/import.md +30 -0
  633. package/src/resources/extensions/gsd/prompts/inbox.md +27 -0
  634. package/src/resources/extensions/gsd/prompts/ingest-docs.md +30 -0
  635. package/src/resources/extensions/gsd/prompts/manager.md +21 -0
  636. package/src/resources/extensions/gsd/prompts/map-codebase.md +42 -0
  637. package/src/resources/extensions/gsd/prompts/milestone-summary.md +27 -0
  638. package/src/resources/extensions/gsd/prompts/mvp-phase.md +23 -0
  639. package/src/resources/extensions/gsd/prompts/pause-work.md +24 -0
  640. package/src/resources/extensions/gsd/prompts/phase.md +22 -0
  641. package/src/resources/extensions/gsd/prompts/plan-milestone.md +2 -2
  642. package/src/resources/extensions/gsd/prompts/plan-phase.md +34 -0
  643. package/src/resources/extensions/gsd/prompts/plan-review-convergence.md +34 -0
  644. package/src/resources/extensions/gsd/prompts/plan-slice.md +3 -3
  645. package/src/resources/extensions/gsd/prompts/profile-user.md +28 -0
  646. package/src/resources/extensions/gsd/prompts/progress.md +30 -0
  647. package/src/resources/extensions/gsd/prompts/resume-work.md +20 -0
  648. package/src/resources/extensions/gsd/prompts/review-backlog.md +21 -0
  649. package/src/resources/extensions/gsd/prompts/review.md +27 -0
  650. package/src/resources/extensions/gsd/prompts/secure-phase.md +24 -0
  651. package/src/resources/extensions/gsd/prompts/settings.md +24 -0
  652. package/src/resources/extensions/gsd/prompts/sketch.md +59 -0
  653. package/src/resources/extensions/gsd/prompts/spec-phase.md +29 -0
  654. package/src/resources/extensions/gsd/prompts/spike.md +59 -0
  655. package/src/resources/extensions/gsd/prompts/stats.md +43 -0
  656. package/src/resources/extensions/gsd/prompts/surface.md +25 -0
  657. package/src/resources/extensions/gsd/prompts/thread.md +24 -0
  658. package/src/resources/extensions/gsd/prompts/ui-phase.md +29 -0
  659. package/src/resources/extensions/gsd/prompts/ui-review.md +29 -0
  660. package/src/resources/extensions/gsd/prompts/ultraplan-phase.md +24 -0
  661. package/src/resources/extensions/gsd/prompts/validate-phase.md +26 -0
  662. package/src/resources/extensions/gsd/prompts/verify-work.md +24 -0
  663. package/src/resources/extensions/gsd/prompts/workspace.md +22 -0
  664. package/src/resources/extensions/gsd/prompts/workstreams.md +24 -0
  665. package/src/resources/extensions/gsd/queue-order.ts +3 -2
  666. package/src/resources/extensions/gsd/quick.ts +43 -2
  667. package/src/resources/extensions/gsd/recovery-classification.ts +7 -0
  668. package/src/resources/extensions/gsd/roadmap-slices.ts +1 -1
  669. package/src/resources/extensions/gsd/root-write-leak-guard.ts +13 -1
  670. package/src/resources/extensions/gsd/safety/content-validator.ts +2 -1
  671. package/src/resources/extensions/gsd/safety/destructive-guard.ts +9 -1
  672. package/src/resources/extensions/gsd/safety/evidence-collector.ts +16 -1
  673. package/src/resources/extensions/gsd/safety/evidence-cross-ref.ts +45 -1
  674. package/src/resources/extensions/gsd/safety/file-change-validator.ts +8 -2
  675. package/src/resources/extensions/gsd/service-tier.ts +2 -0
  676. package/src/resources/extensions/gsd/session-forensics.ts +11 -1
  677. package/src/resources/extensions/gsd/session-lock.ts +7 -6
  678. package/src/resources/extensions/gsd/skills/gsd-headless/SKILL.md +3 -0
  679. package/src/resources/extensions/gsd/skills/gsd-headless/references/commands.md +51 -0
  680. package/src/resources/extensions/gsd/state/derive/cache.ts +46 -0
  681. package/src/resources/extensions/gsd/state/derive/db-open.ts +45 -0
  682. package/src/resources/extensions/gsd/state/derive/from-db.ts +561 -0
  683. package/src/resources/extensions/gsd/state/derive/index.ts +104 -0
  684. package/src/resources/extensions/gsd/state/derive/interrupted-work.ts +31 -0
  685. package/src/resources/extensions/gsd/state-reconciliation/drift/artifact-db.ts +35 -4
  686. package/src/resources/extensions/gsd/state-reconciliation/drift/completion.ts +22 -2
  687. package/src/resources/extensions/gsd/state-reconciliation/drift/external-markdown-edit.ts +105 -0
  688. package/src/resources/extensions/gsd/state-reconciliation/drift/external-planning-edit.ts +180 -0
  689. package/src/resources/extensions/gsd/state-reconciliation/drift/project-md.ts +19 -6
  690. package/src/resources/extensions/gsd/state-reconciliation/drift/roadmap.ts +2 -2
  691. package/src/resources/extensions/gsd/state-reconciliation/drift/stale-render.ts +176 -30
  692. package/src/resources/extensions/gsd/state-reconciliation/index.ts +86 -27
  693. package/src/resources/extensions/gsd/state-reconciliation/registry.ts +45 -18
  694. package/src/resources/extensions/gsd/state-reconciliation/types.ts +19 -0
  695. package/src/resources/extensions/gsd/state.ts +37 -695
  696. package/src/resources/extensions/gsd/sync-lock.ts +11 -20
  697. package/src/resources/extensions/gsd/tests/__fixtures__/flat-phase/.gsd/phases/01-foundation/01-01-PLAN.md +13 -0
  698. package/src/resources/extensions/gsd/tests/__fixtures__/flat-phase/.gsd/phases/01-foundation/01-ROADMAP.md +8 -0
  699. package/src/resources/extensions/gsd/tests/__fixtures__/round-trip/m001-basic/.gsd/milestones/M001/M001-ROADMAP.md +13 -0
  700. package/src/resources/extensions/gsd/tests/__fixtures__/round-trip/m001-basic/.gsd/milestones/M001/slices/S01/S01-PLAN.md +5 -0
  701. package/src/resources/extensions/gsd/tests/__fixtures__/round-trip/planning-flat-phases/.planning/PROJECT.md +1 -0
  702. package/src/resources/extensions/gsd/tests/__fixtures__/round-trip/planning-flat-phases/.planning/ROADMAP.md +5 -0
  703. package/src/resources/extensions/gsd/tests/__fixtures__/round-trip/planning-flat-phases/.planning/STATE.md +10 -0
  704. package/src/resources/extensions/gsd/tests/__fixtures__/round-trip/planning-flat-phases/.planning/phases/01-foundation/01-01-PLAN.md +13 -0
  705. package/src/resources/extensions/gsd/tests/artifact-retry-cap.test.ts +4 -3
  706. package/src/resources/extensions/gsd/tests/auto-artifact-paths.test.ts +420 -2
  707. package/src/resources/extensions/gsd/tests/auto-budget-alerts.test.ts +14 -5
  708. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +104 -0
  709. package/src/resources/extensions/gsd/tests/auto-migrating-recovery.test.ts +32 -1
  710. package/src/resources/extensions/gsd/tests/auto-orchestrator.test.ts +15 -12
  711. package/src/resources/extensions/gsd/tests/auto-pause-double-entry-guard.test.ts +36 -0
  712. package/src/resources/extensions/gsd/tests/auto-paused-session-validation.test.ts +11 -2
  713. package/src/resources/extensions/gsd/tests/auto-paused-ui-cleanup.test.ts +182 -4
  714. package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +146 -1
  715. package/src/resources/extensions/gsd/tests/auto-retry-mcp-churn-fixes.test.ts +30 -0
  716. package/src/resources/extensions/gsd/tests/auto-worktree-auto-resolve.test.ts +17 -0
  717. package/src/resources/extensions/gsd/tests/codebase-generator.test.ts +15 -11
  718. package/src/resources/extensions/gsd/tests/commands-context.test.ts +26 -0
  719. package/src/resources/extensions/gsd/tests/commands-dispatcher-unmerged-milestone.test.ts +89 -0
  720. package/src/resources/extensions/gsd/tests/commands-dispatcher-validation-block.test.ts +37 -1
  721. package/src/resources/extensions/gsd/tests/commands-eval-review.test.ts +31 -30
  722. package/src/resources/extensions/gsd/tests/commands-gsd-core.test.ts +863 -0
  723. package/src/resources/extensions/gsd/tests/commands-verdict.test.ts +1 -1
  724. package/src/resources/extensions/gsd/tests/commands-worktree-clean.test.ts +80 -0
  725. package/src/resources/extensions/gsd/tests/compat-health-line.test.ts +102 -0
  726. package/src/resources/extensions/gsd/tests/compat-marker-invalidation.test.ts +51 -0
  727. package/src/resources/extensions/gsd/tests/compat-marker.test.ts +105 -0
  728. package/src/resources/extensions/gsd/tests/complete-milestone.test.ts +28 -0
  729. package/src/resources/extensions/gsd/tests/complete-slice-reopen-handoff.test.ts +151 -0
  730. package/src/resources/extensions/gsd/tests/complete-slice.test.ts +18 -7
  731. package/src/resources/extensions/gsd/tests/complete-task-rollback-evidence.test.ts +48 -8
  732. package/src/resources/extensions/gsd/tests/complete-task.test.ts +82 -7
  733. package/src/resources/extensions/gsd/tests/consent-question.test.ts +45 -0
  734. package/src/resources/extensions/gsd/tests/dashboard-overlay.test.ts +90 -0
  735. package/src/resources/extensions/gsd/tests/db-authority-regression.test.ts +1 -1
  736. package/src/resources/extensions/gsd/tests/db-memory-fts-schema.test.ts +58 -3
  737. package/src/resources/extensions/gsd/tests/decisions-projection-from-memories.test.ts +51 -0
  738. package/src/resources/extensions/gsd/tests/derive-state-db.test.ts +63 -1
  739. package/src/resources/extensions/gsd/tests/derive-state-helpers.test.ts +49 -5
  740. package/src/resources/extensions/gsd/tests/destructive-guard.test.ts +44 -0
  741. package/src/resources/extensions/gsd/tests/discuss-cold-start-db-open.test.ts +10 -27
  742. package/src/resources/extensions/gsd/tests/dispatch-complete-milestone-guard.test.ts +20 -1
  743. package/src/resources/extensions/gsd/tests/dispatch-history.test.ts +102 -0
  744. package/src/resources/extensions/gsd/tests/dispatch-missing-task-plans.test.ts +175 -43
  745. package/src/resources/extensions/gsd/tests/dispatch-rule-coverage.test.ts +26 -1
  746. package/src/resources/extensions/gsd/tests/dist-redirect.mjs +7 -0
  747. package/src/resources/extensions/gsd/tests/doctor-forensics-db-open-regression.test.ts +70 -2
  748. package/src/resources/extensions/gsd/tests/doctor-git-checks-autoresolve.test.ts +149 -0
  749. package/src/resources/extensions/gsd/tests/doctor-providers.test.ts +107 -0
  750. package/src/resources/extensions/gsd/tests/doctor-scope-db-unavailable.test.ts +239 -2
  751. package/src/resources/extensions/gsd/tests/ensure-preconditions-guard-4996.test.ts +17 -10
  752. package/src/resources/extensions/gsd/tests/evidence-cross-ref.test.ts +95 -0
  753. package/src/resources/extensions/gsd/tests/exec-graceful-kill.test.ts +38 -0
  754. package/src/resources/extensions/gsd/tests/exec-sandbox.test.ts +16 -0
  755. package/src/resources/extensions/gsd/tests/exec-tool.test.ts +45 -1
  756. package/src/resources/extensions/gsd/tests/export-html-enhancements.test.ts +25 -0
  757. package/src/resources/extensions/gsd/tests/export-memory.test.ts +179 -0
  758. package/src/resources/extensions/gsd/tests/extension-bootstrap-isolation.test.ts +53 -0
  759. package/src/resources/extensions/gsd/tests/external-markdown-edit.test.ts +137 -0
  760. package/src/resources/extensions/gsd/tests/external-planning-edit.test.ts +199 -0
  761. package/src/resources/extensions/gsd/tests/fallback-continuation.test.ts +36 -0
  762. package/src/resources/extensions/gsd/tests/file-change-validator.test.ts +40 -0
  763. package/src/resources/extensions/gsd/tests/file-lock.test.ts +43 -0
  764. package/src/resources/extensions/gsd/tests/flat-phase-migration.test.ts +149 -0
  765. package/src/resources/extensions/gsd/tests/flat-phase-renderer.test.ts +83 -0
  766. package/src/resources/extensions/gsd/tests/flat-phase-round-trip.test.ts +72 -0
  767. package/src/resources/extensions/gsd/tests/flat-phase-validation-integration.test.ts +120 -0
  768. package/src/resources/extensions/gsd/tests/flat-phase-validation-path.test.ts +74 -0
  769. package/src/resources/extensions/gsd/tests/forensics-error-filter.test.ts +88 -0
  770. package/src/resources/extensions/gsd/tests/gitignore-bg-shell-runtime.test.ts +4 -0
  771. package/src/resources/extensions/gsd/tests/gsd-core-parity-routing.test.ts +183 -0
  772. package/src/resources/extensions/gsd/tests/guidance.test.ts +25 -0
  773. package/src/resources/extensions/gsd/tests/guided-discuss-milestone-prompt-rendering.test.ts +42 -0
  774. package/src/resources/extensions/gsd/tests/health-widget.test.ts +268 -3
  775. package/src/resources/extensions/gsd/tests/integration/auto-recovery.test.ts +19 -11
  776. package/src/resources/extensions/gsd/tests/integration/commands-eval-review.integration.test.ts +6 -2
  777. package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +130 -3
  778. package/src/resources/extensions/gsd/tests/integration/gitignore-tracked-gsd.test.ts +55 -0
  779. package/src/resources/extensions/gsd/tests/integration/idle-recovery.test.ts +4 -3
  780. package/src/resources/extensions/gsd/tests/integration/integration-proof.test.ts +11 -7
  781. package/src/resources/extensions/gsd/tests/integration/queue-active-milestone-context-budget.test.ts +93 -0
  782. package/src/resources/extensions/gsd/tests/integration/quick-branch-lifecycle.test.ts +56 -9
  783. package/src/resources/extensions/gsd/tests/json-persistence-atomic.test.ts +47 -0
  784. package/src/resources/extensions/gsd/tests/knowledge-backfill-projection.test.ts +35 -0
  785. package/src/resources/extensions/gsd/tests/knowledge-cold-start.test.ts +386 -0
  786. package/src/resources/extensions/gsd/tests/layout-policy.test.ts +59 -0
  787. package/src/resources/extensions/gsd/tests/markdown-renderer-parse-cache.test.ts +1 -1
  788. package/src/resources/extensions/gsd/tests/markdown-renderer.test.ts +214 -82
  789. package/src/resources/extensions/gsd/tests/mcp-filter.test.ts +74 -1
  790. package/src/resources/extensions/gsd/tests/memory-consolidation-scanner.test.ts +78 -0
  791. package/src/resources/extensions/gsd/tests/memory-store.test.ts +48 -0
  792. package/src/resources/extensions/gsd/tests/merge-closeout-consistency-gate.test.ts +31 -1
  793. package/src/resources/extensions/gsd/tests/metrics-ledger-cap.test.ts +239 -0
  794. package/src/resources/extensions/gsd/tests/metrics-prune-cache-invalidation.test.ts +6 -0
  795. package/src/resources/extensions/gsd/tests/metrics.test.ts +1 -0
  796. package/src/resources/extensions/gsd/tests/migrate-external-worktree.test.ts +57 -0
  797. package/src/resources/extensions/gsd/tests/migration-auto-check.test.ts +70 -0
  798. package/src/resources/extensions/gsd/tests/milestone-closeout.test.ts +7 -2
  799. package/src/resources/extensions/gsd/tests/milestone-settlement.test.ts +6 -1
  800. package/src/resources/extensions/gsd/tests/model-router.test.ts +204 -7
  801. package/src/resources/extensions/gsd/tests/notification-store.test.ts +23 -0
  802. package/src/resources/extensions/gsd/tests/notifications.test.ts +33 -0
  803. package/src/resources/extensions/gsd/tests/observability-validator-boundary.test.ts +194 -0
  804. package/src/resources/extensions/gsd/tests/orchestrator-logs.test.ts +47 -1
  805. package/src/resources/extensions/gsd/tests/orphan-stash-audit.test.ts +91 -7
  806. package/src/resources/extensions/gsd/tests/orphaned-worktree-audit.test.ts +52 -1
  807. package/src/resources/extensions/gsd/tests/parallel-monitor-overlay.test.ts +91 -0
  808. package/src/resources/extensions/gsd/tests/parallel-research-dispatch.test.ts +26 -0
  809. package/src/resources/extensions/gsd/tests/parsers-legacy-importers.test.ts +4 -1
  810. package/src/resources/extensions/gsd/tests/pipeline-variant-dispatch.test.ts +1 -1
  811. package/src/resources/extensions/gsd/tests/plan-milestone-boundary-map-preservation.test.ts +7 -2
  812. package/src/resources/extensions/gsd/tests/plan-milestone-sketch-render.test.ts +7 -2
  813. package/src/resources/extensions/gsd/tests/plan-milestone.test.ts +9 -6
  814. package/src/resources/extensions/gsd/tests/plan-slice-prompt.test.ts +10 -0
  815. package/src/resources/extensions/gsd/tests/plan-slice.test.ts +161 -27
  816. package/src/resources/extensions/gsd/tests/plan-task.test.ts +48 -5
  817. package/src/resources/extensions/gsd/tests/planning-crossval.test.ts +19 -0
  818. package/src/resources/extensions/gsd/tests/planning-layout-detect.test.ts +84 -0
  819. package/src/resources/extensions/gsd/tests/planning-marker.test.ts +107 -0
  820. package/src/resources/extensions/gsd/tests/planning-projection-hook.test.ts +123 -0
  821. package/src/resources/extensions/gsd/tests/planning-round-trip-property.test.ts +164 -0
  822. package/src/resources/extensions/gsd/tests/planning-writer.test.ts +82 -0
  823. package/src/resources/extensions/gsd/tests/post-execution-checks.test.ts +48 -1
  824. package/src/resources/extensions/gsd/tests/post-mutation-hook.test.ts +4 -2
  825. package/src/resources/extensions/gsd/tests/preferences.test.ts +47 -1
  826. package/src/resources/extensions/gsd/tests/prefs-wizard-coverage.test.ts +54 -1
  827. package/src/resources/extensions/gsd/tests/progressive-planning.test.ts +50 -14
  828. package/src/resources/extensions/gsd/tests/prompt-budget-enforcement.test.ts +58 -0
  829. package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +23 -6
  830. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +301 -0
  831. package/src/resources/extensions/gsd/tests/read-uat-gate-verdict.test.ts +185 -0
  832. package/src/resources/extensions/gsd/tests/ready-phrase-no-files-4573.test.ts +22 -13
  833. package/src/resources/extensions/gsd/tests/reassess-handler.test.ts +9 -8
  834. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +166 -4
  835. package/src/resources/extensions/gsd/tests/register-hooks-loop-guard-auto.test.ts +103 -0
  836. package/src/resources/extensions/gsd/tests/replan-handler.test.ts +4 -4
  837. package/src/resources/extensions/gsd/tests/root-write-leak-guard.test.ts +20 -1
  838. package/src/resources/extensions/gsd/tests/round-trip-property.test.ts +137 -0
  839. package/src/resources/extensions/gsd/tests/runtime-invariant-modules.test.ts +15 -3
  840. package/src/resources/extensions/gsd/tests/session-lock-transient-read.test.ts +28 -2
  841. package/src/resources/extensions/gsd/tests/single-writer-invariant.test.ts +1 -0
  842. package/src/resources/extensions/gsd/tests/stale-dirlistcache-4648.test.ts +7 -1
  843. package/src/resources/extensions/gsd/tests/stalled-tool-recovery.test.ts +56 -0
  844. package/src/resources/extensions/gsd/tests/state-reconciliation-drift.test.ts +329 -57
  845. package/src/resources/extensions/gsd/tests/stop-backtrack.test.ts +6 -2
  846. package/src/resources/extensions/gsd/tests/stuck-state-via-db.test.ts +85 -0
  847. package/src/resources/extensions/gsd/tests/sync-lock.test.ts +23 -0
  848. package/src/resources/extensions/gsd/tests/system-context-message-routing.test.ts +29 -1
  849. package/src/resources/extensions/gsd/tests/terminal-tool-surface-classification.test.ts +80 -0
  850. package/src/resources/extensions/gsd/tests/tool-call-loop-guard.test.ts +208 -0
  851. package/src/resources/extensions/gsd/tests/tool-param-optionality.test.ts +32 -3
  852. package/src/resources/extensions/gsd/tests/tool-schema-model-fallback.test.ts +64 -0
  853. package/src/resources/extensions/gsd/tests/tool-search-shim.test.ts +71 -0
  854. package/src/resources/extensions/gsd/tests/tool-surface-readiness.test.ts +26 -7
  855. package/src/resources/extensions/gsd/tests/tool-unavailable-retry.test.ts +23 -0
  856. package/src/resources/extensions/gsd/tests/undo.test.ts +113 -37
  857. package/src/resources/extensions/gsd/tests/unit-context-composer.test.ts +212 -11
  858. package/src/resources/extensions/gsd/tests/unmerged-milestone-guard.test.ts +87 -0
  859. package/src/resources/extensions/gsd/tests/uok-gitops-turn-action.test.ts +110 -1
  860. package/src/resources/extensions/gsd/tests/validate-milestone-write-order.test.ts +9 -1
  861. package/src/resources/extensions/gsd/tests/validation-block-guard.test.ts +130 -0
  862. package/src/resources/extensions/gsd/tests/validation-gate-patterns.test.ts +34 -6
  863. package/src/resources/extensions/gsd/tests/verification-retry-policy.test.ts +69 -4
  864. package/src/resources/extensions/gsd/tests/verify-artifact-tightened.test.ts +156 -0
  865. package/src/resources/extensions/gsd/tests/visualizer-data.test.ts +87 -0
  866. package/src/resources/extensions/gsd/tests/visualizer-views.test.ts +27 -0
  867. package/src/resources/extensions/gsd/tests/workflow-kernel.test.ts +51 -0
  868. package/src/resources/extensions/gsd/tests/workflow-manifest.test.ts +96 -15
  869. package/src/resources/extensions/gsd/tests/workflow-mcp-preflight.test.ts +134 -0
  870. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +42 -12
  871. package/src/resources/extensions/gsd/tests/workflow-projections.test.ts +3 -4
  872. package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +70 -13
  873. package/src/resources/extensions/gsd/tests/workspace-git-preflight.test.ts +151 -2
  874. package/src/resources/extensions/gsd/tests/worktree-health.test.ts +43 -3
  875. package/src/resources/extensions/gsd/tests/worktree-manager.test.ts +65 -0
  876. package/src/resources/extensions/gsd/tests/worktree-safety.test.ts +39 -18
  877. package/src/resources/extensions/gsd/tests/write-gate-planning-unit.test.ts +4 -1
  878. package/src/resources/extensions/gsd/tests/write-gate.test.ts +103 -0
  879. package/src/resources/extensions/gsd/tool-surface-readiness.ts +226 -16
  880. package/src/resources/extensions/gsd/tools/complete-milestone.ts +7 -9
  881. package/src/resources/extensions/gsd/tools/complete-slice.ts +14 -11
  882. package/src/resources/extensions/gsd/tools/complete-task.ts +68 -16
  883. package/src/resources/extensions/gsd/tools/exec-tool.ts +7 -3
  884. package/src/resources/extensions/gsd/tools/plan-slice.ts +61 -50
  885. package/src/resources/extensions/gsd/tools/plan-task.ts +43 -2
  886. package/src/resources/extensions/gsd/tools/reassess-roadmap.ts +9 -10
  887. package/src/resources/extensions/gsd/tools/validate-milestone.ts +8 -13
  888. package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +43 -4
  889. package/src/resources/extensions/gsd/triage-resolution.ts +14 -7
  890. package/src/resources/extensions/gsd/undo.ts +55 -15
  891. package/src/resources/extensions/gsd/unit-context-composer.ts +33 -7
  892. package/src/resources/extensions/gsd/unit-registry.ts +63 -9
  893. package/src/resources/extensions/gsd/unmerged-milestone-guard.ts +101 -6
  894. package/src/resources/extensions/gsd/validation-block-guard.ts +59 -7
  895. package/src/resources/extensions/gsd/verification-gate.ts +8 -0
  896. package/src/resources/extensions/gsd/visualizer-data.ts +55 -0
  897. package/src/resources/extensions/gsd/visualizer-views.ts +27 -2
  898. package/src/resources/extensions/gsd/workflow-manifest.ts +141 -7
  899. package/src/resources/extensions/gsd/workflow-mcp.ts +12 -1
  900. package/src/resources/extensions/gsd/workflow-projections.ts +44 -18
  901. package/src/resources/extensions/gsd/workspace-git-preflight.ts +31 -0
  902. package/src/resources/extensions/gsd/worktree-command.ts +6 -6
  903. package/src/resources/extensions/gsd/worktree-health.ts +6 -3
  904. package/src/resources/extensions/gsd/worktree-manager.ts +72 -16
  905. package/src/resources/extensions/gsd/worktree-safety.ts +31 -11
  906. package/src/resources/extensions/mcp-client/manager.ts +3 -3
  907. package/dist/web/standalone/.next/static/chunks/2772.bfa657f49f955239.js +0 -1
  908. package/dist/web/standalone/.next/static/chunks/796.e0bdc932325d7e03.js +0 -10
  909. package/dist/web/standalone/.next/static/chunks/8785.2e5a118797fb2dd2.js +0 -1
  910. package/dist/web/standalone/.next/static/chunks/webpack-f0285ce91d4ec9ef.js +0 -1
  911. /package/dist/web/standalone/.next/static/{Mh74c-rhxHjKHKoRwd2ij → zQLcXm0Za8lexoXtgDpMG}/_buildManifest.js +0 -0
  912. /package/dist/web/standalone/.next/static/{Mh74c-rhxHjKHKoRwd2ij → zQLcXm0Za8lexoXtgDpMG}/_ssgManifest.js +0 -0
@@ -25,7 +25,7 @@ import type {
25
25
  ResolvedModelConfig,
26
26
  AutoSupervisorConfig,
27
27
  } from "./preferences-types.js";
28
- import { loadEffectiveGSDPreferences, getGlobalGSDPreferencesPath } from "./preferences.js";
28
+ import { clearGSDPreferencesCache, loadEffectiveGSDPreferences, getGlobalGSDPreferencesPath } from "./preferences.js";
29
29
  import { getUnitPhaseChain } from "./unit-registry.js";
30
30
 
31
31
  // Re-export types so existing consumers of ./preferences-models.js keep working
@@ -98,8 +98,11 @@ export function resolveModelWithFallbacksForUnit(
98
98
  unitType: string,
99
99
  basePath?: string,
100
100
  availableModelIds?: string[],
101
+ preferredModelId?: string,
101
102
  ): ResolvedModelConfig | undefined {
102
- const loadOpts = availableModelIds !== undefined ? { availableModelIds } : undefined;
103
+ const loadOpts = availableModelIds !== undefined || preferredModelId !== undefined
104
+ ? { availableModelIds, preferredModelId }
105
+ : undefined;
103
106
  const prefs = loadEffectiveGSDPreferences(basePath, loadOpts);
104
107
  const chain = phaseChainForUnit(unitType);
105
108
  if (!chain) return undefined;
@@ -188,7 +191,9 @@ export function resolveThinkingLevelForUnit(
188
191
  * `openai-codex/gpt-5.4`). When a bare ID is found and sessionProvider
189
192
  * is available, the session provider is used. Without sessionProvider,
190
193
  * bare IDs are still returned with provider set to the bare ID itself
191
- * so downstream resolution (resolveModelId) can match it.
194
+ * so downstream resolution (resolveModelId) can match it. Accepts an optional
195
+ * `sessionModelId` so token-profile defaults can preserve the selected model
196
+ * before auto-mode captures its start snapshot.
192
197
  *
193
198
  * Returns `{ provider, id }` or `undefined` if no model preference is
194
199
  * configured.
@@ -197,8 +202,14 @@ export function resolveDefaultSessionModel(
197
202
  sessionProvider?: string,
198
203
  basePath?: string,
199
204
  availableModelIds?: string[],
205
+ sessionModelId?: string,
200
206
  ): { provider: string; id: string } | undefined {
201
- const loadOpts = availableModelIds !== undefined ? { availableModelIds } : undefined;
207
+ const preferredModelId = sessionModelId && sessionProvider
208
+ ? `${sessionProvider}/${sessionModelId}`
209
+ : sessionModelId;
210
+ const loadOpts = availableModelIds !== undefined || preferredModelId !== undefined
211
+ ? { availableModelIds, preferredModelId }
212
+ : undefined;
202
213
  const prefs = loadEffectiveGSDPreferences(basePath, loadOpts);
203
214
  const models = prefs?.preferences?.models;
204
215
  if (!models) return undefined;
@@ -394,6 +405,7 @@ export function updatePreferencesModels(models: GSDModelConfigV2): void {
394
405
  }
395
406
 
396
407
  writeFileSync(prefsPath, content, "utf-8");
408
+ clearGSDPreferencesCache();
397
409
  }
398
410
 
399
411
  /**
@@ -477,27 +489,31 @@ const PROFILE_TIER_MAP: Record<TokenProfile, Record<string, ComplexityTier>> = {
477
489
  * the best match on the anchor provider (session / auto-start model). Callers
478
490
  * scope the available-model list via `modelIdsForProfileResolution` so token
479
491
  * profiles do not hop to a cheaper provider (e.g. Gemini Flash) when the user
480
- * is working on OpenAI or Anthropic. When not known (e.g., early startup),
481
- * falls back to canonical Anthropic model IDs.
492
+ * is working on OpenAI or Anthropic. When the selected/session model is known,
493
+ * it is preferred for tiers it can satisfy. When the registry is unavailable
494
+ * (e.g., early startup), falls back to canonical Anthropic model IDs.
482
495
  *
483
496
  * @param profile The token profile to resolve
484
497
  * @param availableModelIds Optional list of available model IDs for cross-provider resolution.
485
498
  * Undefined means the registry is unavailable.
486
499
  * @param routingConfig Optional routing config for tier model pins.
500
+ * @param preferredModelId Optional selected/session model ID to prefer.
487
501
  */
488
502
  export function resolveProfileDefaults(
489
503
  profile: TokenProfile,
490
504
  availableModelIds?: string[],
491
505
  routingConfig: DynamicRoutingConfig = defaultRoutingConfig(),
506
+ preferredModelId?: string,
492
507
  ): Partial<GSDPreferences> {
493
508
  // burn-max never writes model defaults — preserve user-selected models.
494
509
  // For the other three profiles, derive concrete model IDs from the tier map
495
510
  // against the available-model list when the registry is provided. If callers
496
511
  // omit the registry entirely, use canonical fallbacks explicitly.
497
512
  const tierMap = PROFILE_TIER_MAP[profile];
498
- const resolveTierModel = (tier: ComplexityTier): string => Array.isArray(availableModelIds)
499
- ? resolveModelForTier(tier, availableModelIds, routingConfig)
500
- : canonicalModelForTier(tier);
513
+ const resolveTierModel = (tier: ComplexityTier): string =>
514
+ Array.isArray(availableModelIds) || preferredModelId
515
+ ? resolveModelForTier(tier, availableModelIds ?? [], routingConfig, undefined, preferredModelId)
516
+ : canonicalModelForTier(tier);
501
517
  const models: GSDModelConfigV2 | undefined = profile === "burn-max"
502
518
  ? undefined
503
519
  : {
@@ -10,7 +10,7 @@
10
10
  * statements continue to work without modification.
11
11
  */
12
12
 
13
- import { existsSync, readFileSync } from "node:fs";
13
+ import { existsSync, readFileSync, statSync } from "node:fs";
14
14
  import { homedir } from "node:os";
15
15
  import { join } from "node:path";
16
16
 
@@ -220,16 +220,20 @@ export function loadEffectiveGSDPreferencesWithRegistry(
220
220
  registry: PreferencesModelRegistry | undefined,
221
221
  basePath?: string,
222
222
  anchorProvider?: string,
223
+ preferredModelId?: string,
223
224
  ): LoadedGSDPreferences | null {
225
+ const preferenceOpts = preferredModelId !== undefined
226
+ ? { preferredModelId }
227
+ : undefined;
224
228
  if (!registry) {
225
- return loadEffectiveGSDPreferences(basePath);
229
+ return loadEffectiveGSDPreferences(basePath, preferenceOpts);
226
230
  }
227
231
  const disabledProviders = resolveDisabledModelProvidersFromPreferences();
228
232
  const availableModelIds = modelIdsForProfileResolution(registry, anchorProvider, disabledProviders);
229
233
  if (!availableModelIds) {
230
- return loadEffectiveGSDPreferences(basePath);
234
+ return loadEffectiveGSDPreferences(basePath, preferenceOpts);
231
235
  }
232
- return loadEffectiveGSDPreferences(basePath, { availableModelIds });
236
+ return loadEffectiveGSDPreferences(basePath, { availableModelIds, preferredModelId });
233
237
  }
234
238
 
235
239
  /**
@@ -263,32 +267,94 @@ export function normalizePreferencesShape(
263
267
  }
264
268
  // ─── Loading ────────────────────────────────────────────────────────────────
265
269
 
266
- export function loadGlobalGSDPreferences(): LoadedGSDPreferences | null {
267
- return loadFirstUsablePreferencesFile([
270
+ const EFFECTIVE_PREFERENCES_CACHE_MAX = 64;
271
+ const effectivePreferencesCache = new Map<string, LoadedGSDPreferences | null>();
272
+
273
+ export function clearGSDPreferencesCache(): void {
274
+ effectivePreferencesCache.clear();
275
+ }
276
+
277
+ function globalPreferencesCandidatePaths(): string[] {
278
+ return [
268
279
  globalPreferencesPath(),
269
280
  legacyGlobalPreferencesPathLowercase(),
270
281
  legacyGlobalPreferencesPath(),
271
- ], "global");
282
+ ];
272
283
  }
273
284
 
274
- export function loadProjectGSDPreferences(basePath?: string): LoadedGSDPreferences | null {
275
- return loadFirstUsablePreferencesFile([
285
+ function projectPreferencesCandidatePaths(basePath?: string): string[] {
286
+ return [
276
287
  projectPreferencesPath(basePath),
277
288
  legacyProjectPreferencesPathLowercase(basePath),
278
- ], "project");
289
+ ];
290
+ }
291
+
292
+ function preferencesFileSignature(path: string): string {
293
+ try {
294
+ const stats = statSync(path);
295
+ return `${path}:${stats.size}:${stats.mtimeMs}`;
296
+ } catch (err) {
297
+ const code = (err as NodeJS.ErrnoException).code ?? "unknown";
298
+ return `${path}:missing:${code}`;
299
+ }
300
+ }
301
+
302
+ function effectivePreferencesCacheKey(
303
+ basePath?: string,
304
+ opts?: { availableModelIds?: string[]; preferredModelId?: string },
305
+ ): string {
306
+ return JSON.stringify({
307
+ basePath: basePath ?? null,
308
+ global: globalPreferencesCandidatePaths().map(preferencesFileSignature),
309
+ project: projectPreferencesCandidatePaths(basePath).map(preferencesFileSignature),
310
+ availableModelIds: opts?.availableModelIds ?? null,
311
+ preferredModelId: opts?.preferredModelId ?? null,
312
+ });
313
+ }
314
+
315
+ function cloneLoadedPreferences(
316
+ loaded: LoadedGSDPreferences | null,
317
+ ): LoadedGSDPreferences | null {
318
+ return loaded ? structuredClone(loaded) : null;
319
+ }
320
+
321
+ function cacheEffectivePreferences(
322
+ key: string,
323
+ loaded: LoadedGSDPreferences | null,
324
+ ): void {
325
+ if (!effectivePreferencesCache.has(key) && effectivePreferencesCache.size >= EFFECTIVE_PREFERENCES_CACHE_MAX) {
326
+ effectivePreferencesCache.clear();
327
+ }
328
+ effectivePreferencesCache.set(key, cloneLoadedPreferences(loaded));
329
+ }
330
+
331
+ export function loadGlobalGSDPreferences(): LoadedGSDPreferences | null {
332
+ return loadFirstUsablePreferencesFile(globalPreferencesCandidatePaths(), "global");
333
+ }
334
+
335
+ export function loadProjectGSDPreferences(basePath?: string): LoadedGSDPreferences | null {
336
+ return loadFirstUsablePreferencesFile(projectPreferencesCandidatePaths(basePath), "project");
279
337
  }
280
338
 
281
339
  export function loadEffectiveGSDPreferences(
282
340
  basePath?: string,
283
- opts?: { availableModelIds?: string[] },
341
+ opts?: { availableModelIds?: string[]; preferredModelId?: string },
284
342
  ): LoadedGSDPreferences | null {
343
+ const cacheKey = effectivePreferencesCacheKey(basePath, opts);
344
+ if (effectivePreferencesCache.has(cacheKey)) {
345
+ return cloneLoadedPreferences(effectivePreferencesCache.get(cacheKey)!);
346
+ }
347
+
285
348
  const globalPreferences = loadGlobalGSDPreferences();
286
349
  const projectPreferences = loadProjectGSDPreferences(basePath);
287
350
  const effectiveGlobalPreferences = globalPreferences?.ignored ? null : globalPreferences;
288
351
  const effectiveProjectPreferences = projectPreferences?.ignored ? null : projectPreferences;
289
352
  const projectHasPlanningDepth = effectiveProjectPreferences?.preferences.planning_depth !== undefined;
290
353
 
291
- if (!effectiveGlobalPreferences && !effectiveProjectPreferences) return null;
354
+ if (!effectiveGlobalPreferences && !effectiveProjectPreferences) {
355
+ cacheEffectivePreferences(cacheKey, null);
356
+ return null;
357
+ }
292
358
 
293
359
  let result: LoadedGSDPreferences;
294
360
  if (!effectiveGlobalPreferences) {
@@ -323,6 +389,7 @@ export function loadEffectiveGSDPreferences(
323
389
  profileForDefaults,
324
390
  opts?.availableModelIds,
325
391
  result.preferences.dynamic_routing,
392
+ opts?.preferredModelId,
326
393
  );
327
394
  const defaultsToApply = explicitProfile
328
395
  ? profileDefaults
@@ -343,6 +410,7 @@ export function loadEffectiveGSDPreferences(
343
410
 
344
411
  result = stripInheritedPlanningDepth(result, projectHasPlanningDepth);
345
412
 
413
+ cacheEffectivePreferences(cacheKey, result);
346
414
  return result;
347
415
  }
348
416
 
@@ -0,0 +1,28 @@
1
+ You are running the GSD **ai-integration-phase** workflow — produce an AI design contract (AI-SPEC) for a milestone/slice that builds an AI system.
2
+
3
+ ## Target
4
+
5
+ {{target}}
6
+
7
+ ## Process
8
+
9
+ 1. **Load intent.** Read the milestone/slice goal and requirements for the AI capability.
10
+
11
+ 2. **Define the AI capability contract:**
12
+ - **Inputs:** what the model receives (schema, context, examples) and any preprocessing.
13
+ - **Outputs:** the expected response shape, how it's parsed/validated, and how failures are handled.
14
+ - **Model & parameters:** which model/provider, temperature, max tokens, fallback chain — never hardcode; reference config.
15
+ - **Prompt/contract:** the system/user prompt strategy, or tool/function calling schema.
16
+ - **Evaluation:** how quality is measured (eval set, rubric, human-in-the-loop checkpoints).
17
+ - **Cost & latency budget:** expected per-call cost and latency, and the ceiling that triggers a redesign.
18
+
19
+ 3. **Risk register.** Hallucination/grounding, prompt injection, data leakage, cost runaway, model deprecation. For each, the mitigation.
20
+
21
+ 4. **Write the AI-SPEC** to the milestone/slice artifact in `.gsd/`. Recommend `/gsd plan-phase` or `/gsd spike` for high-uncertainty model behaviors.
22
+
23
+ ## Success criteria
24
+
25
+ - Inputs/outputs are schema-defined, not prose-only.
26
+ - Evaluation is concrete (eval set + rubric), not "it looks good".
27
+ - Cost/latency has a budget and a ceiling.
28
+ - The risk register covers the standard AI failure modes.
@@ -0,0 +1,39 @@
1
+ You are running the GSD **audit-fix** workflow — autonomous audit-to-fix pipeline: find issues, classify them, fix the auto-fixable ones, test after each fix, and commit atomically.
2
+
3
+ ## Source
4
+
5
+ {{source}}
6
+
7
+ ## Severity filter
8
+
9
+ {{severity}}
10
+
11
+ ## Max fixes
12
+
13
+ {{maxFixes}}
14
+
15
+ ## Dry run
16
+
17
+ {{dryRun}}
18
+
19
+ ## Process
20
+
21
+ 1. **Run the audit.** Use the named source audit (default: the most recent audit-uat / scan findings). If no audit exists, run a fresh `/gsd scan --focus concerns` first and use those findings.
22
+
23
+ 2. **Parse and classify findings.** For each finding, decide: `auto-fixable` (deterministic, localized, no public-behavior change) or `manual-only` (ambiguous, risky, or behavior-changing). Apply the severity filter and the `--max` cap.
24
+
25
+ 3. **Fix loop** (skip entirely if `--dry-run`). For each auto-fixable finding, in priority order:
26
+ - Apply the fix.
27
+ - Run the project's tests.
28
+ - If tests pass, stage the change and record the finding id.
29
+ - If tests fail, revert that fix, mark it manual-only, and continue.
30
+ Commit atomically, referencing the finding ids in the commit message for traceability.
31
+
32
+ 4. **Report.** List: fixed (with finding ids + commits), deferred to manual (with reasons), and any that were attempted but reverted due to test failure.
33
+
34
+ ## Success criteria
35
+
36
+ - Every fix is tested before it's kept; failing fixes are reverted, not left half-applied.
37
+ - Commits are atomic and reference finding ids.
38
+ - `--dry-run` shows what would be fixed without changing anything.
39
+ - Manual-only findings are reported, not silently ignored.
@@ -0,0 +1,26 @@
1
+ You are running the GSD **audit-milestone** workflow — verify a milestone achieved its definition of done before it is archived.
2
+
3
+ ## Target
4
+
5
+ {{target}}
6
+
7
+ ## Process
8
+
9
+ 1. **Load the milestone.** Read the milestone's ROADMAP entry, its slices' plans and SUMMARY/ASSESSMENT artifacts, and the requirements/acceptance criteria. If a specific milestone id was given, target it; otherwise target the active or most-recently-completed milestone.
10
+
11
+ 2. **Aggregate per-slice verification.** For each slice, confirm its tasks were completed and its verification strategy was satisfied (tests pass, UAT recorded). Flag slices with incomplete verification.
12
+
13
+ 3. **Check requirements coverage.** Map each requirement/acceptance criterion to the slice(s) and tasks that delivered it. Flag any requirement with no covering evidence.
14
+
15
+ 4. **Check cross-slice integration.** Identify slices that touch shared resources (APIs, data models, state) and confirm their integration points are consistent — no broken handoffs, conflicting schemas, or sequencing gaps.
16
+
17
+ 5. **Aggregate debt and deferred items.** Collect tech debt, deferred tasks, and known gaps into a single list with severity and owner-hint.
18
+
19
+ 6. **Produce the verdict.** Report: `PASS` (done-of-definition met), `NEEDS-ATTENTION` (gaps that need a human call), or `NEEDS-REMEDIATION` (gaps that block archival). Recommend the matching gsd-pi next step (`/gsd verdict`, `/gsd dispatch validate`, or scheduling remediation).
20
+
21
+ ## Success criteria
22
+
23
+ - Every requirement is mapped to covering evidence or flagged as uncovered.
24
+ - Cross-slice integration risks are explicit, not assumed away.
25
+ - The verdict is one of the three canonical values with supporting evidence.
26
+ - Debt/deferred items are listed, not silently dropped.
@@ -0,0 +1,24 @@
1
+ You are running the GSD **audit-uat** workflow — cross-milestone audit of all outstanding UAT and verification items.
2
+
3
+ ## Verify mode
4
+
5
+ {{verifyMode}}
6
+
7
+ ## Process
8
+
9
+ 1. **Find every outstanding verification item.** Scan all milestones and slices for items in a non-passing state: pending, skipped, blocked, human_needed. Read the slice SUMMARY/ASSESSMENT artifacts and any UAT records.
10
+
11
+ 2. **Classify each item.** For each outstanding item, record: milestone/slice id, the item, its current state, and why it's outstanding (skipped intentionally, blocked by a dependency, awaiting a human, stale).
12
+
13
+ 3. **Verify against the codebase** (only when `--verify` is set): for each item, check whether the code now satisfies it — turning stale "pending" items into pass/fail based on current evidence. Do not modify code; only re-evaluate.
14
+
15
+ 4. **Produce a prioritized test plan.** Order the genuinely-outstanding items into a human test plan: blockers first, then high-risk, then the rest. Each entry has a clear test step and expected result.
16
+
17
+ 5. **Summarize.** Report counts by state, the count turned pass/fail by verification, and the prioritized plan.
18
+
19
+ ## Success criteria
20
+
21
+ - Every outstanding verification item is listed with its milestone/slice and reason.
22
+ - Stale items are detected (and, in verify mode, re-evaluated against the code).
23
+ - The test plan is prioritized by risk, not alphabetical.
24
+ - No item is silently dropped or assumed resolved.
@@ -0,0 +1,31 @@
1
+ You are running the GSD **autonomous** workflow — run all remaining work on a milestone/slice continuously: discuss → plan → execute per slice, then validate, with minimal human intervention.
2
+
3
+ ## Scope
4
+
5
+ {{scope}}
6
+
7
+ ## Flags
8
+
9
+ - `--interactive` — {{interactiveFlag}} (pause for confirmation at key boundaries)
10
+ - `--converge` — {{convergeFlag}} (re-run review cycles until concerns resolve before advancing)
11
+
12
+ ## Process
13
+
14
+ This workflow is the gsd-pi equivalent of `/gsd auto` with explicit phase-ceremony. It drives the milestone through its lifecycle:
15
+
16
+ 1. **For each pending slice**, in order: discuss (if not done) → plan (if not done) → execute (all tasks) → complete slice.
17
+ 2. **Between slices**, honor the closeout boundary stop rule: stop after a slice closeout and leave the closeout surface visible, unless the user opted out of pause-at-boundary.
18
+ 3. **`--converge`:** before advancing, run a plan-review-convergence pass on the slice; only advance when concerns resolve.
19
+ 4. **`--interactive`:** confirm before each slice's discuss→plan→execute transitions.
20
+ 5. **At milestone completion,** run validation (`/gsd dispatch validate`) rather than auto-closing.
21
+
22
+ Prefer delegating each lifecycle step to gsd-pi's native dispatch (`/gsd dispatch discuss|plan|execute`, `/gsd next`, `/gsd auto`) rather than reimplementing the unit machinery.
23
+
24
+ Never barrel past a closeout boundary silently; never mark a milestone complete without validation.
25
+
26
+ ## Success criteria
27
+
28
+ - The milestone advances through its lifecycle in the correct order.
29
+ - Closeout boundaries are respected (stop and surface, don't barrel).
30
+ - `--converge` actually gates advancement on resolved concerns.
31
+ - Milestone completion goes through validation, not auto-close.
@@ -0,0 +1,39 @@
1
+ You are running the GSD **code-review** workflow — review source files changed during recent work for bugs, security issues, and code quality problems.
2
+
3
+ ## Scope
4
+
5
+ {{scope}}
6
+
7
+ ## Depth
8
+
9
+ {{depth}}
10
+
11
+ ## Fix mode
12
+
13
+ {{fixMode}}
14
+
15
+ ## Process
16
+
17
+ 1. **Determine the file set.** Use the explicit `--files` list if provided. Otherwise derive the changed source files from the active slice's recent commits / SUMMARY, or fall back to the git diff against the base branch. Exclude `.gsd/`, lockfiles, generated/vendored code, and docs unless `--files` names them.
18
+
19
+ 2. **Gather diff-first context.** Run `git diff` for the file set (or the relevant commit range) and use that as the primary review evidence. Use `read` only when the diff is insufficient — new/untracked files, truncated hunks, or missing surrounding context needed for a finding. Do **not** read every changed file when the diff already covers the edits. If the Tool Call Loop Guard blocks a tool, stop calling tools for the rest of this turn and continue in text.
20
+
21
+ 3. **Review at the requested depth:**
22
+ - **quick** — bugs, security, and correctness only.
23
+ - **standard** (default) — quick + maintainability, error handling, edge cases.
24
+ - **deep** — standard + performance, concurrency, API design, test coverage gaps.
25
+
26
+ Ground every finding in the actual code with file path + line reference. Categorize each by severity (critical / warning / nit) and type (bug, security, quality, performance).
27
+
28
+ 4. **Write the review.** Produce `.gsd/reviews/{{reviewId}}-REVIEW.md` with the findings table and per-finding detail (location, issue, suggested fix).
29
+
30
+ 5. **Present results.** Summarize counts by severity and list the critical findings first.
31
+
32
+ 6. **Fix mode** (only when `--fix` is set): for each finding that is safely auto-fixable (deterministic, no behavior change beyond the fix), apply it. After each fix batch, run the project's tests. Commit atomically with the finding IDs referenced in the message. Do not auto-apply findings that are ambiguous or that change public behavior — surface those for a human decision instead.
33
+
34
+ ## Success criteria
35
+
36
+ - Every finding cites a concrete file path and line.
37
+ - Findings are categorized by severity and type.
38
+ - The review is written to `.gsd/reviews/`.
39
+ - Fixes only touch safely-auto-fixable findings, and tests run after each batch.
@@ -6,7 +6,7 @@ You are executing GSD auto-mode.
6
6
 
7
7
  Your working directory is `{{workingDirectory}}`. All file reads, writes, and shell commands MUST operate relative to this directory. Do NOT `cd` to any other directory.
8
8
 
9
- If any inlined plan, summary, verification command, or prior artifact names an absolute path outside `{{workingDirectory}}`, treat that path as stale context. Convert it to the equivalent relative path under `{{workingDirectory}}` before reading, writing, or executing. If no equivalent path exists under `{{workingDirectory}}`, record a verification failure and stop; do not edit or run commands in another checkout.
9
+ If inlined context names an absolute path outside `{{workingDirectory}}`, treat it as stale. Convert to the relative path under `{{workingDirectory}}` before use. If none exists, record a verification failure and stop; do not edit or run commands in another checkout.
10
10
 
11
11
  ## Your Role in the Pipeline
12
12
 
@@ -14,13 +14,13 @@ You are the closer: verify assembled task work delivers the slice goal, then com
14
14
 
15
15
  ### Closeout messaging (auto-mode)
16
16
 
17
- You write closeout artifacts; **GSD auto-mode** decides when the slice is actually **done**. Never say "Slice {{sliceId}} complete" in this unit — not even after `gsd_slice_complete` succeeds. GSD announces completion only after post-unit verification passes.
17
+ You write closeout artifacts; **GSD auto-mode** decides when the slice is actually **done**. Never say "Slice {{sliceId}} complete" in this unit. GSD announces completion only after post-unit verification passes.
18
18
 
19
19
  {{inlinedContext}}
20
20
 
21
21
  {{gatesToClose}}
22
22
 
23
- Match effort to complexity. Simple slices need brief summary and light verification; multi-subsystem slices need stronger verification and detail.
23
+ Match complexity: simple slices need brief summary/light verification; multi-subsystem slices need stronger verification/detail.
24
24
 
25
25
  Use `subagent` only when useful: reviewer, security, or tester. Apply findings before completion.
26
26
 
@@ -28,29 +28,34 @@ Use `subagent` only when useful: reviewer, security, or tester. Apply findings b
28
28
 
29
29
  1. Use the inlined Slice Summary and UAT templates.
30
30
  2. {{skillActivation}}
31
- 3. Run all slice-level verification through `gsd_exec` / Context Mode evidence; refresh current state if needed. Do not use direct `bash` for verification commands. See the prepended **Tool Surface** block for unavailable tools.
32
- 4. Complete only when every required check passes. If verification fails or source changes are needed, do **not** edit source files in this unit and do **not** call `gsd_slice_complete`.
31
+ 3. Run slice-level verification only through `gsd_exec` / Context Mode evidence; refresh current state if needed. Do not use direct `bash` for verification commands. Tool availability is in **Tool Surface**.
32
+ 4. Complete only after every required check passes. Exactly one terminal workflow tool is required: pass -> `gsd_slice_complete`; task follow-up -> `gsd_task_reopen`; planning follow-up -> `gsd_replan_slice`. A text-only stop, even one mentioning a tool, is invalid. If checks fail or source changes are needed, do **not** edit source files in this unit and do **not** call `gsd_slice_complete`.
33
33
  5. If verification fails:
34
- - Task-specific regressions: if the failure is in files the task touched and pre-task verification evidence shows it was absent before that task ran, call `gsd_task_reopen` with that task and reason.
35
- - Inherited/out-of-scope failures, including failures present before the task ran or failures without pre-task evidence: do **not** reopen completed tasks; call `gsd_replan_slice` with adjusted verification scope or follow-up tasks.
36
- - Other plan-invalidating failures: call `gsd_replan_slice` with the blocker and updated execution tasks.
37
- Then stop with: "Slice {{sliceId}} needs execution follow-up."
34
+ - Task-specific regression: if pre-task verification evidence shows it was absent before that task ran, call `gsd_task_reopen` with task and reason.
35
+ - Inherited/out-of-scope failure, including failures present before the task ran or no pre-task evidence: do **not** reopen tasks; call `gsd_replan_slice`.
36
+ - Other plan-invalidating failure: call `gsd_replan_slice` with blocker and updated tasks.
37
+ After any successful failure-handoff tool call, the unit is done. The `gsd_task_reopen` or `gsd_replan_slice` call is the handoff signal for the orchestrator.
38
+ - Never call `gsd_replan_slice` after calling `gsd_task_reopen`; reopened tasks are pending.
39
+ - Do not call `gsd_plan_slice`; that tool belongs to `plan-slice` and is hard-blocked here.
40
+ - Do not read source code, run `gsd_exec`, invoke subagents, or do implementation/planning work after the first `gsd_task_reopen` or `gsd_replan_slice` handoff call.
41
+ - Terminal reopen sequence: call `gsd_task_reopen`; after success, final text may only be: "Slice {{sliceId}} needs execution follow-up."
42
+ - Terminal replan sequence: call `gsd_replan_slice` once; after it succeeds, final text may only be: "Slice {{sliceId}} needs execution follow-up."
38
43
  6. Task summaries use a flat file layout under `tasks/` such as `T01-SUMMARY.md`, not inside per-task subdirectories like `tasks/T01/SUMMARY.md`. Never use `tasks/*/SUMMARY.md`.
39
44
  7. If observability/diagnostics were planned, verify them unless the slice is simple.
40
45
  8. Address every Gate to Close. Q8 = **Operational Readiness**: health signal, failure signal, recovery, monitoring gaps. Omit empty sections.
41
46
  9. If requirement status changed, call `gsd_requirement_update`; do not write `.gsd/REQUIREMENTS.md` directly.
42
- 10. Prepare `gsd_slice_complete` content with camelCase fields `milestoneId`, `sliceId`, `sliceTitle`, `oneLiner`, `narrative`, `verification`, and `uatContent`.
43
- 11. Draft concrete UAT with preconditions, steps, expected outcomes, edge cases, and UAT Type. Declare the type as a bullet under a `## UAT Type` heading, exactly like `- UAT mode: browser-executable`.
47
+ 10. Prepare `gsd_slice_complete` camelCase fields: `milestoneId`, `sliceId`, `sliceTitle`, `oneLiner`, `narrative`, `verification`, `uatContent`.
48
+ 11. Draft concrete UAT: preconditions, steps, expected outcomes, edge cases, and UAT Type. Declare type under `## UAT Type` exactly like `- UAT mode: browser-executable`.
44
49
  **Web apps:** when inlined Web App UAT guidance is present, declare `browser-executable` or `runtime-executable` (not `artifact-driven`) for localhost/browser/screenshot steps; include dev-server preconditions and name Playwright specs when they exist.
45
- 12. Review the inlined task-summary excerpts for DECISIONS.md/KNOWLEDGE.md-worthy decisions and gotchas. Read full `*-SUMMARY.md` only if needed. Capture with `gsd_capture_thought` (MCP-scoped `mcp__...__gsd_capture_thought`), not bare `capture_thought`; do not append knowledge files.
50
+ 12. Review the inlined task-summary excerpts for DECISIONS.md/KNOWLEDGE.md-worthy decisions/gotchas. Read full `*-SUMMARY.md` only if needed. Capture with MCP-scoped `gsd_capture_thought`, not bare `capture_thought`; do not append knowledge files.
46
51
  13. When verification passes, call `gsd_slice_complete`. The DB-backed tool is the canonical write path. Do **not** manually write `{{sliceSummaryPath}}`. Do **not** manually write `{{sliceUatPath}}`. Do not edit roadmap checkboxes.
47
52
  14. Do not run git commands.
48
- 15. If the current project state needs refresh, call `gsd_summary_save` with `artifact_type: "PROJECT"` and the full updated project markdown as `content`; omit `milestone_id`. Do not write or edit `.gsd/PROJECT.md` directly.
53
+ 15. If project state needs refresh, call `gsd_summary_save` with `artifact_type: "PROJECT"` and full updated project markdown as `content`; omit `milestone_id`. Do not edit `.gsd/PROJECT.md` directly.
49
54
 
50
55
  **Autonomous execution:** no human is available. Do not call `ask_user_questions` or `secure_env_collect`; make reasonable assumptions and document them.
51
56
 
52
- **File system safety:** if re-reading task summaries, use `find .gsd/milestones/{{milestoneId}}/slices/{{sliceId}}/tasks -name "*-SUMMARY.md"`. Never pass `{{slicePath}}` or any directory path directly to the `read` tool.
57
+ **File system safety:** to re-read task summaries, use `find .gsd/milestones/{{milestoneId}}/slices/{{sliceId}}/tasks -name "*-SUMMARY.md"`. Never pass `{{slicePath}}` or any directory path directly to the `read` tool.
53
58
 
54
- **You MUST call `gsd_slice_complete` with summary and UAT content only after verification passes.**
59
+ **You MUST call `gsd_slice_complete` after verification passes. If not, MUST call `gsd_task_reopen` or `gsd_replan_slice`. Never finish this unit with plain text only.**
55
60
 
56
- When done, say: "Slice {{sliceId}} closeout submitted." Do not say the slice is complete. Say this exactly once — if you already said it in a prior message, do not repeat it.
61
+ When done, say exactly once: "Slice {{sliceId}} closeout submitted." Do not say the slice is complete.
@@ -0,0 +1,31 @@
1
+ You are running the GSD **discuss-phase** workflow — gather context for upcoming work through adaptive questioning before planning.
2
+
3
+ ## Target
4
+
5
+ {{target}}
6
+
7
+ ## Flags
8
+
9
+ - `--auto` — {{autoFlag}} (when ON, infer answers from existing artifacts without asking)
10
+ - `--text` — {{textFlag}} (when ON, use plain-text questions instead of interactive prompts)
11
+
12
+ ## Process
13
+
14
+ 1. **Load context.** Read the target milestone's ROADMAP entry, CONTEXT, RESEARCH, prior SUMMARYs, and the Decisions Register. This preloaded context is authoritative — do not re-read these files; reference them.
15
+
16
+ 2. **Take a codebase snapshot.** A bounded sample of current code reality (≤5 source files, ≤8KB each) to ground questions. Read a specific file only when a question's answer hinges on it.
17
+
18
+ 3. **Ask grounded questions, one at a time.** Questions must be grounded in the preloaded context + snapshot — never an open-ended survey of the codebase before the first round. Probe: scope boundaries, success criteria, risks, unknowns, integration points.
19
+
20
+ 4. **`--auto` mode:** infer answers from the artifacts rather than asking, and record the inferences as assumptions to be confirmed later.
21
+
22
+ 5. **Record outcomes.** When the discussion settles, capture: decisions (to the Decisions Register via `/gsd knowledge rule` where durable), refined scope (to the milestone CONTEXT), open questions (to RESEARCH or `/gsd dispatch research`), and assumptions. Mark the milestone/slice as "Discussion Complete, Planning Pending".
23
+
24
+ 6. **Route.** Recommend the next step: `/gsd dispatch plan` to plan the milestone/slice, or `/gsd dispatch research` if open questions dominate.
25
+
26
+ ## Success criteria
27
+
28
+ - Questions are grounded and asked one at a time — no upfront survey.
29
+ - The preloaded context is treated as authoritative (not re-read).
30
+ - Outcomes land in the right gsd-pi artifacts.
31
+ - The recommended next step matches where the milestone now sits.
@@ -0,0 +1,13 @@
1
+ You are running the GSD **docs-update** workflow — generate, update, and verify project documentation against the live codebase.
2
+
3
+ ## Mode
4
+
5
+ {{mode}}
6
+
7
+ ## Process
8
+
9
+ {{process}}
10
+
11
+ ## Success criteria
12
+
13
+ {{successCriteria}}
@@ -0,0 +1,33 @@
1
+ You are running the GSD **execute-phase** workflow — execute all tasks in a milestone/slice with wave-based parallelization.
2
+
3
+ ## Target
4
+
5
+ {{target}}
6
+
7
+ ## Flags
8
+
9
+ - `--wave N` — {{waveFlag}} (max parallel tasks per wave)
10
+ - `--gaps-only` — {{gapsOnlyFlag}} (only execute tasks whose verification is incomplete)
11
+ - `--interactive` — {{interactiveFlag}} (confirm each wave)
12
+ - `--tdd` — {{tddFlag}}
13
+
14
+ ## Process
15
+
16
+ 1. **Load the plan.** Read the milestone/slice plan and task list. Determine task dependencies and group independent tasks into waves.
17
+
18
+ 2. **Execute wave-by-wave.** Within a wave, independent tasks can run in parallel (bounded by `--wave`). Each task: implement → run its verification → record outcome. `--gaps-only` restricts to tasks with incomplete verification.
19
+
20
+ 3. **Per-task guarantees.** Each completed task gets an atomic commit and an updated SUMMARY. Failing verification blocks that task's completion (do not mark it done).
21
+
22
+ 4. **Between waves**, confirm if `--interactive`, then proceed to the next wave respecting dependencies.
23
+
24
+ 5. **Honor closeout boundaries.** Stop after the first task/slice/milestone closeout boundary and leave the final closeout surface visible — do not barrel through multiple closeouts.
25
+
26
+ Prefer delegating single-task execution to gsd-pi's execute machinery (`/gsd next`, `/gsd dispatch execute`) where it fits.
27
+
28
+ ## Success criteria
29
+
30
+ - Every task attempted is either completed (verified + committed) or left blocked with a clear reason.
31
+ - Wave parallelism respects task dependencies.
32
+ - Closeout boundaries are honored (stop, don't barrel).
33
+ - Atomic commits per task; SUMMARY updated per task.