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
@@ -1,272 +0,0 @@
1
- ---
2
- type: audit-findings
3
- audited: 2026-05-06
4
- ---
5
- # Audit Findings: E15 Phase 3 - Hardening
6
-
7
- ## Main Findings
8
-
9
- Applied the E15 audit proposals and closed the epic as audited.
10
-
11
- - Fixed the Windows archive packaging issue: Windows tarballs now preserve `savepoint.exe` as the archive member name instead of extracting as `savepoint`.
12
- - Added a regression test covering the Windows archive member name.
13
- - Reconciled E15 documentation drift in `Design.md`, `AGENTS.md`, and `E15-Detail.md`.
14
- - Marked `E15-Detail.md` as `status: audited`.
15
- - Updated `Design.md` `last_audited` to `v1.1/E15-hardening`.
16
- - Advanced router state to `epic-design` with no active epic because there are no later unarchived epics in v1.1.
17
-
18
- Verification after applying proposals:
19
-
20
- - `go test ./internal/buildtool`
21
- - `make build`
22
- - `make test`
23
- - `make ci`
24
-
25
- No remaining audit blockers are known. The `## Proposed Changes` section remains below as the apply trace.
26
-
27
- ## Code Style Review
28
-
29
- - [x] One job per file - E15 changes stayed within board rendering/debug, data parsing/fuzzing, buildtool packaging, CI, and task metadata.
30
- - [x] One job per function - new helpers such as `executableName`, `writeChecksums`, `stripDebugFlag`, `debugf`, and abbreviation checks are narrowly scoped.
31
- - [x] Test branches - Windows build output and Windows archive member naming are now covered.
32
- - [x] Types document intent - existing Go types and small helper APIs remain explicit enough for this scope.
33
- - [x] Build only what is needed - no speculative runtime features were added beyond E15 scope.
34
- - [x] Handle errors at boundaries - buildtool, filesystem, checksum, fuzz, and parser errors are propagated with context.
35
- - [x] One source of truth - target lists and executable naming are centralized in buildtool; the proposed archive fix reuses that source.
36
- - [x] Comments explain why - new comments document abbreviation suppression and audit-tab hidden sections rather than restating obvious code.
37
- - [x] Content lives in data - workflow and architecture copy remain in markdown; no new product copy was embedded in logic.
38
- - [x] Small diffs - most changes are localized, test-backed additions.
39
-
40
- ## Proposed Changes
41
-
42
- ### Target File
43
- internal/buildtool/main.go
44
-
45
- ### Replace
46
- ```go
47
- if err := writeTarGz(archive, source, "savepoint"); err != nil {
48
- ```
49
-
50
- ### With
51
- ```go
52
- if err := writeTarGz(archive, source, executableName(target.os)); err != nil {
53
- ```
54
-
55
- ### Target File
56
- internal/buildtool/main_test.go
57
-
58
- ### Replace
59
- ```go
60
- import (
61
- "crypto/sha256"
62
- "encoding/hex"
63
- "os"
64
- "path/filepath"
65
- "runtime"
66
- "strings"
67
- "testing"
68
- )
69
- ```
70
-
71
- ### With
72
- ```go
73
- import (
74
- "archive/tar"
75
- "compress/gzip"
76
- "crypto/sha256"
77
- "encoding/hex"
78
- "io"
79
- "os"
80
- "path/filepath"
81
- "runtime"
82
- "strings"
83
- "testing"
84
- )
85
- ```
86
-
87
- ### Target File
88
- internal/buildtool/main_test.go
89
-
90
- ### Replace
91
- ```go
92
- func TestExecutableName(t *testing.T) {
93
- if got := executableName("windows"); got != "savepoint.exe" {
94
- t.Errorf("executableName(windows) = %q, want savepoint.exe", got)
95
- }
96
- if got := executableName("linux"); got != "savepoint" {
97
- t.Errorf("executableName(linux) = %q, want savepoint", got)
98
- }
99
- if got := executableName("darwin"); got != "savepoint" {
100
- t.Errorf("executableName(darwin) = %q, want savepoint", got)
101
- }
102
- }
103
- ```
104
-
105
- ### With
106
- ```go
107
- func TestExecutableName(t *testing.T) {
108
- if got := executableName("windows"); got != "savepoint.exe" {
109
- t.Errorf("executableName(windows) = %q, want savepoint.exe", got)
110
- }
111
- if got := executableName("linux"); got != "savepoint" {
112
- t.Errorf("executableName(linux) = %q, want savepoint", got)
113
- }
114
- if got := executableName("darwin"); got != "savepoint" {
115
- t.Errorf("executableName(darwin) = %q, want savepoint", got)
116
- }
117
- }
118
-
119
- func TestWriteTarGzPreservesWindowsExecutableName(t *testing.T) {
120
- dir := t.TempDir()
121
- source := filepath.Join(dir, "savepoint.exe")
122
- if err := os.WriteFile(source, []byte("binary"), 0o755); err != nil {
123
- t.Fatal(err)
124
- }
125
-
126
- archive := filepath.Join(dir, "savepoint-windows-amd64.tar.gz")
127
- if err := writeTarGz(archive, source, executableName("windows")); err != nil {
128
- t.Fatalf("writeTarGz: %v", err)
129
- }
130
-
131
- f, err := os.Open(archive)
132
- if err != nil {
133
- t.Fatal(err)
134
- }
135
- defer f.Close()
136
-
137
- gz, err := gzip.NewReader(f)
138
- if err != nil {
139
- t.Fatal(err)
140
- }
141
- defer gz.Close()
142
-
143
- tr := tar.NewReader(gz)
144
- header, err := tr.Next()
145
- if err != nil {
146
- t.Fatal(err)
147
- }
148
- if header.Name != "savepoint.exe" {
149
- t.Fatalf("archive member = %q, want savepoint.exe", header.Name)
150
- }
151
-
152
- content, err := io.ReadAll(tr)
153
- if err != nil {
154
- t.Fatal(err)
155
- }
156
- if string(content) != "binary" {
157
- t.Fatalf("archive content = %q, want binary", content)
158
- }
159
- }
160
- ```
161
-
162
- ### Target File
163
- .savepoint/Design.md
164
-
165
- ### Replace
166
- ```md
167
- - **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.
168
- - **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.
169
- ```
170
-
171
- ### With
172
- ```md
173
- - **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.
174
- - **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.
175
- - **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.
176
- ```
177
-
178
- ### Target File
179
- .savepoint/Design.md
180
-
181
- ### Replace
182
- ```md
183
- - **Cross-platform builds:** `make build-all` cross-compiles linux-amd64, linux-arm64, darwin-amd64, and darwin-arm64 raw binaries into `dist/{platform}-{arch}/savepoint`.
184
- - **Artifacts:** `make dist` creates versioned `.tar.gz` archives in `dist/` for the Linux and Darwin targets using Go archive APIs, not shell `tar`.
185
- ```
186
-
187
- ### With
188
- ```md
189
- - **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.
190
- - **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`.
191
- ```
192
-
193
- ### Target File
194
- AGENTS.md
195
-
196
- ### Replace
197
- ```md
198
- | `internal/board/` | TUI board, overlays, epic sidebar, Next Activity line, router priority key, detail checklist rendering, status glyphs, forced color profile, async update I/O commands, shared board utilities |
199
- ```
200
-
201
- ### With
202
- ```md
203
- | `internal/board/` | TUI board, overlays, epic sidebar, Next Activity line, router priority key, detail checklist rendering, status glyphs, forced color profile, debug logging hooks, async update I/O commands, shared board utilities |
204
- ```
205
-
206
- ### Target File
207
- AGENTS.md
208
-
209
- ### Replace
210
- ```md
211
- | `internal/buildtool/` | Makefile helper, cross-compile, archives |
212
- ```
213
-
214
- ### With
215
- ```md
216
- | `internal/buildtool/` | Makefile helper, cross-compile including Windows targets, archives, distribution checksums |
217
- ```
218
-
219
- ### Target File
220
- .savepoint/releases/v1.1/epics/E15-hardening/E15-Detail.md
221
-
222
- ### Replace
223
- ```md
224
- ## Components
225
-
226
- | Module | Purpose |
227
- |--------|---------|
228
- | `internal/board/view_test.go` | Add render benchmarks |
229
- | `internal/data/parser_test.go` | Add fuzz targets |
230
- | `cmd/main.go` | Add --debug / SAVEPOINT_DEBUG |
231
- | `internal/buildtool/main.go` | Add checksums, Windows targets |
232
- | `internal/board/detail.go` | Fix abbreviation handling |
233
- | `internal/board/epic_panel.go` | Extract allowlist constant |
234
- | `agent_skills_test.go` | Move to cmd_test package |
235
- | `Makefile` | Add `ci` target for local verification |
236
- | `.github/workflows/ci.yml` | Add repo CI workflow |
237
-
238
- ## Boundaries
239
- ```
240
-
241
- ### With
242
- ```md
243
- ## Components
244
-
245
- | Module | Purpose |
246
- |--------|---------|
247
- | `internal/board/view_test.go` | Add render and layout benchmarks |
248
- | `internal/board/card_test.go` | Add card render benchmarks |
249
- | `internal/board/column_test.go` | Add column render benchmarks |
250
- | `internal/data/fuzz_test.go` | Add frontmatter and split-body fuzz targets |
251
- | `main.go` | Add global --debug parsing and SAVEPOINT_DEBUG activation |
252
- | `internal/board/debug.go` | Add board debug logging helper |
253
- | `internal/board/board.go` | Log board initialization under debug mode |
254
- | `internal/board/watch.go` | Log watcher and reload activity under debug mode |
255
- | `internal/board/update.go` | Log update dispatch and preserve focused-card visibility |
256
- | `internal/buildtool/main.go` | Add checksums and Windows targets |
257
- | `internal/board/detail.go` | Fix abbreviation handling |
258
- | `internal/board/epic_panel.go` | Document audit hidden-section allowlist |
259
- | `agent_skills_test.go` | Move to external root test package |
260
- | `Makefile` | Add `ci` target for local verification |
261
- | `.github/workflows/ci.yml` | Add repo CI workflow |
262
-
263
- ## Implemented As
264
-
265
- - Debug activation is in root `main.go` because global flags are parsed before dispatching into `cmd/`.
266
- - Fuzz targets live in `internal/data/fuzz_test.go` rather than `internal/data/parser_test.go`.
267
- - Fuzzing found and fixed `SplitFrontmatterBody` delimiter-offset handling and CR line-ending normalization.
268
- - Root `agent_skills_test.go` remains at the repository root but now uses external package `main_test`, which removes the root package coupling without moving fixture-relative paths.
269
- - CI was included as repo-local guardrail scope for E15 via `T008-ci-and-release-automation`.
270
-
271
- ## Boundaries
272
- ```
@@ -1,60 +0,0 @@
1
- ---
2
- type: epic-design
3
- status: audited
4
- ---
5
-
6
- # E15: Phase 3 — Hardening
7
-
8
- ## Purpose
9
-
10
- Address the remaining Phase 3 findings from the consolidated codebase audit (Opus 4.6 + GLM 5.1) that were not covered by E13: benchmarks, fuzzing, debug instrumentation, and hardening Medium/Low items.
11
-
12
- ## What this epic adds
13
-
14
- - Benchmark tests for render functions
15
- - Fuzz targets for YAML frontmatter parsing
16
- - --debug flag and SAVEPOINT_DEBUG environment variable
17
- - Distribution checksums in buildtool
18
- - Windows build targets in buildtool
19
- - Abbreviation-aware checklist sentence splitting
20
- - Root-level test relocation and audit allowlist consolidation
21
- - Repo-local CI workflow and `ci` Makefile target for build/test verification
22
-
23
- ## Components
24
-
25
- | Module | Purpose |
26
- |--------|---------|
27
- | `internal/board/view_test.go` | Add render and layout benchmarks |
28
- | `internal/board/card_test.go` | Add card render benchmarks |
29
- | `internal/board/column_test.go` | Add column render benchmarks |
30
- | `internal/data/fuzz_test.go` | Add frontmatter and split-body fuzz targets |
31
- | `main.go` | Add global --debug parsing and SAVEPOINT_DEBUG activation |
32
- | `internal/board/debug.go` | Add board debug logging helper |
33
- | `internal/board/board.go` | Log board initialization under debug mode |
34
- | `internal/board/watch.go` | Log watcher and reload activity under debug mode |
35
- | `internal/board/update.go` | Log update dispatch and preserve focused-card visibility |
36
- | `internal/buildtool/main.go` | Add checksums and Windows targets |
37
- | `internal/board/detail.go` | Fix abbreviation handling |
38
- | `internal/board/epic_panel.go` | Document audit hidden-section allowlist |
39
- | `agent_skills_test.go` | Move to external root test package |
40
- | `Makefile` | Add `ci` target for local verification |
41
- | `.github/workflows/ci.yml` | Add repo CI workflow |
42
-
43
- ## Implemented As
44
-
45
- - Debug activation is in root `main.go` because global flags are parsed before dispatching into `cmd/`.
46
- - Fuzz targets live in `internal/data/fuzz_test.go` rather than `internal/data/parser_test.go`.
47
- - Fuzzing found and fixed `SplitFrontmatterBody` delimiter-offset handling and CR line-ending normalization.
48
- - Root `agent_skills_test.go` remains at the repository root but now uses external package `main_test`, which removes the root package coupling without moving fixture-relative paths.
49
- - CI was included as repo-local guardrail scope for E15 via `T008-ci-and-release-automation`.
50
-
51
- ## Boundaries
52
-
53
- **In scope:**
54
- - All Phase 3 audit findings not covered by E13 (benchmarks, fuzz, debug flag)
55
- - Medium/Low hardening items (M10, L7, L10, L11, L12)
56
-
57
- **Out of scope:**
58
- - External deployment hosting beyond repo-local CI/release automation
59
- - New UI features or commands
60
- - Structural improvements (separate epic E14)
@@ -1,31 +0,0 @@
1
- ---
2
- id: E15-hardening/T001-benchmarks
3
- status: done
4
- objective: Add benchmark tests for board render functions
5
- depends_on: []
6
- ---
7
-
8
- # T001: Add Benchmark Tests for Render Functions
9
-
10
- ## Context Files
11
-
12
- - `internal/board/view.go` — renderColumn, renderColumnHeaders
13
- - `internal/board/card.go` — RenderCard
14
- - `internal/board/column.go` — RenderColumn
15
- - `internal/board/layout.go` — layout calculations
16
-
17
- ## Acceptance Criteria
18
-
19
- - [x] Benchmark added for RenderCard with varied content widths
20
- - [x] Benchmark added for renderColumn with multiple tasks
21
- - [x] Benchmark added for layout calculations at different widths
22
- - [x] Benchmarks are repeatable with consistent results
23
- - [x] Benchmarks don't modify package state
24
- - [x] `go test -bench=. ./internal/board/` runs without errors
25
-
26
- ## Implementation Plan
27
-
28
- - [x] Add benchmark functions in view_test.go, card_test.go, column_test.go
29
- - [x] Create test data with representative task mixtures
30
- - [x] Run benchmarks and document baseline
31
- - [x] Run `make build && make test`
@@ -1,34 +0,0 @@
1
- ---
2
- id: E15-hardening/T002-fuzz-targets
3
- status: done
4
- objective: Add fuzz targets for YAML frontmatter parsing round-trip
5
- depends_on: []
6
- ---
7
-
8
- # T002: Add Fuzz Targets for YAML Frontmatter Parsing
9
-
10
- ## Context Files
11
-
12
- - `internal/data/parser.go` — extractFrontmatter
13
- - `internal/data/write.go` — WriteTaskStatus, SplitFrontmatterBody
14
- - `internal/data/parser_test.go` — existing tests
15
-
16
- ## Acceptance Criteria
17
-
18
- - [x] Fuzz target added for extractFrontmatter round-trip
19
- - [x] Fuzz target added for WriteTaskStatus round-trip (write then re-parse)
20
- - [x] Fuzz targets exercise edge cases (empty content, malformed YAML, unicode)
21
- - [x] `go test -fuzz=. ./internal/data/` runs without errors
22
-
23
- ## Implementation Plan
24
-
25
- - [x] Create fuzz_test.go in internal/data with fuzz targets
26
- - [x] Define corpus seed inputs from known edge cases
27
- - [x] Run fuzz targets for short duration to verify stability
28
- - [x] Run `make build && make test`
29
-
30
- ## Drift Notes
31
-
32
- - Fuzzer found bug in `SplitFrontmatterBody`: used `len(TrimSpace(raw))` for bodyStart, causing off-by-N when frontmatter has leading/trailing whitespace. Fixed to compute bodyStart from actual `\n---` offset.
33
- - Fuzzer found `normalizeLineEndings` not idempotent with `\r\r\n` sequences. Fixed to also replace lone `\r` with `\n` (handles legacy Mac CR line endings).
34
- - No new files/modules beyond `internal/data/fuzz_test.go` (in-scope per E15-Detail.md).
@@ -1,30 +0,0 @@
1
- ---
2
- id: E15-hardening/T003-debug-flag
3
- status: done
4
- objective: Add --debug flag and SAVEPOINT_DEBUG env var for structured debug logging
5
- depends_on: []
6
- ---
7
-
8
- # T003: Add --debug Flag and SAVEPOINT_DEBUG Env Var
9
-
10
- ## Context Files
11
-
12
- - `main.go` — CLI entrypoint, --version flag
13
- - `cmd/` — command dispatch
14
- - `internal/board/` — board init, file watchers, command dispatch
15
-
16
- ## Acceptance Criteria
17
-
18
- - [x] --debug flag accepted at CLI level
19
- - [x] SAVEPOINT_DEBUG env var recognized
20
- - [x] Debug output includes board init, file watcher events, and command dispatch
21
- - [x] Debug output is off by default (no performance impact)
22
- - [x] `go test ./...` passes with no regressions
23
-
24
- ## Implementation Plan
25
-
26
- - [x] Define debug logging helper in a shared location
27
- - [x] Add --debug flag parsing in main.go
28
- - [x] Instrument key points in board init, file watcher, and update dispatch
29
- - [x] Add tests for debug flag behavior
30
- - [x] Run `make build && make test`
@@ -1,27 +0,0 @@
1
- ---
2
- id: E15-hardening/T004-dist-checksums
3
- status: done
4
- objective: Generate checksums.txt during make dist using Go crypto APIs
5
- depends_on: []
6
- ---
7
-
8
- # T004: Add Distribution Checksums
9
-
10
- ## Context Files
11
-
12
- - `internal/buildtool/main.go` — dist() function that creates tar.gz archives
13
- - `Makefile` — dist target
14
-
15
- ## Acceptance Criteria
16
-
17
- - [x] dist() generates checksums.txt file with SHA256 hashes
18
- - [x] checksums.txt is included in the dist directory
19
- - [x] Existing archive creation behavior preserved
20
- - [x] `go test ./...` passes
21
-
22
- ## Implementation Plan
23
-
24
- - [x] Add SHA256 checksum computation in dist() using crypto/sha256
25
- - [x] Write checksums.txt to dist directory
26
- - [x] Add tests for checksum generation
27
- - [x] Run `make build && make test`
@@ -1,28 +0,0 @@
1
- ---
2
- id: E15-hardening/T005-windows-targets
3
- status: done
4
- objective: Add Windows amd64 and arm64 build targets to buildtool
5
- depends_on: []
6
- ---
7
-
8
- # T005: Add Windows Build Targets
9
-
10
- ## Context Files
11
-
12
- - `internal/buildtool/main.go` — targets list, build logic, localExecutable
13
-
14
- ## Acceptance Criteria
15
-
16
- - [x] Windows amd64 target added
17
- - [x] Windows arm64 target added
18
- - [x] .exe suffix handled for Windows binaries
19
- - [x] Existing Linux and Darwin targets preserved
20
- - [x] `go test ./...` passes
21
-
22
- ## Implementation Plan
23
-
24
- - [x] Add windows-amd64 and windows-arm64 to targets list
25
- - [x] Handle .exe suffix in build output path via `executableName(goos)`
26
- - [x] Update localExecutable to detect Windows (already done in prior task)
27
- - [x] Update tests for new targets
28
- - [x] Run `make build && make test`
@@ -1,26 +0,0 @@
1
- ---
2
- id: E15-hardening/T006-abbreviation-splitting
3
- status: done
4
- objective: Fix splitChecklistSentences to skip periods preceded by known abbreviations
5
- depends_on: []
6
- ---
7
-
8
- # T006: Fix Abbreviation Handling in Checklist Sentence Splitting
9
-
10
- ## Context Files
11
-
12
- - `internal/board/detail.go:88` — splitChecklistSentences function
13
-
14
- ## Acceptance Criteria
15
-
16
- - [x] Known abbreviations (e.g., "e.g.", "i.e.") do not trigger sentence breaks
17
- - [x] Existing sentence splitting behavior preserved for non-abbreviation periods
18
- - [x] Abbreviation list is configurable/extensible
19
- - [x] `go test ./...` passes with no regressions
20
-
21
- ## Implementation Plan
22
-
23
- - [x] Define known abbreviation set
24
- - [x] Add abbreviation check before period-based sentence split
25
- - [x] Add test cases for abbreviations in sentences
26
- - [x] Run `make build && make test`
@@ -1,33 +0,0 @@
1
- ---
2
- id: E15-hardening/T007-root-test-allowlist
3
- status: done
4
- objective: Move agent_skills_test.go to a test package and extract audit allowlist to a named constant
5
- depends_on: []
6
- ---
7
-
8
- # T007: Move Root-Level Test and Extract Audit Allowlist
9
-
10
- ## Context Files
11
-
12
- - `agent_skills_test.go` — root-level package main test
13
- - `internal/board/epic_panel.go:116-119` — allowedSections map
14
-
15
- ## Acceptance Criteria
16
-
17
- - [x] agent_skills_test.go moved to cmd_test package (or appropriate location)
18
- - [x] allowedSections extracted to a named constant with documentation
19
- - [x] All existing tests still pass after refactoring
20
- - [x] `go test ./...` passes with no regressions
21
-
22
- ## Implementation Plan
23
-
24
- - [x] Move agent_skills_test.go to an appropriate internal test package
25
- - [x] Update imports and paths in moved test
26
- - [x] Extract allowedSections map to a named constant
27
- - [x] Update any references in epic_panel.go
28
- - [x] Run `make build && make test`
29
-
30
- ## Notes
31
-
32
- - `agent_skills_test.go` changed from `package main` → `package main_test` (external test package at root). Paths remain valid since Go test working dir is the package dir.
33
- - `epicAuditHiddenSectionHeadings` already extracted as package-level var; added doc comment explaining suppression rationale.
@@ -1,46 +0,0 @@
1
- ---
2
- id: E15-hardening/T008-ci-and-release-automation
3
- status: done
4
- objective: Add repo-local CI coverage for build/test checks and keep the buildtool-driven release flow reproducible
5
- depends_on: []
6
- ---
7
-
8
- # T008: Add CI and Release Automation Guardrails
9
-
10
- ## Context Files
11
-
12
- - `Makefile` - local entrypoint for build, test, and dist commands
13
- - `internal/buildtool/main.go` - build orchestration and packaging logic
14
- - `.savepoint/releases/v1.1/epics/E15-hardening/E15-Detail.md` - epic scope and component map
15
-
16
- ## Acceptance Criteria
17
-
18
- - [x] `.github/workflows/ci.yml` exists and runs on push and pull_request events
19
- - [x] The CI workflow runs `go test ./...` and `make build` at minimum
20
- - [x] The CI workflow uses the repo-local Makefile targets rather than duplicating buildtool logic inline
21
- - [x] `Makefile` exposes a `ci` target that runs the local verification steps used by CI
22
- - [x] Generated binaries and archives remain excluded from version control via `.gitignore`
23
-
24
- ## Implementation Plan
25
-
26
- - [x] Add a GitHub Actions workflow for CI in `.github/workflows/ci.yml`
27
- - [x] Add a `ci` Makefile target that wraps the local verification commands
28
- - [x] Reuse existing `build`, `test`, and `smoke-test` targets instead of duplicating orchestration
29
- - [x] Confirm artifact ignore rules still cover local binaries and archives
30
- - [x] Run `make build && make test`
31
-
32
- ## Context Log
33
-
34
- Files read:
35
- - Makefile
36
- - internal/buildtool/main.go
37
- - .gitignore
38
- - .savepoint/releases/v1.1/epics/E15-hardening/E15-Detail.md
39
- - main.go
40
- - go.mod
41
-
42
- Estimated input tokens:
43
- -
44
-
45
- Notes:
46
- -
@@ -1,25 +0,0 @@
1
- ---
2
- id: E06-audit-command/T001-cli-entrypoint
3
- status: in_progress
4
- objective: "Create CLI entrypoint for savepoint audit command"
5
- depends_on: []
6
- ---
7
-
8
- # T001: CLI Entrypoint
9
-
10
- ## Acceptance Criteria
11
-
12
- - `savepoint audit --help` shows usage: `audit <epic-id|release> [--skip --reason]`
13
- - `savepoint audit <epic-id>` runs audit for that epic
14
- - `savepoint audit <release>` runs audit for all unaudited epics in that release
15
- - `savepoint audit --skip --reason "..."` skips the audit and logs reason
16
- - Unknown arguments show error and exit non-zero
17
-
18
- ## Implementation Plan
19
-
20
- - [x] Add `cmd/audit.go` with CLI argument parsing
21
- - [x] Wire audit command into main.go
22
- - [x] Implement arg validation for epic-id (E##) and release (v#.#) formats
23
- - [x] Add subcommand dispatch to audit workflow
24
- - [x] Test `savepoint audit --help` output
25
- - [x] Run `make build && make test`
@@ -1,27 +0,0 @@
1
- ---
2
- id: E06-audit-command/T002-quality-gates
3
- status: done
4
- objective: "Implement quality gate runner that blocks on failure"
5
- depends_on: ["E06-audit-command/T001-cli-entrypoint"]
6
- phase: build
7
- ---
8
-
9
- # T002: Quality Gates
10
-
11
- ## Acceptance Criteria
12
-
13
- - Reads `quality_gates` from `.savepoint/config.yml`
14
- - Runs each configured command (lint, typecheck, test)
15
- - Blocks audit if any gate fails and `block_on_failure: true`
16
- - Continues if `block_on_failure: false` but logs failure
17
- - Shows clear output: which gates passed/failed
18
-
19
- ## Implementation Plan
20
-
21
- - [x] Add `internal/audit/gates.go`
22
- - [x] Read config `quality_gates` struct
23
- - [x] Implement `RunGates(ctx) error` that executes each command
24
- - [x] Handle null gates (skip if not configured)
25
- - [x] Add exit code propagation for blocking behavior
26
- - [x] Test with configured gates in .savepoint/config.yml
27
- - [x] Run `make build && make test`
@@ -1,27 +0,0 @@
1
- ---
2
- id: E06-audit-command/T003-snapshot
3
- status: planned
4
- objective: "Generate file tree and changed-files snapshot"
5
- depends_on: ["E06-audit-command/T002-quality-gates"]
6
- ---
7
-
8
- # T003: Snapshot Generation
9
-
10
- ## Acceptance Criteria
11
-
12
- - Generates `.savepoint/audit/{release}/{epic}/snapshot.md`
13
- - Includes file tree (gitignore-respecting)
14
- - Includes list of changed files (from git)
15
- - Does NOT include file contents (no code in snapshot)
16
- - Snapshot path matches expected format
17
-
18
- ## Implementation Plan
19
-
20
- - [ ] Add `internal/audit/snapshot.go`
21
- - [ ] Implement `GenerateSnapshot(epic, release) error`
22
- - [ ] Walk directory tree respecting .gitignore
23
- - [ ] Run `git diff --name-only` for changed files
24
- - [ ] Write snapshot.md with tree + changed-files sections
25
- - [ ] Create audit directory if not exists
26
- - [ ] Test snapshot output format
27
- - [ ] Run `make build && make test`