savepoint 1.0.4 → 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 (425) hide show
  1. package/package.json +10 -3
  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,167 +0,0 @@
1
- ---
2
- type: audit-findings
3
- audited: 2026-05-02
4
- ---
5
-
6
- # Audit Findings: E04 Epic Navigation
7
-
8
- ## Main Findings
9
-
10
- E04 verified the wide-screen epic navigation work: focusable epic sidebar, purple epic focus styling, epic detail overlay, and epic status glyph loading from epic detail frontmatter.
11
-
12
- The audit found no must-fix product issue before close. Carry-forward notes were limited to documenting accepted overlay filtering behavior, the permissive epic detail file fallback, and a minor unused sidebar paging helper.
13
-
14
- ## Code Style Review
15
-
16
-
17
- - [ ] One job per file
18
- - [ ] One-sentence functions
19
- - [ ] Test branches
20
- - [ ] Types are documentation
21
- - [ ] Build, don't speculate
22
- - [ ] Errors at boundaries
23
- - [ ] One source of truth
24
- - [ ] Comments explain WHY
25
- - [ ] Content in data files
26
- - [ ] Small diffs
27
-
28
- ## Proposed Changes
29
-
30
- ### Target File
31
-
32
- `.savepoint/Design.md`
33
-
34
- ### Replace
35
-
36
- ```yaml
37
- last_audited: E01-tui-optimisation (2026-05-02)
38
- ```
39
-
40
- ### With
41
-
42
- ```yaml
43
- last_audited: E04-epic-navigation (2026-05-02)
44
- ```
45
-
46
- ---
47
-
48
- ### Target File
49
-
50
- `.savepoint/Design.md`
51
-
52
- ### Replace
53
-
54
- ```md
55
- - **Board command** (`savepoint board`) reads project state, renders the Atari-Noir TUI board, supports release/epic filtering, detail overlays, task status transitions with mtime-guarded writes, release/epic-scoped router priority markers, fsnotify-based task auto-refresh (epic E06), header Next Activity display, height-aware column/detail viewport scrolling, and stable focused/unfocused column border geometry (v1.1 E01).
56
- ```
57
-
58
- ### With
59
-
60
- ```md
61
- - **Board command** (`savepoint board`) reads project state, renders the Atari-Noir TUI board, supports release/epic filtering, detail overlays, task status transitions with mtime-guarded writes, release/epic-scoped router priority markers, fsnotify-based task auto-refresh (epic E06), header Next Activity display, height-aware column/detail viewport scrolling, stable focused/unfocused column border geometry (v1.1 E01), and a focusable wide-screen epic sidebar with purple epic focus, epic detail overlays, and status glyphs loaded from epic detail frontmatter (v1.1 E04).
62
- ```
63
-
64
- ---
65
-
66
- ### Target File
67
-
68
- `.savepoint/Design.md`
69
-
70
- ### Replace
71
-
72
- ```md
73
- **Layout:** single screen with a 3-column task board (`planned`, `in_progress`, `done`), optional epic sidebar on wide terminals, centered overlays for release/epic/help/task detail, static Atari-Noir header/footer, full-width dividers, uniform black TUI backgrounds, and navigation hints. The header can show a compact right-aligned Next Activity value from router state. Columns and detail overlays use height-aware viewport slicing with subtle above/more scroll indicators. Focused and unfocused columns preserve the same rounded-border geometry so focus changes do not shift content. Non-TTY output remains a plain table fallback.
74
- ```
75
-
76
- ### With
77
-
78
- ```md
79
- **Layout:** single screen with a 3-column task board (`planned`, `in_progress`, `done`), optional epic sidebar on wide terminals, centered overlays for release/epic/help/task/epic-detail views, static Atari-Noir header/footer, full-width dividers, uniform black TUI backgrounds, and navigation hints. The header can show a compact right-aligned Next Activity value from router state. Columns and detail overlays use height-aware viewport slicing with subtle above/more scroll indicators. Focused and unfocused columns preserve the same rounded-border geometry so focus changes do not shift content. On terminals at least 120 columns wide, the epic sidebar is focusable from the Planned column; it uses the purple epic accent for focused panel borders, focused epic labels, and epic detail overlays while task-column focus remains orange. Non-TTY output remains a plain table fallback.
80
- ```
81
-
82
- ---
83
-
84
- ### Target File
85
-
86
- `.savepoint/Design.md`
87
-
88
- ### Replace
89
-
90
- ```md
91
- **Board persistence and refresh:** task status transitions write canonical task frontmatter through `internal/data.WriteTaskStatus` with mtime conflict checks. The board treats `Model.Root` as the `.savepoint` directory, watches `.savepoint/releases/` recursively with fsnotify, adds watches for newly-created release/epic/task directories, and reloads task plus release/epic index data after debounced file changes. Router priority markers match release + epic + task, not only the short `T###` value; completed cards render with the orange build glyph even if they previously matched router priority.
92
- ```
93
-
94
- ### With
95
-
96
- ```md
97
- **Board persistence and refresh:** task status transitions write canonical task frontmatter through `internal/data.WriteTaskStatus` with mtime conflict checks. The board treats `Model.Root` as the `.savepoint` directory, watches `.savepoint/releases/` recursively with fsnotify, adds watches for newly-created release/epic/task directories, and reloads task plus release/epic index data plus epic status metadata after debounced file changes. Router priority markers match release + epic + task, not only the short `T###` value; completed cards render with the orange build glyph even if they previously matched router priority. Epic status glyphs are cached from each epic's `E##-Detail.md` frontmatter and shown in the wide epic sidebar only.
98
- ```
99
-
100
- ---
101
-
102
- ### Target File
103
-
104
- `AGENTS.md`
105
-
106
- ### Replace
107
-
108
- ```md
109
- | `internal/board/` | TUI board models, layout, rendering, overlays, task transitions, router priority markers, and fsnotify refresh |
110
- | `internal/data/` | Task/router/config models, frontmatter parsing, checklist state parsing, mtime-guarded writes, discovery, and generic file readers |
111
- | `internal/styles/` | Atari-Noir palette constants, terminal color fallbacks, shared TUI styles, stable column border styles, scroll indicators, semantic glyph/tag styles, and footer/header styling |
112
- ```
113
-
114
- ### With
115
-
116
- ```md
117
- | `internal/board/` | TUI board models, layout, rendering, overlays, focusable epic sidebar navigation, epic detail overlays, epic status glyph loading, task transitions, router priority markers, and fsnotify refresh |
118
- | `internal/data/` | Task/router/config models, frontmatter parsing, checklist state parsing, mtime-guarded writes, discovery, and generic file readers |
119
- | `internal/styles/` | Atari-Noir palette constants, terminal color fallbacks, shared TUI styles, stable column border styles, scroll indicators, purple epic navigation/detail styles, semantic glyph/tag styles, and footer/header styling |
120
- ```
121
-
122
- ---
123
-
124
- ### Target File
125
-
126
- `.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Detail.md`
127
-
128
- ### Replace
129
-
130
- ```yaml
131
- status: planned
132
- ```
133
-
134
- ### With
135
-
136
- ```yaml
137
- status: audited
138
- ```
139
-
140
- ---
141
-
142
- ### Target File
143
-
144
- `.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Detail.md`
145
-
146
- ### Replace
147
-
148
- ```md
149
- ## Architectural notes
150
- ```
151
-
152
- ### With
153
-
154
- ```md
155
- ## Implemented as
156
-
157
- - `internal/board/model.go` adds `EpicPanelFocus`, `EpicPanelCursor`, `EpicDetailOffset`, `EpicDetailContent`, and `EpicStatus` model state.
158
- - `internal/board/update.go` handles global keys before epic-panel routing, focuses the panel from the Planned column on wide layouts, changes the selected epic during panel cursor movement, writes router release/epic state, and opens the epic detail overlay on Enter.
159
- - `internal/board/epic_panel.go` renders the purple-accented epic sidebar focus state, purple epic detail overlay, markdown detail body, and side-panel-only status glyph prefixes.
160
- - `internal/board/board.go` loads epic status frontmatter during board-data loading; `internal/board/watch.go` carries that status map through reloads.
161
- - Epic navigation deliberately uses `VibePurple` (`#B1A1DF`) for focused epic panel borders, focused epic labels, epic detail overlays, and epic/audit accents, while task-column focus remains Atari Orange.
162
- - Implementation deviation: T001 originally said Enter in epic-panel focus selected the focused epic. The final behavior from T002 is that up/down selects and filters immediately, while Enter opens the epic detail overlay.
163
-
164
- ## Architectural notes
165
- ```
166
-
167
- ---
@@ -1,51 +0,0 @@
1
- ---
2
- type: epic-design
3
- status: audited
4
- ---
5
-
6
- # Epic E04: Epic Navigation
7
-
8
- ## Purpose
9
-
10
- Make the epic sidebar an active, focusable UI component. The sidebar currently lists epics as static text — the only way to switch epics is through the `E` key dropdown popup. This epic gives the sidebar parity with task columns: ↑/↓ navigation, focus highlighting, and an Enter-triggered "Epic Detail" overlay.
11
-
12
- ## Definition of Done
13
-
14
- - Epic sidebar is focusable — left arrow from `Planned` column moves focus to sidebar
15
- - In sidebar focus: ↑/↓ navigates through epics, right arrow returns to column view
16
- - Focused epic filters tasks in all three columns (same filtering as current `SelectedEpic`)
17
- - A focused epic entry in the sidebar is visually distinct from unfocused ones
18
- - Enter on a focused epic opens an "Epic Detail" overlay showing the epic's `E##-Detail.md` content
19
- - Overlay supports scrolling (↑/↓, PgUp/PgDown) identical to task detail overlay
20
- - `E` key dropdown behavior is preserved unchanged
21
- - All above works only when epic panel is visible (≥120 terminal width)
22
-
23
- ## Components and files
24
-
25
- | Path | Purpose |
26
- |------|---------|
27
- | `internal/board/model.go` | Add `EpicPanelFocus`, `EpicPanelCursor`, `EpicDetailOffset`, `EpicDetailContent` state |
28
- | `internal/board/update.go` | Handle left arrow to enter panel, ↑/↓ within, Enter to open detail, right arrow to exit |
29
- | `internal/board/view.go` | Pass focus/cursor to `RenderEpicSidebar`, render epic detail overlay |
30
- | `internal/board/epic_panel.go` | Update `RenderEpicSidebar` for focus/cursor, add `RenderEpicDetail` |
31
- | `internal/board/detail.go` | Reuse `visibleDetailLines`, `WrapText`, scroll helpers for epic detail |
32
- | `internal/board/board.go` | Load epic status from detail files in `loadBoardData` |
33
- | `internal/board/watch.go` | Carry `epicStatuses` in `reloadMsg` for dynamic reloads |
34
- | `internal/data/parser.go` | Reuse `ParseFrontmatter` to extract status YAML field |
35
-
36
- ## Architectural notes
37
-
38
- - `EpicPanelFocus bool` is a lightweight flag replacing the need for a new column type
39
- - The epic detail overlay content is read from `E##-Detail.md` on the filesystem when Enter is pressed (not pre-loaded)
40
- - Detail file path is deterministic: `{root}/releases/{release}/epics/{epic-slug}/{shortID}-Detail.md`
41
- - If the detail file is missing, the overlay shows a "(no detail available)" message
42
- - Column selection, task selection, and existing overlay behavior are completely unchanged
43
-
44
- ## Implemented as
45
-
46
- - `internal/board/model.go` adds `EpicPanelFocus`, `EpicPanelCursor`, `EpicDetailOffset`, `EpicDetailContent`, and `EpicStatus` model state.
47
- - `internal/board/update.go` handles global keys before epic-panel routing, focuses the panel from the Planned column on wide layouts, changes the selected epic during panel cursor movement, writes router release/epic state, and opens the epic detail overlay on Enter.
48
- - `internal/board/epic_panel.go` renders the purple-accented epic sidebar focus state, purple epic detail overlay, markdown detail body, and side-panel-only status glyph prefixes.
49
- - `internal/board/board.go` loads epic status frontmatter during board-data loading; `internal/board/watch.go` carries that status map through reloads.
50
- - Epic navigation deliberately uses `VibePurple` (`#B1A1DF`) for focused epic panel borders, focused epic labels, epic detail overlays, and epic/audit accents, while task-column focus remains Atari Orange.
51
- - Implementation deviation: T001 originally said Enter in epic-panel focus selected the focused epic. The final behavior from T002 is that up/down selects and filters immediately, while Enter opens the epic detail overlay.
@@ -1,65 +0,0 @@
1
- ---
2
- id: E04-epic-navigation/T001-sidebar-focusable-navigation
3
- status: done
4
- objective: "Make the epic sidebar focusable with up/down navigation to select epics"
5
- depends_on: []
6
- ---
7
-
8
- # T001: Sidebar Focusable Navigation
9
-
10
- ## Acceptance Criteria
11
-
12
- - Left arrow (`←`/`h`) from the `Planned` column moves keyboard focus to the epic panel (when panel is visible at ≥120 width)
13
- - In epic panel focus mode, `↑`/`k` moves the cursor up through the epic list (clamped to bounds)
14
- - In epic panel focus mode, `↓`/`j` moves the cursor down through the epic list (clamped to bounds)
15
- - The focused epic entry in the sidebar is highlighted with the same focused style used in task columns
16
- - `Enter` in epic panel focus mode selects the focused epic: tasks are filtered to that epic, and focus remains in the panel
17
- - Right arrow (`→`/`l`) from epic panel focus exits back to the `Planned` column with `FocusedTask=0`
18
- - The existing `E` key dropdown overlay still works unchanged
19
- - When no epics exist in the current release, the panel shows no navigable cursor
20
- - All navigation is blocked when any overlay is open (existing behavior)
21
-
22
- ## Implementation Plan
23
-
24
- - [x] Add `EpicPanelFocus bool` and `EpicPanelCursor int` to `Model` in `model.go`
25
- - [x] Add `EpicPanelFocus` tracking to `refreshEpicsForRelease()` — clamp cursor and clear focus if epics list becomes empty
26
- - [x] In `update.go` — before the `switch msg.String()` block, check `m.Overlay == OverlayNone && m.EpicPanelFocus` and route to a new `updateEpicPanel` method
27
- - [x] In `updateEpicPanel` — handle `up`/`k` (decrement cursor), `down`/`j` (increment cursor), `enter` (call `m.selectEpicPanelEpic()`), `right`/`l` (exit to Planned column), `left`/`h` (no-op or wrap)
28
- - [x] In `update.go` main switch — handle `left`/`h` when `FocusedColumn == Planned` by setting `EpicPanelFocus = true` (only when epic panel is visible, i.e. `CalculateLayout(m.Width, m.Height).EpicPanelVisible`)
29
-
30
- - [x] Add `m.selectEpicPanelEpic()` method: set `m.SelectedEpic = m.Epics[m.EpicPanelCursor]`, reset `m.FocusedTask = 0`, `m.DetailOffset = 0`, call `m.refreshTasks()`, call `m.ensureFocusedTaskVisible()`, write router state
31
- - [x] Update `epic_panel.go` — update `RenderEpicSidebar` signature to accept `focus bool, cursor int` params; when focused, render the item at cursor with `styles.TaskItemFocused` and `epicActiveMarker`; when not focused, keep current rendering with `SelectedEpic` marker
32
- - [x] Update `view.go` — pass `m.EpicPanelFocus` and `m.EpicPanelCursor` to `RenderEpicSidebar` in `renderEpicPanel`
33
- - [x] Add `m.epicPanelPageSize()` helper returning `m.Height / 2` (or similar) for eventual PgUp/PgDown support
34
- - [x] Run `make build && make test` to verify no regressions
35
-
36
- ## Context Log
37
-
38
- Files read:
39
- - `.savepoint/router.md`
40
- - `agent-skills/savepoint-build-task/SKILL.md`
41
- - `agent-skills/ink-tui-design/SKILL.md`
42
- - `.savepoint/visual-identity.md`
43
- - `.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Detail.md`
44
- - `.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T001-sidebar-focusable-navigation.md`
45
- - `internal/board/model.go`
46
- - `internal/board/update.go`
47
- - `internal/board/view.go`
48
- - `internal/board/epic_panel.go`
49
- - `internal/board/layout.go`
50
- - `internal/board/board.go`
51
- - `internal/board/epic_panel_test.go`
52
- - `internal/board/update_test.go`
53
- - `internal/board/model_test.go`
54
- - `internal/board/view_test.go`
55
-
56
- Estimated input tokens: 12000
57
-
58
- Notes:
59
- - Model's `EpicCursor` field (used in dropdown) is distinct from new `EpicPanelCursor`
60
- - The epic panel visibility is determined by `layout.EpicPanelVisible` in `CalculateLayout`
61
- - Focused board tests: `go test ./internal/board` passed.
62
- - Required quality gate `make build && make test`: failed to start because `make` is not installed in this shell.
63
- - Equivalent quality gates: `go build -o savepoint main.go` passed; `go test ./...` passed.
64
- - Follow-up fix after manual review: epic panel focus now renders with the focused panel border and focused title so entering the sidebar is visually apparent even when the cursor starts on the already selected epic. Re-ran `go test ./internal/board`, `go build -o savepoint main.go`, and `go test ./...`; all passed.
65
- - Follow-up input-routing fix: global `q`, `e`, `r`, and `?` keys now run before epic-panel-specific key handling, so quit and dropdown overlays still work when the epic panel is focused. Added regression tests for `q`, `e`, and `r` from epic panel focus. Re-ran `go test ./internal/board`, `go build -o savepoint main.go`, and `go test ./...`; all passed.
@@ -1,73 +0,0 @@
1
- ---
2
- id: E04-epic-navigation/T002-epic-detail-overlay
3
- status: done
4
- objective: "Add Epic Detail overlay showing E##-Detail.md content, triggered by Enter on a focused epic"
5
- depends_on:
6
- - E04-epic-navigation/T001-sidebar-focusable-navigation
7
- ---
8
-
9
- # T002: Epic Detail Overlay
10
-
11
- ## Acceptance Criteria
12
-
13
- - Pressing `Enter` on a focused epic in the sidebar opens a centered overlay titled "EPIC DETAIL"
14
- - The overlay content is read from the epic's `E##-Detail.md` file on disk
15
- - If the file exists, it shows: epic title, purpose, definition of done, and the components table (rendered as text)
16
- - If the file does not exist, the overlay shows an informative "(no detail available)" message
17
- - The overlay is height-capped at ~70% of terminal height with scroll indicators (↑/↓) for overflow
18
- - `↑`/`k` and `↓`/`j` scroll the detail content (reuses existing scroll indicator pattern from `detail.go`)
19
- - `PgUp`/`PgDown` scroll in page increments
20
- - `Esc` or `q` closes the overlay and returns to epic panel focus
21
- - The overlay uses `styles.DetailOverlay` for consistent visual styling with task detail
22
-
23
- ## Implementation Plan
24
-
25
- - [x] Add `OverlayEpicDetail OverlayType = "detail-epic"` to `model.go`
26
- - [x] Add `EpicDetailOffset int` to `Model` in `model.go`
27
- - [x] Add `EpicDetailContent string` to `Model` in `model.go` (cached content of the detail file)
28
-
29
- - [x] In `epic_panel.go` — add `RenderEpicDetail(epicID, content string, overlayW, maxHeight, offset int) string`:
30
- - Parse frontmatter lines from the markdown content (lines between `---` markers) for metadata display
31
- - Render header: epic ID and title from markdown heading
32
- - Render body: the rest of the markdown content as plain text (no markdown rendering)
33
- - Use `visibleDetailLines` from `detail.go` for height-capped scrolling
34
- - Reuse `styles.DetailOverlay`, `styles.ColumnTitleFocused`, `styles.CardMeta`, `styles.ColumnTitle`
35
-
36
- - [x] In `update.go` — when `m.EpicPanelFocus && enter`:
37
- - Derive detail file path: `{m.Root}/releases/{m.SelectedRelease}/epics/{epicSlug}/{shortID(epicSlug)}-Detail.md`
38
- - Read the file content with `os.ReadFile`
39
- - If error (file missing, etc.), set `m.EpicDetailContent = "(no detail available)"`
40
- - Set `m.Overlay = OverlayEpicDetail`, `m.EpicDetailOffset = 0`
41
- - Cache the content in `m.EpicDetailContent`
42
-
43
- - [x] In `updateOverlay` in `update.go` — match `OverlayEpicDetail` and handle:
44
- - `esc`/`q` → `OverlayNone` (exit back to epic panel focus)
45
- - `up`/`k` → decrement `EpicDetailOffset` if > 0
46
- - `down`/`j` → increment `EpicDetailOffset`
47
- - `pgup`/`pgdown` → page scroll using existing `detailPageSize()`
48
-
49
- - [x] In `view.go` — match `OverlayEpicDetail` and call `RenderEpicDetail(...)` with the cached content
50
- - [x] Reuse `visibleDetailLines`, `clampDetailOffset`, `detailRow`, `WrapText` from `detail.go` — no need to copy
51
- - [x] Run `make build && make test` to verify no regressions
52
-
53
- ## Context Log
54
-
55
- Files read:
56
- - `internal/board/model.go`
57
- - `internal/board/update.go`
58
- - `internal/board/view.go`
59
- - `internal/board/epic_panel.go`
60
- - `internal/board/detail.go`
61
- - `internal/board/card.go` — `shortID` helper
62
- - `.savepoint/releases/v1.1/epics/E01-tui-optimisation/E01-Detail.md` — example detail file
63
-
64
- Estimated input tokens: ~2800
65
-
66
- Quality gate: `go build` ✓, `go test ./...` ✓ (all 3 packages pass)
67
-
68
- Notes:
69
- - `detail.go` functions `visibleDetailLines`, `clampDetailOffset`, `WrapText` are unexported — `epic_panel.go` is in the same `board` package so they're accessible
70
- - Content loading is synchronous (simple file read) — no async command needed
71
- - `shortID` extracts "E04" from "E04-epic-navigation" via first `-` split
72
- - Updated `TestUpdate_epicPanelEnterSelectsFocusedEpic` → `TestUpdate_epicPanelEnterOpensDetailOverlay` to reflect T002 behavior change
73
- - Added 7 new tests covering overlay open, scroll, pgup/pgdown, esc close, view rendering, no-content fallback
@@ -1,73 +0,0 @@
1
- ---
2
- id: E04-epic-navigation/T003-epic-status-glyphs
3
- status: done
4
- objective: "Add status glyphs to the epic sidebar showing each epic's lifecycle state"
5
- depends_on:
6
- - E04-epic-navigation/T001-sidebar-focusable-navigation
7
- ---
8
-
9
- # T003: Epic Status Glyphs in Side Panel
10
-
11
- ## Acceptance Criteria
12
-
13
- - Each epic in the sidebar shows a status glyph prefix: `○` for `planned`, `▶` for `in_progress`, `◉` for `done`, `✓` for `audited`, space for unknown
14
- - The glyph is styled: `○` in dim, `▶` in orange, `◉` in green, `✓` in green — matching the status colour convention
15
- - The status is read from the `status:` field in each epic's `E##-Detail.md` frontmatter at load time
16
- - Only the **side panel** is affected — the `E` key dropdown overlay is unchanged
17
- - The status map is loaded once during `loadBoardData` and cached in the Model (no per-frame file I/O)
18
- - If an epic's detail file is missing or has no `status` frontmatter, the glyph defaults to a space (no indicator)
19
- - All existing epic sidebar rendering (focus highlighting, cursor, active marker, selected marker) works unchanged
20
- - `make build && make test` pass
21
-
22
- ## Implementation Plan
23
-
24
- - [x] Add `EpicStatus map[string]string` to `Model` in `model.go` — keyed by epic ID, values like `"planned"`, `"in_progress"`, `"done"`, `"audited"`
25
- - [x] In `board.go` — update `loadBoardData` to load epic statuses:
26
- - After listing epics for a release, iterate each epic's directory
27
- - Build detail file path: `filepath.Join(epic.Path, shortID(epic.ID)+"-Detail.md")`
28
- - Read the file with `os.ReadFile`
29
- - Parse frontmatter with `data.NewParser().ParseFrontmatter(string(content))`
30
- - Extract `"status"` from the returned map; if missing, skip
31
- - Store in `epicStatuses[epic.ID]` — collect all epics across releases into the map
32
- - [x] Pass `epicStatuses map[string]string` through the `reloadMsg` pipeline so dynamic reloads preserve glyphs
33
- - [x] In `epic_panel.go` — update `RenderEpicSidebar` signature to accept `status map[string]string`
34
- - [x] Add a helper function `epicSidebarGlyph(status map[string]string, epicID string) string`:
35
- - `"planned"` → styles.CardMeta.Render("○")
36
- - `"in_progress"` → styles.GlyphBuild.Render("▶")
37
- - `"done"` → styles.TagDone.Render("◉")
38
- - `"audited"` → styles.TagDone.Render("✓")
39
- - default → " " (single space)
40
- - [x] In `RenderEpicSidebar` — prepend the glyph to each epic label: `"▶ E01-tui-optimisation"`
41
- - [x] In `view.go` — pass `m.EpicStatus` to `RenderEpicSidebar`
42
- - [x] Handle `EpicStatus` in `reloadMsg` handler in `update.go` — store the map when tasks reload
43
- - [x] Update `reloadMsg` struct in `watch.go` to carry `epicStatuses map[string]string`
44
- - [x] Run `make build && make test` to verify no regressions
45
-
46
- ## Context Log
47
-
48
- Files read:
49
- - `internal/board/model.go`
50
- - `internal/board/epic_panel.go`
51
- - `internal/board/view.go`
52
- - `internal/board/board.go`
53
- - `internal/board/watch.go`
54
- - `internal/board/update.go`
55
- - `internal/board/card.go` — glyph pattern reference
56
- - `internal/styles/styles.go` — existing style constants
57
- - `internal/data/parser.go` — `ParseFrontmatter` for YAML extraction
58
- - `.savepoint/releases/v1.1/epics/E01-tui-optimisation/E01-Detail.md` — example frontmatter with status field
59
- - `.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T001-sidebar-focusable-navigation.md` — dependency status check
60
- - `internal/board/epic_panel_test.go` — updated RenderEpicSidebar test calls
61
-
62
- Estimated input tokens: 1800
63
-
64
- Notes:
65
- - Reuses `data.NewParser().ParseFrontmatter()` which already handles YAML frontmatter extraction
66
- - Reuses `shortID()` from `card.go` (same package) to derive the detail file name
67
- - The `E` key dropdown in `epic_panel.go` (`RenderEpicDropdown`) is intentionally NOT updated — side panel only per user preference
68
- - Function named `epicSidebarGlyph` (not `epicStatusGlyph`) — takes `(map[string]string, string)` for nil-safe lookup
69
- - `go build` + `go test ./...` pass
70
-
71
- ## Drift Notes
72
-
73
- No drift — all changes are within existing files and follow established patterns.
@@ -1,237 +0,0 @@
1
- ---
2
- type: audit-findings
3
- audited: 2026-05-02
4
- ---
5
-
6
- # Audit Findings: E05 Tasking Permissions
7
-
8
- ## Main Findings
9
-
10
- E05 verified the tasking-permissions shift from the planned `m` hotkey to the final `p` priority hotkey, along with explicit router priority writes that stay in `task-building` and leave audit handoff as an explicit workflow step.
11
-
12
- The audit found documentation drift rather than a core behavior failure: live implementation and tests used `p`, while several planning documents still referred to `m`. The file-specific reconciliation blocks are retained under Proposed Changes for apply/close testing.
13
-
14
- ## Code Style Review
15
-
16
-
17
- - [ ] One job per file
18
- - [ ] One-sentence functions
19
- - [ ] Test branches
20
- - [ ] Types are documentation
21
- - [ ] Build, don't speculate
22
- - [ ] Errors at boundaries
23
- - [ ] One source of truth
24
- - [ ] Comments explain WHY
25
- - [ ] Content in data files
26
- - [ ] Small diffs
27
-
28
- ## Proposed Changes
29
-
30
- ### Target File
31
-
32
- `.savepoint/Design.md`
33
-
34
- ### Replace
35
-
36
- ```md
37
- - Router updates are explicit TUI actions: after setting a task to `in_progress`, the agent prompts the user to press `m` in the board to update `.savepoint/router.md` to the focused task. Navigation alone must not change router state.
38
- ```
39
-
40
- ### With
41
-
42
- ```md
43
- - Router updates are explicit TUI actions: after setting a task to `in_progress`, the agent prompts the user to press `p` in the board to mark the focused task as router priority. Navigation alone must not change router task priority.
44
- ```
45
-
46
- ---
47
-
48
- ### Target File
49
-
50
- `.savepoint/Design.md`
51
-
52
- ### Replace
53
-
54
- ```md
55
- **Keybindings:** arrow/vim navigation, enter advances, backspace retreats, r/R refreshes, a/A exits toward audit review when proposals exist, q quits.
56
- ```
57
-
58
- ### With
59
-
60
- ```md
61
- **Keybindings:** arrow/vim navigation, enter opens focused task detail, space advances, backspace retreats, `p` marks the focused non-done task as router priority, `r`/`R` opens release selection or refreshes where supported, `?` opens help, and `q` quits or closes overlays.
62
- ```
63
-
64
- ---
65
-
66
- ### Target File
67
-
68
- `AGENTS.md`
69
-
70
- ### Replace
71
-
72
- ```md
73
- 3. After setting `in_progress`, press `m` in the TUI to update the router
74
- ```
75
-
76
- ### With
77
-
78
- ```md
79
- 3. After setting `in_progress`, press `p` in the TUI to mark the focused task as router priority
80
- ```
81
-
82
- ---
83
-
84
- ### Target File
85
-
86
- `.savepoint/router.md`
87
-
88
- ### Replace
89
-
90
- ```md
91
- **Next:** When starting work, set task `status: in_progress` and press `m` in TUI to update router task. Execute plan, tick checkboxes, run quality gates, update router to next task or `audit-pending`. Stop.
92
- ```
93
-
94
- ### With
95
-
96
- ```md
97
- **Next:** When starting work, set task `status: in_progress` and press `p` in TUI to mark the focused task as router priority. Execute plan, tick checkboxes, run quality gates, update router to next task or `audit-pending`. Stop.
98
- ```
99
-
100
- ---
101
-
102
- ### Target File
103
-
104
- `.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Detail.md`
105
-
106
- ### Replace
107
-
108
- ```yaml
109
- status: planned
110
- ```
111
-
112
- ### With
113
-
114
- ```yaml
115
- status: audited
116
- ```
117
-
118
- ---
119
-
120
- ### Target File
121
-
122
- `.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Detail.md`
123
-
124
- ### Replace
125
-
126
- ```md
127
- - TUI `m` hotkey implemented: sets router's `task` field to the currently focused task; detects if it's the last uncompleted task in the epic → sets `audit-pending` state
128
- - Help overlay shows `m` key binding
129
- ```
130
-
131
- ### With
132
-
133
- ```md
134
- - TUI `p` priority hotkey implemented: sets router's `task` field to the currently focused non-done task and keeps router state as `task-building`
135
- - Help overlay shows `p` key binding
136
- ```
137
-
138
- ---
139
-
140
- ### Target File
141
-
142
- `.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Detail.md`
143
-
144
- ### Replace
145
-
146
- ```md
147
- - The `m` hotkey reads the currently focused task, not the epic panel cursor
148
- - Router state derivation from task:
149
- - Task is the last uncompleted task in its epic → `state: audit-pending`, `task: <empty>`
150
- - Otherwise → `state: task-building`, `task: <full-task-id>`
151
- - `release` and `epic` are always set from the focused task
152
- - The `m` key does nothing when no task is focused, or when focused on a `done` task
153
- - The `m` key is independent of navigation — user can browse freely without router drift
154
- - No code enforcement against agents writing `done`. This is a documentation-only trust boundary. AGENTS.md is the contract.
155
- ```
156
-
157
- ### With
158
-
159
- ```md
160
- - The `p` hotkey reads the currently focused task, not the epic panel cursor.
161
- - Router priority writes always set `state: task-building`, `task: <full-task-id>`, `release`, `epic`, and `next_action` from the focused task.
162
- - The `p` key does nothing when no task is focused, when an overlay is open, or when focused on a `done` task.
163
- - The `p` key is independent of navigation — user can browse freely without router task drift.
164
- - Audit state is not inferred by the priority key; audit handoff remains an explicit workflow/router closeout action.
165
- - No code enforcement prevents agents from writing `done`. This is a documentation-only trust boundary. AGENTS.md is the contract.
166
-
167
- ## Implemented as
168
-
169
- - `AGENTS.md`, `templates/project/AGENTS.md`, and phase skill guides now describe the three-status canon and agent/user task-status ownership boundary.
170
- - `.savepoint/router.md` was simplified around the current state machine and task-building handoff.
171
- - `.savepoint/Design.md` Section 4 records that agents may only set `in_progress`; user-only operations are `done` and retreat.
172
- - `internal/board/model.go` adds `writeRouterTask(task data.Task)`, which reads the current router, writes release/epic/task/state/next_action via `data.WriteRouterState`, and updates in-memory router fields.
173
- - `internal/board/update.go` handles `p` before normal navigation when no overlay is open, no-ops for done tasks, and writes user-visible status messages.
174
- - `internal/board/help.go` and `internal/board/view.go` advertise `p: Priority` and render priority/status feedback in the footer.
175
- - `internal/board/update_test.go`, `help_test.go`, `view_test.go`, `card_test.go`, and transition tests cover priority routing, done-task no-op, overlay no-op, help text, footer status feedback, and transition messages.
176
- - Implementation deviation: the original design specified `m` and last-task `audit-pending` derivation. The final behavior uses `p` and keeps priority writes in `task-building` so audit handoff remains explicit.
177
- ```
178
-
179
- ---
180
-
181
- ### Target File
182
-
183
- `.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T005-update-help-overlay.md`
184
-
185
- ### Replace
186
-
187
- ```yaml
188
- objective: "Add `m` key binding to the TUI help overlay"
189
- ```
190
-
191
- ### With
192
-
193
- ```yaml
194
- objective: "Add `p` priority key binding to the TUI help overlay"
195
- ```
196
-
197
- ---
198
-
199
- ### Target File
200
-
201
- `.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T005-update-help-overlay.md`
202
-
203
- ### Replace
204
-
205
- ```md
206
- # T005: Update Help Overlay
207
-
208
- ## Acceptance Criteria
209
-
210
- - Help overlay (`?` key) shows `m` key binding: "m: update router"
211
- - Key binding appears with consistent styling in the shortcuts list
212
- - No other help entries modified
213
-
214
- ## Implementation Plan
215
-
216
- - [ ] Add `helpRow("m", "update router")` to `RenderHelp` in `help.go`
217
- - [ ] Run `make build && make test` to verify
218
- ```
219
-
220
- ### With
221
-
222
- ```md
223
- # T005: Update Help Overlay
224
-
225
- ## Acceptance Criteria
226
-
227
- - Help overlay (`?` key) shows `p` key binding for router priority
228
- - Key binding appears with consistent styling in the shortcuts list
229
- - No unrelated help entries modified
230
-
231
- ## Implementation Plan
232
-
233
- - [x] Add the `p` priority shortcut to `RenderHelp` in `help.go`
234
- - [x] Verify with `go build -o savepoint.exe main.go` and `go test ./...`
235
- ```
236
-
237
- ---