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,267 +0,0 @@
1
- ---
2
- type: audit-findings
3
- audited: 2026-05-05
4
- ---
5
-
6
- # Audit Findings: E14 Structural Improvements
7
-
8
- ## Main Findings
9
-
10
- Audit proposals were applied and E14 is closed as audited. The board model is grouped into focused embedded state structs, dead board helpers were removed, board and doctor now use consumer-side data-access interfaces, doctor orphan traversal goes through `Discover.ListRootDirs`, audit tab hidden-section filtering uses exact heading matches, `TaskStatus` has been removed in favor of the canonical column/status values, and shared Go test fixtures now live in `internal/testutil`.
11
-
12
- The shell tokenizer follow-up was applied: empty quoted arguments such as `-run ""` are preserved, trailing backslashes are retained, and the branch tests were added. Router state was advanced to `epic-design` for `E15-hardening`, `E14-Detail.md` now has `status: audited`, and `.savepoint/Design.md` has `last_audited: v1.1/E14-structural-improvements`.
13
-
14
- All seven task files include `## Context Files`; no `## Drift Notes` sections were found. The remaining review note is that `package.json` contains a version bump outside the explicit E14 task scope; it was left untouched as apparent release housekeeping.
15
-
16
- ## Code Style Review
17
-
18
- - [x] One job per file - E14 keeps production responsibilities in board/data/doctor and moves shared test fixtures to `internal/testutil`.
19
- - [x] One job per function - the touched functions remain small and named around a single behavior.
20
- - [x] Test branches - `splitCommand` now covers empty quoted arguments and trailing escapes.
21
- - [x] Types are documentation - consumer-side interfaces and `ColumnType` document the intended contracts.
22
- - [x] Build, don't speculate - the implementation maps to the listed audit findings.
23
- - [x] Errors at boundaries - data discovery and quality-gate execution continue returning boundary errors.
24
- - [x] One source of truth - task status constants are consolidated under `ColumnType`.
25
- - [x] Comments explain WHY - new comments describe contracts or compatibility, not line-by-line mechanics.
26
- - [x] Content in data files - no new product copy is embedded in logic.
27
- - [ ] Small diffs - residual note: the `package.json` version bump remains outside the E14 task scope and was left untouched.
28
-
29
- ## Proposed Changes
30
-
31
- ### Target File
32
- internal/doctor/gates.go
33
-
34
- ### Replace
35
- ```go
36
- func splitCommand(command string) []string {
37
- var parts []string
38
- current := strings.Builder{}
39
- inDoubleQuote := false
40
- inSingleQuote := false
41
-
42
- for i := 0; i < len(command); i++ {
43
- c := command[i]
44
-
45
- if inSingleQuote {
46
- if c == '\'' {
47
- inSingleQuote = false
48
- } else {
49
- current.WriteByte(c)
50
- }
51
- continue
52
- }
53
-
54
- if inDoubleQuote {
55
- if c == '\\' && i+1 < len(command) {
56
- next := command[i+1]
57
- if next == '"' || next == '\\' || next == '$' || next == '`' {
58
- i++
59
- current.WriteByte(command[i])
60
- continue
61
- }
62
- }
63
- if c == '"' {
64
- inDoubleQuote = false
65
- continue
66
- }
67
- current.WriteByte(c)
68
- continue
69
- }
70
-
71
- if c == '\\' && i+1 < len(command) {
72
- i++
73
- current.WriteByte(command[i])
74
- continue
75
- }
76
- if c == '"' {
77
- inDoubleQuote = true
78
- continue
79
- }
80
- if c == '\'' {
81
- inSingleQuote = true
82
- continue
83
- }
84
- if c == ' ' {
85
- if current.Len() > 0 {
86
- parts = append(parts, current.String())
87
- current.Reset()
88
- }
89
- continue
90
- }
91
- current.WriteByte(c)
92
- }
93
- if current.Len() > 0 {
94
- parts = append(parts, current.String())
95
- }
96
- return parts
97
- }
98
- ```
99
-
100
- ### With
101
- ```go
102
- func splitCommand(command string) []string {
103
- var parts []string
104
- current := strings.Builder{}
105
- inDoubleQuote := false
106
- inSingleQuote := false
107
- tokenStarted := false
108
-
109
- flush := func() {
110
- if tokenStarted || current.Len() > 0 {
111
- parts = append(parts, current.String())
112
- current.Reset()
113
- tokenStarted = false
114
- }
115
- }
116
-
117
- for i := 0; i < len(command); i++ {
118
- c := command[i]
119
-
120
- if inSingleQuote {
121
- tokenStarted = true
122
- if c == '\'' {
123
- inSingleQuote = false
124
- } else {
125
- current.WriteByte(c)
126
- }
127
- continue
128
- }
129
-
130
- if inDoubleQuote {
131
- tokenStarted = true
132
- if c == '\\' && i+1 < len(command) {
133
- next := command[i+1]
134
- if next == '"' || next == '\\' || next == '$' || next == '`' {
135
- i++
136
- current.WriteByte(command[i])
137
- continue
138
- }
139
- }
140
- if c == '"' {
141
- inDoubleQuote = false
142
- continue
143
- }
144
- current.WriteByte(c)
145
- continue
146
- }
147
-
148
- switch c {
149
- case '\\':
150
- tokenStarted = true
151
- if i+1 < len(command) {
152
- i++
153
- current.WriteByte(command[i])
154
- } else {
155
- current.WriteByte(c)
156
- }
157
- case '"':
158
- tokenStarted = true
159
- inDoubleQuote = true
160
- case '\'':
161
- tokenStarted = true
162
- inSingleQuote = true
163
- case ' ', '\t', '\n', '\r':
164
- flush()
165
- default:
166
- tokenStarted = true
167
- current.WriteByte(c)
168
- }
169
- }
170
- flush()
171
- return parts
172
- }
173
- ```
174
-
175
- ### Target File
176
- internal/doctor/gates_test.go
177
-
178
- ### Replace
179
- ```go
180
- {"echo 'hello world'", []string{"echo", "hello world"}},
181
- {"echo \"hello \\\"world\\\"\"", []string{"echo", "hello \"world\""}},
182
- {"echo hello\\ world", []string{"echo", "hello world"}},
183
- {"echo 'it''s'", []string{"echo", "its"}},
184
- {"", nil},
185
- ```
186
-
187
- ### With
188
- ```go
189
- {"echo 'hello world'", []string{"echo", "hello world"}},
190
- {"echo \"hello \\\"world\\\"\"", []string{"echo", "hello \"world\""}},
191
- {"echo hello\\ world", []string{"echo", "hello world"}},
192
- {"echo 'it''s'", []string{"echo", "its"}},
193
- {"go test -run \"\" ./...", []string{"go", "test", "-run", "", "./..."}},
194
- {"printf ''", []string{"printf", ""}},
195
- {"echo trailing\\", []string{"echo", "trailing\\"}},
196
- {"", nil},
197
- ```
198
-
199
- ### Target File
200
- .savepoint/router.md
201
-
202
- ### Replace
203
- ```yaml
204
- epic: E14
205
- ```
206
-
207
- ### With
208
- ```yaml
209
- epic: E14-structural-improvements
210
- ```
211
-
212
- ### Target File
213
- .savepoint/Design.md
214
-
215
- ### Replace
216
- ```md
217
- - **Audit remediation baseline** (v1.1 E13) centralizes frontmatter/body splitting and line-ending normalization in `internal/data`, uses typed sentinel errors for doctor repair suggestions, applies a configurable `quality_gates.gate_timeout`, removes tracked build artifacts from source control, adds `.golangci.yml`, and moves board filesystem reads/writes behind Bubble Tea command messages while preserving direct file I/O inside command helpers.
218
- - **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.
219
- ```
220
-
221
- ### With
222
- ```md
223
- - **Audit remediation baseline** (v1.1 E13) centralizes frontmatter/body splitting and line-ending normalization in `internal/data`, uses typed sentinel errors for doctor repair suggestions, applies a configurable `quality_gates.gate_timeout`, removes tracked build artifacts from source control, adds `.golangci.yml`, and moves board filesystem reads/writes behind Bubble Tea command messages while preserving direct file I/O inside command helpers.
224
- - **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.
225
- - **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.
226
- ```
227
-
228
- ### Target File
229
- AGENTS.md
230
-
231
- ### Replace
232
- ```md
233
- | `internal/data/` | Task/router models, frontmatter parsing/splitting, lifecycle validation/defaulting, discovery, canonical write helpers |
234
- | `internal/styles/` | Atari-Noir palette, TUI styles |
235
- ```
236
-
237
- ### With
238
- ```md
239
- | `internal/data/` | Task/router models, frontmatter parsing/splitting, lifecycle validation/defaulting, discovery including root-dir traversal, unified task status constants, canonical write helpers |
240
- | `internal/testutil/` | Shared Go test fixtures and filesystem helpers for internal package tests |
241
- | `internal/styles/` | Atari-Noir palette, TUI styles |
242
- ```
243
-
244
- ### Target File
245
- .savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Detail.md
246
-
247
- ### Replace
248
- ```md
249
- **Out of scope:**
250
- - New UI features or commands
251
- - Audit Phase 3 hardening items (separate epic E15)
252
- ```
253
-
254
- ### With
255
- ```md
256
- **Out of scope:**
257
- - New UI features or commands
258
- - Audit Phase 3 hardening items (separate epic E15)
259
-
260
- ## Implemented As
261
-
262
- - `Model` grouping landed as embedded state structs in `internal/board/model.go`, preserving existing call sites while separating view, data, navigation, epic, release, and data-access state.
263
- - Consumer-side interfaces landed in `internal/board/interfaces.go` and `internal/doctor/interfaces.go`; concrete `internal/data` types satisfy them without data-layer changes.
264
- - `TaskStatus` was removed. `ColumnType` is the canonical task lifecycle type, while `data.Task.Status` remains a string mirror for parsed frontmatter and board glyph compatibility.
265
- - `internal/testutil` was added for shared test filesystem and fixture helpers across board, doctor, data, and init tests.
266
- - Audit follow-up before close: preserve empty quoted shell arguments in `splitCommand` and normalize router epic from `E14` to `E14-structural-improvements`.
267
- ```
@@ -1,54 +0,0 @@
1
- ---
2
- type: epic-design
3
- status: audited
4
- ---
5
-
6
- # E14: Phase 2 — Structural Improvements
7
-
8
- ## Purpose
9
-
10
- Address the remaining Phase 2 findings from the consolidated codebase audit (Opus 4.6 + GLM 5.1) that were not covered by E13: model decomposition, consumer-side interfaces, and structural Medium/Low items flagged by both audits.
11
-
12
- ## What this epic adds
13
-
14
- - Model fields grouped into focused sub-structs for maintainability
15
- - Consumer-side interfaces for data-access types enabling test mocking
16
- - Discover-based traversal in CheckOrphans replacing raw os.ReadDir
17
- - Exact heading matching in epic_panel replacing fragile substrings
18
- - Improved shell tokenization with quote/escape support
19
- - Consolidated ColumnType/TaskStatus enumeration removing syncTaskStatus
20
- - Shared testutil package reducing fixture duplication
21
-
22
- ## Components
23
-
24
- | Module | Purpose |
25
- |--------|---------|
26
- | `internal/board/model.go` | Group Model fields into sub-structs |
27
- | `internal/board/board.go` | Remove newProgramModel and loadAllTasks dead code |
28
- | `internal/board/` + `internal/doctor/` | Introduce consumer-side interfaces |
29
- | `internal/data/discover.go` | Add ListRootDirs method |
30
- | `internal/data/task.go` | Unify ColumnType/TaskStatus |
31
- | `internal/board/transitions.go` | Remove syncTaskStatus |
32
- | `internal/board/epic_panel.go` | Replace substring heading matching |
33
- | `internal/doctor/gates.go` | Improve splitCommand tokenizer |
34
- | `internal/doctor/checks.go` | Route CheckOrphans through Discover |
35
- | `internal/testutil/` | New package for shared test fixtures |
36
-
37
- ## Boundaries
38
-
39
- **In scope:**
40
- - All Phase 2 audit findings not covered by E13 (Model grouping, interfaces)
41
- - Medium/Low audit findings that fit the structural theme (M4, M7, M9, L1, L9)
42
- - Dead code removal (M2, L3)
43
-
44
- **Out of scope:**
45
- - New UI features or commands
46
- - Audit Phase 3 hardening items (separate epic E15)
47
-
48
- ## Implemented As
49
-
50
- - `Model` grouping landed as embedded state structs in `internal/board/model.go`, preserving existing call sites while separating view, data, navigation, epic, release, and data-access state.
51
- - Consumer-side interfaces landed in `internal/board/interfaces.go` and `internal/doctor/interfaces.go`; concrete `internal/data` types satisfy them without data-layer changes.
52
- - `TaskStatus` was removed. `ColumnType` is the canonical task lifecycle type, while `data.Task.Status` remains a string mirror for parsed frontmatter and board glyph compatibility.
53
- - `internal/testutil` was added for shared test filesystem and fixture helpers across board, doctor, data, and init tests.
54
- - Audit closeout preserved empty quoted shell arguments in `splitCommand` and advanced the router to `E15-hardening`.
@@ -1,39 +0,0 @@
1
- ---
2
- id: E14-structural-improvements/T001-group-model
3
- status: done
4
- objective: Group the 27-field Model struct into focused sub-structs; delete newProgramModel and loadAllTasks
5
- depends_on: []
6
- ---
7
-
8
- # T001: Group Model Fields Into Sub-structs and Remove Dead Code
9
-
10
- ## Context Files
11
-
12
- - `internal/board/model.go` — Model struct with 27 flat fields
13
- - `internal/board/board.go:32-34` — newProgramModel with hardcoded slug
14
- - `internal/board/board.go:125-128` — loadAllTasks dead wrapper
15
- - `internal/board/board_test.go:13` — references newProgramModel
16
-
17
- ## Acceptance Criteria
18
-
19
- - [x] Model fields grouped into sub-structs (e.g. ViewConfig, NavigationState, DataState)
20
- - [x] newProgramModel() removed from board.go
21
- - [x] loadAllTasks() removed from board.go
22
- - [x] board_test.go updated to not reference removed functions
23
- - [x] `go test ./...` passes with no regressions
24
-
25
- ## Implementation Plan
26
-
27
- - [x] Identify logical field groups in Model struct
28
- - [x] Extract sub-struct type definitions
29
- - [x] Update all field references across the board package
30
- - [x] Delete newProgramModel() and loadAllTasks()
31
- - [x] Update board_test.go to construct Model directly
32
- - [x] Run `make build && make test`
33
-
34
- ## Context Log
35
-
36
- - Files read: `.savepoint/router.md`, `.savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Detail.md`, `.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T001-group-model.md`, `agent-skills/savepoint-build-task/SKILL.md`, `internal/board/model.go`, `internal/board/board.go`, `internal/board/board_test.go`
37
- - Files edited: `.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T001-group-model.md`, `internal/board/model.go`, `internal/board/board.go`, `internal/board/board_test.go`
38
- - Tokens used: approximately 16k
39
- - Quality gates: `make build` passed; `make test` passed. Initial sandboxed runs hit Go build-cache access errors, then passed with approved escalation.
@@ -1,42 +0,0 @@
1
- ---
2
- id: E14-structural-improvements/T002-data-interfaces
3
- status: done
4
- objective: Define consumer-side interfaces for stateless data types and accept them in board/doctor constructors
5
- depends_on: []
6
- ---
7
-
8
- # T002: Extract Consumer-Side Interfaces for Data-Access Types
9
-
10
- ## Context Files
11
-
12
- - `internal/data/discover.go` — NewDiscover() returns *Discover
13
- - `internal/data/parser.go` — NewParser() returns *Parser
14
- - `internal/data/config.go` — NewConfigReader() returns *ConfigReader
15
- - `internal/data/router.go` — NewRouterReader() returns *RouterReader
16
- - `internal/board/board.go` — calls data.NewDiscover() directly
17
- - `internal/doctor/checks.go` — calls data.NewDiscover() directly
18
- - `internal/board/model.go` — NewModel() signature
19
-
20
- ## Acceptance Criteria
21
-
22
- - [x] Consumer-side interfaces defined for taskDiscoverer, taskParser, configReader, routerReader
23
- - [x] board.NewModel() accepts interfaces instead of calling constructors directly
24
- - [x] doctor.CheckXxx functions accept interfaces instead of calling constructors directly
25
- - [x] Existing concrete types satisfy the interfaces with no changes to internal/data
26
- - [x] Tests can inject mock implementations
27
- - [x] `go test ./...` passes with no regressions
28
-
29
- ## Implementation Plan
30
-
31
- - [x] Define interfaces in board/types.go or at each consumer site
32
- - [x] Update NewModel signature to accept interfaces with zero-value defaults
33
- - [x] Update CheckOrphans, CheckDependencies, CheckRouter signatures
34
- - [x] Add doc comments documenting the interface contracts
35
- - [x] Run `make build && make test`
36
-
37
- ## Context Log
38
-
39
- - Files read: `internal/data/discover.go`, `internal/data/parser.go`, `internal/data/config.go`, `internal/data/router.go`, `internal/board/board.go`, `internal/doctor/checks.go`, `internal/board/model.go`, related board/doctor tests.
40
- - Files edited: `internal/board/interfaces.go`, `internal/board/model.go`, `internal/board/board.go`, `internal/board/tui.go`, `internal/board/io.go`, `internal/board/update.go`, `internal/board/watch.go`, `internal/board/interfaces_test.go`, `internal/doctor/interfaces.go`, `internal/doctor/checks.go`, `internal/doctor/gates.go`, `internal/doctor/interfaces_test.go`.
41
- - Token estimate: ~18k.
42
- - Quality gates: `go test ./internal/board ./internal/doctor` passed; `make build && make test` passed (`go test ./...` all packages).
@@ -1,33 +0,0 @@
1
- ---
2
- id: E14-structural-improvements/T003-discover-orphans
3
- status: done
4
- objective: Add ListRootDirs to Discover and use it in CheckOrphans instead of direct os.ReadDir
5
- depends_on: []
6
- ---
7
-
8
- # T003: Route CheckOrphans Through Discover
9
-
10
- ## Context Files
11
-
12
- - `internal/doctor/checks.go:488-514` — CheckOrphans uses os.ReadDir directly
13
- - `internal/data/discover.go` — existing ListReleases, ListEpics, ListTasks methods
14
-
15
- ## Acceptance Criteria
16
-
17
- - [x] ListRootDirs(releasesPath string) ([]string, error) added to Discover
18
- - [x] CheckOrphans uses data.Discover for filesystem traversal
19
- - [x] `go test ./...` passes with no regressions
20
-
21
- ## Implementation Plan
22
-
23
- - [x] Add ListRootDirs method to Discover in discover.go
24
- - [x] Add tests for ListRootDirs in discover_test.go
25
- - [x] Refactor CheckOrphans to use Discover instead of os.ReadDir
26
- - [x] Run `make build && make test`
27
-
28
- ## Context Log
29
-
30
- - Files read: `internal/doctor/checks.go`, `internal/data/discover.go`, `internal/data/discover_test.go`, `internal/doctor/interfaces.go`.
31
- - Files edited: `internal/data/discover.go`, `internal/data/discover_test.go`, `internal/doctor/interfaces.go`, `internal/doctor/interfaces_test.go`, `internal/doctor/checks.go`.
32
- - Token estimate: ~8k.
33
- - Quality gates: `go test ./internal/data ./internal/doctor` passed; `make build && make test` passed (`go test ./...` all packages).
@@ -1,35 +0,0 @@
1
- ---
2
- id: E14-structural-improvements/T004-epic-panel-headings
3
- status: done
4
- objective: Replace substring heading matching in epic_panel with exact heading match and configurable blocklist
5
- depends_on: []
6
- ---
7
-
8
- # T004: Replace Ad-hoc Heading Matching in epic_panel
9
-
10
- ## Context Files
11
-
12
- - `internal/board/epic_panel.go:131-136` — substring heading detection in epicAuditBody
13
-
14
- ## Acceptance Criteria
15
-
16
- - [x] Heading filtering uses exact match against a blocklist (not substring)
17
- - [x] Blocklist is configurable via a named variable
18
- - [x] Existing behavior preserved for all known audit headings
19
- - [x] `go test ./...` passes with no regressions
20
-
21
- ## Implementation Plan
22
-
23
- - [x] Identify current substring logic and blocklist
24
- - [x] Replace with exact heading matching
25
- - [x] Rename/restructure the blocklist variable
26
- - [x] Update tests if applicable
27
- - [x] Run `make build && make test`
28
-
29
- ## Context Log
30
-
31
- - Files read: `internal/board/epic_panel.go`, `internal/board/epic_panel_test.go`.
32
- - Files edited: `internal/board/epic_panel.go`, `internal/board/epic_panel_test.go`.
33
- - Token estimate: ~6k.
34
- - Quality gates: `go test ./internal/board` passed; `make build && make test` passed (`go test ./...` all packages).
35
- - TUI note: could not press `p` from the agent environment; router already points at this task as current priority.
@@ -1,27 +0,0 @@
1
- ---
2
- id: E14-structural-improvements/T005-shell-tokenization
3
- status: done
4
- objective: Improve splitCommand to handle single quotes and backslash-escapes, or document limitations
5
- depends_on: []
6
- ---
7
-
8
- # T005: Improve Shell Tokenization in Gates
9
-
10
- ## Context Files
11
-
12
- - `internal/doctor/gates.go:125` — splitCommand function (naïve shell tokenizer)
13
-
14
- ## Acceptance Criteria
15
-
16
- - [x] splitCommand handles single-quote grouping or limitation is documented
17
- - [x] splitCommand handles backslash-escaped characters or limitation is documented
18
- - [x] Existing double-quote handling preserved
19
- - [x] `go test ./...` passes with no regressions
20
-
21
- ## Implementation Plan
22
-
23
- - [x] Review current splitCommand implementation
24
- - [x] Add single-quote parsing
25
- - [x] Add backslash-escape handling
26
- - [x] Update existing tests and add new test cases
27
- - [x] Run `make build && make test`
@@ -1,29 +0,0 @@
1
- ---
2
- id: E14-structural-improvements/T006-unify-enums
3
- status: done
4
- objective: Consolidate ColumnType and TaskStatus into a single status type and remove syncTaskStatus
5
- depends_on: []
6
- ---
7
-
8
- # T006: Unify ColumnType and TaskStatus Enumerations
9
-
10
- ## Context Files
11
-
12
- - `internal/data/task.go:13-36` — ColumnType and TaskStatus parallel definitions
13
- - `internal/board/transitions.go:57-59` — syncTaskStatus manually syncs both enums
14
- - Multiple consumer files reference Task.Status or Task.Column
15
-
16
- ## Acceptance Criteria
17
-
18
- - [x] ColumnType and TaskStatus consolidated into a single type
19
- - [x] syncTaskStatus removed from transitions.go
20
- - [x] All consumer references updated
21
- - [x] `go test ./...` passes with no regressions
22
-
23
- ## Implementation Plan
24
-
25
- - [x] Choose the surviving type (ColumnType has wider usage)
26
- - [x] Merge TaskStatus constants into ColumnType
27
- - [x] Remove syncTaskStatus and inline any callers
28
- - [x] Update all references across the codebase
29
- - [x] Run `make build && make test`
@@ -1,28 +0,0 @@
1
- ---
2
- id: E14-structural-improvements/T007-testutil-package
3
- status: done
4
- objective: Create internal/testutil with shared fixtures to reduce duplication across board/doctor/data/init tests
5
- depends_on: []
6
- ---
7
-
8
- # T007: Consolidate Test Helpers Into Testutil Package
9
-
10
- ## Context Files
11
-
12
- - All test files across internal/board, internal/doctor, internal/data, internal/init
13
- - Common fixture patterns: temp directory creation, task file writing, config scaffolding
14
-
15
- ## Acceptance Criteria
16
-
17
- - [x] internal/testutil package created
18
- - [x] Common fixture helpers extracted and shared
19
- - [x] All existing tests still pass after refactoring to use shared helpers
20
- - [x] No unnecessary exports in the public API
21
- - [x] `go test ./...` passes with no regressions
22
-
23
- ## Implementation Plan
24
-
25
- - [x] Survey existing test helpers for duplication patterns
26
- - [x] Create internal/testutil with shared fixture functions
27
- - [x] Refactor each test package to use shared helpers
28
- - [x] Run `make build && make test`
@@ -1,43 +0,0 @@
1
- ---
2
- type: epic-design
3
- status: planned
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
-
22
- ## Components
23
-
24
- | Module | Purpose |
25
- |--------|---------|
26
- | `internal/board/view_test.go` | Add render benchmarks |
27
- | `internal/data/parser_test.go` | Add fuzz targets |
28
- | `cmd/main.go` | Add --debug / SAVEPOINT_DEBUG |
29
- | `internal/buildtool/main.go` | Add checksums, Windows targets |
30
- | `internal/board/detail.go` | Fix abbreviation handling |
31
- | `internal/board/epic_panel.go` | Extract allowlist constant |
32
- | `agent_skills_test.go` | Move to cmd_test package |
33
-
34
- ## Boundaries
35
-
36
- **In scope:**
37
- - All Phase 3 audit findings not covered by E13 (benchmarks, fuzz, debug flag)
38
- - Medium/Low hardening items (M10, L7, L10, L11, L12)
39
-
40
- **Out of scope:**
41
- - CI/CD configuration — separate concern
42
- - New UI features or commands
43
- - Structural improvements (separate epic E14)
@@ -1,31 +0,0 @@
1
- ---
2
- id: E15-hardening/T001-benchmarks
3
- status: planned
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
- - [ ] Benchmark added for RenderCard with varied content widths
20
- - [ ] Benchmark added for renderColumn with multiple tasks
21
- - [ ] Benchmark added for layout calculations at different widths
22
- - [ ] Benchmarks are repeatable with consistent results
23
- - [ ] Benchmarks don't modify package state
24
- - [ ] `go test -bench=. ./internal/board/` runs without errors
25
-
26
- ## Implementation Plan
27
-
28
- - [ ] Add benchmark functions in view_test.go, card_test.go, column_test.go
29
- - [ ] Create test data with representative task mixtures
30
- - [ ] Run benchmarks and document baseline
31
- - [ ] Run `make build && make test`
@@ -1,28 +0,0 @@
1
- ---
2
- id: E15-hardening/T002-fuzz-targets
3
- status: planned
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
- - [ ] Fuzz target added for extractFrontmatter round-trip
19
- - [ ] Fuzz target added for WriteTaskStatus round-trip (write then re-parse)
20
- - [ ] Fuzz targets exercise edge cases (empty content, malformed YAML, unicode)
21
- - [ ] `go test -fuzz=. ./internal/data/` runs without errors
22
-
23
- ## Implementation Plan
24
-
25
- - [ ] Create fuzz_test.go in internal/data with fuzz targets
26
- - [ ] Define corpus seed inputs from known edge cases
27
- - [ ] Run fuzz targets for short duration to verify stability
28
- - [ ] Run `make build && make test`