savepoint 1.0.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 (273) hide show
  1. package/.claude/settings.local.json +20 -0
  2. package/.prettierignore +4 -0
  3. package/.savepoint/Design.md +196 -0
  4. package/.savepoint/PRD.md +58 -0
  5. package/.savepoint/audit/E01-go-setup/proposals.md +166 -0
  6. package/.savepoint/audit/E01-go-setup/snapshot.md +71 -0
  7. package/.savepoint/audit/E01-scaffolding/proposals/AGENTS.md +66 -0
  8. package/.savepoint/audit/E01-scaffolding/proposals/Design.md +210 -0
  9. package/.savepoint/audit/E01-scaffolding/proposals/epic-Design.md +117 -0
  10. package/.savepoint/audit/E01-scaffolding/proposals/quality-review.md +101 -0
  11. package/.savepoint/audit/E01-scaffolding/snapshot.md +54 -0
  12. package/.savepoint/audit/E02-data-model/snapshot.md +128 -0
  13. package/.savepoint/audit/E02-data-readers/proposals.md +123 -0
  14. package/.savepoint/audit/E02-data-readers/snapshot.md +54 -0
  15. package/.savepoint/audit/E03-board-tui-core/proposals.md +146 -0
  16. package/.savepoint/audit/E03-board-tui-core/snapshot.md +57 -0
  17. package/.savepoint/audit/E03-cli-foundation/snapshot.md +106 -0
  18. package/.savepoint/audit/E04-board-components/proposals.md +118 -0
  19. package/.savepoint/audit/E04-board-components/snapshot.md +77 -0
  20. package/.savepoint/audit/E04-templates-and-prompts/snapshot.md +115 -0
  21. package/.savepoint/audit/E05-init-command/snapshot.md +125 -0
  22. package/.savepoint/audit/E05-phase-transitions/proposals.md +83 -0
  23. package/.savepoint/audit/E05-phase-transitions/snapshot.md +36 -0
  24. package/.savepoint/audit/E06-tui-board/snapshot.md +64 -0
  25. package/.savepoint/audit/E07-audit-pipeline/snapshot.md +165 -0
  26. package/.savepoint/audit/E08-board-workflow-cleanup/snapshot.md +65 -0
  27. package/.savepoint/config.yml +27 -0
  28. package/.savepoint/releases/v1/PRD.md +66 -0
  29. package/.savepoint/releases/v1/epics/E01-go-setup/Design.md +39 -0
  30. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T001-init-module.md +42 -0
  31. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T002-entrypoint.md +23 -0
  32. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T003-directory-structure.md +24 -0
  33. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T004-makefile.md +23 -0
  34. package/.savepoint/releases/v1/epics/E02-data-readers/Design.md +61 -0
  35. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T001-task-struct.md +29 -0
  36. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T002-frontmatter-parser.md +30 -0
  37. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T003-router-reader.md +29 -0
  38. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T004-config-reader.md +29 -0
  39. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T005-discovery.md +30 -0
  40. package/.savepoint/releases/v1/epics/E03-board-tui-core/Design.md +38 -0
  41. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T001-model.md +29 -0
  42. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T002-update-loop.md +30 -0
  43. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T003-view.md +34 -0
  44. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T004-styles.md +29 -0
  45. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T005-layout.md +42 -0
  46. package/.savepoint/releases/v1/epics/E04-board-components/Design.md +44 -0
  47. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T001-column.md +34 -0
  48. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T002-card.md +33 -0
  49. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T003-epic-panel.md +49 -0
  50. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T004-detail-overlay.md +40 -0
  51. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T005-release-dropdown.md +33 -0
  52. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T006-help-overlay.md +34 -0
  53. package/.savepoint/releases/v1/epics/E05-phase-transitions/Design.md +38 -0
  54. package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T001-phase-stepping.md +29 -0
  55. package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T002-gates.md +31 -0
  56. package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T003-write-task.md +31 -0
  57. package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T004-write-router.md +31 -0
  58. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/Design.md +42 -0
  59. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T001-color-system.md +39 -0
  60. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T002-header-and-dividers.md +52 -0
  61. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T003-footer-status-bar.md +52 -0
  62. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T004-component-refinement.md +53 -0
  63. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T005-restore-nav-hints.md +39 -0
  64. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T007-detail-card-fixes.md +36 -0
  65. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T008-checkbox-states.md +38 -0
  66. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T009-router-priority-marker.md +41 -0
  67. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T010-auto-refresh-watcher.md +61 -0
  68. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/Design.md +39 -0
  69. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T001-archive-epics.md +20 -0
  70. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T002-rewrite-prd.md +22 -0
  71. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T003-create-epic-stubs.md +24 -0
  72. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T004-update-router.md +22 -0
  73. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/Design.md +118 -0
  74. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/handoff.md +9 -0
  75. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T001-package-baseline.md +45 -0
  76. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T002-typescript-build.md +48 -0
  77. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T003-vitest-smoke.md +43 -0
  78. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T004-lint-format-gates.md +45 -0
  79. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T005-scaffold-verification.md +40 -0
  80. package/.savepoint/releases/v1/epics/_archived/E02-data-model/Design.md +142 -0
  81. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T001-domain-ids-status.md +27 -0
  82. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T002-markdown-frontmatter-boundary.md +28 -0
  83. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T003-task-documents.md +29 -0
  84. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T004-release-epic-router-config-readers.md +30 -0
  85. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T005-dependency-validation.md +29 -0
  86. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T006-epic-task-set-reader.md +29 -0
  87. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T007-quality-gates.md +31 -0
  88. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/Design.md +40 -0
  89. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T001-phase-types.md +27 -0
  90. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T002-phase-frontmatter.md +25 -0
  91. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T003-simplify-config.md +26 -0
  92. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T004-simplify-router-domain.md +24 -0
  93. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/Design.md +122 -0
  94. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T001-argument-parser-contract.md +28 -0
  95. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T002-help-text-generation.md +28 -0
  96. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T003-terminal-environment-detection.md +27 -0
  97. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T004-command-stub-modules.md +29 -0
  98. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T005-cli-runner-dispatch.md +34 -0
  99. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T006-entrypoint-quality-gates.md +32 -0
  100. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/Design.md +43 -0
  101. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T001-strip-args.md +26 -0
  102. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T002-strip-help.md +23 -0
  103. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T003-strip-run.md +23 -0
  104. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T004-delete-commands.md +24 -0
  105. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T005-update-cli-tests.md +22 -0
  106. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/Design.md +48 -0
  107. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T001-board-data-phases.md +26 -0
  108. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T002-phase-rendering.md +28 -0
  109. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T003-detail-pane-phases.md +27 -0
  110. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T004-phase-transitions.md +42 -0
  111. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T005-phase-gates.md +24 -0
  112. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T006-phase-write-back.md +24 -0
  113. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T007-remove-audit-flow.md +27 -0
  114. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T008-board-tests.md +25 -0
  115. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/Design.md +85 -0
  116. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T001-project-template-assets.md +17 -0
  117. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T002-release-and-prompt-assets.md +20 -0
  118. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T003-template-registry-renderer.md +22 -0
  119. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T004-template-integrity-tests.md +17 -0
  120. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T005-template-closeout-quality-gates.md +16 -0
  121. package/.savepoint/releases/v1/epics/_archived/E05-init-command/Design.md +88 -0
  122. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T001-init-cli-contract.md +22 -0
  123. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T002-target-validation.md +23 -0
  124. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T003-scaffold-writer.md +24 -0
  125. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T004-magic-prompt-and-clipboard.md +23 -0
  126. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T005-dev-deps-install-option.md +24 -0
  127. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T006-init-command-integration.md +28 -0
  128. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/Design.md +53 -0
  129. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T001-delete-dead-src.md +23 -0
  130. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T002-delete-dead-tests.md +26 -0
  131. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T003-delete-assets.md +25 -0
  132. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T004-clean-savepoint.md +28 -0
  133. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T005-rewrite-agents-md.md +28 -0
  134. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T006-clean-package-json.md +23 -0
  135. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T007-verify.md +25 -0
  136. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/Design.md +104 -0
  137. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T001-board-command-data.md +23 -0
  138. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T002-board-view-state.md +24 -0
  139. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T003-transition-gates-and-writes.md +25 -0
  140. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T004-terminal-theme.md +23 -0
  141. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T005-ink-board-ui.md +26 -0
  142. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T006-board-integration-audit-entry.md +24 -0
  143. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/Design.md +88 -0
  144. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T001-audit-cli-contract.md +23 -0
  145. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T002-quality-gate-runner.md +23 -0
  146. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T003-snapshot-and-prompt.md +23 -0
  147. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T004-audit-orchestration-router.md +27 -0
  148. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T005-proposal-validation-apply.md +25 -0
  149. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T006-audit-review-state.md +24 -0
  150. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T007-audit-review-ui.md +26 -0
  151. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T008-audit-pipeline-integration.md +24 -0
  152. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/Design.md +103 -0
  153. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T001-acceptance-criteria-model.md +30 -0
  154. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T002-release-task-set-reader.md +33 -0
  155. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T003-board-data-and-plain-output.md +34 -0
  156. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T004-board-selection-state.md +33 -0
  157. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T005-ink-board-layout-cleanup.md +37 -0
  158. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T006-task-detail-popup.md +36 -0
  159. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T007-templates-acceptance-criteria.md +34 -0
  160. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T008-board-workflow-integration.md +41 -0
  161. package/.savepoint/releases/v1/epics/_archived/E09-doctor-command/Design.md +70 -0
  162. package/.savepoint/releases/v1/epics/_archived/E10-docs-and-packaging/Design.md +68 -0
  163. package/.savepoint/releases/v1/epics/_archived/E11-release-validation/Design.md +68 -0
  164. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/Design.md +26 -0
  165. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T001-border-resize-fix.md +35 -0
  166. package/.savepoint/router.md +136 -0
  167. package/.savepoint/visual-identity.md +124 -0
  168. package/AGENTS.md +141 -0
  169. package/CLAUDE.md +1 -0
  170. package/GEMINI.md +1 -0
  171. package/LICENSE +21 -0
  172. package/Makefile +13 -0
  173. package/README.md +78 -0
  174. package/agent-skills/ink-tui-design/SKILL.md +309 -0
  175. package/agent-skills/ink-tui-design/references/component-patterns.md +371 -0
  176. package/agent-skills/ink-tui-design/references/hooks-guide.md +436 -0
  177. package/agent-skills/ink-tui-design/references/ink-gotchas.md +330 -0
  178. package/agent-skills/ink-tui-design/references/testing-patterns.md +384 -0
  179. package/agent-skills/savepoint-audit/SKILL.md +35 -0
  180. package/agent-skills/savepoint-build-task/SKILL.md +39 -0
  181. package/agent-skills/savepoint-create-plan/SKILL.md +28 -0
  182. package/agent-skills/savepoint-create-task/SKILL.md +31 -0
  183. package/agent-skills/savepoint-draft-prd/SKILL.md +32 -0
  184. package/agent-skills/savepoint-system-design/SKILL.md +33 -0
  185. package/agent-skills/superpowers/brainstorming/SKILL.md +165 -0
  186. package/agent-skills/superpowers/brainstorming/visual-companion.md +304 -0
  187. package/agent-skills/superpowers/dispatching-parallel-agents/SKILL.md +193 -0
  188. package/agent-skills/superpowers/executing-plans/SKILL.md +77 -0
  189. package/agent-skills/superpowers/finishing-a-development-branch/SKILL.md +213 -0
  190. package/agent-skills/superpowers/receiving-code-review/SKILL.md +226 -0
  191. package/agent-skills/superpowers/requesting-code-review/SKILL.md +115 -0
  192. package/agent-skills/superpowers/requesting-code-review/code-reviewer.md +160 -0
  193. package/agent-skills/superpowers/subagent-driven-development/SKILL.md +292 -0
  194. package/agent-skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +27 -0
  195. package/agent-skills/superpowers/subagent-driven-development/implementer-prompt.md +113 -0
  196. package/agent-skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  197. package/agent-skills/superpowers/systematic-debugging/SKILL.md +305 -0
  198. package/agent-skills/superpowers/systematic-debugging/condition-based-waiting.md +122 -0
  199. package/agent-skills/superpowers/systematic-debugging/defense-in-depth.md +130 -0
  200. package/agent-skills/superpowers/systematic-debugging/root-cause-tracing.md +183 -0
  201. package/agent-skills/superpowers/test-driven-development/SKILL.md +389 -0
  202. package/agent-skills/superpowers/test-driven-development/testing-anti-patterns.md +317 -0
  203. package/agent-skills/superpowers/verification-before-completion/SKILL.md +147 -0
  204. package/agent-skills/superpowers/writing-plans/SKILL.md +159 -0
  205. package/agent-skills/superpowers/writing-plans/plan-document-reviewer-prompt.md +49 -0
  206. package/assets/banner.png +0 -0
  207. package/assets/logo.png +0 -0
  208. package/assets/strawman.png +0 -0
  209. package/go.mod +33 -0
  210. package/go.sum +73 -0
  211. package/ink-cli-ui-design.zip +0 -0
  212. package/internal/board/board.go +121 -0
  213. package/internal/board/board_test.go +99 -0
  214. package/internal/board/card.go +72 -0
  215. package/internal/board/card_test.go +111 -0
  216. package/internal/board/column.go +61 -0
  217. package/internal/board/column_test.go +81 -0
  218. package/internal/board/detail.go +140 -0
  219. package/internal/board/detail_test.go +233 -0
  220. package/internal/board/epic_panel.go +69 -0
  221. package/internal/board/epic_panel_test.go +246 -0
  222. package/internal/board/help.go +40 -0
  223. package/internal/board/help_test.go +85 -0
  224. package/internal/board/layout.go +58 -0
  225. package/internal/board/layout_test.go +89 -0
  226. package/internal/board/model.go +151 -0
  227. package/internal/board/model_test.go +67 -0
  228. package/internal/board/release.go +42 -0
  229. package/internal/board/release_test.go +177 -0
  230. package/internal/board/transitions.go +88 -0
  231. package/internal/board/transitions_test.go +141 -0
  232. package/internal/board/update.go +155 -0
  233. package/internal/board/update_test.go +128 -0
  234. package/internal/board/view.go +190 -0
  235. package/internal/board/view_test.go +147 -0
  236. package/internal/data/config.go +87 -0
  237. package/internal/data/config_test.go +73 -0
  238. package/internal/data/discover.go +152 -0
  239. package/internal/data/discover_test.go +106 -0
  240. package/internal/data/errors.go +9 -0
  241. package/internal/data/lifecycle.go +37 -0
  242. package/internal/data/lifecycle_test.go +38 -0
  243. package/internal/data/parser.go +189 -0
  244. package/internal/data/parser_test.go +216 -0
  245. package/internal/data/router.go +52 -0
  246. package/internal/data/router_test.go +35 -0
  247. package/internal/data/task.go +46 -0
  248. package/internal/data/task_test.go +51 -0
  249. package/internal/data/write.go +144 -0
  250. package/internal/data/write_test.go +456 -0
  251. package/internal/styles/palette.go +47 -0
  252. package/internal/styles/styles.go +122 -0
  253. package/main.exe +0 -0
  254. package/main.go +11 -0
  255. package/package.json +25 -0
  256. package/savepoint +0 -0
  257. package/savepoint.exe +0 -0
  258. package/scripts/vitest-preload.cjs +95 -0
  259. package/templates/project/.savepoint/Design.md +47 -0
  260. package/templates/project/.savepoint/PRD.md +34 -0
  261. package/templates/project/.savepoint/config.yml +27 -0
  262. package/templates/project/.savepoint/router.md +152 -0
  263. package/templates/project/.savepoint/visual-identity.md +122 -0
  264. package/templates/project/AGENTS.md +130 -0
  265. package/templates/prompts/audit-reconciliation.prompt.md +67 -0
  266. package/templates/prompts/design.prompt.md +43 -0
  267. package/templates/prompts/epic-design.prompt.md +43 -0
  268. package/templates/prompts/magic-prompt.prompt.md +7 -0
  269. package/templates/prompts/prd.prompt.md +42 -0
  270. package/templates/prompts/task-breakdown.prompt.md +54 -0
  271. package/templates/prompts/task-building.prompt.md +38 -0
  272. package/templates/prompts/task-planning.prompt.md +53 -0
  273. package/templates/release/v1/PRD.md +37 -0
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: E02-domain-phase-model/T004-simplify-router-domain
3
+ status: planned
4
+ objective: "Collapse router states from 6 to 3 in router.ts"
5
+ depends_on: []
6
+ ---
7
+
8
+ # T004: Simplify Router Domain
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - `router.ts` defines 3 states: `planning`, `building`, `reviewing`.
13
+ - `isRouterStateValue` validates only the 3 states.
14
+ - `validateRouterState` accepts the 3-state model.
15
+ - `RouterState` interface unchanged (still has `state`, `release`, `epic`, `task`, `next_action`).
16
+ - All router tests pass.
17
+
18
+ ## Implementation Plan
19
+
20
+ - [ ] Read existing `router.ts` and `test/domain/router.test.ts`.
21
+ - [ ] Replace `ROUTER_STATES` array with 3 states.
22
+ - [ ] Update `isRouterStateValue` and `validateRouterState`.
23
+ - [ ] Update `test/domain/router.test.ts` with 3-state cases.
24
+ - [ ] Run `npm test`.
@@ -0,0 +1,122 @@
1
+ ---
2
+ type: epic-design
3
+ status: audited
4
+ ---
5
+
6
+ # Epic E03: cli-foundation
7
+
8
+ ## Context Budget
9
+
10
+ For implementation tasks in this epic, read only:
11
+
12
+ - `.savepoint/router.md`
13
+ - this epic `Design.md`
14
+ - the active task file
15
+ - directly touched source/test files
16
+
17
+ Read `.savepoint/Design.md` only if the task changes architecture. Read `.savepoint/releases/v1/PRD.md`, prior epic docs, audit proposals, or `.savepoint/visual-identity.md` only when the active task explicitly requires them.
18
+
19
+ For E03 specifically, do not preload E02 source files, E02 audit proposals, `.savepoint/PRD.md`, or `.savepoint/releases/v1/PRD.md` during implementation. The CLI foundation should use the command contract in this file and the active task as its source of truth.
20
+
21
+ ## Purpose
22
+
23
+ Introduce the real `savepoint` command shell: argument parsing, command dispatch, help/version output, exit codes, and terminal capability detection. This epic wires a command framework around stub command handlers so later epics can fill behavior without changing the CLI contract.
24
+
25
+ ## What this epic adds
26
+
27
+ - Command dispatch for `init`, `board`, `audit`, and `doctor`.
28
+ - Top-level `--help` and `--version`.
29
+ - Command-level help text.
30
+ - Unknown command and unknown flag handling.
31
+ - Exit code conventions.
32
+ - TTY and color capability detection helpers.
33
+ - A testable CLI runner separated from process globals.
34
+
35
+ ## Implementation strategy
36
+
37
+ - Use a small local parser instead of a CLI framework unless implementation proves it would reduce code.
38
+ - Treat the allowed commands as a closed set: `init`, `board`, `audit`, `doctor`.
39
+ - Treat allowed global flags as a closed set: `--help`, `-h`, `--version`, `-v`.
40
+ - Keep command stubs shallow. They should return deterministic "not implemented yet" results and exit codes without reading or writing project files.
41
+ - Keep process globals in `src/cli.ts`; tests should exercise `runCli()` with injected argv, streams, and environment.
42
+
43
+ ## Components and files
44
+
45
+ Expected files introduced or extended by this epic:
46
+
47
+ | Path | Purpose |
48
+ | ------------------------ | --------------------------------------------------- |
49
+ | `src/cli.ts` | Process entrypoint that invokes the CLI runner. |
50
+ | `src/cli/run.ts` | Testable command runner. |
51
+ | `src/cli/args.ts` | Argument parsing and normalization. |
52
+ | `src/cli/help.ts` | Help text generation. |
53
+ | `src/cli/exit-codes.ts` | Shared exit code constants. |
54
+ | `src/cli/environment.ts` | TTY, color, and platform detection. |
55
+ | `src/commands/*.ts` | Stub command modules for the fixed command surface. |
56
+ | `test/cli/**/*.test.ts` | CLI parser and dispatch tests. |
57
+
58
+ ## Architectural delta
59
+
60
+ Before this epic, the binary is a placeholder. After this epic, `savepoint` has a stable command boundary with stubbed behaviors behind it.
61
+
62
+ The command layer should not introduce data-model behavior. Commands that need project data stay as deterministic stubs until a later epic owns the data model.
63
+
64
+ ## Implemented As
65
+
66
+ - `src/cli.ts` now isolates process globals and delegates to `runCli()`.
67
+ - `src/cli/args.ts` implements the closed parser contract for bare invocation, global help/version flags, known commands, unknown top-level commands, and unknown top-level flags.
68
+ - `src/cli/run.ts` wires parser output to help, version output, command-level help, command stubs, and usage errors.
69
+ - `src/cli/help.ts` provides deterministic top-level and command-level help text.
70
+ - `src/cli/environment.ts` provides injectable TTY, color, and platform detection.
71
+ - `src/cli/exit-codes.ts` centralizes success, usage-error, and not-implemented exit codes.
72
+ - `src/commands/init.ts`, `src/commands/board.ts`, `src/commands/audit.ts`, and `src/commands/doctor.ts` return deterministic not-yet-implemented results with no project filesystem side effects.
73
+ - `src/commands/result.ts` was added as the shared command-result type used by the command stubs.
74
+ - Focused tests were added under `test/cli/` for parsing, help text, terminal environment detection, command stubs, and runner dispatch.
75
+ - The audit snapshot was generated manually because `savepoint audit` is still a stub.
76
+ - During audit closeout, command-level unknown flags were fixed to return a usage error instead of dispatching command stubs.
77
+ - The audit workflow was updated for future epics to prefer a single delta-shaped proposal bundle over four separate proposal files.
78
+
79
+ Design delta notes:
80
+
81
+ - The planned `src/commands/*.ts` component was implemented as one module per command plus a small shared `result.ts`.
82
+ - The epic design table originally described command modules as the "five-command surface"; the implemented command surface has four commands plus top-level global help/version flags, matching the rest of the design.
83
+ - Command behavior remains stubbed by design. Later epics own real `init`, `board`, `audit`, and `doctor` behavior.
84
+
85
+ ## Boundaries
86
+
87
+ In scope:
88
+
89
+ - Preserve the exact v1 CLI surface from the project Design.
90
+ - Make bare `savepoint` print help.
91
+ - Make command stubs return clear "not implemented yet" output where necessary.
92
+ - Keep command functions testable without spawning Node processes.
93
+
94
+ Out of scope:
95
+
96
+ - Implementing `init`, `board`, `audit`, or `doctor` behavior.
97
+ - Adding extra commands such as `task new`, `plan`, or `status`.
98
+ - TUI rendering.
99
+ - Project file writes.
100
+
101
+ ## Quality gates
102
+
103
+ - Tests must cover bare invocation, help, version, unknown commands, unknown flags, and each command dispatch path.
104
+ - CLI behavior should be deterministic with injected `argv`, `stdin`, `stdout`, `stderr`, and environment data.
105
+ - Every branch in argument parsing and command dispatch must have a focused test.
106
+ - During individual implementation tasks, run the focused `test/cli/**/*.test.ts` files for touched behavior first. Run the full gate suite at task closeout when practical, and always in the final E03 quality-gates task.
107
+
108
+ ## Design constraints
109
+
110
+ - Keep process I/O at the entrypoint boundary.
111
+ - Avoid a heavy CLI framework unless it materially reduces complexity.
112
+ - Command names are fixed: `init`, `board`, `audit`, `doctor`.
113
+
114
+ ## Close Criteria
115
+
116
+ - All `E03-cli-foundation` tasks are `done`.
117
+ - `npm run build`, `npm run typecheck`, `npm run lint`, `npm run format:check`, and `npm test` pass.
118
+ - CLI branch tests cover bare invocation, help, version, unknown commands, unknown flags, and each command dispatch path.
119
+ - Audit snapshot exists at `.savepoint/audit/E03-cli-foundation/snapshot.md`.
120
+ - Audit proposals are accepted, rejected, or explicitly carried forward.
121
+ - This epic `Design.md` has `status: audited`.
122
+ - Router points to the next epic state.
@@ -0,0 +1,28 @@
1
+ ---
2
+ id: E03-cli-foundation/T001-argument-parser-contract
3
+ status: done
4
+ objective: "Define the closed CLI argument parser and exit-code contract for the v1 command surface."
5
+ depends_on: []
6
+ ---
7
+
8
+ # T001: Argument Parser Contract
9
+
10
+ ## Scope
11
+
12
+ Create the argument parsing foundation for `savepoint` without wiring command behavior yet. This task owns the closed set of global flags, command names, parser result shapes, and shared exit-code constants.
13
+
14
+ ## Implementation Plan
15
+
16
+ - [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched CLI/test files.
17
+ - [x] Add `src/cli/exit-codes.ts` with named exit-code constants for success, usage errors, and not-yet-implemented command stubs.
18
+ - [x] Add `src/cli/args.ts` with typed parser results for bare invocation, global help/version flags, command invocation, unknown commands, and unknown flags.
19
+ - [x] Keep allowed commands closed to `init`, `board`, `audit`, and `doctor`.
20
+ - [x] Treat `--help`, `-h`, `--version`, and `-v` as the only allowed global flags.
21
+ - [x] Add focused parser tests covering bare invocation, each global flag alias, each known command, unknown command, and unknown flag branches.
22
+ - [x] Run the focused parser test file.
23
+
24
+ ## Acceptance Criteria
25
+
26
+ - The parser is deterministic from an injected `argv` array.
27
+ - Unknown commands and unknown flags are represented as typed parser results, not thrown exceptions.
28
+ - Every parser branch introduced by this task has a focused test.
@@ -0,0 +1,28 @@
1
+ ---
2
+ id: E03-cli-foundation/T002-help-text-generation
3
+ status: done
4
+ objective: "Generate deterministic top-level and command-level help text for the fixed v1 CLI surface."
5
+ depends_on:
6
+ - E03-cli-foundation/T001-argument-parser-contract
7
+ ---
8
+
9
+ # T002: Help Text Generation
10
+
11
+ ## Scope
12
+
13
+ Introduce the help-text module used by the runner later. This task does not dispatch commands or touch process streams.
14
+
15
+ ## Implementation Plan
16
+
17
+ - [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched CLI/test files.
18
+ - [x] Add `src/cli/help.ts` with deterministic top-level help output for bare `savepoint` and global `--help`/`-h`.
19
+ - [x] Add command-level help output for `init`, `board`, `audit`, and `doctor`.
20
+ - [x] Keep help content limited to the command contract from the epic Design and avoid promising unimplemented behavior.
21
+ - [x] Add focused help tests for top-level help and each command-level help branch.
22
+ - [x] Run the focused help test file.
23
+
24
+ ## Acceptance Criteria
25
+
26
+ - Help text is generated by pure functions with no process I/O.
27
+ - Top-level help lists only the fixed v1 command and global flag surface.
28
+ - Each supported command has deterministic command-level help text.
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: E03-cli-foundation/T003-terminal-environment-detection
3
+ status: done
4
+ objective: "Provide injectable terminal capability detection for TTY, color, and platform behavior."
5
+ depends_on: []
6
+ ---
7
+
8
+ # T003: Terminal Environment Detection
9
+
10
+ ## Scope
11
+
12
+ Add environment capability helpers that can be used by later CLI and TUI work. This task stays independent from command dispatch and does not read project files.
13
+
14
+ ## Implementation Plan
15
+
16
+ - [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched CLI/test files.
17
+ - [x] Add `src/cli/environment.ts` with typed inputs for stdout/stderr TTY state, environment variables, and platform.
18
+ - [x] Detect whether stdout and stderr are TTY-capable from injected stream-like values.
19
+ - [x] Detect color support from injected environment/platform data using conservative rules for `NO_COLOR`, `FORCE_COLOR`, and common CI/non-TTY cases.
20
+ - [x] Add focused tests for TTY true/false branches, color disabled/enabled branches, and platform passthrough.
21
+ - [x] Run the focused environment test file.
22
+
23
+ ## Acceptance Criteria
24
+
25
+ - Capability detection is deterministic with injected streams, environment, and platform.
26
+ - No helper reads directly from `process`.
27
+ - Branching behavior for TTY and color detection is covered by focused tests.
@@ -0,0 +1,29 @@
1
+ ---
2
+ id: E03-cli-foundation/T004-command-stub-modules
3
+ status: done
4
+ objective: "Create deterministic stub handlers for the fixed command surface without project file side effects."
5
+ depends_on:
6
+ - E03-cli-foundation/T001-argument-parser-contract
7
+ ---
8
+
9
+ # T004: Command Stub Modules
10
+
11
+ ## Scope
12
+
13
+ Create command modules for the v1 surface so dispatch can call stable handler boundaries before the real command behavior exists.
14
+
15
+ ## Implementation Plan
16
+
17
+ - [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched command/test files.
18
+ - [x] Add a small command result type if needed by the stub handlers and runner.
19
+ - [x] Add stub modules under `src/commands/` for `init`, `board`, `audit`, and `doctor`.
20
+ - [x] Make each stub return deterministic "not implemented yet" output and the shared not-implemented exit code.
21
+ - [x] Ensure stubs do not read, write, or discover project files.
22
+ - [x] Add focused tests for each command stub result.
23
+ - [x] Run the focused command-stub test file.
24
+
25
+ ## Acceptance Criteria
26
+
27
+ - Each fixed command has a handler module with a testable function.
28
+ - Stub outputs are clear and deterministic.
29
+ - Command stubs have no project filesystem side effects.
@@ -0,0 +1,34 @@
1
+ ---
2
+ id: E03-cli-foundation/T005-cli-runner-dispatch
3
+ status: done
4
+ objective: "Wire the parser, help text, environment helpers, and command stubs into a testable CLI runner."
5
+ depends_on:
6
+ - E03-cli-foundation/T001-argument-parser-contract
7
+ - E03-cli-foundation/T002-help-text-generation
8
+ - E03-cli-foundation/T003-terminal-environment-detection
9
+ - E03-cli-foundation/T004-command-stub-modules
10
+ ---
11
+
12
+ # T005: CLI Runner Dispatch
13
+
14
+ ## Scope
15
+
16
+ Add the `runCli()` boundary that later command implementations will use. This task owns command dispatch behavior, injected streams/environment, and result-to-output handling, but not the process entrypoint.
17
+
18
+ ## Implementation Plan
19
+
20
+ - [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched CLI/command/test files.
21
+ - [x] Add `src/cli/run.ts` with an injectable runner input for `argv`, `stdin`, `stdout`, `stderr`, environment, and platform data.
22
+ - [x] Route bare invocation and global help flags to top-level help output with a success exit code.
23
+ - [x] Route global version flags to the existing package version source with a success exit code.
24
+ - [x] Route command-level help requests to command help output with a success exit code.
25
+ - [x] Route known commands to their stub handlers.
26
+ - [x] Route unknown commands and unknown flags to stderr with the usage-error exit code.
27
+ - [x] Add focused runner tests for bare invocation, help, version, each command dispatch path, command-level help, unknown command, and unknown flag.
28
+ - [x] Run the focused runner test file.
29
+
30
+ ## Acceptance Criteria
31
+
32
+ - `runCli()` is testable without spawning Node or reading process globals.
33
+ - Output routing between stdout and stderr is deterministic.
34
+ - Every command dispatch branch required by the epic quality gates has focused coverage.
@@ -0,0 +1,32 @@
1
+ ---
2
+ id: E03-cli-foundation/T006-entrypoint-quality-gates
3
+ status: done
4
+ objective: "Connect the process entrypoint to the CLI runner and complete the E03 quality-gate closeout."
5
+ depends_on:
6
+ - E03-cli-foundation/T005-cli-runner-dispatch
7
+ ---
8
+
9
+ # T006: Entrypoint Quality Gates
10
+
11
+ ## Scope
12
+
13
+ Finish the CLI foundation by keeping process globals in `src/cli.ts`, running the required quality gates, and creating the E03 audit snapshot handoff.
14
+
15
+ ## Implementation Plan
16
+
17
+ - [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched entrypoint/test files.
18
+ - [x] Update `src/cli.ts` so process argv, streams, environment, platform, and exit code handling stay at the entrypoint boundary.
19
+ - [x] Add or update entrypoint-level tests only if existing coverage does not prove the process boundary behavior.
20
+ - [x] Run the focused CLI test files for the touched behavior.
21
+ - [x] Run `npm run build`.
22
+ - [x] Run `npm run typecheck`.
23
+ - [x] Run `npm run lint`.
24
+ - [x] Run `npm run format:check`.
25
+ - [x] Run `npm test`.
26
+ - [x] Create `.savepoint/audit/E03-cli-foundation/snapshot.md` with the implemented file list and quality-gate results for audit handoff.
27
+
28
+ ## Acceptance Criteria
29
+
30
+ - Process globals are isolated to `src/cli.ts`.
31
+ - The full E03 quality-gate command list has been run and recorded.
32
+ - The audit snapshot exists for the next `audit-pending` state.
@@ -0,0 +1,43 @@
1
+ ---
2
+ type: epic-design
3
+ status: planned
4
+ ---
5
+
6
+ # Epic E03: CLI Simplify
7
+
8
+ ## Purpose
9
+
10
+ Strip the CLI down to the board command only. Remove init, audit, doctor commands and their supporting infrastructure. Update CLI tests to reflect the board-only interface.
11
+
12
+ ## What this epic adds
13
+
14
+ - Board-only argument parsing (`args.ts`).
15
+ - Board-only help text (`help.ts`).
16
+ - Board-only command dispatch (`run.ts`).
17
+ - Deletion of init, audit, doctor command files and their supporting directories.
18
+
19
+ ## Definition of Done
20
+
21
+ - `savepoint --help` shows only `board` command.
22
+ - `savepoint init/audit/doctor` returns unknown-command error.
23
+ - `savepoint board` still launches from TTY.
24
+ - No dead command code remains in `src/commands/`, `src/init/`, `src/templates/`.
25
+ - All CLI tests pass with board-only interface.
26
+ - Build and typecheck pass.
27
+
28
+ ## Components and files
29
+
30
+ | Path | Purpose |
31
+ |------|---------|
32
+ | `src/cli/args.ts` | Board-only argument parsing |
33
+ | `src/cli/help.ts` | Board-only help text |
34
+ | `src/cli/run.ts` | Board-only command dispatch |
35
+ | `test/cli/args.test.ts` | Updated args tests |
36
+ | `test/cli/help.test.ts` | Updated help tests |
37
+ | `test/cli/run.test.ts` | Updated runner tests |
38
+ | (deleted) `src/commands/init.ts` | Removed |
39
+ | (deleted) `src/commands/audit.ts` | Removed |
40
+ | (deleted) `src/commands/doctor.ts` | Removed |
41
+ | (deleted) `src/commands/result.ts` | Removed |
42
+ | (deleted) `src/init/` | Removed (5 files) |
43
+ | (deleted) `src/templates/` | Removed (5 files) |
@@ -0,0 +1,26 @@
1
+ ---
2
+ id: E03-cli-simplify/T001-strip-args
3
+ status: planned
4
+ objective: "Remove init, audit, doctor from args.ts; keep only board + version + help"
5
+ depends_on: [E02-domain-phase-model/T004-simplify-router-domain]
6
+ ---
7
+
8
+ # T001: Strip Args
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - `args.ts` defines only `board` as an allowed command.
13
+ - `ParseResult` union has no init, audit, or doctor variants.
14
+ - `--version` and `--help` still work.
15
+ - Unknown commands return appropriate error.
16
+ - All args tests pass.
17
+
18
+ ## Implementation Plan
19
+
20
+ - [ ] Read existing `args.ts` and `test/cli/args.test.ts`.
21
+ - [ ] Remove `InitOptions`, `AuditOptions` interfaces.
22
+ - [ ] Remove init/audit parse result variants from `ParseResult`.
23
+ - [ ] Remove `parseInitArgs`, `parseAuditArgs`.
24
+ - [ ] Simplify `parseArgs` to handle only `board`, `--help`, `--version`.
25
+ - [ ] Update `test/cli/args.test.ts`.
26
+ - [ ] Run `npm test`.
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: E03-cli-simplify/T002-strip-help
3
+ status: planned
4
+ objective: "Remove init, audit, doctor help text from help.ts"
5
+ depends_on: [E03-cli-simplify/T001-strip-args]
6
+ ---
7
+
8
+ # T002: Strip Help
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - `help.ts` top-level help shows only `board` command.
13
+ - `commandHelp('board')` returns board-specific help text.
14
+ - No help text for init, audit, or doctor exists.
15
+ - All help tests pass.
16
+
17
+ ## Implementation Plan
18
+
19
+ - [ ] Read existing `help.ts` and `test/cli/help.test.ts`.
20
+ - [ ] Remove init/audit/doctor help text blocks.
21
+ - [ ] Update top-level help to list only `board`.
22
+ - [ ] Update `test/cli/help.test.ts`.
23
+ - [ ] Run `npm test`.
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: E03-cli-simplify/T003-strip-run
3
+ status: planned
4
+ objective: "Remove init, audit, doctor dispatch from run.ts; keep only board"
5
+ depends_on: [E03-cli-simplify/T001-strip-args]
6
+ ---
7
+
8
+ # T003: Strip Run
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - `run.ts` imports only `runBoard` from commands.
13
+ - `runCli` dispatches only `board`, `--version`, and `--help`.
14
+ - No dead imports (init, audit, doctor).
15
+ - All runner tests pass.
16
+
17
+ ## Implementation Plan
18
+
19
+ - [ ] Read existing `run.ts` and `test/cli/run.test.ts`.
20
+ - [ ] Remove imports of `runInit`, `runAudit`, `runDoctor`.
21
+ - [ ] Remove init/audit/doctor dispatch branches.
22
+ - [ ] Update `test/cli/run.test.ts`.
23
+ - [ ] Run `npm test`.
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: E03-cli-simplify/T004-delete-commands
3
+ status: planned
4
+ objective: "Delete dead command files and supporting directories"
5
+ depends_on: [E03-cli-simplify/T003-strip-run]
6
+ ---
7
+
8
+ # T004: Delete Commands
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - `src/commands/init.ts`, `audit.ts`, `doctor.ts`, `result.ts` do not exist.
13
+ - `src/init/` directory does not exist.
14
+ - `src/templates/` directory does not exist.
15
+ - Build still compiles (no broken imports from deleted files).
16
+
17
+ ## Implementation Plan
18
+
19
+ - [ ] Verify no remaining imports reference files to be deleted.
20
+ - [ ] Delete `src/commands/init.ts`, `audit.ts`, `doctor.ts`, `result.ts`.
21
+ - [ ] Delete `src/init/` directory and all files within.
22
+ - [ ] Delete `src/templates/` directory and all files within.
23
+ - [ ] Run `npm run build` to confirm no broken imports.
24
+ - [ ] Run `npm run typecheck`.
@@ -0,0 +1,22 @@
1
+ ---
2
+ id: E03-cli-simplify/T005-update-cli-tests
3
+ status: planned
4
+ objective: "Update CLI tests to reflect board-only interface"
5
+ depends_on: [E03-cli-simplify/T003-strip-run]
6
+ ---
7
+
8
+ # T005: Update CLI Tests
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - All CLI tests pass with board-only interface.
13
+ - No test cases reference init, audit, or doctor commands.
14
+ - `test/cli/`, `test/commands/` contain only board-relevant tests.
15
+ - `npm test` passes.
16
+
17
+ ## Implementation Plan
18
+
19
+ - [ ] Review all files in `test/cli/` and `test/commands/`.
20
+ - [ ] Update or delete tests referencing init/audit/doctor.
21
+ - [ ] Ensure board command tests still cover TTY and non-TTY paths.
22
+ - [ ] Run `npm test`.
@@ -0,0 +1,48 @@
1
+ ---
2
+ type: epic-design
3
+ status: planned
4
+ ---
5
+
6
+ # Epic E04: Board Phase Integration
7
+
8
+ ## Purpose
9
+
10
+ Integrate the phase model into the board TUI. Render phase letters on in_progress tasks, enable phase stepping via keyboard, enforce phase gating, and write phase back to task frontmatter. Remove the audit-review flow entirely.
11
+
12
+ ## What this epic adds
13
+
14
+ - Phase letter rendering (B/T/A) with phase-derived colors on in_progress task cards.
15
+ - Phase stepping: space advances (build→test→audit→done), backspace retreats.
16
+ - Phase gating: cannot advance to done unless phase is audit; cannot skip phases.
17
+ - Phase write-back: `phase` field written alongside `status` in task frontmatter.
18
+ - Complete removal of audit proposal loading, AuditReviewApp, and audit event logging.
19
+
20
+ ## Definition of Done
21
+
22
+ - Board renders phase letters on in_progress task cards with correct colors.
23
+ - Space/backspace walks through phases; done requires audit phase.
24
+ - Detail pane shows current phase and phase-aware transition preview.
25
+ - Task files are updated with `phase` field on transition.
26
+ - No audit-review code remains in `src/tui/audit-review/` or `src/commands/board.ts`.
27
+ - All board tests pass with phase model.
28
+ - Build and typecheck pass.
29
+
30
+ ## Components and files
31
+
32
+ | Path | Purpose |
33
+ |------|---------|
34
+ | `src/tui/board-data.ts` | Phase on BoardTask; remove auditProposalsAvailable |
35
+ | `src/tui/Board.tsx` | Phase letter rendering on task cards |
36
+ | `src/tui/DetailPane.tsx` | Phase display and transition preview |
37
+ | `src/tui/App.tsx` | Phase stepping in input handler; remove audit request |
38
+ | `src/tui/io/gates.ts` | Phase-aware gate enforcement |
39
+ | `src/tui/io/write-status.ts` | Phase write-back to frontmatter |
40
+ | `src/tui/io/write-active-router-epic.ts` | Updated for 3-state router |
41
+ | `src/tui/io/write-active-router-release.ts` | Updated for 3-state router |
42
+ | `src/tui/state/app-reducer.ts` | Remove auditProposalsAvailable from state |
43
+ | `src/commands/board.ts` | Remove audit flow |
44
+ | `test/tui/board-data.test.ts` | Phase data model tests |
45
+ | `test/tui/state/` | Phase-aware state tests |
46
+ | `test/tui/io/` | Phase write and gate tests |
47
+ | `test/commands/board.test.ts` | Updated board command tests |
48
+ | (deleted) `src/tui/audit-review/` | Removed (5 files) |
@@ -0,0 +1,26 @@
1
+ ---
2
+ id: E04-board-phase-integration/T001-board-data-phases
3
+ status: planned
4
+ objective: "Add phase to BoardTask; remove auditProposalsAvailable from board-data.ts"
5
+ depends_on: [E02-domain-phase-model/T002-phase-frontmatter]
6
+ ---
7
+
8
+ # T001: Board Data Phases
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - `BoardTask` interface includes `phase?: TaskPhase`.
13
+ - `buildBoardData` carries phase from task frontmatter to board tasks.
14
+ - `BoardData` interface has no `auditProposalsAvailable` field.
15
+ - `toBoardTask` copies phase from task document.
16
+ - `test/tui/board-data.test.ts` passes with phase data.
17
+
18
+ ## Implementation Plan
19
+
20
+ - [ ] Read `board-data.ts` and `test/tui/board-data.test.ts`.
21
+ - [ ] Add `phase?: TaskPhase` to `BoardTask`.
22
+ - [ ] Remove `auditProposalsAvailable` from `BoardData`.
23
+ - [ ] Update `toBoardTask` to copy phase.
24
+ - [ ] Update `buildBoardData` signature and body.
25
+ - [ ] Update board-data tests.
26
+ - [ ] Run `npm test`.
@@ -0,0 +1,28 @@
1
+ ---
2
+ id: E04-board-phase-integration/T002-phase-rendering
3
+ status: planned
4
+ objective: "Render phase glyphs with phase-derived color on in_progress task cards in Board.tsx"
5
+ depends_on: [E04-board-phase-integration/T001-board-data-phases]
6
+ ---
7
+
8
+ # T002: Phase Rendering
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - In_progress task cards show phase glyphs inline: `▣` (build), `◇` (test), `◆` (audit).
13
+ - Phase glyph uses the accent color mapped by `PHASE_ACCENTS`.
14
+ - Planned and done task cards show no phase glyph.
15
+ - Cards are fixed width, titles are truncated (never wrap), metadata is dimmed.
16
+ - Focused card has accent border (Atari Orange) and slight background tint.
17
+ - Rendering works for 24-bit, 256-color, 16-color, and `NO_COLOR=1` terminals.
18
+ - Board component tests pass.
19
+
20
+ ## Implementation Plan
21
+
22
+ - [ ] Read `Board.tsx` and `test/tui/components/`.
23
+ - [ ] Import `PHASE_ACCENTS` and `TaskPhase` in Board.
24
+ - [ ] Add `PHASE_GLYPHS` map: build→▣, test→◇, audit→◆.
25
+ - [ ] Update `TaskCardComponent` to accept phase and render glyph with phase color.
26
+ - [ ] Apply card styling rules: fixed width, truncate title, dimmed metadata, accent border on focus.
27
+ - [ ] Update component tests.
28
+ - [ ] Run `npm test`.
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: E04-board-phase-integration/T003-detail-pane-phases
3
+ status: planned
4
+ objective: "Render detail pane as centered overlay with board visible behind; add Esc close"
5
+ depends_on: [E04-board-phase-integration/T001-board-data-phases]
6
+ ---
7
+
8
+ # T003: Detail Pane Overlay
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - Detail pane renders as a centered overlay on top of the board.
13
+ - Board remains visible and dimmed behind the overlay.
14
+ - Overlay shows: task ID, title, epic, release, status, current phase, description, acceptance criteria.
15
+ - Pressing `Esc` closes the overlay.
16
+ - Overlay width is calculated from terminal size (max 40 chars, or terminal width - 4).
17
+ - No layout breaks at any terminal width.
18
+
19
+ ## Implementation Plan
20
+
21
+ - [ ] Read `DetailPane.tsx` and `test/tui/components/`.
22
+ - [ ] Convert DetailPane from replacing board to overlay mode.
23
+ - [ ] Add board dimming behind overlay (reduce opacity or dark tint).
24
+ - [ ] Add `Esc` handler in `App.tsx` to close overlay.
25
+ - [ ] Calculate overlay width from `useWindowSize`.
26
+ - [ ] Update component tests.
27
+ - [ ] Run `npm test`.