savepoint 1.0.3 → 1.0.6

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 (418) hide show
  1. package/package.json +10 -3
  2. package/{savepoint → savepoint.exe} +0 -0
  3. package/.claude/settings.local.json +0 -38
  4. package/.golangci.yml +0 -11
  5. package/.prettierignore +0 -4
  6. package/.savepoint/Design.md +0 -206
  7. package/.savepoint/PRD.md +0 -58
  8. package/.savepoint/config.yml +0 -27
  9. package/.savepoint/releases/v1/epics/E01-go-setup/E01-Detail.md +0 -39
  10. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T001-init-module.md +0 -42
  11. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T002-entrypoint.md +0 -23
  12. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T003-directory-structure.md +0 -24
  13. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T004-makefile.md +0 -23
  14. package/.savepoint/releases/v1/epics/E02-data-readers/E02-Detail.md +0 -61
  15. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T001-task-struct.md +0 -29
  16. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T002-frontmatter-parser.md +0 -30
  17. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T003-router-reader.md +0 -29
  18. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T004-config-reader.md +0 -29
  19. package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T005-discovery.md +0 -30
  20. package/.savepoint/releases/v1/epics/E03-board-tui-core/E03-Detail.md +0 -38
  21. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T001-model.md +0 -29
  22. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T002-update-loop.md +0 -30
  23. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T003-view.md +0 -34
  24. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T004-styles.md +0 -29
  25. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T005-layout.md +0 -42
  26. package/.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md +0 -44
  27. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T001-column.md +0 -34
  28. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T002-card.md +0 -33
  29. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T003-epic-panel.md +0 -49
  30. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T004-detail-overlay.md +0 -40
  31. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T005-release-dropdown.md +0 -33
  32. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T006-help-overlay.md +0 -34
  33. package/.savepoint/releases/v1/epics/E05-phase-transitions/E05-Detail.md +0 -38
  34. package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T001-phase-stepping.md +0 -29
  35. package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T002-gates.md +0 -31
  36. package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T003-write-task.md +0 -31
  37. package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T004-write-router.md +0 -31
  38. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/E06-Detail.md +0 -62
  39. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T001-color-system.md +0 -39
  40. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T002-header-and-dividers.md +0 -52
  41. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T003-footer-status-bar.md +0 -52
  42. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T004-component-refinement.md +0 -53
  43. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T005-restore-nav-hints.md +0 -39
  44. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T007-detail-card-fixes.md +0 -36
  45. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T008-checkbox-states.md +0 -40
  46. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T009-router-priority-marker.md +0 -48
  47. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T010-auto-refresh-watcher.md +0 -66
  48. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/Design.md +0 -39
  49. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T001-archive-epics.md +0 -20
  50. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T002-rewrite-prd.md +0 -22
  51. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T003-create-epic-stubs.md +0 -24
  52. package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T004-update-router.md +0 -22
  53. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/Design.md +0 -118
  54. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/handoff.md +0 -9
  55. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T001-package-baseline.md +0 -45
  56. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T002-typescript-build.md +0 -48
  57. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T003-vitest-smoke.md +0 -43
  58. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T004-lint-format-gates.md +0 -45
  59. package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T005-scaffold-verification.md +0 -40
  60. package/.savepoint/releases/v1/epics/_archived/E02-data-model/Design.md +0 -142
  61. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T001-domain-ids-status.md +0 -27
  62. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T002-markdown-frontmatter-boundary.md +0 -28
  63. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T003-task-documents.md +0 -29
  64. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T004-release-epic-router-config-readers.md +0 -30
  65. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T005-dependency-validation.md +0 -29
  66. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T006-epic-task-set-reader.md +0 -29
  67. package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T007-quality-gates.md +0 -31
  68. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/Design.md +0 -40
  69. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T001-phase-types.md +0 -27
  70. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T002-phase-frontmatter.md +0 -25
  71. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T003-simplify-config.md +0 -26
  72. package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T004-simplify-router-domain.md +0 -24
  73. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/Design.md +0 -122
  74. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T001-argument-parser-contract.md +0 -28
  75. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T002-help-text-generation.md +0 -28
  76. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T003-terminal-environment-detection.md +0 -27
  77. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T004-command-stub-modules.md +0 -29
  78. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T005-cli-runner-dispatch.md +0 -34
  79. package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T006-entrypoint-quality-gates.md +0 -32
  80. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/Design.md +0 -43
  81. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T001-strip-args.md +0 -26
  82. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T002-strip-help.md +0 -23
  83. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T003-strip-run.md +0 -23
  84. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T004-delete-commands.md +0 -24
  85. package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T005-update-cli-tests.md +0 -22
  86. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/Design.md +0 -48
  87. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T001-board-data-phases.md +0 -26
  88. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T002-phase-rendering.md +0 -28
  89. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T003-detail-pane-phases.md +0 -27
  90. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T004-phase-transitions.md +0 -42
  91. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T005-phase-gates.md +0 -24
  92. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T006-phase-write-back.md +0 -24
  93. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T007-remove-audit-flow.md +0 -27
  94. package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T008-board-tests.md +0 -25
  95. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/Design.md +0 -85
  96. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T001-project-template-assets.md +0 -17
  97. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T002-release-and-prompt-assets.md +0 -20
  98. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T003-template-registry-renderer.md +0 -22
  99. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T004-template-integrity-tests.md +0 -17
  100. package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T005-template-closeout-quality-gates.md +0 -16
  101. package/.savepoint/releases/v1/epics/_archived/E05-init-command/Design.md +0 -88
  102. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T001-init-cli-contract.md +0 -22
  103. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T002-target-validation.md +0 -23
  104. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T003-scaffold-writer.md +0 -24
  105. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T004-magic-prompt-and-clipboard.md +0 -23
  106. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T005-dev-deps-install-option.md +0 -24
  107. package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T006-init-command-integration.md +0 -28
  108. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/Design.md +0 -53
  109. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T001-delete-dead-src.md +0 -23
  110. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T002-delete-dead-tests.md +0 -26
  111. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T003-delete-assets.md +0 -25
  112. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T004-clean-savepoint.md +0 -28
  113. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T005-rewrite-agents-md.md +0 -28
  114. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T006-clean-package-json.md +0 -23
  115. package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T007-verify.md +0 -25
  116. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/Design.md +0 -104
  117. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T001-board-command-data.md +0 -23
  118. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T002-board-view-state.md +0 -24
  119. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T003-transition-gates-and-writes.md +0 -25
  120. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T004-terminal-theme.md +0 -23
  121. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T005-ink-board-ui.md +0 -26
  122. package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T006-board-integration-audit-entry.md +0 -24
  123. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/Design.md +0 -88
  124. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T001-audit-cli-contract.md +0 -23
  125. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T002-quality-gate-runner.md +0 -23
  126. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T003-snapshot-and-prompt.md +0 -23
  127. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T004-audit-orchestration-router.md +0 -27
  128. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T005-proposal-validation-apply.md +0 -25
  129. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T006-audit-review-state.md +0 -24
  130. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T007-audit-review-ui.md +0 -26
  131. package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T008-audit-pipeline-integration.md +0 -24
  132. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/Design.md +0 -103
  133. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T001-acceptance-criteria-model.md +0 -30
  134. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T002-release-task-set-reader.md +0 -33
  135. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T003-board-data-and-plain-output.md +0 -34
  136. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T004-board-selection-state.md +0 -33
  137. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T005-ink-board-layout-cleanup.md +0 -37
  138. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T006-task-detail-popup.md +0 -36
  139. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T007-templates-acceptance-criteria.md +0 -34
  140. package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T008-board-workflow-integration.md +0 -41
  141. package/.savepoint/releases/v1/epics/_archived/E09-doctor-command/Design.md +0 -70
  142. package/.savepoint/releases/v1/epics/_archived/E10-docs-and-packaging/Design.md +0 -68
  143. package/.savepoint/releases/v1/epics/_archived/E11-release-validation/Design.md +0 -68
  144. package/.savepoint/releases/v1/v1-PRD.md +0 -66
  145. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/E01-Detail.md +0 -40
  146. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T001-next-activity-header.md +0 -56
  147. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T002-rename-epic-design-files.md +0 -38
  148. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T003-rename-release-prd.md +0 -28
  149. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T004-update-instruction-files.md +0 -51
  150. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T005-update-cross-references.md +0 -45
  151. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T006-column-and-detail-scrolling.md +0 -68
  152. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T007-column-focus-border-stability.md +0 -57
  153. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Audit.md +0 -124
  154. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Detail.md +0 -49
  155. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T001-fix-makefile.md +0 -37
  156. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T002-linux-build-target.md +0 -38
  157. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T003-macos-build-target.md +0 -36
  158. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T004-smoke-tests-and-artifacts.md +0 -59
  159. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/E03-Audit.md +0 -195
  160. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/E03-Detail.md +0 -45
  161. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T001-border-resize-fix.md +0 -40
  162. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T002-next-activity-below-header.md +0 -64
  163. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T003-checkbox-rendering-fix.md +0 -56
  164. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T005-unify-status-glyphs.md +0 -65
  165. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T006-forced-256-color-profile.md +0 -36
  166. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Audit.md +0 -167
  167. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Detail.md +0 -51
  168. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T001-sidebar-focusable-navigation.md +0 -65
  169. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T002-epic-detail-overlay.md +0 -73
  170. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T003-epic-status-glyphs.md +0 -73
  171. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Audit.md +0 -237
  172. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Detail.md +0 -54
  173. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T001-update-agents-md.md +0 -45
  174. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T002-update-router-md.md +0 -40
  175. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T003-update-design-md.md +0 -47
  176. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T004-implement-m-hotkey.md +0 -98
  177. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T005-update-help-overlay.md +0 -33
  178. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T006-tests-and-quality-gates.md +0 -62
  179. package/.savepoint/releases/v1.1/epics/E06-audit-command/E06-Audit.md +0 -56
  180. package/.savepoint/releases/v1.1/epics/E06-audit-command/E06-Detail.md +0 -63
  181. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T005-proposals.md +0 -44
  182. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T007-apply-close.md +0 -35
  183. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T009-integration.md +0 -40
  184. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T010-audit-file-migration.md +0 -45
  185. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T011-model-tab-state.md +0 -26
  186. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T012-epic-audit-render.md +0 -33
  187. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T013-handle-tab-keys.md +0 -34
  188. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T014-tab-indicator.md +0 -33
  189. package/.savepoint/releases/v1.1/epics/E07-init-command/E07-Audit.md +0 -336
  190. package/.savepoint/releases/v1.1/epics/E07-init-command/E07-Detail.md +0 -61
  191. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T001-cli-entrypoint.md +0 -37
  192. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T002-target-validation.md +0 -28
  193. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T003-scaffold-writer.md +0 -46
  194. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T004-atomic-writes.md +0 -27
  195. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T005-magic-prompt.md +0 -25
  196. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T006-clipboard.md +0 -26
  197. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T007-integration-test.md +0 -26
  198. package/.savepoint/releases/v1.1/epics/E08-board-command/E08-Audit.md +0 -333
  199. package/.savepoint/releases/v1.1/epics/E08-board-command/E08-Detail.md +0 -68
  200. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T001-cli-entrypoint.md +0 -26
  201. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T002-non-tty-fallback.md +0 -27
  202. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T003-tui-app-shell.md +0 -28
  203. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T004-board-model.md +0 -29
  204. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T005-detail-pane.md +0 -27
  205. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T006-status-transitions.md +0 -29
  206. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T007-theme-fallbacks.md +0 -29
  207. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T008-integration-test.md +0 -27
  208. package/.savepoint/releases/v1.1/epics/E09-doctor-command/E09-Audit.md +0 -207
  209. package/.savepoint/releases/v1.1/epics/E09-doctor-command/E09-Detail.md +0 -65
  210. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T001-cli-entrypoint.md +0 -24
  211. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T002-config-router-validation.md +0 -28
  212. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T003-structure-checks.md +0 -29
  213. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T004-dependency-checks.md +0 -27
  214. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T005-audit-orphan-checks.md +0 -28
  215. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T006-quality-gates-report.md +0 -31
  216. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/E11-Detail.md +0 -36
  217. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T001-debug-logging.md +0 -25
  218. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T002-increase-debounce.md +0 -21
  219. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T003-error-handling.md +0 -22
  220. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T004-test-verify.md +0 -29
  221. package/.savepoint/releases/v1.1/epics/E12-validation-fix/E12-Audit.md +0 -444
  222. package/.savepoint/releases/v1.1/epics/E12-validation-fix/E12-Detail.md +0 -45
  223. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T001-default-phase.md +0 -35
  224. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T002-default-status.md +0 -19
  225. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T003-better-errors.md +0 -29
  226. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T004-validate-on-write.md +0 -25
  227. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T005-tests.md +0 -37
  228. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/E13-Audit.md +0 -118
  229. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/E13-Detail.md +0 -73
  230. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T001-safe-cleanup.md +0 -66
  231. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T002-bug-fixes.md +0 -35
  232. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T003-centralize-duplication.md +0 -60
  233. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T004-infrastructure.md +0 -33
  234. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T005-decompose-update.md +0 -37
  235. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T006-async-io.md +0 -40
  236. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T007-test-coverage.md +0 -37
  237. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Audit.md +0 -267
  238. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Detail.md +0 -54
  239. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T001-group-model.md +0 -39
  240. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T002-data-interfaces.md +0 -42
  241. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T003-discover-orphans.md +0 -33
  242. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T004-epic-panel-headings.md +0 -35
  243. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T005-shell-tokenization.md +0 -27
  244. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T006-unify-enums.md +0 -29
  245. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T007-testutil-package.md +0 -28
  246. package/.savepoint/releases/v1.1/epics/E15-hardening/E15-Detail.md +0 -43
  247. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T001-benchmarks.md +0 -31
  248. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T002-fuzz-targets.md +0 -28
  249. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T003-debug-flag.md +0 -30
  250. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T004-dist-checksums.md +0 -27
  251. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T005-windows-targets.md +0 -28
  252. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T006-abbreviation-splitting.md +0 -26
  253. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T007-root-test-allowlist.md +0 -28
  254. package/.savepoint/releases/v1.1/epics/_archived/T001-cli-entrypoint.md +0 -25
  255. package/.savepoint/releases/v1.1/epics/_archived/T002-quality-gates.md +0 -27
  256. package/.savepoint/releases/v1.1/epics/_archived/T003-snapshot.md +0 -27
  257. package/.savepoint/releases/v1.1/epics/_archived/T004-ai-reconcile.md +0 -29
  258. package/.savepoint/releases/v1.1/epics/_archived/T006-tui-review.md +0 -31
  259. package/.savepoint/releases/v1.1/epics/_archived/T008-skip-handling.md +0 -34
  260. package/.savepoint/releases/v1.1/v1.1-PRD.md +0 -139
  261. package/.savepoint/router.md +0 -57
  262. package/.savepoint/visual-identity.md +0 -125
  263. package/AGENTS.md +0 -99
  264. package/CLAUDE.md +0 -1
  265. package/GEMINI.md +0 -1
  266. package/Makefile +0 -29
  267. package/agent-skills/ink-tui-design/SKILL.md +0 -309
  268. package/agent-skills/ink-tui-design/references/component-patterns.md +0 -371
  269. package/agent-skills/ink-tui-design/references/hooks-guide.md +0 -436
  270. package/agent-skills/ink-tui-design/references/ink-gotchas.md +0 -330
  271. package/agent-skills/ink-tui-design/references/testing-patterns.md +0 -384
  272. package/agent-skills/savepoint-audit/SKILL.md +0 -87
  273. package/agent-skills/savepoint-build-task/SKILL.md +0 -44
  274. package/agent-skills/savepoint-create-plan/SKILL.md +0 -33
  275. package/agent-skills/savepoint-create-task/SKILL.md +0 -44
  276. package/agent-skills/savepoint-draft-prd/SKILL.md +0 -37
  277. package/agent-skills/savepoint-system-design/SKILL.md +0 -38
  278. package/agent-skills/superpowers/brainstorming/SKILL.md +0 -165
  279. package/agent-skills/superpowers/brainstorming/visual-companion.md +0 -304
  280. package/agent-skills/superpowers/dispatching-parallel-agents/SKILL.md +0 -193
  281. package/agent-skills/superpowers/executing-plans/SKILL.md +0 -77
  282. package/agent-skills/superpowers/finishing-a-development-branch/SKILL.md +0 -213
  283. package/agent-skills/superpowers/receiving-code-review/SKILL.md +0 -226
  284. package/agent-skills/superpowers/requesting-code-review/SKILL.md +0 -115
  285. package/agent-skills/superpowers/requesting-code-review/code-reviewer.md +0 -160
  286. package/agent-skills/superpowers/subagent-driven-development/SKILL.md +0 -292
  287. package/agent-skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +0 -27
  288. package/agent-skills/superpowers/subagent-driven-development/implementer-prompt.md +0 -113
  289. package/agent-skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +0 -61
  290. package/agent-skills/superpowers/systematic-debugging/SKILL.md +0 -305
  291. package/agent-skills/superpowers/systematic-debugging/condition-based-waiting.md +0 -122
  292. package/agent-skills/superpowers/systematic-debugging/defense-in-depth.md +0 -130
  293. package/agent-skills/superpowers/systematic-debugging/root-cause-tracing.md +0 -183
  294. package/agent-skills/superpowers/test-driven-development/SKILL.md +0 -389
  295. package/agent-skills/superpowers/test-driven-development/testing-anti-patterns.md +0 -317
  296. package/agent-skills/superpowers/verification-before-completion/SKILL.md +0 -147
  297. package/agent-skills/superpowers/writing-plans/SKILL.md +0 -159
  298. package/agent-skills/superpowers/writing-plans/plan-document-reviewer-prompt.md +0 -49
  299. package/agent_skills_test.go +0 -91
  300. package/assets/banner.png +0 -0
  301. package/assets/logo.png +0 -0
  302. package/assets/strawman.png +0 -0
  303. package/cmd/board.go +0 -59
  304. package/cmd/board_test.go +0 -137
  305. package/cmd/doctor.go +0 -53
  306. package/cmd/doctor_test.go +0 -146
  307. package/cmd/init.go +0 -63
  308. package/cmd/init_test.go +0 -104
  309. package/go.mod +0 -36
  310. package/go.sum +0 -75
  311. package/internal/board/board.go +0 -177
  312. package/internal/board/board_test.go +0 -168
  313. package/internal/board/card.go +0 -129
  314. package/internal/board/card_test.go +0 -254
  315. package/internal/board/column.go +0 -127
  316. package/internal/board/column_test.go +0 -139
  317. package/internal/board/detail.go +0 -185
  318. package/internal/board/detail_test.go +0 -340
  319. package/internal/board/epic_panel.go +0 -262
  320. package/internal/board/epic_panel_test.go +0 -869
  321. package/internal/board/help.go +0 -41
  322. package/internal/board/help_test.go +0 -86
  323. package/internal/board/integration_test.go +0 -266
  324. package/internal/board/interfaces.go +0 -65
  325. package/internal/board/interfaces_test.go +0 -114
  326. package/internal/board/io.go +0 -93
  327. package/internal/board/layout.go +0 -68
  328. package/internal/board/layout_test.go +0 -106
  329. package/internal/board/model.go +0 -235
  330. package/internal/board/model_test.go +0 -67
  331. package/internal/board/plain.go +0 -88
  332. package/internal/board/plain_test.go +0 -117
  333. package/internal/board/release.go +0 -34
  334. package/internal/board/release_test.go +0 -177
  335. package/internal/board/render_policy_test.go +0 -77
  336. package/internal/board/status.go +0 -23
  337. package/internal/board/theme.go +0 -24
  338. package/internal/board/theme_test.go +0 -31
  339. package/internal/board/transitions.go +0 -113
  340. package/internal/board/transitions_test.go +0 -164
  341. package/internal/board/tui.go +0 -32
  342. package/internal/board/update.go +0 -556
  343. package/internal/board/update_test.go +0 -575
  344. package/internal/board/util.go +0 -76
  345. package/internal/board/view.go +0 -317
  346. package/internal/board/view_test.go +0 -315
  347. package/internal/board/watch.go +0 -130
  348. package/internal/buildtool/main.go +0 -211
  349. package/internal/buildtool/main_test.go +0 -46
  350. package/internal/data/config.go +0 -101
  351. package/internal/data/config_test.go +0 -122
  352. package/internal/data/discover.go +0 -178
  353. package/internal/data/discover_test.go +0 -130
  354. package/internal/data/errors.go +0 -13
  355. package/internal/data/lifecycle.go +0 -44
  356. package/internal/data/lifecycle_test.go +0 -41
  357. package/internal/data/parser.go +0 -242
  358. package/internal/data/parser_test.go +0 -281
  359. package/internal/data/router.go +0 -52
  360. package/internal/data/router_test.go +0 -35
  361. package/internal/data/task.go +0 -57
  362. package/internal/data/task_test.go +0 -51
  363. package/internal/data/write.go +0 -218
  364. package/internal/data/write_test.go +0 -623
  365. package/internal/doctor/checks.go +0 -567
  366. package/internal/doctor/checks_test.go +0 -716
  367. package/internal/doctor/gates.go +0 -193
  368. package/internal/doctor/gates_test.go +0 -166
  369. package/internal/doctor/interfaces.go +0 -64
  370. package/internal/doctor/interfaces_test.go +0 -104
  371. package/internal/doctor/repairs.go +0 -80
  372. package/internal/doctor/repairs_test.go +0 -81
  373. package/internal/doctor/report.go +0 -157
  374. package/internal/doctor/report_test.go +0 -89
  375. package/internal/init/clipboard.go +0 -146
  376. package/internal/init/clipboard_test.go +0 -74
  377. package/internal/init/install.go +0 -16
  378. package/internal/init/integration_test.go +0 -197
  379. package/internal/init/prompt.go +0 -14
  380. package/internal/init/prompt_test.go +0 -77
  381. package/internal/init/scaffold.go +0 -59
  382. package/internal/init/scaffold_test.go +0 -179
  383. package/internal/init/template_freshness_test.go +0 -56
  384. package/internal/init/validate.go +0 -85
  385. package/internal/init/validate_test.go +0 -141
  386. package/internal/init/write.go +0 -73
  387. package/internal/init/write_test.go +0 -91
  388. package/internal/styles/palette.go +0 -49
  389. package/internal/styles/styles.go +0 -139
  390. package/internal/styles/styles_test.go +0 -133
  391. package/internal/testutil/fixture.go +0 -113
  392. package/internal/testutil/fs.go +0 -26
  393. package/main.go +0 -117
  394. package/project-audit/audit_report_glm_5.1.md +0 -411
  395. package/project-audit/audit_report_opus_4.6 +0 -406
  396. package/project-audit/consolidated-audit-report.md +0 -456
  397. package/scripts/vitest-preload.cjs +0 -95
  398. package/templates/project/.savepoint/Design.md +0 -47
  399. package/templates/project/.savepoint/PRD.md +0 -34
  400. package/templates/project/.savepoint/config.yml +0 -27
  401. package/templates/project/.savepoint/router.md +0 -153
  402. package/templates/project/.savepoint/visual-identity.md +0 -122
  403. package/templates/project/AGENTS.md +0 -88
  404. package/templates/project/agent-skills/savepoint-audit/SKILL.md +0 -87
  405. package/templates/project/agent-skills/savepoint-build-task/SKILL.md +0 -44
  406. package/templates/project/agent-skills/savepoint-create-plan/SKILL.md +0 -33
  407. package/templates/project/agent-skills/savepoint-create-task/SKILL.md +0 -44
  408. package/templates/project/agent-skills/savepoint-draft-prd/SKILL.md +0 -37
  409. package/templates/project/agent-skills/savepoint-system-design/SKILL.md +0 -38
  410. package/templates/prompts/audit-reconciliation.prompt.md +0 -72
  411. package/templates/prompts/design.prompt.md +0 -45
  412. package/templates/prompts/epic-design.prompt.md +0 -43
  413. package/templates/prompts/magic-prompt.prompt.md +0 -7
  414. package/templates/prompts/prd.prompt.md +0 -42
  415. package/templates/prompts/task-breakdown.prompt.md +0 -54
  416. package/templates/prompts/task-building.prompt.md +0 -38
  417. package/templates/prompts/task-planning.prompt.md +0 -53
  418. package/templates/release/v1/PRD.md +0 -37
@@ -1,25 +0,0 @@
1
- ---
2
- id: E06-tui-board/T003-transition-gates-and-writes
3
- status: done
4
- objective: "Add task transition gate evaluation and optimistic mtime-safe status writes for board actions."
5
- depends_on:
6
- - E06-tui-board/T001-board-command-data
7
- - E06-tui-board/T002-board-view-state
8
- ---
9
-
10
- # T003: transition-gates-and-writes
11
-
12
- ## Implementation Plan
13
-
14
- - [x] Add pure gate evaluation that combines `validateTransition()` with dependency rules so tasks cannot advance when required dependencies are not `done`.
15
- - [x] Return structured gate results that the TUI can display without duplicating workflow logic in rendering components.
16
- - [x] Add `src/tui/io/` helpers that read a task file's mtime before action and verify it is unchanged immediately before writing.
17
- - [x] Update only the task frontmatter `status` field while preserving the task body and unrelated frontmatter fields.
18
- - [x] Surface stale mtime conflicts as non-destructive action results that require a manual refresh before retry.
19
- - [x] Add tests for allowed transitions, blocked dependencies, disallowed status jumps, successful status write preservation, and stale mtime conflict handling without relying on real-time delays.
20
-
21
- ## Context Log
22
-
23
- - Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E06-tui-board/Design.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T003-transition-gates-and-writes.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T001-board-command-data.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T002-board-view-state.md`; `.savepoint/metrics/context-bench.md`; `package.json`; `tsconfig.json`; `vitest.config.js`; `src/domain/status.ts`; `src/domain/task.ts`; `src/domain/ids.ts`; `src/validation/dependencies.ts`; `src/fs/markdown.ts`; `src/readers/tasks.ts`; `src/commands/board.ts`; `src/tui/board-data.ts`; `src/tui/state/reducer.ts`; `src/tui/state/view-state.ts`; `src/tui/render/plain-table.ts`; `test/tui/state/reducer.test.ts`; `test/tui/render/plain-table.test.ts`; `test/fs/markdown.test.ts`
24
- - Estimated input tokens: ~19,630
25
- - Notes: Implementation rehydrated from router, E06 Design, task file, and directly touched source/test files. Extended `MarkdownDoc` with `rawFrontmatter` to preserve extra frontmatter fields during status writes. Gate evaluator allows idempotent same-status transitions and blocks only forward moves with undone dependencies.
@@ -1,23 +0,0 @@
1
- ---
2
- id: E06-tui-board/T004-terminal-theme
3
- status: done
4
- objective: "Load board theme tokens from config and map them into deterministic terminal color palettes for rich and fallback environments."
5
- depends_on:
6
- - E06-tui-board/T001-board-command-data
7
- ---
8
-
9
- # T004: terminal-theme
10
-
11
- ## Implementation Plan
12
-
13
- - [x] Add `src/tui/theme/` modules that consume `SavepointConfig["theme"]` and expose board-specific semantic tokens for statuses, borders, text, focus, and blocked states.
14
- - [x] Implement terminal color capability mapping for 24-bit, 256-color, 16-color, `NO_COLOR=1`, `FORCE_COLOR`, `TERM=dumb`, and non-TTY plain output.
15
- - [x] Keep color fallback data deterministic and separate from Ink components so render tests can avoid full-screen snapshots.
16
- - [x] Respect configured border style values while preserving readable defaults when config values are missing or colors are disabled.
17
- - [x] Add tests for config defaults, custom accents, no-color mode, dumb terminals, and reduced palettes.
18
-
19
- ## Context Log
20
-
21
- - Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E06-tui-board/Design.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T004-terminal-theme.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T003-transition-gates-and-writes.md`; `package.json`; `tsconfig.json`; `src/domain/config.ts`; `src/cli/environment.ts`; `src/commands/board.ts`; `src/domain/status.ts`; `src/tui/board-data.ts`; `src/tui/render/plain-table.ts`; `src/tui/state/view-state.ts`; `src/tui/state/reducer.ts`; `src/tui/io/gates.ts`; `src/tui/io/write-status.ts`; `test/tui/state/reducer.test.ts`; `test/tui/render/plain-table.test.ts`
22
- - Estimated input tokens: ~14,752
23
- - Notes: Implemented theme capability detection, 256/16 color approximation, and palette builder with semantic tokens. Rehydrated from router, E06 Design, T004 task, T003 task for dependency state, and directly touched source/test files.
@@ -1,26 +0,0 @@
1
- ---
2
- id: E06-tui-board/T005-ink-board-ui
3
- status: done
4
- objective: "Build the Ink board UI shell with keyboard navigation, detail pane, manual refresh, and transition actions."
5
- depends_on:
6
- - E06-tui-board/T002-board-view-state
7
- - E06-tui-board/T003-transition-gates-and-writes
8
- - E06-tui-board/T004-terminal-theme
9
- ---
10
-
11
- # T005: ink-board-ui
12
-
13
- ## Implementation Plan
14
-
15
- - [x] Add the minimum Ink and React dependencies and TypeScript configuration needed for `src/tui/**/*.tsx` while keeping the CLI build ESM-compatible on Node 20.
16
- - [x] Implement `src/tui/App.tsx` as the stateful app root that receives initial board data, theme, refresh/write callbacks, and terminal capability data.
17
- - [x] Implement `src/tui/Board.tsx` with five compact status columns, selected-task focus treatment, empty-column states, and keyboard hints that do not dominate the screen.
18
- - [x] Implement `src/tui/DetailPane.tsx` for selected task objective, status, dependencies, gate state, and last action/conflict messages.
19
- - [x] Wire arrow keys, vim-style navigation, manual `r` refresh, and transition actions through the pure reducer and IO helpers.
20
- - [x] Add focused tests around reducer-connected interaction behavior and component output where deterministic, avoiding brittle full-screen TUI snapshots.
21
-
22
- ## Context Log
23
-
24
- - Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E06-tui-board/Design.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T005-ink-board-ui.md`; `.savepoint/visual-identity.md`; `.savepoint/metrics/context-bench.md`; `package.json`; `tsconfig.json`; `vitest.config.js`; `src/commands/board.ts`; `src/cli/run.ts`; `src/cli/environment.ts`; `src/domain/config.ts`; `src/domain/ids.ts`; `src/domain/status.ts`; `src/domain/task.ts`; `src/fs/project.ts`; `src/readers/tasks.ts`; `src/tui/board-data.ts`; `src/tui/state/reducer.ts`; `src/tui/state/view-state.ts`; `src/tui/theme/index.ts`; `src/tui/theme/palette.ts`; `src/tui/theme/capability.ts`; `src/tui/io/gates.ts`; `src/tui/io/write-status.ts`; `src/tui/render/plain-table.ts`; `test/tui/state/reducer.test.ts`; `test/tui/io/gates.test.ts`; `test/tui/io/write-status.test.ts`; `test/tui/render/plain-table.test.ts`; `test/tui/theme/capability.test.ts`; `test/tui/theme/palette.test.ts`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T002-board-view-state.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T003-transition-gates-and-writes.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T004-terminal-theme.md`
25
- - Estimated input tokens: ~18,000
26
- - Notes: Rehydrated from router, E06 Design, T005 task, prerequisite task files (T002-T004), visual-identity, and directly touched source/test files. Added Ink 7 + React 19 with JSX support, extended EnvMap with COLORTERM, and built App/Board/DetailPane components with keyboard-driven navigation and transition actions.
@@ -1,24 +0,0 @@
1
- ---
2
- id: E06-tui-board/T006-board-integration-audit-entry
3
- status: done
4
- objective: "Integrate the rich board command end to end and add the initial audit-review entry point when audit proposals are present."
5
- depends_on:
6
- - E06-tui-board/T005-ink-board-ui
7
- ---
8
-
9
- # T006: board-integration-audit-entry
10
-
11
- ## Implementation Plan
12
-
13
- - [x] Update `runBoard()` so TTY sessions launch the Ink app and non-TTY sessions use the plain table fallback from T001.
14
- - [x] Ensure command execution handles missing project files, task graph errors, config errors, refresh failures, write conflicts, and user exit with clear stdout/stderr behavior.
15
- - [x] Add audit proposal discovery for the active epic and expose an initial board entry point when `.savepoint/audit/{epic}/proposals.md` exists.
16
- - [x] Keep audit-review behavior limited to entry signaling and navigation handoff; leave full proposal diff review to `E07-audit-pipeline`.
17
- - [x] Add integration tests for TTY vs non-TTY dispatch, fallback rendering, audit-entry detection, and unchanged help/unknown-flag behavior.
18
- - [x] Run the focused TUI/CLI tests first, then run typecheck, lint, format check, build, and the smoke suite before moving the task to review.
19
-
20
- ## Context Log
21
-
22
- - Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E06-tui-board/Design.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T006-board-integration-audit-entry.md`; `.savepoint/metrics/context-bench.md`; `package.json`; `vitest.config.js`; `src/commands/board.ts`; `src/cli/run.ts`; `src/cli/environment.ts`; `src/cli/help.ts`; `src/commands/audit.ts`; `src/tui/App.tsx`; `src/tui/board-data.ts`; `src/tui/Board.tsx`; `src/tui/DetailPane.tsx`; `src/tui/io/gates.ts`; `src/tui/io/write-status.ts`; `src/tui/render/plain-table.ts`; `src/tui/state/app-reducer.ts`; `src/tui/state/reducer.ts`; `src/tui/state/view-state.ts`; `src/tui/theme/capability.ts`; `src/tui/theme/palette.ts`; `src/fs/project.ts`; `test/cli/run.test.ts`; `test/commands/board.test.ts`; `test/commands/board-tty.test.ts`; `test/tui/state/app-reducer.test.ts`; `test/tui/render/plain-table.test.ts`; `test/tui/state/reducer.test.ts`
23
- - Estimated input tokens: ~28,568
24
- - Notes: Implemented audit proposal discovery, plain-table signal, Ink banner and key handler, and handoff message. Added board-tty integration tests with mocked ink. All quality gates passed.
@@ -1,88 +0,0 @@
1
- ---
2
- type: epic-design
3
- status: audited
4
- ---
5
-
6
- # Epic E07: audit-pipeline
7
-
8
- ## Purpose
9
-
10
- Implement `savepoint audit`, the hard gate that reconciles built code with Savepoint documentation before the next epic can start. This epic ships the v0.1.0 audit loop without AI semantic review content.
11
-
12
- ## What this epic adds
13
-
14
- - Quality gate runner for configured lint, typecheck, and test commands.
15
- - Gitignore-respecting snapshot generation.
16
- - Changed-files listing without embedding code contents in the snapshot.
17
- - Router transition into audit-pending state.
18
- - Audit prompt output for the user to give to an AI agent.
19
- - Proposal directory creation.
20
- - TUI review mode for approving, rejecting, or editing proposed documentation updates.
21
- - Commit step that applies approved proposals to live files.
22
- - Audit log entries, including skipped audits and reasons.
23
-
24
- ## Components and files
25
-
26
- Expected files introduced or extended by this epic:
27
-
28
- | Path | Purpose |
29
- | ------------------------------ | ----------------------------------------------- |
30
- | `src/commands/audit.ts` | Audit command entrypoint. |
31
- | `src/audit/quality-gates.ts` | Configured command runner. |
32
- | `src/audit/snapshot.ts` | File tree and changed-file snapshot generation. |
33
- | `src/audit/router-state.ts` | Audit-pending state updates. |
34
- | `src/audit/prompts.ts` | Audit handoff prompt generation. |
35
- | `src/audit/proposals.ts` | Proposal discovery and validation. |
36
- | `src/audit/apply-proposals.ts` | Approved proposal application. |
37
- | `src/audit/log.ts` | Audit log writes. |
38
- | `src/tui/audit-review/*.tsx` | Proposal review UI. |
39
- | `test/audit/**/*.test.ts` | Audit pipeline tests. |
40
-
41
- ## Implemented as
42
-
43
- - `src/commands/audit.ts` resolves the target epic from `--epic` or router state, supports `--skip --reason`, runs configured quality gates, writes bounded audit artifacts, transitions the router into `audit-pending`, logs audit events, and prints the audit handoff prompt.
44
- - `src/audit/quality-gates.ts`, `snapshot.ts`, `router-state.ts`, `prompts.ts`, `proposals.ts`, `apply-proposals.ts`, and `log.ts` keep audit gates, snapshot generation, router updates, prompt text, proposal parsing, proposal application, and audit logging separately testable.
45
- - `src/commands/board.ts` detects proposal availability and launches `src/tui/audit-review/AuditReviewApp.tsx` after the board exits through the audit-review entry path.
46
- - `src/tui/audit-review/state.ts`, `summary.ts`, `ProposalList.tsx`, `OperationDetail.tsx`, and `AuditReviewApp.tsx` model and render proposal review decisions, replacement edits, apply status, high-divergence acknowledgement, and audit review outcomes.
47
- - `test/audit/`, `test/commands/audit.test.ts`, `test/cli/{args,run}.test.ts`, and `test/tui/audit-review/` cover the audit command contract, quality gates, snapshots, prompt generation, proposal validation/application, review state, Ink interactions, and end-to-end lifecycle behavior.
48
-
49
- Implementation deltas from the original plan:
50
-
51
- - Proposal review is launched from the board audit-entry path rather than a separate `savepoint audit review` command.
52
- - The audit command creates `.savepoint/audit/{epic}/proposals/`; reconciliation writes one `proposals/proposals.md` bundle, and the loader rejects multiple bundles to keep review state aligned with the workflow.
53
- - AI semantic review remains manual and advisory through the handoff prompt, matching the epic's out-of-scope boundary for API calls and automatic semantic findings.
54
-
55
- ## Architectural delta
56
-
57
- Before this epic, Savepoint can manage workflow state but cannot enforce the documentation audit gate. After this epic, completing an epic can produce a bounded audit context and block progress until documentation proposals are reviewed.
58
-
59
- The audit pipeline bridges CLI, filesystem, config, templates, and TUI review mode, but each step should remain separately testable.
60
-
61
- ## Boundaries
62
-
63
- In scope:
64
-
65
- - Implement the six-step audit pipeline except AI semantic review generation.
66
- - Support `--skip --reason`.
67
- - Support `--epic` when an explicit epic is needed.
68
- - Generate `.savepoint/audit/{epic}/snapshot.md`.
69
- - Generate `.savepoint/audit/{epic}/proposals/`.
70
-
71
- Out of scope:
72
-
73
- - Writing semantic-review findings automatically.
74
- - Calling AI APIs.
75
- - Inferring code quality beyond configured mechanical gates.
76
- - Complex merge conflict resolution for proposal application.
77
-
78
- ## Quality gates
79
-
80
- - Tests should cover passing/failing quality gates, snapshot generation, skip logging, proposal validation, and approved proposal application.
81
- - Snapshot generation must not include source code contents.
82
- - Failed blocking quality gates must stop the audit before snapshot generation.
83
-
84
- ## Design constraints
85
-
86
- - Keep audit context bounded to protect token budgets.
87
- - Treat proposal application as a filesystem boundary with explicit failure states.
88
- - Preserve user edits and require confirmation for high-divergence proposal application through the TUI.
@@ -1,23 +0,0 @@
1
- ---
2
- id: E07-audit-pipeline/T001-audit-cli-contract
3
- status: done
4
- objective: Define the audit command contract, explicit epic selection, and skip-with-reason logging path without running the full audit pipeline.
5
- depends_on: []
6
- ---
7
-
8
- # T001: audit-cli-contract
9
-
10
- ## Implementation Plan
11
-
12
- - [x] Extend CLI parsing and help text for `savepoint audit --epic <epic>`, `--skip`, and `--reason <text>` while rejecting invalid flag combinations.
13
- - [x] Replace the audit stub with a boundary-safe command handler that resolves the Savepoint project root and active epic from `--epic` or the router state.
14
- - [x] Add audit path and log helpers that can create `.savepoint/audit/{epic}/` and record skipped audits with timestamp, epic, and reason.
15
- - [x] Keep the non-skip path explicit and non-destructive until the pipeline tasks are available.
16
- - [x] Add focused CLI tests for help output, option parsing, explicit epic selection, skip success, missing reason, and invalid reason usage.
17
- - [x] Run the focused audit CLI tests before handing off the task.
18
-
19
- ## Context Log
20
-
21
- - Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/tasks/T001-audit-cli-contract.md`; `src/cli/args.ts`; `src/cli/help.ts`; `src/cli/run.ts`; `src/cli/exit-codes.ts`; `src/commands/audit.ts`; `src/commands/board.ts`; `src/commands/result.ts`; `src/domain/router.ts`; `src/fs/project.ts`; `src/fs/markdown.ts`; `src/readers/router.ts`; `test/cli/args.test.ts`; `test/cli/run.test.ts`; `test/cli/commands.test.ts`; `test/commands/board.test.ts`
22
- - Estimated input tokens: ~18,000
23
- - Notes: Added `AuditOptions` interface and `parseAuditArgs()` to `src/cli/args.ts`; audit now has its own `"audit-command"` and `"audit-invalid-options"` ParseResult kinds. Created `src/audit/log.ts` for skip logging. Replaced audit stub in `src/commands/audit.ts` with async `runAudit(ctx: AuditContext)`. Updated `run.ts` to dispatch audit-command and audit-invalid-options. 500 tests passing, 0 failures.
@@ -1,23 +0,0 @@
1
- ---
2
- id: E07-audit-pipeline/T002-quality-gate-runner
3
- status: done
4
- objective: Run configured audit quality gates with deterministic pass/fail results and no snapshot side effects.
5
- depends_on: []
6
- ---
7
-
8
- # T002: quality-gate-runner
9
-
10
- ## Implementation Plan
11
-
12
- - [x] Introduce `src/audit/quality-gates.ts` with a small typed model for configured lint, typecheck, test, and future gate commands.
13
- - [x] Implement an injectable command runner that executes gates in project-root context and captures exit code, stdout, stderr, duration, and spawn failures.
14
- - [x] Normalize empty or missing gate configuration into the project defaults without hard-coding command execution inside the CLI command.
15
- - [x] Return an aggregate result that clearly distinguishes pass, blocking failure, and runner error so orchestration can stop before snapshot generation.
16
- - [x] Add unit tests for all-pass gates, nonzero failures, spawn errors, empty gate lists, output capture, and deterministic execution order.
17
- - [x] Run the focused audit quality-gate tests before handing off the task.
18
-
19
- ## Context Log
20
-
21
- - Files read: `.savepoint/router.md` (via AGENTS.md routing); `AGENTS.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `T001-audit-cli-contract.md`; `T002-quality-gate-runner.md`; `src/commands/audit.ts`; `src/audit/log.ts`; `src/domain/config.ts`; `src/readers/config.ts`; `src/fs/project.ts`; `src/cli/args.ts`; `test/commands/audit.test.ts`
22
- - Estimated input tokens: ~8,500
23
- - Notes: Created `src/audit/quality-gates.ts` with `Gate`, `GateResult`, `QualityGateOutcome`, `CommandRunner` types, `normalizeGates()`, `defaultRunner()`, and `runQualityGates()`. Created `test/audit/quality-gates.test.ts` with 13 tests covering all-pass, blocking failure, non-blocking failure, spawn errors, empty gates, output capture, duration recording, and deterministic order. All 13 tests pass.
@@ -1,23 +0,0 @@
1
- ---
2
- id: E07-audit-pipeline/T003-snapshot-and-prompt
3
- status: done
4
- objective: Generate a bounded audit snapshot and AI handoff prompt for an epic without embedding source contents.
5
- depends_on: []
6
- ---
7
-
8
- # T003: snapshot-and-prompt
9
-
10
- ## Implementation Plan
11
-
12
- - [x] Add `src/audit/snapshot.ts` to generate `.savepoint/audit/{epic}/snapshot.md` from router state, epic/task metadata, gitignore-respecting file listings, and changed-file paths.
13
- - [x] Ensure changed-file output records path and status only, never source or test file contents.
14
- - [x] Create `.savepoint/audit/{epic}/proposals/` alongside the snapshot so later proposal review has a stable artifact location.
15
- - [x] Add `src/audit/prompts.ts` to render the bounded handoff prompt that points an AI agent at the snapshot and proposal directory.
16
- - [x] Add tests for gitignore exclusions, snapshot bounds, changed-file metadata, proposal directory creation, and prompt content.
17
- - [x] Run the focused audit snapshot and prompt tests before handing off the task.
18
-
19
- ## Context Log
20
-
21
- - Files read: `AGENTS.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `T003-snapshot-and-prompt.md`; `src/audit/quality-gates.ts`; `src/audit/log.ts`; `src/fs/project.ts`; `src/fs/markdown.ts`; `src/readers/router.ts`; `src/readers/epic.ts`; `src/readers/tasks.ts`; `src/domain/router.ts`; `src/domain/task.ts`; `src/domain/ids.ts`; `src/domain/status.ts`; `src/domain/config.ts`; `templates/prompts/audit-reconciliation.prompt.md`; `test/audit/quality-gates.test.ts`; `test/init/write-scaffold.test.ts`; `package.json`
22
- - Estimated input tokens: ~12,500
23
- - Notes: Implemented `buildSnapshotMarkdown` (pure), `generateSnapshot` (filesystem + injected GitReader), `defaultGitReader` (spawn-based), and `buildAuditPrompt` (pure). 31 tests, 555 total passing. Typecheck and lint clean.
@@ -1,27 +0,0 @@
1
- ---
2
- id: E07-audit-pipeline/T004-audit-orchestration-router
3
- status: done
4
- objective: Wire `savepoint audit` to run gates, write audit artifacts, and move the router into audit-pending only after blocking gates pass.
5
- depends_on:
6
- - E07-audit-pipeline/T001-audit-cli-contract
7
- - E07-audit-pipeline/T002-quality-gate-runner
8
- - E07-audit-pipeline/T003-snapshot-and-prompt
9
- ---
10
-
11
- # T004: audit-orchestration-router
12
-
13
- ## Implementation Plan
14
-
15
- - [x] Replace the non-skip audit placeholder with orchestration that resolves the target epic, reads config, runs quality gates, and reports gate results.
16
- - [x] Stop before snapshot generation when any blocking quality gate fails, preserving clear stdout/stderr and exit-code behavior.
17
- - [x] Generate the snapshot, proposal directory, and handoff prompt after gates pass.
18
- - [x] Add `src/audit/router-state.ts` to transition `.savepoint/router.md` into `audit-pending` for the audited epic without disturbing unrelated router content.
19
- - [x] Write audit log entries for started, failed-gate, and snapshot-created outcomes.
20
- - [x] Add integration tests for happy path, failed gates stopping snapshots, explicit `--epic`, active-router epic fallback, and router transition.
21
- - [x] Run the focused audit command integration tests before handing off the task.
22
-
23
- ## Context Log
24
-
25
- - Files read: `.savepoint/router.md`; `E07/Design.md`; `T004`; `T001`; `T002`; `T003`; `src/commands/audit.ts`; `src/audit/log.ts`; `src/audit/quality-gates.ts`; `src/audit/snapshot.ts`; `src/audit/prompts.ts`; `src/domain/config.ts`; `src/readers/config.ts`; `src/readers/tasks.ts`; `src/domain/router.ts`; `src/readers/router.ts`; `src/fs/project.ts`; `src/cli/exit-codes.ts`; `test/audit/quality-gates.test.ts`; `test/audit/snapshot.test.ts` (partial); `test/commands/audit.test.ts`; `.savepoint/metrics/context-bench.md`
26
- - Estimated input tokens: ~15,300
27
- - Notes: Created `src/audit/router-state.ts` with `transitionToAuditPending`. Added `logAuditEntry` to `src/audit/log.ts`. Replaced placeholder in `src/commands/audit.ts` with full orchestration (gates → snapshot → router transition → prompt). Added injectable `commandRunner` and `gitReader` to `AuditContext` for testing. 20 audit command tests, 564 total passing. Typecheck and lint clean.
@@ -1,25 +0,0 @@
1
- ---
2
- id: E07-audit-pipeline/T005-proposal-validation-apply
3
- status: done
4
- objective: Validate audit proposal files and apply approved patch-shaped documentation updates with explicit divergence failures.
5
- depends_on:
6
- - E07-audit-pipeline/T003-snapshot-and-prompt
7
- ---
8
-
9
- # T005: proposal-validation-apply
10
-
11
- ## Implementation Plan
12
-
13
- - [x] Add `src/audit/proposals.ts` to discover proposal files in `.savepoint/audit/{epic}/proposals/` and parse patch-shaped operations for documentation targets.
14
- - [x] Validate proposal target paths, required sections, duplicate operations, empty replacements, and malformed proposal documents with path-aware errors.
15
- - [x] Add `src/audit/apply-proposals.ts` to apply approved replace, insert, and delete operations only when anchors still match the live file.
16
- - [x] Fail with explicit divergence errors instead of overwriting user edits when a proposal no longer matches the target document.
17
- - [x] Preserve compatibility with any existing board handoff signal until the review UI moves fully to the proposal directory.
18
- - [x] Add tests for discovery, validation failures, successful apply, partial approval, divergence, and scoped path protection.
19
- - [x] Run the focused proposal validation and apply tests before handing off the task.
20
-
21
- ## Context Log
22
-
23
- - Files read: `AGENTS.md`; `.savepoint/router.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/tasks/T005-proposal-validation-apply.md`; `src/audit/snapshot.ts`; `src/audit/prompts.ts`; `src/audit/router-state.ts`; `src/audit/log.ts`; `src/fs/project.ts`; `test/audit/snapshot.test.ts`; `test/audit/quality-gates.test.ts`; `templates/prompts/audit-reconciliation.prompt.md`; `.savepoint/audit/E06-tui-board/proposals.md`; `.savepoint/audit/E05-init-command/proposals.md`
24
- - Estimated input tokens: ~18,500
25
- - Notes: Implemented `proposals.ts` (discovery, parse, validate) and `apply-proposals.ts` (applyOperation, applyApprovedOperations). All 46 focused tests pass. Proposal format supports Replace/Insert After/Delete with fenced or plain-text anchors; scoped path protection rejects non-.md/.yml/.yaml and path traversal targets; divergence detection skips writing any operation to a file if any op on it diverges.
@@ -1,24 +0,0 @@
1
- ---
2
- id: E07-audit-pipeline/T006-audit-review-state
3
- status: done
4
- objective: Model audit proposal review decisions so approve, reject, edit, and apply flows are testable before the Ink UI.
5
- depends_on:
6
- - E07-audit-pipeline/T005-proposal-validation-apply
7
- ---
8
-
9
- # T006: audit-review-state
10
-
11
- ## Implementation Plan
12
-
13
- - [x] Add non-rendering audit review state under `src/tui/audit-review/` for loaded proposals, selected operation, review decision, edited replacement text, warnings, and apply readiness.
14
- - [x] Implement reducer actions for navigation, approve, reject, edit, reset edit, show divergence warning, and mark apply result.
15
- - [x] Derive concise review summaries that the UI can render without reparsing proposal documents.
16
- - [x] Keep all filesystem writes out of the state layer; call proposal/apply services through injected callbacks only in later integration.
17
- - [x] Add deterministic reducer tests for navigation bounds, decision changes, edit preservation, ready-to-apply calculation, and warning state.
18
- - [x] Run the focused audit review state tests before handing off the task.
19
-
20
- ## Context Log
21
-
22
- - Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/tasks/T006-audit-review-state.md`; `src/tui/state/reducer.ts`; `src/tui/state/app-reducer.ts`; `src/tui/state/view-state.ts`; `test/tui/state/reducer.test.ts`; `test/tui/state/app-reducer.test.ts`; `src/audit/proposals.ts`; `src/audit/apply-proposals.ts`; `.savepoint/metrics/context-bench.md`
23
- - Estimated input tokens: ~11,975
24
- - Notes: E06 state/test conventions for reducer shape and deterministic testing; E07 audit proposal/apply types for state model alignment.
@@ -1,26 +0,0 @@
1
- ---
2
- id: E07-audit-pipeline/T007-audit-review-ui
3
- status: done
4
- objective: "Add the Ink audit review mode that lets users inspect proposals, approve or reject them, edit replacements, and apply approved changes."
5
- depends_on:
6
- - E07-audit-pipeline/T004-audit-orchestration-router
7
- - E07-audit-pipeline/T006-audit-review-state
8
- ---
9
-
10
- # T007: audit-review-ui
11
-
12
- ## Implementation Plan
13
-
14
- - [x] Create `src/tui/audit-review/*.tsx` components that follow the existing terminal palette and the Atari-Noir visual identity within terminal constraints.
15
- - [x] Update the board audit entry point so proposal directories produced by E07 open the review mode for the active epic.
16
- - [x] Render proposal targets, operation summaries, selected diffs, approval state, edit mode, and divergence warnings without dumping full unrelated file contents.
17
- - [x] Wire apply actions through `src/audit/apply-proposals.ts`, require confirmation for high-divergence cases, and surface apply errors without losing review decisions.
18
- - [x] Write audit log entries for applied, rejected-only, and user-aborted review outcomes.
19
- - [x] Add TUI tests with mocked Ink rendering and service callbacks for navigation, approve/reject/edit, apply success, and apply failure.
20
- - [x] Run the focused audit review UI and board integration tests before handing off the task.
21
-
22
- ## Context Log
23
-
24
- - Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `.savepoint/visual-identity.md`; `.savepoint/metrics/context-bench.md`; `src/tui/App.tsx`; `src/tui/Board.tsx`; `src/commands/board.ts`; `src/tui/theme/palette.ts`; `src/tui/DetailPane.tsx`; `src/audit/apply-proposals.ts`; `src/audit/proposals.ts`; `src/audit/log.ts`; `src/domain/config.ts`; `src/tui/state/app-reducer.ts`; `src/tui/board-data.ts`; `test/commands/board.test.ts`; `test/commands/board-tty.test.ts`; `test/tui/components/App.test.tsx`; `src/tui/state/reducer.ts`; `src/tui/audit-review/state.ts`; `src/tui/audit-review/summary.ts`; `test/tui/audit-review/state.test.ts`; `vitest.config.ts`; `vitest.config.js`
25
- - Estimated input tokens: ~16,000
26
- - Notes: Implementation required understanding E06 TUI patterns for reducer shape, keyboard input, Ink testing, and board integration; extended T006 state model with confirm-divergence and edit helpers; wired apply through existing E07 audit services.
@@ -1,24 +0,0 @@
1
- ---
2
- id: E07-audit-pipeline/T008-audit-pipeline-integration
3
- status: done
4
- objective: Verify the complete audit lifecycle from command execution through review application with end-to-end coverage and full quality gates.
5
- depends_on:
6
- - E07-audit-pipeline/T007-audit-review-ui
7
- ---
8
-
9
- # T008: audit-pipeline-integration
10
-
11
- ## Implementation Plan
12
-
13
- - [x] Add end-to-end tests that cover audit skip logging, gate failure short-circuiting, successful snapshot/prompt generation, router `audit-pending` transition, proposal review, and approved proposal application.
14
- - [x] Verify audit artifacts remain bounded by asserting snapshots contain metadata and paths but not source/test code bodies.
15
- - [x] Confirm explicit `--epic` and active-router epic selection work consistently across command, snapshot, proposal, and review paths.
16
- - [x] Tighten command help, error messages, and fixture cleanup discovered by the integration tests.
17
- - [x] Run focused audit integration tests first, then run `npm run typecheck`, `npm run lint`, `npm run format:check`, `npm run build`, and `npm test`.
18
- - [x] Update this task's context log with implementation files read before moving it to review.
19
-
20
- ## Context Log
21
-
22
- - Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/tasks/T008-audit-pipeline-integration.md`; `src/commands/audit.ts`; `src/audit/quality-gates.ts`; `src/audit/snapshot.ts`; `src/audit/router-state.ts`; `src/audit/prompts.ts`; `src/audit/proposals.ts`; `src/audit/apply-proposals.ts`; `src/audit/log.ts`; `test/commands/audit.test.ts`; `test/cli/run.test.ts`; `test/audit/quality-gates.test.ts`; `test/audit/snapshot.test.ts`; `test/audit/proposals.test.ts`; `test/audit/apply-proposals.test.ts`; `test/audit/prompts.test.ts`; `src/tui/audit-review/state.ts`; `src/tui/audit-review/AuditReviewApp.tsx`; `src/tui/audit-review/summary.ts`; `test/tui/audit-review/state.test.ts`; `test/tui/audit-review/AuditReviewApp.test.tsx`; `test/commands/board.test.ts`; `src/cli/args.ts`; `src/cli/run.ts`; `src/cli/help.ts`; `src/readers/router.ts`; `.savepoint/metrics/context-bench.md`
23
- - Estimated input tokens: ~45,844
24
- - Notes: Full integration context: all E07 audit source and test files, CLI dispatch layer, TUI audit-review state/components, board test patterns for fixture setup, and context bench. Prettier formatting applied to all E07-scoped files with existing warnings.
@@ -1,103 +0,0 @@
1
- ---
2
- type: epic-design
3
- status: active
4
- ---
5
-
6
- # Epic E08: board-workflow-cleanup
7
-
8
- ## Purpose
9
-
10
- Make the board usable as the primary release workflow surface before `0.1.0` ships by adding epic navigation, readable task presentation, acceptance criteria, and a focused task detail view.
11
-
12
- ## What this epic adds
13
-
14
- - Immersive full-screen TUI that utilizes the terminal's alternate screen buffer, hiding shell history while active.
15
- - Epic selection in a fixed left rail (minimum 25 columns wide) so users can browse and work across release epics without manually editing router state.
16
- - A clear separation between selectable epic items and task cards, with `Tab` to switch focus between the two panes.
17
- - Readable task card labels that prioritize task title/slug/objective over full `epic/task` IDs.
18
- - Required task-level acceptance criteria that define what "done" means.
19
- - A workflow rule that the implementation plan is the build checklist for satisfying acceptance criteria.
20
- - A full-screen task detail modal that shows objective, acceptance criteria, implementation checklist, dependencies, status, and transition affordances.
21
- - Updated templates and planning prompts so new task files include acceptance criteria by default.
22
- - Migration/compatibility behavior for existing task files that do not yet include acceptance criteria.
23
-
24
- ## Backlog.md & OpenCode inspiration
25
-
26
- Backlog.md and OpenCode are useful inspiration for release-blocking product behaviors: task files are human-readable Markdown, tasks carry clear acceptance criteria, and the visual board/detail views make task status and task content inspectable without opening files directly. The TUI acts as a standalone, immersive application. Savepoint should borrow those product lessons while preserving Savepoint's epic-first router and audit workflow.
27
-
28
- ## Components and files
29
-
30
- Expected files introduced or extended by this epic:
31
-
32
- | Path | Purpose |
33
- | ------------------------------------ | --------------------------------------------------------------------- |
34
- | `src/domain/task.ts` | Task document model with acceptance criteria parsing and validation. |
35
- | `src/readers/tasks.ts` | Epic task-set reader updated for acceptance criteria compatibility. |
36
- | `src/tui/board-data.ts` | Cross-epic board data and readable task/epic display metadata. |
37
- | `src/tui/state/*.ts` | Board navigation state for epic selection, task selection, and popup. |
38
- | `src/tui/{App,Board,DetailPane}.tsx` | Board keyboard flow, readable cards, layout, and task detail modal. |
39
- | `src/tui/render/plain-table.ts` | Non-TTY rendering for epic/task separation and acceptance criteria. |
40
- | `src/commands/board.ts` | Alternate screen buffer management and immersive launch. |
41
- | `templates/project/**` | Default workflow docs and task templates with acceptance criteria. |
42
- | `templates/prompts/*.prompt.md` | Agent prompts updated to require acceptance criteria before planning. |
43
- | `.savepoint/router.md` | Workflow instructions for acceptance criteria and detail navigation. |
44
- | `test/domain/*.test.ts` | Task schema and compatibility tests. |
45
- | `test/readers/*.test.ts` | Cross-epic task reading tests. |
46
- | `test/tui/**/*.test.ts(x)` | Board navigation, card labels, popup detail, and render tests. |
47
- | `test/templates/*.test.ts` | Template and prompt integrity tests. |
48
-
49
- ## Architectural delta
50
-
51
- Before this epic, the board is scoped to the active epic and shows task IDs as the primary task label. The board prints inline to standard output. Task files have an objective and implementation plan, but no explicit acceptance criteria contract.
52
-
53
- After this epic, the board becomes a release-level immersive navigation surface using the alternate screen buffer. Epics are selectable in a left rail, tasks are readable at a glance, and a full-screen task detail modal is available. Task documents gain acceptance criteria as a first-class section, with the implementation plan explicitly subordinate to those criteria.
54
-
55
- The router remains the source of truth for the active build task. Browsing another epic in the board must not silently change the active build task unless the user performs an explicit workflow action (`Enter` on the left rail).
56
-
57
- ## Resolved design decisions
58
-
59
- 1. **Immersive TUI & Layout:** The board will enter the terminal's alternate screen buffer (`\x1b[?1049h`), restoring shell history cleanly on exit. Layout consists of a fixed Left Rail (min 25 columns width) for Epics, and a Main Board for tasks. Focus is toggled via `Tab` / `Shift+Tab`.
60
- 2. **Epic Interaction:** Epics display status via glyphs and colors: `✓` (Completed/Green), `▶` (Active/Yellow), `○` (Planned/Dim). Browsing previews tasks (read-only). Pressing `Enter` on an Epic activates it in `router.md`.
61
- 3. **Task Mutation Constraints:** Tasks can only be advanced (`Space`) or retreated (`Backspace`) if the currently browsed epic matches the Active Router Epic. Otherwise, the action is blocked with a warning.
62
- 4. **Task Detail Modal:** A full-screen overlay triggered by `Enter` from the board. It displays task details, and the implementation checklist is strictly read-only for `v0.1.0`. Closed via `Escape`.
63
- 5. **Acceptance Criteria Parsing:** The `task.ts` parser will extract the `## Acceptance Criteria` markdown section. If missing, it safely returns an empty array for backward compatibility.
64
-
65
- ## Boundaries
66
-
67
- In scope:
68
-
69
- - Release-level epic browsing in an immersive full-screen board.
70
- - Readable task labels and full ID demotion into detail/metadata.
71
- - Required acceptance criteria for newly planned tasks.
72
- - Compatibility for existing tasks missing acceptance criteria.
73
- - Full-screen task detail modal in the TUI and plain fallback output.
74
- - Prompt/template updates that make acceptance criteria part of normal workflow.
75
- - Visual bugs to be fixed - scrolling up and down fragments the board, the task surface is too busy for a four-pane workflow, and the TUI should feel like a standalone application.
76
-
77
- Out of scope:
78
-
79
- - Web UI.
80
- - Search.
81
- - File watching.
82
- - Drag-and-drop or mouse interactions.
83
- - Editing every historical task file by hand unless tests/templates require fixture updates.
84
- - AI semantic review or audit pipeline behavior beyond prompt/template wording.
85
- - Interactive toggling of markdown implementation checklists within the TUI (deferred to future release).
86
-
87
- ## Quality gates
88
-
89
- - Tests cover task documents with and without acceptance criteria.
90
- - Tests cover cross-epic board data loading and epic switching.
91
- - Tests prove readable labels are shown on task cards while full IDs remain visible in detail.
92
- - Tests cover the task detail modal content, full-screen takeover, and keyboard flow.
93
- - Template tests prove new task scaffolds include acceptance criteria before implementation plans.
94
- - Existing board transition behavior remains covered after keybinding changes.
95
-
96
- ## Design constraints
97
-
98
- - Keep the board fast and bounded; release-level browsing must not load unrelated source code.
99
- - Preserve the file-first workflow. The board reads and writes Markdown-backed state; it does not create a hidden database.
100
- - Make navigation explicit. Browsing an epic and changing the router's active task are different actions.
101
- - Keep task files independently buildable and objective-led.
102
- - Acceptance criteria describe observable outcomes; implementation plans describe the build steps to satisfy them.
103
- - Design the layout for terminal constraints: safe truncation, fixed regions, and consistent with Atari-Noir terminal palette rules.
@@ -1,30 +0,0 @@
1
- ---
2
- id: E08-board-workflow-cleanup/T001-acceptance-criteria-model
3
- status: done
4
- objective: Add task-document acceptance criteria parsing with compatibility for existing tasks that do not declare criteria.
5
- depends_on: []
6
- ---
7
-
8
- # T001: acceptance-criteria-model
9
-
10
- ## Acceptance Criteria
11
-
12
- - Task documents with a `## Acceptance Criteria` section expose normalized criteria to callers.
13
- - Task documents without acceptance criteria remain readable and carry an explicit compatibility signal instead of failing schema validation.
14
- - Existing frontmatter validation remains unchanged, so status writes still preserve unknown frontmatter and task bodies.
15
- - Tests cover present, missing, empty, and checkbox/bullet acceptance criteria formats.
16
-
17
- ## Implementation Plan
18
-
19
- - [x] Add a focused Markdown section parser for task body sections, keeping frontmatter validation in `src/domain/task.ts` strict and unchanged.
20
- - [x] Extend the task document model returned to callers with acceptance criteria data and a missing-criteria compatibility marker.
21
- - [x] Update `test/domain/task.test.ts` to cover acceptance criteria extraction, missing-section compatibility, empty-section compatibility, and mixed bullet/checkbox criteria.
22
- - [x] Update the relevant status-write tests to prove task body and criteria text survive status changes unchanged.
23
- - [x] Run focused task-domain and status-write tests before handing off.
24
- - [x] Update this task's context log with implementation files read before moving it to review.
25
-
26
- ## Context Log
27
-
28
- - Files read: `.savepoint/router.md`; `AGENTS.md`; `.savepoint/releases/v1/epics/E08-board-workflow-cleanup/Design.md`; `src/domain/task.ts`; `test/domain/task.test.ts`; `test/tui/io/write-status.test.ts`.
29
- - Estimated input tokens: ~7,500
30
- - Notes: Implementation pass. Added `AcceptanceCriteria` interface, `parseAcceptanceCriteria`, and `parseTaskDocument` to `src/domain/task.ts`. Tests: 9 new in task.test.ts, 1 new in write-status.test.ts. 35/35 pass.
@@ -1,33 +0,0 @@
1
- ---
2
- id: E08-board-workflow-cleanup/T002-release-task-set-reader
3
- status: done
4
- objective: Read release epics into a release-level task collection that preserves per-epic errors and resolves cross-epic task dependencies.
5
- depends_on:
6
- - E08-board-workflow-cleanup/T001-acceptance-criteria-model
7
- ---
8
-
9
- # T002: release-task-set-reader
10
-
11
- ## Acceptance Criteria
12
-
13
- - A release-level reader lists epic directories under `.savepoint/releases/{release}/epics` in deterministic order.
14
- - The reader returns task documents grouped by epic while preserving filesystem/schema errors for each epic.
15
- - Cross-epic dependencies are validated at release scope so valid cross-epic links do not appear as missing dependencies.
16
- - Existing `readEpicTaskSet` behavior remains available for callers that only need one epic.
17
- - Tests cover multiple epics, empty task directories, missing task directories, cross-epic dependencies, duplicate IDs, and true missing dependencies.
18
-
19
- ## Implementation Plan
20
-
21
- - [x] Add a release-level task-set result type in `src/readers/tasks.ts` or a new focused reader module if that keeps the file to one job.
22
- - [x] Implement deterministic epic directory discovery from the release `epics/` directory, ignoring non-directories.
23
- - [x] Reuse existing markdown/frontmatter parsing and acceptance-criteria extraction from T001 for every task file.
24
- - [x] Add release-scope graph validation that treats cross-epic dependencies as valid when the target task exists anywhere in the release.
25
- - [x] Add reader tests in `test/readers/tasks.test.ts` for multi-epic success, partial epic errors, cross-epic dependency success, and release-level graph failures.
26
- - [x] Run focused reader tests before handing off.
27
- - [x] Update this task's context log with implementation files read before moving it to review.
28
-
29
- ## Context Log
30
-
31
- - Files read: `.savepoint/router.md`; `.savepoint/Design.md`; `.savepoint/releases/v1/epics/E08-board-workflow-cleanup/Design.md`; `.savepoint/releases/v1/epics/E06-tui-board/Design.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `.savepoint/visual-identity.md`; `agent-skills/ink-tui-design/SKILL.md` and focused references; current task/domain/reader/board/template/test files for E08 planning.
32
- - Estimated input tokens: ~58,547
33
- - Notes: Task-breakdown planning context only. Implementation should re-read this task plus directly touched source/test files.