savepoint 1.0.4 → 1.0.7

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 (425) hide show
  1. package/package.json +11 -4
  2. package/savepoint.exe +0 -0
  3. package/.claude/settings.local.json +0 -38
  4. package/.github/workflows/ci.yml +0 -20
  5. package/.golangci.yml +0 -11
  6. package/.prettierignore +0 -4
  7. package/.savepoint/Design.md +0 -207
  8. package/.savepoint/PRD.md +0 -58
  9. package/.savepoint/config.yml +0 -27
  10. package/.savepoint/releases/v1/epics/E01-go-setup/E01-Detail.md +0 -39
  11. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T001-init-module.md +0 -42
  12. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T002-entrypoint.md +0 -23
  13. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T003-directory-structure.md +0 -24
  14. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T004-makefile.md +0 -23
  15. package/.savepoint/releases/v1/epics/E02-data-readers/E02-Detail.md +0 -61
  16. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T001-task-struct.md +0 -29
  17. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T002-frontmatter-parser.md +0 -30
  18. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T003-router-reader.md +0 -29
  19. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T004-config-reader.md +0 -29
  20. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T005-discovery.md +0 -30
  21. package/.savepoint/releases/v1/epics/E03-board-tui-core/E03-Detail.md +0 -38
  22. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T001-model.md +0 -29
  23. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T002-update-loop.md +0 -30
  24. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T003-view.md +0 -34
  25. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T004-styles.md +0 -29
  26. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T005-layout.md +0 -42
  27. package/.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md +0 -44
  28. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T001-column.md +0 -34
  29. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T002-card.md +0 -33
  30. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T003-epic-panel.md +0 -49
  31. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T004-detail-overlay.md +0 -40
  32. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T005-release-dropdown.md +0 -33
  33. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T006-help-overlay.md +0 -34
  34. package/.savepoint/releases/v1/epics/E05-phase-transitions/E05-Detail.md +0 -38
  35. package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T001-phase-stepping.md +0 -29
  36. package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T002-gates.md +0 -31
  37. package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T003-write-task.md +0 -31
  38. package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T004-write-router.md +0 -31
  39. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/E06-Detail.md +0 -62
  40. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T001-color-system.md +0 -39
  41. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T002-header-and-dividers.md +0 -52
  42. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T003-footer-status-bar.md +0 -52
  43. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T004-component-refinement.md +0 -53
  44. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T005-restore-nav-hints.md +0 -39
  45. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T007-detail-card-fixes.md +0 -36
  46. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T008-checkbox-states.md +0 -40
  47. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T009-router-priority-marker.md +0 -48
  48. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T010-auto-refresh-watcher.md +0 -66
  49. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/Design.md +0 -39
  50. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T001-archive-epics.md +0 -20
  51. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T002-rewrite-prd.md +0 -22
  52. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T003-create-epic-stubs.md +0 -24
  53. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T004-update-router.md +0 -22
  54. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/Design.md +0 -118
  55. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/handoff.md +0 -9
  56. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T001-package-baseline.md +0 -45
  57. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T002-typescript-build.md +0 -48
  58. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T003-vitest-smoke.md +0 -43
  59. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T004-lint-format-gates.md +0 -45
  60. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T005-scaffold-verification.md +0 -40
  61. package/.savepoint/releases/v1/epics/_archived/E02-data-model/Design.md +0 -142
  62. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T001-domain-ids-status.md +0 -27
  63. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T002-markdown-frontmatter-boundary.md +0 -28
  64. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T003-task-documents.md +0 -29
  65. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T004-release-epic-router-config-readers.md +0 -30
  66. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T005-dependency-validation.md +0 -29
  67. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T006-epic-task-set-reader.md +0 -29
  68. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T007-quality-gates.md +0 -31
  69. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/Design.md +0 -40
  70. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T001-phase-types.md +0 -27
  71. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T002-phase-frontmatter.md +0 -25
  72. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T003-simplify-config.md +0 -26
  73. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T004-simplify-router-domain.md +0 -24
  74. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/Design.md +0 -122
  75. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T001-argument-parser-contract.md +0 -28
  76. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T002-help-text-generation.md +0 -28
  77. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T003-terminal-environment-detection.md +0 -27
  78. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T004-command-stub-modules.md +0 -29
  79. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T005-cli-runner-dispatch.md +0 -34
  80. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T006-entrypoint-quality-gates.md +0 -32
  81. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/Design.md +0 -43
  82. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T001-strip-args.md +0 -26
  83. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T002-strip-help.md +0 -23
  84. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T003-strip-run.md +0 -23
  85. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T004-delete-commands.md +0 -24
  86. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T005-update-cli-tests.md +0 -22
  87. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/Design.md +0 -48
  88. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T001-board-data-phases.md +0 -26
  89. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T002-phase-rendering.md +0 -28
  90. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T003-detail-pane-phases.md +0 -27
  91. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T004-phase-transitions.md +0 -42
  92. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T005-phase-gates.md +0 -24
  93. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T006-phase-write-back.md +0 -24
  94. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T007-remove-audit-flow.md +0 -27
  95. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T008-board-tests.md +0 -25
  96. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/Design.md +0 -85
  97. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T001-project-template-assets.md +0 -17
  98. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T002-release-and-prompt-assets.md +0 -20
  99. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T003-template-registry-renderer.md +0 -22
  100. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T004-template-integrity-tests.md +0 -17
  101. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T005-template-closeout-quality-gates.md +0 -16
  102. package/.savepoint/releases/v1/epics/_archived/E05-init-command/Design.md +0 -88
  103. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T001-init-cli-contract.md +0 -22
  104. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T002-target-validation.md +0 -23
  105. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T003-scaffold-writer.md +0 -24
  106. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T004-magic-prompt-and-clipboard.md +0 -23
  107. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T005-dev-deps-install-option.md +0 -24
  108. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T006-init-command-integration.md +0 -28
  109. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/Design.md +0 -53
  110. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T001-delete-dead-src.md +0 -23
  111. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T002-delete-dead-tests.md +0 -26
  112. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T003-delete-assets.md +0 -25
  113. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T004-clean-savepoint.md +0 -28
  114. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T005-rewrite-agents-md.md +0 -28
  115. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T006-clean-package-json.md +0 -23
  116. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T007-verify.md +0 -25
  117. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/Design.md +0 -104
  118. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T001-board-command-data.md +0 -23
  119. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T002-board-view-state.md +0 -24
  120. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T003-transition-gates-and-writes.md +0 -25
  121. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T004-terminal-theme.md +0 -23
  122. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T005-ink-board-ui.md +0 -26
  123. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T006-board-integration-audit-entry.md +0 -24
  124. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/Design.md +0 -88
  125. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T001-audit-cli-contract.md +0 -23
  126. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T002-quality-gate-runner.md +0 -23
  127. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T003-snapshot-and-prompt.md +0 -23
  128. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T004-audit-orchestration-router.md +0 -27
  129. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T005-proposal-validation-apply.md +0 -25
  130. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T006-audit-review-state.md +0 -24
  131. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T007-audit-review-ui.md +0 -26
  132. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T008-audit-pipeline-integration.md +0 -24
  133. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/Design.md +0 -103
  134. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T001-acceptance-criteria-model.md +0 -30
  135. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T002-release-task-set-reader.md +0 -33
  136. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T003-board-data-and-plain-output.md +0 -34
  137. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T004-board-selection-state.md +0 -33
  138. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T005-ink-board-layout-cleanup.md +0 -37
  139. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T006-task-detail-popup.md +0 -36
  140. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T007-templates-acceptance-criteria.md +0 -34
  141. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T008-board-workflow-integration.md +0 -41
  142. package/.savepoint/releases/v1/epics/_archived/E09-doctor-command/Design.md +0 -70
  143. package/.savepoint/releases/v1/epics/_archived/E10-docs-and-packaging/Design.md +0 -68
  144. package/.savepoint/releases/v1/epics/_archived/E11-release-validation/Design.md +0 -68
  145. package/.savepoint/releases/v1/v1-PRD.md +0 -66
  146. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/E01-Detail.md +0 -40
  147. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T001-next-activity-header.md +0 -56
  148. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T002-rename-epic-design-files.md +0 -38
  149. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T003-rename-release-prd.md +0 -28
  150. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T004-update-instruction-files.md +0 -51
  151. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T005-update-cross-references.md +0 -45
  152. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T006-column-and-detail-scrolling.md +0 -68
  153. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T007-column-focus-border-stability.md +0 -57
  154. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Audit.md +0 -124
  155. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Detail.md +0 -49
  156. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T001-fix-makefile.md +0 -37
  157. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T002-linux-build-target.md +0 -38
  158. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T003-macos-build-target.md +0 -36
  159. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T004-smoke-tests-and-artifacts.md +0 -59
  160. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/E03-Audit.md +0 -195
  161. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/E03-Detail.md +0 -45
  162. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T001-border-resize-fix.md +0 -40
  163. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T002-next-activity-below-header.md +0 -64
  164. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T003-checkbox-rendering-fix.md +0 -56
  165. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T005-unify-status-glyphs.md +0 -65
  166. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T006-forced-256-color-profile.md +0 -36
  167. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Audit.md +0 -167
  168. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Detail.md +0 -51
  169. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T001-sidebar-focusable-navigation.md +0 -65
  170. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T002-epic-detail-overlay.md +0 -73
  171. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T003-epic-status-glyphs.md +0 -73
  172. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Audit.md +0 -237
  173. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Detail.md +0 -54
  174. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T001-update-agents-md.md +0 -45
  175. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T002-update-router-md.md +0 -40
  176. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T003-update-design-md.md +0 -47
  177. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T004-implement-m-hotkey.md +0 -98
  178. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T005-update-help-overlay.md +0 -33
  179. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T006-tests-and-quality-gates.md +0 -62
  180. package/.savepoint/releases/v1.1/epics/E06-audit-command/E06-Audit.md +0 -56
  181. package/.savepoint/releases/v1.1/epics/E06-audit-command/E06-Detail.md +0 -63
  182. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T005-proposals.md +0 -44
  183. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T007-apply-close.md +0 -35
  184. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T009-integration.md +0 -40
  185. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T010-audit-file-migration.md +0 -45
  186. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T011-model-tab-state.md +0 -26
  187. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T012-epic-audit-render.md +0 -33
  188. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T013-handle-tab-keys.md +0 -34
  189. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T014-tab-indicator.md +0 -33
  190. package/.savepoint/releases/v1.1/epics/E07-init-command/E07-Audit.md +0 -336
  191. package/.savepoint/releases/v1.1/epics/E07-init-command/E07-Detail.md +0 -61
  192. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T001-cli-entrypoint.md +0 -37
  193. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T002-target-validation.md +0 -28
  194. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T003-scaffold-writer.md +0 -46
  195. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T004-atomic-writes.md +0 -27
  196. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T005-magic-prompt.md +0 -25
  197. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T006-clipboard.md +0 -26
  198. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T007-integration-test.md +0 -26
  199. package/.savepoint/releases/v1.1/epics/E08-board-command/E08-Audit.md +0 -333
  200. package/.savepoint/releases/v1.1/epics/E08-board-command/E08-Detail.md +0 -68
  201. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T001-cli-entrypoint.md +0 -26
  202. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T002-non-tty-fallback.md +0 -27
  203. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T003-tui-app-shell.md +0 -28
  204. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T004-board-model.md +0 -29
  205. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T005-detail-pane.md +0 -27
  206. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T006-status-transitions.md +0 -29
  207. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T007-theme-fallbacks.md +0 -29
  208. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T008-integration-test.md +0 -27
  209. package/.savepoint/releases/v1.1/epics/E09-doctor-command/E09-Audit.md +0 -207
  210. package/.savepoint/releases/v1.1/epics/E09-doctor-command/E09-Detail.md +0 -65
  211. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T001-cli-entrypoint.md +0 -24
  212. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T002-config-router-validation.md +0 -28
  213. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T003-structure-checks.md +0 -29
  214. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T004-dependency-checks.md +0 -27
  215. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T005-audit-orphan-checks.md +0 -28
  216. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T006-quality-gates-report.md +0 -31
  217. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/E11-Detail.md +0 -36
  218. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T001-debug-logging.md +0 -25
  219. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T002-increase-debounce.md +0 -21
  220. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T003-error-handling.md +0 -22
  221. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T004-test-verify.md +0 -29
  222. package/.savepoint/releases/v1.1/epics/E12-validation-fix/E12-Audit.md +0 -444
  223. package/.savepoint/releases/v1.1/epics/E12-validation-fix/E12-Detail.md +0 -45
  224. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T001-default-phase.md +0 -35
  225. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T002-default-status.md +0 -19
  226. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T003-better-errors.md +0 -29
  227. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T004-validate-on-write.md +0 -25
  228. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T005-tests.md +0 -37
  229. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/E13-Audit.md +0 -118
  230. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/E13-Detail.md +0 -73
  231. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T001-safe-cleanup.md +0 -66
  232. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T002-bug-fixes.md +0 -35
  233. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T003-centralize-duplication.md +0 -60
  234. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T004-infrastructure.md +0 -33
  235. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T005-decompose-update.md +0 -37
  236. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T006-async-io.md +0 -40
  237. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T007-test-coverage.md +0 -37
  238. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Audit.md +0 -267
  239. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Detail.md +0 -54
  240. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T001-group-model.md +0 -39
  241. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T002-data-interfaces.md +0 -42
  242. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T003-discover-orphans.md +0 -33
  243. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T004-epic-panel-headings.md +0 -35
  244. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T005-shell-tokenization.md +0 -27
  245. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T006-unify-enums.md +0 -29
  246. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T007-testutil-package.md +0 -28
  247. package/.savepoint/releases/v1.1/epics/E15-hardening/E15-Audit.md +0 -272
  248. package/.savepoint/releases/v1.1/epics/E15-hardening/E15-Detail.md +0 -60
  249. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T001-benchmarks.md +0 -31
  250. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T002-fuzz-targets.md +0 -34
  251. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T003-debug-flag.md +0 -30
  252. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T004-dist-checksums.md +0 -27
  253. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T005-windows-targets.md +0 -28
  254. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T006-abbreviation-splitting.md +0 -26
  255. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T007-root-test-allowlist.md +0 -33
  256. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T008-ci-and-release-automation.md +0 -46
  257. package/.savepoint/releases/v1.1/epics/_archived/T001-cli-entrypoint.md +0 -25
  258. package/.savepoint/releases/v1.1/epics/_archived/T002-quality-gates.md +0 -27
  259. package/.savepoint/releases/v1.1/epics/_archived/T003-snapshot.md +0 -27
  260. package/.savepoint/releases/v1.1/epics/_archived/T004-ai-reconcile.md +0 -29
  261. package/.savepoint/releases/v1.1/epics/_archived/T006-tui-review.md +0 -31
  262. package/.savepoint/releases/v1.1/epics/_archived/T008-skip-handling.md +0 -34
  263. package/.savepoint/releases/v1.1/v1.1-PRD.md +0 -139
  264. package/.savepoint/router.md +0 -57
  265. package/.savepoint/visual-identity.md +0 -125
  266. package/AGENTS.md +0 -99
  267. package/CLAUDE.md +0 -1
  268. package/GEMINI.md +0 -1
  269. package/Makefile +0 -31
  270. package/agent-skills/ink-tui-design/SKILL.md +0 -309
  271. package/agent-skills/ink-tui-design/references/component-patterns.md +0 -371
  272. package/agent-skills/ink-tui-design/references/hooks-guide.md +0 -436
  273. package/agent-skills/ink-tui-design/references/ink-gotchas.md +0 -330
  274. package/agent-skills/ink-tui-design/references/testing-patterns.md +0 -384
  275. package/agent-skills/savepoint-audit/SKILL.md +0 -87
  276. package/agent-skills/savepoint-build-task/SKILL.md +0 -44
  277. package/agent-skills/savepoint-create-plan/SKILL.md +0 -33
  278. package/agent-skills/savepoint-create-task/SKILL.md +0 -44
  279. package/agent-skills/savepoint-draft-prd/SKILL.md +0 -37
  280. package/agent-skills/savepoint-system-design/SKILL.md +0 -38
  281. package/agent-skills/superpowers/brainstorming/SKILL.md +0 -165
  282. package/agent-skills/superpowers/brainstorming/visual-companion.md +0 -304
  283. package/agent-skills/superpowers/dispatching-parallel-agents/SKILL.md +0 -193
  284. package/agent-skills/superpowers/executing-plans/SKILL.md +0 -77
  285. package/agent-skills/superpowers/finishing-a-development-branch/SKILL.md +0 -213
  286. package/agent-skills/superpowers/receiving-code-review/SKILL.md +0 -226
  287. package/agent-skills/superpowers/requesting-code-review/SKILL.md +0 -115
  288. package/agent-skills/superpowers/requesting-code-review/code-reviewer.md +0 -160
  289. package/agent-skills/superpowers/subagent-driven-development/SKILL.md +0 -292
  290. package/agent-skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +0 -27
  291. package/agent-skills/superpowers/subagent-driven-development/implementer-prompt.md +0 -113
  292. package/agent-skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +0 -61
  293. package/agent-skills/superpowers/systematic-debugging/SKILL.md +0 -305
  294. package/agent-skills/superpowers/systematic-debugging/condition-based-waiting.md +0 -122
  295. package/agent-skills/superpowers/systematic-debugging/defense-in-depth.md +0 -130
  296. package/agent-skills/superpowers/systematic-debugging/root-cause-tracing.md +0 -183
  297. package/agent-skills/superpowers/test-driven-development/SKILL.md +0 -389
  298. package/agent-skills/superpowers/test-driven-development/testing-anti-patterns.md +0 -317
  299. package/agent-skills/superpowers/verification-before-completion/SKILL.md +0 -147
  300. package/agent-skills/superpowers/writing-plans/SKILL.md +0 -159
  301. package/agent-skills/superpowers/writing-plans/plan-document-reviewer-prompt.md +0 -49
  302. package/agent_skills_test.go +0 -91
  303. package/assets/banner.png +0 -0
  304. package/assets/logo.png +0 -0
  305. package/assets/strawman.png +0 -0
  306. package/cmd/board.go +0 -59
  307. package/cmd/board_test.go +0 -137
  308. package/cmd/doctor.go +0 -53
  309. package/cmd/doctor_test.go +0 -146
  310. package/cmd/init.go +0 -63
  311. package/cmd/init_test.go +0 -104
  312. package/go.mod +0 -36
  313. package/go.sum +0 -75
  314. package/internal/board/board.go +0 -181
  315. package/internal/board/board_test.go +0 -168
  316. package/internal/board/card.go +0 -129
  317. package/internal/board/card_test.go +0 -287
  318. package/internal/board/column.go +0 -156
  319. package/internal/board/column_test.go +0 -210
  320. package/internal/board/debug.go +0 -26
  321. package/internal/board/debug_test.go +0 -108
  322. package/internal/board/detail.go +0 -218
  323. package/internal/board/detail_test.go +0 -388
  324. package/internal/board/epic_panel.go +0 -264
  325. package/internal/board/epic_panel_test.go +0 -869
  326. package/internal/board/help.go +0 -41
  327. package/internal/board/help_test.go +0 -86
  328. package/internal/board/integration_test.go +0 -266
  329. package/internal/board/interfaces.go +0 -65
  330. package/internal/board/interfaces_test.go +0 -114
  331. package/internal/board/io.go +0 -93
  332. package/internal/board/layout.go +0 -68
  333. package/internal/board/layout_test.go +0 -106
  334. package/internal/board/model.go +0 -235
  335. package/internal/board/model_test.go +0 -67
  336. package/internal/board/plain.go +0 -88
  337. package/internal/board/plain_test.go +0 -117
  338. package/internal/board/release.go +0 -34
  339. package/internal/board/release_test.go +0 -177
  340. package/internal/board/render_policy_test.go +0 -77
  341. package/internal/board/status.go +0 -23
  342. package/internal/board/theme.go +0 -24
  343. package/internal/board/theme_test.go +0 -31
  344. package/internal/board/transitions.go +0 -113
  345. package/internal/board/transitions_test.go +0 -164
  346. package/internal/board/tui.go +0 -32
  347. package/internal/board/update.go +0 -575
  348. package/internal/board/update_test.go +0 -602
  349. package/internal/board/util.go +0 -76
  350. package/internal/board/view.go +0 -317
  351. package/internal/board/view_test.go +0 -377
  352. package/internal/board/watch.go +0 -136
  353. package/internal/buildtool/main.go +0 -249
  354. package/internal/buildtool/main_test.go +0 -224
  355. package/internal/data/config.go +0 -101
  356. package/internal/data/config_test.go +0 -122
  357. package/internal/data/discover.go +0 -178
  358. package/internal/data/discover_test.go +0 -130
  359. package/internal/data/errors.go +0 -13
  360. package/internal/data/fuzz_test.go +0 -75
  361. package/internal/data/lifecycle.go +0 -44
  362. package/internal/data/lifecycle_test.go +0 -41
  363. package/internal/data/parser.go +0 -243
  364. package/internal/data/parser_test.go +0 -281
  365. package/internal/data/router.go +0 -52
  366. package/internal/data/router_test.go +0 -35
  367. package/internal/data/task.go +0 -57
  368. package/internal/data/task_test.go +0 -51
  369. package/internal/data/testdata/fuzz/FuzzSplitFrontmatterBody/68eb66b0fe91e7e3 +0 -2
  370. package/internal/data/write.go +0 -221
  371. package/internal/data/write_test.go +0 -623
  372. package/internal/doctor/checks.go +0 -567
  373. package/internal/doctor/checks_test.go +0 -716
  374. package/internal/doctor/gates.go +0 -193
  375. package/internal/doctor/gates_test.go +0 -166
  376. package/internal/doctor/interfaces.go +0 -64
  377. package/internal/doctor/interfaces_test.go +0 -104
  378. package/internal/doctor/repairs.go +0 -80
  379. package/internal/doctor/repairs_test.go +0 -81
  380. package/internal/doctor/report.go +0 -157
  381. package/internal/doctor/report_test.go +0 -89
  382. package/internal/init/clipboard.go +0 -146
  383. package/internal/init/clipboard_test.go +0 -74
  384. package/internal/init/install.go +0 -16
  385. package/internal/init/integration_test.go +0 -197
  386. package/internal/init/prompt.go +0 -14
  387. package/internal/init/prompt_test.go +0 -77
  388. package/internal/init/scaffold.go +0 -59
  389. package/internal/init/scaffold_test.go +0 -179
  390. package/internal/init/template_freshness_test.go +0 -56
  391. package/internal/init/validate.go +0 -85
  392. package/internal/init/validate_test.go +0 -141
  393. package/internal/init/write.go +0 -73
  394. package/internal/init/write_test.go +0 -91
  395. package/internal/styles/palette.go +0 -49
  396. package/internal/styles/styles.go +0 -139
  397. package/internal/styles/styles_test.go +0 -133
  398. package/internal/testutil/fixture.go +0 -113
  399. package/internal/testutil/fs.go +0 -26
  400. package/main.go +0 -136
  401. package/project-audit/audit_report_glm_5.1.md +0 -411
  402. package/project-audit/audit_report_opus_4.6.md +0 -406
  403. package/project-audit/consolidated-audit-report.md +0 -456
  404. package/scripts/vitest-preload.cjs +0 -95
  405. package/templates/project/.savepoint/Design.md +0 -47
  406. package/templates/project/.savepoint/PRD.md +0 -34
  407. package/templates/project/.savepoint/config.yml +0 -27
  408. package/templates/project/.savepoint/router.md +0 -153
  409. package/templates/project/.savepoint/visual-identity.md +0 -122
  410. package/templates/project/AGENTS.md +0 -88
  411. package/templates/project/agent-skills/savepoint-audit/SKILL.md +0 -87
  412. package/templates/project/agent-skills/savepoint-build-task/SKILL.md +0 -44
  413. package/templates/project/agent-skills/savepoint-create-plan/SKILL.md +0 -33
  414. package/templates/project/agent-skills/savepoint-create-task/SKILL.md +0 -44
  415. package/templates/project/agent-skills/savepoint-draft-prd/SKILL.md +0 -37
  416. package/templates/project/agent-skills/savepoint-system-design/SKILL.md +0 -38
  417. package/templates/prompts/audit-reconciliation.prompt.md +0 -72
  418. package/templates/prompts/design.prompt.md +0 -45
  419. package/templates/prompts/epic-design.prompt.md +0 -43
  420. package/templates/prompts/magic-prompt.prompt.md +0 -7
  421. package/templates/prompts/prd.prompt.md +0 -42
  422. package/templates/prompts/task-breakdown.prompt.md +0 -54
  423. package/templates/prompts/task-building.prompt.md +0 -38
  424. package/templates/prompts/task-planning.prompt.md +0 -53
  425. package/templates/release/v1/PRD.md +0 -37
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "savepoint",
3
- "version": "1.0.4",
3
+ "version": "1.0.7",
4
4
  "description": "It’s a simple, file-based state machine and cinematic Terminal UI (TUI) designed to force you—and your agent (Claude, Cursor, Aider, Gemini)—to slow down, write down what you're actually building, and check your work before moving on.",
5
5
  "keywords": [
6
6
  "board",
@@ -18,9 +18,16 @@
18
18
  "license": "MIT",
19
19
  "author": "anipatke",
20
20
  "bin": {
21
- "savepoint": "./savepoint"
21
+ "savepoint": "./savepoint.exe"
22
22
  },
23
+ "files": [
24
+ "savepoint.exe",
25
+ "README.md",
26
+ "LICENSE"
27
+ ],
23
28
  "scripts": {
24
- "test": "echo \"Run 'make test' for Go tests\""
29
+ "build": "go build -o savepoint.exe .",
30
+ "test": "echo \"Run 'make test' for Go tests\"",
31
+ "prepublishOnly": "npm run build"
25
32
  }
26
- }
33
+ }
package/savepoint.exe ADDED
Binary file
@@ -1,38 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(npm run *)",
5
- "Bash(npx prettier *)",
6
- "Bash(npm test *)",
7
- "Bash(npm install *)",
8
- "Bash(npx vitest *)",
9
- "Bash(echo \"lint exit: $?\")",
10
- "Bash(echo \"format exit: $?\")",
11
- "Bash(npx tsc *)",
12
- "Bash(node --require ./scripts/vitest-preload.cjs ./node_modules/vitest/vitest.mjs run --configLoader runner --config vitest.config.js --reporter=verbose test/tui/components/Board.test.tsx)",
13
- "Bash(node --require ./scripts/vitest-preload.cjs ./node_modules/vitest/vitest.mjs run --configLoader runner --config vitest.config.js --reporter=verbose test/tui/components/Board.test.tsx test/tui/components/App.test.tsx test/tui/components/DetailPane.test.tsx)",
14
- "Bash(node --require ./scripts/vitest-preload.cjs ./node_modules/vitest/vitest.mjs run --configLoader runner --config vitest.config.js)",
15
- "Bash(go test *)",
16
- "Bash(go build *)",
17
- "Bash(go vet *)",
18
- "Bash(make build *)",
19
- "Bash(make test *)",
20
- "Bash(go get *)",
21
- "Bash(go doc *)",
22
- "Bash(make clean *)",
23
- "Bash(make build-linux *)",
24
- "Bash(./savepoint_test_bin --version)",
25
- "PowerShell(go run *)",
26
- "Bash(go run *)",
27
- "PowerShell(Get-ChildItem -Path \"C:\\\\Users\\\\User\\\\Branding\\\\03-VIBE-LAB\\\\savepoint\" -Force | Select-Object Name, @{Name=\"Type\"; Expression={if\\($_.PSIsContainer\\){\"DIR\"}else{\"FILE\"}}} | Format-Table -AutoSize)",
28
- "PowerShell(Get-ChildItem *)",
29
- "Bash(Get-ChildItem -Path \"C:\\\\Users\\\\User\\\\Branding\\\\03-VIBE-LAB\\\\savepoint\\\\.savepoint\\\\releases\\\\v1.1\\\\epics\\\\E08-board-command\" -Recurse -Filter \"*.md\")",
30
- "Bash(Select-Object -ExpandProperty FullName)",
31
- "Bash(cmd\")",
32
- "PowerShell(go build *)",
33
- "PowerShell(go test *)",
34
- "PowerShell(cd \"C:\\\\Users\\\\User\\\\Branding\\\\03-VIBE-LAB\\\\savepoint\"; $files = @\\(\"agent-skills\\\\savepoint-create-task\\\\SKILL.md\", \"templates\\\\project\\\\agent-skills\\\\savepoint-create-task\\\\SKILL.md\"\\); foreach \\($f in $files\\) { $bytes = [System.IO.File]::ReadAllBytes\\($f\\); Write-Host \"$f first bytes: $\\($bytes[0..9] -join ','\\) \\(CRLF: $\\($bytes[3] -eq 13\\)\\)\" })",
35
- "PowerShell(cd \"C:\\\\Users\\\\User\\\\Branding\\\\03-VIBE-LAB\\\\savepoint\"; $others = Get-ChildItem agent-skills -Recurse -Filter \"SKILL.md\" | Where-Object { $_.DirectoryName -notmatch \"savepoint-create-task\" }; foreach \\($f in $others\\) { $bytes = [System.IO.File]::ReadAllBytes\\($f.FullName\\); Write-Host \"$\\($f.Name\\) dir=$\\($f.Directory.Name\\) CRLF=$\\($bytes[3] -eq 13\\)\" })"
36
- ]
37
- }
38
- }
@@ -1,20 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches: [master]
6
- pull_request:
7
- branches: [master]
8
-
9
- jobs:
10
- ci:
11
- runs-on: ubuntu-latest
12
- steps:
13
- - uses: actions/checkout@v4
14
-
15
- - uses: actions/setup-go@v5
16
- with:
17
- go-version: '1.26'
18
- check-latest: true
19
-
20
- - run: make ci
package/.golangci.yml DELETED
@@ -1,11 +0,0 @@
1
- run:
2
- timeout: 5m
3
-
4
- linters:
5
- enable:
6
- - unused
7
- - errcheck
8
- - staticcheck
9
- - govet
10
- - ineffassign
11
- - gosimple
package/.prettierignore DELETED
@@ -1,4 +0,0 @@
1
- dist/
2
- coverage/
3
- node_modules/
4
- .claude/
@@ -1,207 +0,0 @@
1
- ---
2
- type: project-design
3
- status: active
4
- last_audited: v1.1/E15-hardening
5
- ---
6
-
7
- # Savepoint — System Architecture
8
-
9
- > Project-level architecture. Audit-kept fresh: every epic's audit step merges its delta into this document.
10
- >
11
- > **Visual identity** lives separately in `.savepoint/visual-identity.md` and is loaded only for TUI/theme/visual tasks.
12
-
13
- ## 1. Architecture model
14
-
15
- - **File-only.** No MCP server in v1. Agents read and edit Markdown + YAML files directly using their native file tools.
16
- - **Agent routing:** AGENTS.md → `.savepoint/router.md` → template prompts. See AGENTS.md Workflow section.
17
- - **Bundled Agent Skills:** Savepoint ships with custom skills (`savepoint-draft-prd`, `savepoint-system-design`, `savepoint-create-plan`, `savepoint-create-task`, `savepoint-build-task`, `savepoint-audit`) to enforce each phase of the state machine.
18
- - **Token-efficiency principle.**
19
- - Cold session bootstrap: ~5–7K tokens (one-time per conversation).
20
- - Per-task incremental: <2KB.
21
- - Audit: 5–15KB.
22
- - Anything that breaks these bounds violates the wedge.
23
- - **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, release/epic/task directory listing, task lifecycle validation/defaulting, write-time status validation, and boundary error sentinels.
24
- - **Template assets** live under `templates/` with helpers in `src/templates/` (epic E04).
25
- - **Init command** (`savepoint init`) validates target directories, scaffolds rendered copies of `templates/project/`, prints the rendered magic prompt, attempts best-effort clipboard copy, and optionally runs `npm install` after scaffolding (v1.1 E07).
26
- - **Board command** (`savepoint board`, and bare `savepoint`) reads project state, renders the Atari-Noir TUI board when stdout is a TTY, falls back to a deterministic plain table in non-TTY mode, supports `--release`/`--epic` filtering, detail overlays, task status transitions with mtime-guarded writes, release/epic-scoped router priority markers, fsnotify-based task auto-refresh (epic E06), header Next Activity display, height-aware column/detail viewport scrolling, stable focused/unfocused column border geometry (v1.1 E01), dedicated phase-colored Next Activity line below the header, sentence-boundary checklist rendering in task details, shared status glyph mapping for task cards and the epic sidebar, a forced ANSI256 Lipgloss color profile for board startup (v1.1 E03), a focusable wide-screen epic sidebar with purple epic focus, epic detail overlays, and status glyphs loaded from epic detail frontmatter (v1.1 E04), and an epic Detail/Audit tab switch that renders user-facing audit findings from `{epic}/E##-Audit.md` (v1.1 E06).
27
- - **Doctor command** (`savepoint doctor`, `savepoint doctor --epic E##`) runs read-only integrity diagnostics for config, router state, release/epic/task structure, frontmatter validity, acceptance criteria presence, dependencies, duplicate task IDs, stale audit files, orphaned task IDs, and configured quality gates. It prints a human-readable report with repair suggestions and exits 0 when clean, 1 when problems are diagnosed, and 2 for internal or invocation failures.
28
- - **Audit remediation baseline** (v1.1 E13) centralizes frontmatter/body splitting and line-ending normalization in `internal/data`, uses typed sentinel errors for doctor repair suggestions, applies a configurable `quality_gates.gate_timeout`, removes tracked build artifacts from source control, adds `.golangci.yml`, and moves board filesystem reads/writes behind Bubble Tea command messages while preserving direct file I/O inside command helpers.
29
- - **Structural improvement baseline** (v1.1 E14) groups board `Model` fields into focused embedded state structs, defines consumer-side board/doctor data-access interfaces, routes doctor orphan discovery through `Discover.ListRootDirs`, renders audit-tab hidden sections via exact heading matches, improves quality-gate shell tokenization for quoted and escaped arguments, removes the separate `TaskStatus` enum in favor of `ColumnType`, and adds `internal/testutil` for shared Go test fixtures.
30
- - **Hardening baseline** (v1.1 E15) adds board render/layout benchmarks, data frontmatter fuzz targets, debug logging via CLI `--debug` or `SAVEPOINT_DEBUG`, abbreviation-aware task checklist sentence splitting, root test package isolation, documented audit-tab hidden-section allowlisting, repo-local CI, `make ci`, distribution SHA256 checksums, and Windows amd64/arm64 build outputs.
31
- - **Agent audit workflow** is skill-driven, not a CLI pipeline. At `audit-pending`, a fresh audit agent writes one epic-local `E##-Audit.md`; the user reviews its Audit tab, then asks an agent to apply the admin proposal blocks, update the visible audit findings to reflect the applied outcome, and close the epic.
32
-
33
- ## 2. Directory layout
34
-
35
- ```
36
- <project-root>/
37
- ├── AGENTS.md ← agent entry point
38
- └── .savepoint/
39
- ├── PRD.md ← project vision (rare changes)
40
- ├── Design.md ← project architecture (this file)
41
- ├── visual-identity.md ← design system; loaded conditionally for TUI work
42
- ├── router.md ← state-machine routing
43
- ├── config.yml ← theme, quality_gates, verify_strict
44
- └── releases/
45
- └── {release}/ ← e.g. v1, v1.1
46
- ├── {release}-PRD.md ← release-scoped PRD
47
- └── epics/
48
- └── E##-{epic-name}/
49
- ├── E##-Detail.md ← epic delta
50
- ├── E##-Audit.md ← audit findings + admin apply proposals
51
- └── tasks/
52
- └── T001-slug.md
53
- ```
54
-
55
- AGENTS.md at root (uppercase, cross-vendor spec). Design.md in `.savepoint/` (working doc, not public-facing). visual-identity.md conditional — only loaded for TUI/theme/visual tasks. Subtasks are inline checklists inside task `.md` — never separate files. Epic folders and task files use `E##`/`T##` prefix. Scaffold assets live under `templates/`; generated projects receive rendered copies, not hardcoded strings.
56
-
57
- ## 3. Hierarchy semantics
58
-
59
- | Level | Definition |
60
- | ------------ | -------------------------------------------------------------------------------------- |
61
- | **Release** | The thing being built. One PRD per release. v1 = MVP. |
62
- | **Epic** | A major feature within a release. Has its own E##-Detail.md (delta from project Design). |
63
- | **Task** | Independently buildable. Objective-led. **Requires implementation plan before build.** |
64
- | **Sub-task** | Inline checklist item — _evidence of the implementation plan_, not standalone work. |
65
-
66
- ## 4. Status model & gates
67
-
68
- Three statuses, with explicit gates and ownership boundaries:
69
-
70
- | Status | Meaning | Entry gate | Who may set it |
71
- | ------------- | -------------------------- | --------------------------------------------------------------- | -------------------------------------- |
72
- | `planned` | Ready to build | plan section non-empty | User or planning workflow |
73
- | `in_progress` | AI building | all `depends_on` are `done` | Agent when starting implementation |
74
- | `done` | Complete for current scope | all implementation items checked; verification per project mode | User only |
75
-
76
- - `blocked` is a **flag**, not a status — `in_progress` + `blocked: "reason"` is valid.
77
- - Agents may only advance a task into `in_progress`; they must not set `done` or retreat a task to an earlier status.
78
- - Only the user may set a task to `done` or retreat it from `done` to `in_progress` when follow-up work is required.
79
- - Router updates are explicit TUI actions: after setting a task to `in_progress`, the agent prompts the user to press `p` in the board to mark the focused task as router priority. Navigation alone must not change router task priority.
80
- - Verification mode: see `config.yml`.
81
-
82
- ## 5. Dependencies
83
-
84
- - Declared in YAML frontmatter: `depends_on: [E##-epic/T###-task-id, ...]` (repo-relative IDs).
85
- - `src/validation/dependencies.ts` detects duplicate task IDs, missing dependencies, and dependency cycles.
86
- - Cross-epic deps allowed but warned (signal that epic boundaries may be wrong).
87
-
88
- ## 6. CLI surface (3 commands, no extras)
89
-
90
- | Command | Purpose |
91
- | ---------------------- | --------------------------------------------------------------------------------- |
92
- | `savepoint init` | Scaffold `.savepoint/`, print magic prompt to stdout + clipboard |
93
- | `savepoint board` | Launch TUI; auto-falls-back to plain table on non-TTY |
94
- | `savepoint doctor` | Integrity check + ad-hoc quality-gate run + Layer-2 prompt for AI semantic review |
95
- | `--version` / `--help` | Standard global flags |
96
-
97
- - Bare `savepoint` prints help.
98
- - Source modules: see AGENTS.md Codebase Map.
99
- - **Explicitly rejected:** `task new`, `epic new`, `release new`, `plan`, `next`, `status`, `task done`. All are file edits or TUI actions.
100
-
101
- **Names:** npm package `savepoint`; binary `savepoint`. No `vk` alias.
102
- ## 7. Agent audit workflow
103
-
104
- ```
105
- 0. Quality Gates — Build agent runs configured build/test gates before audit handoff.
106
- 1. Audit Pending — Router enters `audit-pending` for the completed epic.
107
- 2. Reconcile — Fresh audit agent reads router, epic detail, task files, Design.md, AGENTS.md, and scoped source/test files.
108
- 3. Findings — Agent writes exactly one `{epic}/E##-Audit.md`.
109
- 4. Review — User reviews the TUI Epic Detail Audit tab.
110
- 5. Apply + Close — After user approval, agent applies proposal blocks, updates the audit file's visible findings, marks the epic audited, updates `last_audited`, and advances router.
111
- ```
112
-
113
- - `audit-pending` is a **hard gate**: next epic's tasks cannot enter `in_progress` until prior epic is `audited` or the user explicitly skips the audit.
114
- - `E##-Audit.md` has two user-facing sections: `## Main Findings` and `## Code Style Review`.
115
- - `## Main Findings` contains narrative audit findings only: AC verification, important drift, and notable risks. It must not contain file-specific replacement blocks.
116
- - `## Code Style Review` contains the 10 AGENTS.md code style checks.
117
- - `## Proposed Changes` contains admin/apply metadata using `### Target File`, `### Replace`, and `### With`. The TUI Audit tab intentionally does not render this section to avoid stale file-change details in the Epic Detail panel.
118
- - Apply/close must rewrite `## Main Findings` and `## Code Style Review` in the same `E##-Audit.md` so the TUI Audit tab shows resolved findings and remaining risks instead of stale pre-apply blockers. `## Proposed Changes` stays as the trace of what was applied unless the user asks otherwise.
119
- - There is no `savepoint audit` CLI pipeline in the active design. Audit is performed by agents using `agent-skills/savepoint-audit/SKILL.md`.
120
-
121
- Three layers:
122
-
123
- - **Layer 1 (mechanical):** user's chosen linter. Recommended: eslint+dependency-cruiser (TS), radon+pylint (Python), gocyclo+staticcheck (Go). Cross-language fallback: `lizard`. Quality gate config: see `.savepoint/config.yml`.
124
- - **Layer 2 (AI semantic review):** baked into the audit reconcile prompt. Outputs Main Findings and Code Style Review in the epic-local audit file. **Advisory, not blocking.**
125
- - **Layer 3:** `savepoint doctor` runs Layer 1 + prints Layer 2 prompt for ad-hoc use.
126
-
127
- ## 8. TUI
128
-
129
- **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.
130
-
131
- Acknowledged terminal limits: fonts, scanlines, glows, letter-spacing, mouse-driven motion don't translate. Lean on color discipline + box-drawing geometry + uppercase headings.
132
-
133
- **Render fallbacks:** 256-color → 16-color hard-coded → `NO_COLOR=1` monochrome with glyphs → non-TTY plain table.
134
-
135
- **Layout:** single screen with a 3-column task board (`planned`, `in_progress`, `done`), optional epic sidebar on wide terminals, centered overlays for release/epic/help/task/epic-detail views, static Atari-Noir header/footer, full-width dividers, uniform black TUI backgrounds, and navigation hints. Active router `next_action` renders as a dedicated full-width line below the header with phase-colored `PLAN`, `BUILD`, or `AUDIT` prefix styling and truncates to terminal width. Columns and detail overlays use height-aware viewport slicing with subtle above/more scroll indicators. Focused and unfocused columns preserve the same rounded-border geometry so focus changes do not shift content. Task detail implementation-plan checkboxes render once per semantic sentence, not once per hard-wrapped markdown line. On terminals at least 120 columns wide, the epic sidebar is focusable from the Planned column; it uses the purple epic accent for focused panel borders, focused epic labels, and epic detail overlays while task-column focus remains orange. Task card and epic sidebar status glyphs share `internal/board/status.go`; task cards use explicit `Task.Status` when available and retain the legacy column/stage glyph fallback when it is not. Non-TTY output remains a plain table fallback.
136
-
137
- **Visual guardrail:** the terminal board intentionally uses one black background for Background, Surface, and Surface 2. Do not restore subtly different dark panel fills; depth should come from spacing, dividers, glyphs, and focused Atari Orange borders.
138
-
139
- **Terminal color policy:** the board must use a deterministic Lipgloss color profile and one canonical terminal black across truecolor, ANSI256, and ANSI fallbacks. In 256-color mode, Background, Surface, and Surface 2 must map to the same actual black value, not adjacent dark-gray values. Full-screen/root surfaces may paint that one black background for consistency; nested task cards, task text, glyphs, tags, metadata, and router-priority labels should remain foreground-only unless a component explicitly owns a filled visual region. This prevents padded text from creating gray bars in terminals such as PowerShell, Windows Terminal, VS Code terminal, and Warp.
140
-
141
- **Border policy:** focus must not change geometry or introduce terminal-specific broken border rendering. Use one consistent box-border family across columns, cards, and overlays. If rounded borders render as dash bars or broken segments in Warp, prefer the single-line border style already allowed by `.savepoint/visual-identity.md`; do not mix rounded and single-line borders as an ad-hoc per-component workaround.
142
-
143
- **Board persistence and refresh:** task status transitions write canonical task frontmatter through `internal/data.WriteTaskStatus` with mtime conflict checks. Board update handlers dispatch filesystem reads and writes through Bubble Tea command helpers (`routerWriteMsg`, `taskWriteMsg`, `epicDetailMsg`, `auditContentMsg`, and `errorMsg`) so `Update()` remains an event/message reducer. The board treats `Model.Root` as the `.savepoint` directory, watches `.savepoint/releases/` recursively with fsnotify, adds watches for newly-created release/epic/task directories, and reloads task plus release/epic index data plus epic status metadata after debounced file changes. Router priority markers match release + epic + task, not only the short `T###` value; completed cards render with the orange build glyph even if they previously matched router priority. The `p` key explicitly writes the focused non-done task to router state as `task-building`; it does not infer `audit-pending` from task position. Epic status glyphs are cached from each epic's `E##-Detail.md` frontmatter and shown in the wide epic sidebar only.
144
-
145
- **Implementation modules:** see AGENTS.md Codebase Map.
146
-
147
- **Keybindings:** arrow/vim navigation, enter opens focused task detail, space advances, backspace retreats, `p` marks the focused non-done task as router priority, `r`/`R` opens release selection or refreshes where supported, `?` opens help, and `q` quits or closes overlays.
148
-
149
- ## 9. Concurrency
150
-
151
- - **mtime-based optimistic concurrency.** TUI status writes compare the expected task-file mtime before parsing and again immediately before a no-op or write; conflicts are reported as non-destructive messages that require manual refresh before retry.
152
- - Agents edit freely; the TUI defers.
153
- - **No lockfile.**
154
-
155
- ## 10. Release versioning (PRDs)
156
-
157
- - Sequential integer (`v1`, `v2`). Optional `name` in YAML.
158
- - `savepoint doctor` warns when creating `v2` while `v1` has un-audited epics.
159
-
160
- ## 11. Failure modes
161
-
162
- All failure modes are diagnosed by `savepoint doctor`. Doctor diagnoses and proposes; never auto-destructive.
163
-
164
- | Failure | Behavior |
165
- | -------------------------------------------- | ----------------------------------------------------------- |
166
- | Corrupt YAML | Doctor flags file:line. TUI marks `⚠ corrupt`, refuses ops. |
167
- | Missing dep | Doctor flags. TUI shows `⚠ broken dep`. |
168
- | Dependency cycle | Doctor refuses to start either side; prints cycle path. |
169
- | Duplicate task ID | Doctor flags. |
170
- | Audit proposals without `audit_pending` flag | Doctor offers cleanup or restore. |
171
- | Task in nonexistent epic | Doctor moves to `.savepoint/orphans/`. |
172
- | Missing `config.yml` | All commands except `init` refuse. |
173
- | Unknown CLI flag | Show help, exit 1. |
174
-
175
- ## 12. Distribution & build
176
-
177
- > Audit note: the live repository is now a Go module (`github.com/opencode/savepoint`). Remaining TypeScript-era distribution details should be removed as Go epics are audited.
178
-
179
- - **License:** MIT.
180
- - **Runtime:** Go CLI binary. Source builds with `go build`; tests run with `go test ./...`.
181
- - **Local build:** `make build` delegates to `internal/buildtool`, builds `savepoint` or `savepoint.exe`, and injects `main.version` from `VERSION` or the latest git tag.
182
- - **Cross-platform builds:** `make build-all` cross-compiles linux-amd64, linux-arm64, darwin-amd64, darwin-arm64, windows-amd64, and windows-arm64 raw binaries into `dist/{platform}-{arch}/savepoint` or `savepoint.exe` for Windows. `make ci` runs the repo-local verification sequence used by CI.
183
- - **Artifacts:** `make dist` creates versioned `.tar.gz` archives in `dist/` for Linux, Darwin, and Windows targets using Go archive APIs, not shell `tar`, and writes SHA256 hashes to `dist/checksums.txt`.
184
- - **Smoke validation:** `make smoke-test` builds the local binary and runs `--version` as a headless exit-0 check.
185
- - **No telemetry.** Ever.
186
-
187
- ## 13. Testing
188
-
189
- | Layer | Tool | Coverage |
190
- | -------------------------------------------------------- | -------------------------------- | ---------------------------------------------------------------------- |
191
- | Unit: file ops, YAML, frontmatter, snapshot gen | `vitest` | High |
192
- | Unit: state transitions, dep resolution, cycle detection | `vitest` | High |
193
- | Integration: CLI commands in temp dirs | `vitest` + `tmp` | Medium |
194
- | TUI reducers (state, isolated from rendering) | `vitest` + `ink-testing-library` | Medium |
195
- | TUI rendering (snapshot tests) | — | **None.** Brittle. |
196
- | End-to-end with real AI agents | Manual matrix | Pre-release: `[Claude, Cursor, Gemini, Aider]` × `[init, plan, audit]` |
197
-
198
- ~70% line coverage target; behavior coverage prioritized.
199
-
200
- ## 14. Package versioning
201
-
202
- - `0.1.0` — first public release: scaffolding, status model, CLI, basic TUI, audit (no AI semantic review).
203
- - `0.2.0` — AI semantic review + broader quality-gate language presets.
204
- - `0.3.0` — file watching, search.
205
- - `1.0.0` — MCP server + production stability.
206
-
207
- Strict semver. Pre-1.0 minors may break.
package/.savepoint/PRD.md DELETED
@@ -1,58 +0,0 @@
1
- ---
2
- type: project-prd
3
- status: active
4
- ---
5
-
6
- # Savepoint — Product Vision
7
-
8
- ## What it is
9
-
10
- A public OSS CLI + Ink-based TUI that scaffolds an opinionated AI-driven development workflow. The user runs `npx savepoint init` in an empty directory, points any AI agent (Claude / Cursor / Cline / Gemini / Aider / Codex) at the project, and the embedded prompt templates carry the agent through:
11
-
12
- > **PRD → Design → Epics → Tasks → Build → Audit**
13
-
14
- …with hard gates at each transition.
15
-
16
- run dev npm run build && node dist/cli.js board to test
17
-
18
- ## Why
19
-
20
- Three failure modes plague AI-driven development today:
21
-
22
- 1. **Inconsistency.** No repeatable process from high-level intent to working MVP.
23
- 2. **Token bloat.** Monolithic backlogs and MCP overhead burn context for everyone, but especially users on minimal AI plans.
24
- 3. **Documentation drift.** `Design.md` and agent instructions go stale after the first iteration; nobody updates them.
25
-
26
- Savepoint addresses all three with a single mechanism: **a file-based state machine that any agent can follow, where every epic completion forces a documentation audit before the next epic can start.**
27
-
28
- ## Target user
29
-
30
- **Vibe coders** — builders with minimal-to-moderate development experience, on minimal AI plans, who want AI agents to drive most of the implementation while a structured workflow keeps the project coherent.
31
-
32
- Not: experienced engineers who already have their own systems. (They can still use it; they're not the audience.)
33
-
34
- ## Headline differentiator
35
-
36
- **The Audit Loop.** When the last task in an epic moves to `done`, the next epic cannot start until `Design.md`, `AGENTS.md`, and the epic's own design have been reconciled with the actual code that was built. No existing markdown-first task tool has this gate.
37
-
38
- Token-efficient hierarchy and markdown-first storage are table stakes. The audit loop is the marketing-first feature.
39
-
40
- ## Success metrics
41
-
42
- - **Token usage:** AI agents complete tasks reading <2KB of context per task. Audit budget bounded to ~5–15KB.
43
- - **Documentation accuracy:** zero drift — `AGENTS.md` always correctly maps the current codebase, enforced by gate.
44
- - **Agent reach:** works with any agent that can read markdown and edit files (no MCP required, no per-agent adapters).
45
- - **Time-to-first-PR:** a vibe coder can go from `npx savepoint init` to a merged epic in one weekend.
46
-
47
- ## Constraints
48
-
49
- - File-only architecture for v1. No MCP server.
50
- - Agent-agnostic via the [Router Pattern](Design.md). No per-agent forks.
51
- - Recommended planning model is top-tier (Opus / Gemini Pro / GPT-5.5 equivalent). Lighter models work for execution but planning fidelity drops.
52
-
53
- ## Out of scope (forever or for now)
54
-
55
- - Telemetry. Ever.
56
- - Multi-user collaboration / cloud sync.
57
- - Mouse / drag-and-drop in the TUI.
58
- - Per-language adapter code (we recommend tools, don't ship them).
@@ -1,27 +0,0 @@
1
- # Savepoint config — single source of truth for project preferences.
2
-
3
- verify_strict: false # vibe-coder soft mode; tasks reach done on assertion. Set true for TDD-strict.
4
-
5
- quality_gates:
6
- # Filled in by epic E01-scaffolding. Until then, audits skip step 0.
7
- lint: null
8
- typecheck: null
9
- test: null
10
- block_on_failure: true
11
-
12
- audit:
13
- divergence_threshold: 0.5 # warn if a proposal changes >50% of a live file
14
-
15
- theme:
16
- bg: "#000000"
17
- surface: "#000000"
18
- surface_2: "#000000"
19
- border: "#1A1A1A"
20
- text: "#F0E6DA"
21
- accents:
22
- planned: "#B1A1DF"
23
- in_progress: "#FC6323" # Atari Orange
24
- done: "#A4C639" # NPP Green
25
- blocked: "#FF4444"
26
- epic: "#B1A1DF" # Vibe Purple
27
- borders: "subtle" # subtle | sharp | none
@@ -1,39 +0,0 @@
1
- ---
2
- type: epic-design
3
- status: planned
4
- ---
5
-
6
- # Epic E01: Go Project Setup
7
-
8
- ## Purpose
9
-
10
- Initialize the savepoint CLI as a Go module. Set up the project directory structure, add Bubble Tea + Lip Gloss dependencies, and establish a working build/test loop.
11
-
12
- ## What this epic adds
13
-
14
- - `go.mod` with module path `github.com/opencode/savepoint`.
15
- - `main.go` entrypoint that launches the Bubble Tea program.
16
- - Directory structure: `cmd/`, `internal/board/`, `internal/data/`, `internal/styles/`.
17
- - `go.sum` with resolved Bubble Tea, Lip Gloss, reflow, and YAML dependencies.
18
- - `Makefile` or script for `build`, `test`, `run`.
19
-
20
- ## Definition of Done
21
-
22
- - `go mod init` succeeds and `go mod tidy` produces clean `go.mod`/`go.sum`.
23
- - `go build` produces a working binary.
24
- - `go test ./...` runs (even if no tests yet, it must not error).
25
- - Bubble Tea `tea.NewProgram` launches and renders a blank screen.
26
- - No TypeScript files, `package.json`, or `node_modules` remain at project root.
27
-
28
- ## Components and files
29
-
30
- | Path | Purpose |
31
- |------|---------|
32
- | `go.mod` | Go module definition |
33
- | `go.sum` | Dependency checksums |
34
- | `main.go` | Entrypoint: tea.NewProgram |
35
- | `Makefile` | Build/test/run shortcuts |
36
- | `cmd/` | CLI command setup |
37
- | `internal/board/` | Board TUI package |
38
- | `internal/data/` | Data reading/parsing package |
39
- | `internal/styles/` | Lip Gloss styles package |
@@ -1,42 +0,0 @@
1
- ---
2
- id: E01-go-setup/T001-init-module
3
- status: done
4
- objective: "Initialize Go module and add Bubble Tea + Lip Gloss dependencies"
5
- depends_on: []
6
- ---
7
-
8
- # T001: Initialize Go Module
9
-
10
- ## Acceptance Criteria
11
-
12
- - `go.mod` exists with module path.
13
- - `go.sum` exists with resolved dependencies.
14
- - `go build` compiles without errors.
15
-
16
- ## Implementation Plan
17
-
18
- - [x] Run `go mod init github.com/opencode/savepoint`.
19
- - [x] Add Bubble Tea: `go get github.com/charmbracelet/bubbletea`.
20
- - [x] Add Lip Gloss: `go get github.com/charmbracelet/lipgloss`.
21
- - [x] Add YAML parser: `go get gopkg.in/yaml.v3`.
22
- - [x] Run `go mod tidy`.
23
- - [x] Verify `go build` succeeds.
24
-
25
- ## Context Log
26
-
27
- Files read:
28
-
29
- - `.savepoint/router.md`
30
- - `.savepoint/releases/v1/epics/E01-go-setup/E01-Detail.md`
31
- - `.savepoint/releases/v1/epics/E01-go-setup/tasks/T001-init-module.md`
32
- - `go.mod`
33
- - `go.sum`
34
-
35
- Estimated input tokens: 4,000
36
-
37
- Notes:
38
-
39
- - `go.mod` exists with module path `github.com/opencode/savepoint`.
40
- - `go.sum` exists with resolved Bubble Tea, Lip Gloss, YAML, and transitive dependency checksums.
41
- - `go build ./...` passed during the E01 audit when run outside the sandbox because the Go build cache is outside the workspace.
42
- - `go test ./...` was not used as T001 evidence because the current failure is in active E02 data-reader test code, outside this task's scope.
@@ -1,23 +0,0 @@
1
- ---
2
- id: E01-go-setup/T002-entrypoint
3
- status: done
4
- objective: "Create main.go that launches a blank Bubble Tea program"
5
- depends_on: [E01-go-setup/T001-init-module]
6
- ---
7
-
8
- # T002: Create Entrypoint
9
-
10
- ## Acceptance Criteria
11
-
12
- - `main.go` exists and compiles.
13
- - Running the binary launches a Bubble Tea program.
14
- - Pressing `q` or `ctrl+c` exits cleanly.
15
- - No TypeScript files remain at project root.
16
-
17
- ## Implementation Plan
18
-
19
- - [x] Write `main.go` with `tea.NewProgram` and a minimal model.
20
- - [x] Implement `Init()`, `Update()`, `View()` on the model.
21
- - [x] Handle `tea.KeyMsg` for `q` and `ctrl+c`.
22
- - [x] Verify `go run main.go` launches and quits.
23
- - [x] Delete `src/`, `test/`, `dist/`, `package.json`, `node_modules/`, `tsconfig.json`, `tsup.config.ts`, `vitest.config.js`, `eslint.config.js`, `.prettierrc.json`.
@@ -1,24 +0,0 @@
1
- ---
2
- id: E01-go-setup/T003-directory-structure
3
- status: done
4
- objective: "Set up internal package directories"
5
- depends_on: [E01-go-setup/T002-entrypoint]
6
- ---
7
-
8
- # T003: Directory Structure
9
-
10
- ## Acceptance Criteria
11
-
12
- - `cmd/`, `internal/board/`, `internal/data/`, `internal/styles/` directories exist.
13
- - `main.go` lives at root and imports `internal/board`.
14
- - Build compiles with packages.
15
-
16
- ## Implementation Plan
17
-
18
- - [x] Create `cmd/` directory.
19
- - [x] Create `internal/board/` directory.
20
- - [x] Create `internal/data/` directory.
21
- - [x] Create `internal/styles/` directory.
22
- - [x] Move entrypoint logic into `internal/board/` package.
23
- - [x] Update `main.go` to delegate to `board.Run()`.
24
- - [x] Verify `go build`.
@@ -1,23 +0,0 @@
1
- ---
2
- id: E01-go-setup/T004-makefile
3
- status: done
4
- objective: "Create Makefile for build, test, run"
5
- depends_on: [E01-go-setup/T003-directory-structure]
6
- ---
7
-
8
- # T004: Makefile
9
-
10
- ## Acceptance Criteria
11
-
12
- - `Makefile` exists with `build`, `test`, `run`, `clean` targets.
13
- - `make build` produces a binary.
14
- - `make test` runs `go test ./...`.
15
-
16
- ## Implementation Plan
17
-
18
- - [x] Create `Makefile`.
19
- - [x] Add `build` target: `go build -o savepoint main.go`.
20
- - [x] Add `test` target: `go test ./...`.
21
- - [x] Add `run` target: `go run main.go`.
22
- - [x] Add `clean` target: `rm -f savepoint`.
23
- - [x] Verify all targets work.
@@ -1,61 +0,0 @@
1
- ---
2
- type: epic-design
3
- status: audited
4
- ---
5
-
6
- # Epic E02: Data Readers
7
-
8
- ## Purpose
9
-
10
- Read and parse the `.savepoint/` file structure in Go. Parse YAML frontmatter from task files, read router state, config theme, and discover releases/epics/tasks on disk.
11
-
12
- ## What this epic adds
13
-
14
- - Markdown frontmatter parser (`---\n...\n---`) using `gopkg.in/yaml.v3`.
15
- - Task struct with phase support.
16
- - Router state reader (`router.md` yaml block extraction).
17
- - Config reader (`config.yml` theme parsing).
18
- - Release/epic/task file discovery (walk directories).
19
- - Error types for missing files, malformed yaml, schema rejection.
20
-
21
- ## Definition of Done
22
-
23
- - Can read any task `.md` file and parse frontmatter into a Task struct.
24
- - Can read `router.md` and extract the Current state yaml block.
25
- - Can read `config.yml` and parse theme colors.
26
- - Can list all releases, epics within a release, and tasks within an epic.
27
- - All parsing functions have unit tests.
28
- - `go test ./internal/data/...` passes.
29
-
30
- ## Components and files
31
-
32
- ## Implemented As
33
-
34
- - `internal/data/task.go` defines task metadata, column, progress stage, dependency, and progress structs.
35
- - `internal/data/parser.go` extracts YAML frontmatter from markdown and maps task ID, objective/title, description, status/column, phase/stage, dependency, priority, points, tags, acceptance, notes, release, epic, and progress fields into `Task`.
36
- - `internal/data/router.go` extracts and parses the `## Current state` fenced YAML block from `router.md`.
37
- - `internal/data/config.go` reads `config.yml` theme values, fills missing theme fields from defaults, returns defaults when the file is missing, and surfaces malformed YAML/read errors.
38
- - `internal/data/discover.go` finds the `.savepoint` root and lists release, epic, and task directories in stable order.
39
- - `internal/data/errors.go` defines shared parser/discovery boundary error sentinels.
40
-
41
- ## Audit Reconciliation
42
-
43
- - Fixed parser field coverage for `status`, `phase`, `depends_on`, and the remaining task metadata fields covered by the `Task` struct.
44
- - Fixed config boundary behavior so missing files default while malformed YAML and read errors are returned.
45
- - Replaced discovery tests that depended on the live repository with deterministic temporary fixtures.
46
- - Added parser tests for malformed YAML and task metadata mapping.
47
- - Added the planned `internal/data/errors.go` boundary error file.
48
-
49
- | Path | Purpose |
50
- |------|---------|
51
- | `internal/data/task.go` | Task struct, frontmatter parsing |
52
- | `internal/data/parser.go` | Markdown YAML frontmatter extraction |
53
- | `internal/data/router.go` | Router state reader |
54
- | `internal/data/config.go` | Config/theme reader |
55
- | `internal/data/discover.go` | Directory walking, file discovery |
56
- | `internal/data/errors.go` | Error types |
57
- | `internal/data/parser_test.go` | Frontmatter parser tests |
58
- | `internal/data/config_test.go` | Config parsing tests |
59
- | `internal/data/task_test.go` | Task parsing tests |
60
- | `internal/data/router_test.go` | Router parsing tests |
61
- | `internal/data/discover_test.go` | Discovery tests |