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,123 @@
1
+ # Audit Proposals: E02-data-readers
2
+
3
+ ## Target File
4
+
5
+ `.savepoint/Design.md`
6
+
7
+ ## Replace
8
+
9
+ ```md
10
+ - **Template asset boundary:** established in epic `E04-templates-and-prompts` (2026-04-27). Project scaffolding and workflow prompts now live as versioned markdown/YAML assets under `templates/`, with small TypeScript helpers in `src/templates/` for manifest lookup, path resolution, loading, and interpolation.
11
+ ```
12
+
13
+ ## With
14
+
15
+ ```md
16
+ - **Go data-reader boundary:** established in epic `E02-data-readers` (2026-05-01). `internal/data` owns Savepoint file parsing and discovery for the Go implementation: task frontmatter models, markdown YAML extraction, router state parsing, config theme defaults, and release/epic/task directory listing.
17
+ - **Template asset boundary:** established in epic `E04-templates-and-prompts` (2026-04-27). Project scaffolding and workflow prompts now live as versioned markdown/YAML assets under `templates/`, with small TypeScript helpers in `src/templates/` for manifest lookup, path resolution, loading, and interpolation.
18
+ ```
19
+
20
+ ## Target File
21
+
22
+ `.savepoint/Design.md`
23
+
24
+ ## Replace
25
+
26
+ ```md
27
+ ## 12. Distribution & build
28
+ ```
29
+
30
+ ## With
31
+
32
+ ```md
33
+ ## 12. Distribution & build
34
+
35
+ > Audit note: the live repository is transitioning from the documented TypeScript/Node implementation to a Go module (`github.com/opencode/savepoint`). The architecture document still contains substantial TypeScript-era implementation detail and should be reconciled as Go epics are audited.
36
+ ```
37
+
38
+ ## Target File
39
+
40
+ `AGENTS.md`
41
+
42
+ ## Replace
43
+
44
+ ```md
45
+ | `src/domain/config.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Config defaults and typed project config model |
46
+ | `src/domain/epic.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Epic Design frontmatter model and validation |
47
+ | `src/domain/ids.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Release, epic, and task ID parsing and formatting |
48
+ | `src/domain/release.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Release PRD frontmatter model and validation |
49
+ | `src/domain/router.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Router state values and validation |
50
+ | `src/domain/status.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Task status values and transition validation |
51
+ | `src/domain/task.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Task frontmatter/document model and validation |
52
+ | `src/fs/markdown.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Markdown/frontmatter reader with path-aware boundary errors |
53
+ | `src/fs/project.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Project root discovery and scoped `.savepoint` path helpers |
54
+ | `src/readers/config.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Read-only `config.yml` reader with defaults |
55
+ | `src/readers/epic.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Read-only epic Design reader |
56
+ | `src/readers/release.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Read-only release PRD reader |
57
+ | `src/readers/router.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Read-only router Current state reader |
58
+ | `src/readers/tasks.ts` | [E02-data-model](.savepoint/releases/v1/epics/E02-data-model/Design.md) | Epic task-set reader with graph validation |
59
+ ```
60
+
61
+ ## With
62
+
63
+ ```md
64
+ | `internal/data/task.go` | [E02-data-readers](.savepoint/releases/v1/epics/E02-data-readers/Design.md) | Task, column, progress stage, dependency, and metadata structs for Go data readers |
65
+ | `internal/data/parser.go` | [E02-data-readers](.savepoint/releases/v1/epics/E02-data-readers/Design.md) | Markdown YAML frontmatter extraction and task frontmatter parsing |
66
+ | `internal/data/router.go` | [E02-data-readers](.savepoint/releases/v1/epics/E02-data-readers/Design.md) | Router current-state YAML block extraction and parsing |
67
+ | `internal/data/config.go` | [E02-data-readers](.savepoint/releases/v1/epics/E02-data-readers/Design.md) | Savepoint config/theme parsing with default theme fallback |
68
+ | `internal/data/discover.go` | [E02-data-readers](.savepoint/releases/v1/epics/E02-data-readers/Design.md) | `.savepoint` root discovery and release, epic, and task directory listing |
69
+ ```
70
+
71
+ ## Target File
72
+
73
+ `.savepoint/releases/v1/epics/E02-data-readers/Design.md`
74
+
75
+ ## Insert After
76
+
77
+ ```md
78
+ ## Components and files
79
+ ```
80
+
81
+ ## With
82
+
83
+ ```md
84
+ ## Implemented As
85
+
86
+ - `internal/data/task.go` defines task metadata, column, progress stage, dependency, and progress structs.
87
+ - `internal/data/parser.go` extracts YAML frontmatter from markdown and currently maps the task ID and objective into `Task`.
88
+ - `internal/data/router.go` extracts and parses the `## Current state` fenced YAML block from `router.md`.
89
+ - `internal/data/config.go` reads `config.yml` theme values and falls back to a default theme when the config is missing.
90
+ - `internal/data/discover.go` finds the `.savepoint` root and lists release, epic, and task directories in stable order.
91
+
92
+ ## Deltas From Plan
93
+
94
+ - The planned `internal/data/errors.go` was not created; errors currently use formatted `error` values.
95
+ - `ParseTaskFile` does not yet populate `Column`, `Stage`, `DependsOn`, `Priority`, `Points`, `Tags`, `Acceptance`, or `Notes` from YAML frontmatter.
96
+ - The parser uses a regular expression rather than a line-based frontmatter scanner.
97
+ - Config malformed YAML currently falls back to defaults instead of surfacing a parse error.
98
+ ```
99
+
100
+ ## Quality Review
101
+
102
+ ## Must Fix Before Close
103
+
104
+ All close blockers resolved in audit closeout.
105
+
106
+ ## Must Fix Before Next Epic
107
+
108
+ All next-epic blockers resolved in audit closeout.
109
+
110
+ ## Carry Forward
111
+
112
+ - `.savepoint/Design.md` and `AGENTS.md` still mostly describe the previous TypeScript implementation. The Go architecture should be reconciled incrementally as each Go epic is audited.
113
+
114
+ ## Already Fixed
115
+
116
+ - `go test ./internal/data/...` passed during audit.
117
+ - `go test ./...` passed during audit.
118
+ - `ParseTaskFile` now maps task frontmatter fields including `status`, `phase`, `depends_on`, priority, points, tags, acceptance, notes, release, epic, and progress.
119
+ - `ConfigReader.Read` now returns defaults only for missing config files and returns malformed YAML/read errors.
120
+ - Discovery tests now use temporary fixtures instead of the live repository tree.
121
+ - Parser tests now assert task metadata mapping and malformed YAML behavior.
122
+ - `internal/data/errors.go` now provides data-reader boundary error sentinels.
123
+ - E02 task files now include context logs.
@@ -0,0 +1,54 @@
1
+ ---
2
+ type: audit-snapshot
3
+ epic: E02-data-readers
4
+ created: 2026-05-01
5
+ mode: manual
6
+ ---
7
+
8
+ # Audit Snapshot: E02-data-readers
9
+
10
+ Manual snapshot created because `.savepoint/audit/E02-data-readers/snapshot.md` was missing while the router was already in `audit-pending`.
11
+
12
+ ## Router State
13
+
14
+ ```yaml
15
+ state: audit-pending
16
+ release: v1
17
+ epic: E02-data-readers
18
+ task: ~
19
+ next_action: "Audit E02-data-readers: all 5 tasks done. Start fresh session for audit."
20
+ ```
21
+
22
+ ## Epic Scope
23
+
24
+ - `.savepoint/releases/v1/epics/E02-data-readers/Design.md`
25
+ - `.savepoint/releases/v1/epics/E02-data-readers/tasks/T001-task-struct.md`
26
+ - `.savepoint/releases/v1/epics/E02-data-readers/tasks/T002-frontmatter-parser.md`
27
+ - `.savepoint/releases/v1/epics/E02-data-readers/tasks/T003-router-reader.md`
28
+ - `.savepoint/releases/v1/epics/E02-data-readers/tasks/T004-config-reader.md`
29
+ - `.savepoint/releases/v1/epics/E02-data-readers/tasks/T005-discovery.md`
30
+
31
+ ## Changed Files In Scope
32
+
33
+ - `internal/data/task.go`
34
+ - `internal/data/parser.go`
35
+ - `internal/data/router.go`
36
+ - `internal/data/config.go`
37
+ - `internal/data/discover.go`
38
+ - `internal/data/task_test.go`
39
+ - `internal/data/parser_test.go`
40
+ - `internal/data/router_test.go`
41
+ - `internal/data/config_test.go`
42
+ - `internal/data/discover_test.go`
43
+ - `go.mod`
44
+ - `go.sum`
45
+
46
+ ## Verification Observed During Audit
47
+
48
+ - `go test ./internal/data/...` passed.
49
+ - `go test ./...` passed.
50
+
51
+ ## Notes
52
+
53
+ - The repository is in a broad TypeScript-to-Go transition. Many tracked TypeScript files are deleted or replaced, but this snapshot is intentionally scoped to the E02 data-reader epic.
54
+ - Task context logs are mostly absent except `T005-discovery.md`; this is audit process drift, not a source-code blocker.
@@ -0,0 +1,146 @@
1
+ # Audit Proposals — E03-board-tui-core
2
+
3
+ ## Target File
4
+
5
+ `.savepoint/Design.md`
6
+
7
+ ## Replace
8
+
9
+ ```md
10
+ ## 8. TUI
11
+
12
+ **Theming:** Atari-Noir is the default theme. **For full design tokens, palette, and rendering rules, see `.savepoint/visual-identity.md`** (loaded conditionally for TUI tasks). Live values in `config.yml` `theme:` section.
13
+
14
+ Acknowledged terminal limits: fonts, scanlines, glows, letter-spacing, mouse-driven motion don't translate. Lean on color discipline + box-drawing geometry + uppercase headings.
15
+
16
+ **Render fallbacks:** 256-color → 16-color hard-coded → `NO_COLOR=1` monochrome with glyphs → non-TTY plain table.
17
+
18
+ **Layout:** single screen with a 5-column Kanban board and detail pane. Non-TTY output uses `src/tui/render/plain-table.ts`.
19
+
20
+ **Implementation modules:** see AGENTS.md Codebase Map (E06 and E07 epic rows).
21
+
22
+ **Keybindings:** arrow/vim navigation, enter advances, backspace retreats, r/R refreshes, a/A exits toward audit review when proposals exist, q quits.
23
+ ```
24
+
25
+ ## With
26
+
27
+ ```md
28
+ ## 8. TUI
29
+
30
+ **Theming:** Atari-Noir is the default theme. **For full design tokens, palette, and rendering rules, see `.savepoint/visual-identity.md`** (loaded conditionally for TUI tasks). Live values in `config.yml` `theme:` section.
31
+
32
+ Acknowledged terminal limits: fonts, scanlines, glows, letter-spacing, mouse-driven motion don't translate. Lean on color discipline + box-drawing geometry + uppercase headings.
33
+
34
+ **Go board core:** established in epic `E03-board-tui-core` (2026-05-01). `internal/board` owns the Bubble Tea model, update loop, responsive layout calculation, and Lip Gloss view composition. `internal/styles` owns the Atari-Noir terminal palette and reusable Lip Gloss styles with truecolor, 256-color, and 16-color fallbacks.
35
+
36
+ **Layout:** the Go board core currently renders a responsive 3-column grid. At `>=120` columns it includes a 28-cell epic panel plus 3 task columns; at `80-119` columns it renders 3 task columns; below `80` columns it renders only the focused column and supports left/right or h/l column switching.
37
+
38
+ **Render fallbacks:** truecolor → 256-color → 16-color are encoded in Go styles. A future non-TTY/plain renderer remains outside this epic.
39
+
40
+ **Implementation modules:** see AGENTS.md Codebase Map.
41
+
42
+ **Keybindings:** `q` and `ctrl+c` quit. Left/right arrows and h/l move the focused column in narrow layouts.
43
+ ```
44
+
45
+ ## Target File
46
+
47
+ `AGENTS.md`
48
+
49
+ ## Insert After
50
+
51
+ ```md
52
+ | `internal/data/errors.go` | [E02-data-readers](.savepoint/releases/v1/epics/E02-data-readers/Design.md) | Shared data-reader boundary error sentinels |
53
+ ```
54
+
55
+ ## With
56
+
57
+ ```md
58
+ | `internal/board/board.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Bubble Tea board entrypoint and program launch |
59
+ | `internal/board/model.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Board model state, constructor, task grouping, and initialization |
60
+ | `internal/board/update.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Board key handling, quit behavior, column focus navigation, and terminal resize updates |
61
+ | `internal/board/view.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Lip Gloss view composition for header, responsive board columns, epic panel, tasks, and status bar |
62
+ | `internal/board/layout.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Responsive board breakpoint and column width calculations |
63
+ | `internal/styles/palette.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Atari-Noir terminal color constants and 256-color/16-color fallbacks |
64
+ | `internal/styles/styles.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Reusable Lip Gloss styles for board chrome, focused state, task rows, status, tags, and epic panel |
65
+ | `internal/board/*_test.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Unit tests for board model, update loop, layout breakpoints, and rendered output |
66
+ ```
67
+
68
+ ## Target File
69
+
70
+ `.savepoint/releases/v1/epics/E03-board-tui-core/Design.md`
71
+
72
+ ## Replace
73
+
74
+ ```md
75
+ type: epic-design
76
+ status: planned
77
+ ```
78
+
79
+ ## With
80
+
81
+ ```md
82
+ type: epic-design
83
+ status: implemented
84
+ ```
85
+
86
+ ## Target File
87
+
88
+ `.savepoint/releases/v1/epics/E03-board-tui-core/Design.md`
89
+
90
+ ## Insert After
91
+
92
+ ```md
93
+ ## Components and files
94
+
95
+ | Path | Purpose |
96
+ |------|---------|
97
+ | `internal/board/model.go` | Model struct and Init |
98
+ | `internal/board/update.go` | Update loop, message handling |
99
+ | `internal/board/view.go` | View composition |
100
+ | `internal/styles/palette.go` | Atari-Noir hex colors |
101
+ | `internal/styles/styles.go` | Lip Gloss style definitions |
102
+ | `internal/board/layout.go` | Width/height calculations |
103
+ ```
104
+
105
+ ## With
106
+
107
+ ```md
108
+
109
+ ## Implemented as
110
+
111
+ - `internal/board/model.go` defines exported board state, groups tasks by `data.ColumnType`, defaults empty task columns to `planned`, and initializes with no startup command.
112
+ - `internal/board/update.go` handles `q`, `ctrl+c`, terminal resize messages, and left/right or h/l focused-column navigation.
113
+ - `internal/board/layout.go` implements the requested 120/80 column breakpoints and returns explicit layout metadata for view rendering.
114
+ - `internal/board/view.go` composes the header, responsive task columns, optional epic panel, and status bar using Lip Gloss.
115
+ - `internal/styles/palette.go` and `internal/styles/styles.go` define Atari-Noir truecolor values plus 256-color and 16-color fallbacks.
116
+
117
+ ## Audit deltas
118
+
119
+ - The implemented board core is wired into `internal/board/board.go`; `Run()` now launches the exported board model rather than the pre-epic placeholder screen.
120
+ - The layout currently uses rounded borders, while the visual identity prefers single-line quiet borders by default. This is acceptable if intentional, but should be normalized before the visual system hardens.
121
+ - Layout width coverage now lives on `CalculateLayout`; the dead `columnContentWidth()` helper was removed.
122
+ ```
123
+
124
+ ## Quality Review
125
+
126
+ ## Must Fix Before Close
127
+
128
+ None.
129
+
130
+ ## Must Fix Before Next Epic
131
+
132
+ - `internal/board/layout.go:28` accepts height but ignores it. The epic originally calls for width/height calculations and no layout break at any width. Either incorporate height into visible task capacity or narrow the documented contract before components depend on it.
133
+ - `internal/board/view.go:65` renders task labels without truncation or width-aware clipping. Long IDs/titles can wrap and break the grid, conflicting with the visual guardrail that accidental wrapping is a bug.
134
+
135
+ ## Carry Forward
136
+
137
+ - `internal/styles/styles.go` uses rounded borders for columns and the epic panel. The visual identity says single-line borders are the default and rounded borders are not called out as a signature style; decide whether rounded borders are an intentional product choice in E04.
138
+ - The Go implementation has replaced the older TypeScript architecture in active epics. Continue reconciling `.savepoint/Design.md` and AGENTS.md away from stale `src/` rows as each Go epic audits.
139
+
140
+ ## Already Fixed
141
+
142
+ - Board state, resize handling, responsive breakpoints, Atari-Noir palette constants, color fallbacks, focused-column rendering, and focused-column navigation have focused tests.
143
+ - `internal/board/board.go` now launches `newProgramModel()`, which returns the exported `Model` created by `NewModel(...)`; the private placeholder model was removed.
144
+ - `internal/board/board_test.go` verifies the program model renders board columns and does not render the old welcome screen.
145
+ - The dead `columnContentWidth()` helper and its stale tests were removed; layout width coverage remains in `internal/board/layout_test.go`.
146
+ - `go test ./...` and `go build ./...` passed during audit.
@@ -0,0 +1,57 @@
1
+ ---
2
+ type: audit-snapshot
3
+ epic: E03-board-tui-core
4
+ release: v1
5
+ created: 2026-05-01
6
+ mode: manual
7
+ ---
8
+
9
+ # Audit Snapshot — E03-board-tui-core
10
+
11
+ Manual snapshot created because `.savepoint/audit/E03-board-tui-core/snapshot.md` was missing while the audit CLI is unavailable.
12
+
13
+ ## Router State
14
+
15
+ ```yaml
16
+ state: audit-pending
17
+ release: v1
18
+ epic: E03-board-tui-core
19
+ task: E03-board-tui-core/T005-layout
20
+ next_action: "E03-board-tui-core complete. Start a new agent session for the audit."
21
+ ```
22
+
23
+ ## Epic Scope
24
+
25
+ - `.savepoint/releases/v1/epics/E03-board-tui-core/Design.md`
26
+ - `.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T001-model.md`
27
+ - `.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T002-update-loop.md`
28
+ - `.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T003-view.md`
29
+ - `.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T004-styles.md`
30
+ - `.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T005-layout.md`
31
+
32
+ ## Changed Files In Scope
33
+
34
+ - `main.go`
35
+ - `go.mod`
36
+ - `internal/board/board.go`
37
+ - `internal/board/model.go`
38
+ - `internal/board/update.go`
39
+ - `internal/board/view.go`
40
+ - `internal/board/layout.go`
41
+ - `internal/board/model_test.go`
42
+ - `internal/board/update_test.go`
43
+ - `internal/board/view_test.go`
44
+ - `internal/board/layout_test.go`
45
+ - `internal/styles/palette.go`
46
+ - `internal/styles/styles.go`
47
+
48
+ ## Verification Observed During Audit
49
+
50
+ - `go test ./...` passed.
51
+ - `go build ./...` passed.
52
+ - Closeout fix verification: `go test ./internal/board`, `go test ./...`, and `go build ./...` passed after wiring the runtime model and removing dead layout code.
53
+
54
+ ## Notes
55
+
56
+ - Repository contains a broad TypeScript-to-Go transition and many unrelated working-tree changes. This snapshot is intentionally limited to the E03 Board TUI Core scope declared by the epic design and task files.
57
+ - Closeout fix: `internal/board/board.go` now launches the exported `Model` implemented by this epic.
@@ -0,0 +1,106 @@
1
+ ---
2
+ type: audit-snapshot
3
+ epic: E03-cli-foundation
4
+ created: 2026-04-27
5
+ manual: true
6
+ ---
7
+
8
+ # Audit Snapshot: E03-cli-foundation
9
+
10
+ Manual snapshot generated because `savepoint audit` is not implemented yet.
11
+
12
+ ## Source file tree
13
+
14
+ ```
15
+ src/
16
+ cli.ts - process entrypoint; delegates to runCli() with process globals
17
+ cli/
18
+ args.ts - argument parsing and normalization
19
+ environment.ts - TTY, color, and platform detection
20
+ exit-codes.ts - shared exit code constants
21
+ help.ts - help text generation (top-level and per-command)
22
+ run.ts - testable CLI runner with injectable argv/streams/env
23
+ commands/
24
+ audit.ts - stub: savepoint audit
25
+ board.ts - stub: savepoint board
26
+ doctor.ts - stub: savepoint doctor
27
+ init.ts - stub: savepoint init
28
+ test/
29
+ cli/
30
+ args.test.ts - parser unit tests
31
+ commands.test.ts - command stub dispatch tests
32
+ environment.test.ts - TTY/color detection tests
33
+ help.test.ts - help text generation tests
34
+ run.test.ts - full runner dispatch tests (35 tests)
35
+ ```
36
+
37
+ ## Config / metadata changes
38
+
39
+ | Path | Purpose |
40
+ | --------------------------------------- | --------------------------------------------------------------------------------------------- |
41
+ | `.savepoint/router.md` | Router state still pointed at T001; E03 tasks were completed without router updates per task. |
42
+ | `E03-cli-foundation/tasks/T001-T006.md` | Six planned and completed E03 task files. |
43
+
44
+ ## New files introduced by E03
45
+
46
+ - `src/cli/args.ts`
47
+ - `src/cli/environment.ts`
48
+ - `src/cli/exit-codes.ts`
49
+ - `src/cli/help.ts`
50
+ - `src/cli/run.ts`
51
+ - `src/commands/audit.ts`
52
+ - `src/commands/board.ts`
53
+ - `src/commands/doctor.ts`
54
+ - `src/commands/init.ts`
55
+ - `src/commands/result.ts`
56
+ - `test/cli/args.test.ts`
57
+ - `test/cli/commands.test.ts`
58
+ - `test/cli/environment.test.ts`
59
+ - `test/cli/help.test.ts`
60
+ - `test/cli/run.test.ts`
61
+
62
+ ## Modified files
63
+
64
+ - `src/cli.ts` — replaced old placeholder with `runCli()` delegation; process globals isolated here.
65
+ - `src/cli/run.ts` — command-level unknown flags now return usage errors.
66
+ - `src/commands/audit.ts` — prettier formatting applied.
67
+ - `src/commands/board.ts` — prettier formatting applied.
68
+ - `src/commands/doctor.ts` — prettier formatting applied.
69
+ - `src/commands/init.ts` — prettier formatting applied.
70
+ - `test/cli/environment.test.ts` — prettier formatting applied.
71
+ - `test/cli/run.test.ts` — prettier formatting applied.
72
+
73
+ ## Quality gates
74
+
75
+ - `npm run build` passed. Output: `dist/cli.js` 4.83 KB.
76
+ - `npm run typecheck` passed.
77
+ - `npm run lint` passed.
78
+ - `npm run format:check` initially failed on 6 pre-existing files (commands and CLI tests); fixed with `prettier --write`, then passed.
79
+ - During audit closeout, `npm.cmd test -- test/cli/run.test.ts` initially failed in the sandbox with esbuild `spawn EPERM`; rerunning outside the sandbox passed.
80
+ - `npm test` passed: 21 test files, 259 tests (0 failures).
81
+
82
+ ## Coverage summary
83
+
84
+ | Branch | Test file | Tests |
85
+ | ------------------------- | ------------------- | ----- |
86
+ | Bare invocation | run.test.ts | 3 |
87
+ | Global help flags | run.test.ts | 4 |
88
+ | Version flags | run.test.ts | 4 |
89
+ | Command dispatch (4 cmds) | run.test.ts | 8 |
90
+ | Command-level help | run.test.ts | 7 |
91
+ | Unknown command | run.test.ts | 3 |
92
+ | Unknown flag | run.test.ts | 6 |
93
+ | Argument parsing | args.test.ts | 12 |
94
+ | Help text | help.test.ts | 13 |
95
+ | Environment detection | environment.test.ts | 15 |
96
+ | Command stubs | commands.test.ts | 8 |
97
+
98
+ ## Deviations from epic Design
99
+
100
+ | Item | Status | Note |
101
+ | ------------------------- | ------ | ---------------------------------------------------------------------------------------------------- |
102
+ | Audit snapshot | manual | Generated by the agent because the audit CLI does not exist yet. |
103
+ | Router state | manual | Router still shows T001 as active; router was not updated per-task during E03 implementation. |
104
+ | Prettier failures at gate | fixed | 6 command/test files had formatting issues at T006; fixed before gate closeout. |
105
+ | `src/cli.ts` entrypoint | done | Updated from placeholder to `runCli()` delegation with all process globals isolated at the boundary. |
106
+ | Command-level flags | fixed | Unknown command-level flags now return usage errors instead of dispatching command stubs. |
@@ -0,0 +1,118 @@
1
+ ## Target File
2
+
3
+ `.savepoint/Design.md`
4
+
5
+ ## Replace
6
+
7
+ ```md
8
+ **Layout:** single screen with a 5-column Kanban board and detail pane. Non-TTY output uses `src/tui/render/plain-table.ts`.
9
+
10
+ **Implementation modules:** see AGENTS.md Codebase Map (E06 and E07 epic rows).
11
+
12
+ **Keybindings:** arrow/vim navigation, enter advances, backspace retreats, r/R refreshes, a/A exits toward audit review when proposals exist, q quits.
13
+ ```
14
+
15
+ ## With
16
+
17
+ ```md
18
+ **Layout:** Go Bubble Tea board with responsive columns: wide terminals (`>=120` cols) show an epic sidebar plus planned / in-progress / done columns; medium terminals show three columns; narrow terminals show the focused column only.
19
+
20
+ **Board components:** E04 adds Lip Gloss renderers for columns, task cards, epic sidebar/dropdown, release dropdown, task detail overlay, and help overlay. Selector, detail, and help overlays dim the current board and composite a centered panel over it.
21
+
22
+ **Implementation modules:** see AGENTS.md Codebase Map (`internal/board/*`, `internal/styles/*`, and `internal/data/*` rows).
23
+
24
+ **Keybindings:** h/left and l/right move columns; enter opens task detail or selects an overlay item; e opens the epic selector on narrow screens; r opens the release selector; ? opens help; esc/q close overlays; q/ctrl+c quit from the base board.
25
+ ```
26
+
27
+ ## Target File
28
+
29
+ `AGENTS.md`
30
+
31
+ ## Insert After
32
+
33
+ ```md
34
+ | `internal/data/errors.go` | [E02-data-readers](.savepoint/releases/v1/epics/E02-data-readers/Design.md) | Shared data-reader boundary error sentinels |
35
+ ```
36
+
37
+ ## With
38
+
39
+ ```md
40
+ | `internal/board/model.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Bubble Tea board state for grouped tasks, focused column/task, selected release/epic, responsive size, and active overlay |
41
+ | `internal/board/update.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Keyboard and window-size update handling for board navigation, overlays, selectors, and quit behavior |
42
+ | `internal/board/layout.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Responsive board geometry breakpoints and column/sidebar width calculation |
43
+ | `internal/board/view.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Board view composition, status bar, responsive columns, and overlay placement helpers |
44
+ | `internal/board/column.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Column renderer with status header, task count, empty state, and focused border styling |
45
+ | `internal/board/card.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Task card renderer with phase glyphs, metadata dimming, truncation, and focus styling |
46
+ | `internal/board/epic_panel.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Wide epic sidebar and narrow epic selector dropdown renderers |
47
+ | `internal/board/detail.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Task detail overlay renderer with task metadata, description, acceptance criteria, and phase labels |
48
+ | `internal/board/release.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Release selector dropdown renderer and current-release cursor lookup |
49
+ | `internal/board/help.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Keyboard shortcut help overlay renderer |
50
+ | `internal/styles/*.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Atari-Noir Lip Gloss palette and shared board, card, overlay, glyph, status, and tag styles |
51
+ | `internal/board/*_test.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) / [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Go board model, layout, update, view, component, selector, detail, and help tests |
52
+ ```
53
+
54
+ ## Target File
55
+
56
+ `.savepoint/releases/v1/epics/E04-board-components/Design.md`
57
+
58
+ ## Insert After
59
+
60
+ ```md
61
+ ## Definition of Done
62
+
63
+ - Cards render with correct phase glyphs and colors.
64
+ - Focused card has orange accent border.
65
+ - Epic panel renders on wide screens; dropdown on narrow.
66
+ - Detail overlay opens with Enter, closes with Esc.
67
+ - Epic dropdown opens with `e`, release with `r`.
68
+ - Help overlay opens with `?`.
69
+ - All components render without wrapping or layout breaks.
70
+ - Component tests pass.
71
+ ```
72
+
73
+ ## With
74
+
75
+ ```md
76
+ ## Implemented As
77
+
78
+ - `internal/board/column.go` renders status columns with uppercase label, task count, empty state, focused border, and task cards.
79
+ - `internal/board/card.go` renders standalone task cards with build/test/audit glyphs, dim metadata, truncation, and focused styling.
80
+ - `internal/board/epic_panel.go` renders the wide epic sidebar and narrow epic dropdown; `e` opens the dropdown only below the wide breakpoint.
81
+ - `internal/board/release.go` renders the release dropdown; `r` opens it at all widths.
82
+ - `internal/board/detail.go` renders task detail panels with wrapped long text; `internal/board/view.go` dims the board and composites selector/detail/help overlays over the base board.
83
+ - `internal/board/help.go` renders the keyboard shortcut overlay.
84
+ - `internal/styles/styles.go` and `internal/styles/palette.go` add shared Lip Gloss styles for cards, overlays, metadata, glyphs, and dim text.
85
+
86
+ ## Audit Deltas
87
+
88
+ - Planned `internal/board/dropdown.go` was not created; epic and release dropdowns are separate renderers.
89
+ - Task cards are integrated into column rendering; board columns now display card borders and phase glyphs.
90
+ - Selecting an epic or release updates `SelectedEpic` / `SelectedRelease` and regroups visible board tasks from `Model.AllTasks`.
91
+ - Selector/detail/help overlays keep the dimmed board visible behind the panel.
92
+ - Base board up/down navigation moves the focused task within the focused column.
93
+ ```
94
+
95
+ ## Quality Review
96
+
97
+ ## Must Fix Before Close
98
+
99
+ No open findings.
100
+
101
+ ## Must Fix Before Next Epic
102
+
103
+ No open findings.
104
+
105
+ ## Carry Forward
106
+
107
+ - The current project architecture and Codebase Map still contain substantial TypeScript-era rows. This proposal adds E04 Go rows as a delta, but a later audit should reconcile the stale TypeScript implementation sections once the Go transition is complete.
108
+
109
+ ## Already Fixed
110
+
111
+ - Board columns render `RenderCard`, so phase glyphs, card borders, truncation, and focused card styling are visible in the actual board.
112
+ - Epic and release selections regroup visible tasks from `Model.AllTasks`.
113
+ - Epic and release dropdowns use the same dimmed-base overlay composition as detail/help.
114
+ - Base board up/down navigation moves `FocusedTask` and clamps at column bounds.
115
+ - Detail rows, descriptions, and acceptance criteria wrap long text within overlay width.
116
+ - Focused tests passed during audit: `go test ./internal/board/...`.
117
+ - Full Go suite passed during audit: `go test ./...`.
118
+ - Help and detail overlays use the dimmed-base compositing path and close on `esc` / `q`.