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,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`