savepoint 1.0.1 → 1.0.3

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 (278) hide show
  1. package/.claude/settings.local.json +15 -1
  2. package/.golangci.yml +11 -0
  3. package/.savepoint/Design.md +52 -46
  4. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T001-init-module.md +1 -1
  5. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T005-layout.md +1 -1
  6. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T002-card.md +1 -1
  7. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T006-help-overlay.md +1 -1
  8. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/{Design.md → E06-Detail.md} +5 -3
  9. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T002-header-and-dividers.md +1 -1
  10. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T003-footer-status-bar.md +1 -1
  11. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T004-component-refinement.md +1 -1
  12. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T010-auto-refresh-watcher.md +2 -0
  13. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/{Design.md → E01-Detail.md} +9 -1
  14. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/{T007-next-activity-header.md → T001-next-activity-header.md} +13 -12
  15. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T002-rename-epic-design-files.md +9 -9
  16. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T003-rename-release-prd.md +2 -2
  17. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T004-update-instruction-files.md +13 -12
  18. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T005-update-cross-references.md +14 -13
  19. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T006-column-and-detail-scrolling.md +25 -15
  20. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T007-column-focus-border-stability.md +57 -0
  21. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Audit.md +124 -0
  22. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/{Design.md → E02-Detail.md} +12 -3
  23. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T001-fix-makefile.md +11 -8
  24. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T002-linux-build-target.md +12 -7
  25. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T003-macos-build-target.md +9 -5
  26. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T004-smoke-tests-and-artifacts.md +30 -9
  27. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/E03-Audit.md +195 -0
  28. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/E03-Detail.md +45 -0
  29. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T001-border-resize-fix.md +40 -0
  30. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T002-next-activity-below-header.md +64 -0
  31. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T003-checkbox-rendering-fix.md +56 -0
  32. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T005-unify-status-glyphs.md +65 -0
  33. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T006-forced-256-color-profile.md +36 -0
  34. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Audit.md +167 -0
  35. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Detail.md +51 -0
  36. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T001-sidebar-focusable-navigation.md +65 -0
  37. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T002-epic-detail-overlay.md +73 -0
  38. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T003-epic-status-glyphs.md +73 -0
  39. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Audit.md +237 -0
  40. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Detail.md +54 -0
  41. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T001-update-agents-md.md +45 -0
  42. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T002-update-router-md.md +40 -0
  43. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T003-update-design-md.md +47 -0
  44. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T004-implement-m-hotkey.md +98 -0
  45. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T005-update-help-overlay.md +33 -0
  46. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T006-tests-and-quality-gates.md +62 -0
  47. package/.savepoint/releases/v1.1/epics/E06-audit-command/E06-Audit.md +56 -0
  48. package/.savepoint/releases/v1.1/epics/E06-audit-command/E06-Detail.md +63 -0
  49. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T005-proposals.md +44 -0
  50. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T007-apply-close.md +35 -0
  51. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T009-integration.md +40 -0
  52. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T010-audit-file-migration.md +45 -0
  53. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T011-model-tab-state.md +26 -0
  54. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T012-epic-audit-render.md +33 -0
  55. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T013-handle-tab-keys.md +34 -0
  56. package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T014-tab-indicator.md +33 -0
  57. package/.savepoint/releases/v1.1/epics/E07-init-command/E07-Audit.md +336 -0
  58. package/.savepoint/releases/v1.1/epics/E07-init-command/E07-Detail.md +61 -0
  59. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T001-cli-entrypoint.md +37 -0
  60. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T002-target-validation.md +28 -0
  61. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T003-scaffold-writer.md +46 -0
  62. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T004-atomic-writes.md +27 -0
  63. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T005-magic-prompt.md +25 -0
  64. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T006-clipboard.md +26 -0
  65. package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T007-integration-test.md +26 -0
  66. package/.savepoint/releases/v1.1/epics/E08-board-command/E08-Audit.md +333 -0
  67. package/.savepoint/releases/v1.1/epics/E08-board-command/E08-Detail.md +68 -0
  68. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T001-cli-entrypoint.md +26 -0
  69. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T002-non-tty-fallback.md +27 -0
  70. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T003-tui-app-shell.md +28 -0
  71. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T004-board-model.md +29 -0
  72. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T005-detail-pane.md +27 -0
  73. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T006-status-transitions.md +29 -0
  74. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T007-theme-fallbacks.md +29 -0
  75. package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T008-integration-test.md +27 -0
  76. package/.savepoint/releases/v1.1/epics/E09-doctor-command/E09-Audit.md +207 -0
  77. package/.savepoint/releases/v1.1/epics/E09-doctor-command/E09-Detail.md +65 -0
  78. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T001-cli-entrypoint.md +24 -0
  79. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T002-config-router-validation.md +28 -0
  80. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T003-structure-checks.md +29 -0
  81. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T004-dependency-checks.md +27 -0
  82. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T005-audit-orphan-checks.md +28 -0
  83. package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T006-quality-gates-report.md +31 -0
  84. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/E11-Detail.md +36 -0
  85. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T001-debug-logging.md +25 -0
  86. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T002-increase-debounce.md +21 -0
  87. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T003-error-handling.md +22 -0
  88. package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T004-test-verify.md +29 -0
  89. package/.savepoint/releases/v1.1/epics/E12-validation-fix/E12-Audit.md +444 -0
  90. package/.savepoint/releases/v1.1/epics/E12-validation-fix/E12-Detail.md +45 -0
  91. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T001-default-phase.md +35 -0
  92. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T002-default-status.md +19 -0
  93. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T003-better-errors.md +29 -0
  94. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T004-validate-on-write.md +25 -0
  95. package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T005-tests.md +37 -0
  96. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/E13-Audit.md +118 -0
  97. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/E13-Detail.md +73 -0
  98. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T001-safe-cleanup.md +66 -0
  99. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T002-bug-fixes.md +35 -0
  100. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T003-centralize-duplication.md +60 -0
  101. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T004-infrastructure.md +33 -0
  102. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T005-decompose-update.md +37 -0
  103. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T006-async-io.md +40 -0
  104. package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T007-test-coverage.md +37 -0
  105. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Audit.md +267 -0
  106. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Detail.md +54 -0
  107. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T001-group-model.md +39 -0
  108. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T002-data-interfaces.md +42 -0
  109. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T003-discover-orphans.md +33 -0
  110. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T004-epic-panel-headings.md +35 -0
  111. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T005-shell-tokenization.md +27 -0
  112. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T006-unify-enums.md +29 -0
  113. package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T007-testutil-package.md +28 -0
  114. package/.savepoint/releases/v1.1/epics/E15-hardening/E15-Detail.md +43 -0
  115. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T001-benchmarks.md +31 -0
  116. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T002-fuzz-targets.md +28 -0
  117. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T003-debug-flag.md +30 -0
  118. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T004-dist-checksums.md +27 -0
  119. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T005-windows-targets.md +28 -0
  120. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T006-abbreviation-splitting.md +26 -0
  121. package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T007-root-test-allowlist.md +28 -0
  122. package/.savepoint/releases/v1.1/epics/_archived/T001-cli-entrypoint.md +25 -0
  123. package/.savepoint/releases/v1.1/epics/_archived/T002-quality-gates.md +27 -0
  124. package/.savepoint/releases/v1.1/epics/_archived/T003-snapshot.md +27 -0
  125. package/.savepoint/releases/v1.1/epics/_archived/T004-ai-reconcile.md +29 -0
  126. package/.savepoint/releases/v1.1/epics/_archived/T006-tui-review.md +31 -0
  127. package/.savepoint/releases/v1.1/epics/_archived/T008-skip-handling.md +34 -0
  128. package/.savepoint/releases/v1.1/v1.1-PRD.md +139 -0
  129. package/.savepoint/router.md +29 -108
  130. package/AGENTS.md +69 -111
  131. package/Makefile +19 -3
  132. package/README.md +6 -6
  133. package/agent-skills/savepoint-audit/SKILL.md +87 -35
  134. package/agent-skills/savepoint-build-task/SKILL.md +9 -4
  135. package/agent-skills/savepoint-create-plan/SKILL.md +10 -5
  136. package/agent-skills/savepoint-create-task/SKILL.md +44 -31
  137. package/agent-skills/savepoint-draft-prd/SKILL.md +8 -3
  138. package/agent-skills/savepoint-system-design/SKILL.md +8 -3
  139. package/agent_skills_test.go +91 -0
  140. package/cmd/board.go +59 -0
  141. package/cmd/board_test.go +137 -0
  142. package/cmd/doctor.go +53 -0
  143. package/cmd/doctor_test.go +146 -0
  144. package/cmd/init.go +63 -0
  145. package/cmd/init_test.go +104 -0
  146. package/internal/board/board.go +69 -49
  147. package/internal/board/board_test.go +83 -67
  148. package/internal/board/card.go +71 -20
  149. package/internal/board/card_test.go +141 -12
  150. package/internal/board/column.go +77 -11
  151. package/internal/board/column_test.go +63 -13
  152. package/internal/board/detail.go +107 -72
  153. package/internal/board/detail_test.go +117 -26
  154. package/internal/board/epic_panel.go +211 -18
  155. package/internal/board/epic_panel_test.go +637 -14
  156. package/internal/board/help.go +1 -0
  157. package/internal/board/help_test.go +1 -0
  158. package/internal/board/integration_test.go +266 -0
  159. package/internal/board/interfaces.go +65 -0
  160. package/internal/board/interfaces_test.go +114 -0
  161. package/internal/board/io.go +93 -0
  162. package/internal/board/layout.go +12 -2
  163. package/internal/board/layout_test.go +17 -0
  164. package/internal/board/model.go +130 -52
  165. package/internal/board/plain.go +88 -0
  166. package/internal/board/plain_test.go +117 -0
  167. package/internal/board/release.go +1 -9
  168. package/internal/board/release_test.go +6 -6
  169. package/internal/board/render_policy_test.go +77 -0
  170. package/internal/board/status.go +23 -0
  171. package/internal/board/theme.go +24 -0
  172. package/internal/board/theme_test.go +31 -0
  173. package/internal/board/transitions.go +113 -88
  174. package/internal/board/transitions_test.go +164 -141
  175. package/internal/board/tui.go +32 -0
  176. package/internal/board/update.go +472 -94
  177. package/internal/board/update_test.go +447 -0
  178. package/internal/board/util.go +76 -0
  179. package/internal/board/view.go +139 -22
  180. package/internal/board/view_test.go +171 -3
  181. package/internal/board/watch.go +57 -9
  182. package/internal/buildtool/main.go +211 -0
  183. package/internal/buildtool/main_test.go +46 -0
  184. package/internal/data/config.go +17 -3
  185. package/internal/data/config_test.go +49 -0
  186. package/internal/data/discover.go +26 -0
  187. package/internal/data/discover_test.go +34 -10
  188. package/internal/data/errors.go +4 -0
  189. package/internal/data/lifecycle.go +13 -6
  190. package/internal/data/lifecycle_test.go +14 -11
  191. package/internal/data/parser.go +29 -6
  192. package/internal/data/parser_test.go +66 -7
  193. package/internal/data/task.go +1 -0
  194. package/internal/data/write.go +85 -11
  195. package/internal/data/write_test.go +167 -0
  196. package/internal/doctor/checks.go +567 -0
  197. package/internal/doctor/checks_test.go +716 -0
  198. package/internal/doctor/gates.go +193 -0
  199. package/internal/doctor/gates_test.go +166 -0
  200. package/internal/doctor/interfaces.go +64 -0
  201. package/internal/doctor/interfaces_test.go +104 -0
  202. package/internal/doctor/repairs.go +80 -0
  203. package/internal/doctor/repairs_test.go +81 -0
  204. package/internal/doctor/report.go +157 -0
  205. package/internal/doctor/report_test.go +89 -0
  206. package/internal/init/clipboard.go +146 -0
  207. package/internal/init/clipboard_test.go +74 -0
  208. package/internal/init/install.go +16 -0
  209. package/internal/init/integration_test.go +197 -0
  210. package/internal/init/prompt.go +14 -0
  211. package/internal/init/prompt_test.go +77 -0
  212. package/internal/init/scaffold.go +59 -0
  213. package/internal/init/scaffold_test.go +179 -0
  214. package/internal/init/template_freshness_test.go +56 -0
  215. package/internal/init/validate.go +85 -0
  216. package/internal/init/validate_test.go +141 -0
  217. package/internal/init/write.go +73 -0
  218. package/internal/init/write_test.go +91 -0
  219. package/internal/styles/palette.go +3 -3
  220. package/internal/styles/styles.go +39 -12
  221. package/internal/styles/styles_test.go +133 -0
  222. package/internal/testutil/fixture.go +113 -0
  223. package/internal/testutil/fs.go +26 -0
  224. package/main.go +107 -1
  225. package/package.json +2 -2
  226. package/project-audit/audit_report_glm_5.1.md +411 -0
  227. package/project-audit/audit_report_opus_4.6 +406 -0
  228. package/project-audit/consolidated-audit-report.md +456 -0
  229. package/savepoint +0 -0
  230. package/templates/project/.savepoint/Design.md +2 -2
  231. package/templates/project/.savepoint/router.md +15 -14
  232. package/templates/project/AGENTS.md +56 -98
  233. package/templates/project/agent-skills/savepoint-audit/SKILL.md +87 -0
  234. package/templates/project/agent-skills/savepoint-build-task/SKILL.md +44 -0
  235. package/templates/project/agent-skills/savepoint-create-plan/SKILL.md +33 -0
  236. package/templates/project/agent-skills/savepoint-create-task/SKILL.md +44 -0
  237. package/templates/project/agent-skills/savepoint-draft-prd/SKILL.md +37 -0
  238. package/templates/project/agent-skills/savepoint-system-design/SKILL.md +38 -0
  239. package/templates/prompts/audit-reconciliation.prompt.md +35 -30
  240. package/templates/prompts/design.prompt.md +3 -1
  241. package/templates/prompts/epic-design.prompt.md +3 -3
  242. package/templates/prompts/task-breakdown.prompt.md +1 -1
  243. package/templates/prompts/task-building.prompt.md +1 -1
  244. package/templates/prompts/task-planning.prompt.md +1 -1
  245. package/.savepoint/audit/E01-go-setup/proposals.md +0 -166
  246. package/.savepoint/audit/E01-go-setup/snapshot.md +0 -71
  247. package/.savepoint/audit/E01-scaffolding/proposals/AGENTS.md +0 -66
  248. package/.savepoint/audit/E01-scaffolding/proposals/Design.md +0 -210
  249. package/.savepoint/audit/E01-scaffolding/proposals/epic-Design.md +0 -117
  250. package/.savepoint/audit/E01-scaffolding/proposals/quality-review.md +0 -101
  251. package/.savepoint/audit/E01-scaffolding/snapshot.md +0 -54
  252. package/.savepoint/audit/E02-data-model/snapshot.md +0 -128
  253. package/.savepoint/audit/E02-data-readers/proposals.md +0 -123
  254. package/.savepoint/audit/E02-data-readers/snapshot.md +0 -54
  255. package/.savepoint/audit/E03-board-tui-core/proposals.md +0 -146
  256. package/.savepoint/audit/E03-board-tui-core/snapshot.md +0 -57
  257. package/.savepoint/audit/E03-cli-foundation/snapshot.md +0 -106
  258. package/.savepoint/audit/E04-board-components/proposals.md +0 -118
  259. package/.savepoint/audit/E04-board-components/snapshot.md +0 -77
  260. package/.savepoint/audit/E04-templates-and-prompts/snapshot.md +0 -115
  261. package/.savepoint/audit/E05-init-command/snapshot.md +0 -125
  262. package/.savepoint/audit/E05-phase-transitions/proposals.md +0 -83
  263. package/.savepoint/audit/E05-phase-transitions/snapshot.md +0 -36
  264. package/.savepoint/audit/E06-atari-noir-layout/proposals.md +0 -130
  265. package/.savepoint/audit/E06-atari-noir-layout/snapshot.md +0 -84
  266. package/.savepoint/audit/E06-tui-board/snapshot.md +0 -64
  267. package/.savepoint/audit/E07-audit-pipeline/snapshot.md +0 -165
  268. package/.savepoint/audit/E08-board-workflow-cleanup/snapshot.md +0 -65
  269. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T001-border-resize-fix.md +0 -36
  270. package/ink-cli-ui-design.zip +0 -0
  271. package/main.exe +0 -0
  272. package/savepoint.exe +0 -0
  273. /package/.savepoint/releases/v1/epics/E01-go-setup/{Design.md → E01-Detail.md} +0 -0
  274. /package/.savepoint/releases/v1/epics/E02-data-readers/{Design.md → E02-Detail.md} +0 -0
  275. /package/.savepoint/releases/v1/epics/E03-board-tui-core/{Design.md → E03-Detail.md} +0 -0
  276. /package/.savepoint/releases/v1/epics/E04-board-components/{Design.md → E04-Detail.md} +0 -0
  277. /package/.savepoint/releases/v1/epics/E05-phase-transitions/{Design.md → E05-Detail.md} +0 -0
  278. /package/.savepoint/releases/v1/{PRD.md → v1-PRD.md} +0 -0
@@ -0,0 +1,30 @@
1
+ ---
2
+ id: E15-hardening/T003-debug-flag
3
+ status: planned
4
+ objective: Add --debug flag and SAVEPOINT_DEBUG env var for structured debug logging
5
+ depends_on: []
6
+ ---
7
+
8
+ # T003: Add --debug Flag and SAVEPOINT_DEBUG Env Var
9
+
10
+ ## Context Files
11
+
12
+ - `main.go` — CLI entrypoint, --version flag
13
+ - `cmd/` — command dispatch
14
+ - `internal/board/` — board init, file watchers, command dispatch
15
+
16
+ ## Acceptance Criteria
17
+
18
+ - [ ] --debug flag accepted at CLI level
19
+ - [ ] SAVEPOINT_DEBUG env var recognized
20
+ - [ ] Debug output includes board init, file watcher events, and command dispatch
21
+ - [ ] Debug output is off by default (no performance impact)
22
+ - [ ] `go test ./...` passes with no regressions
23
+
24
+ ## Implementation Plan
25
+
26
+ - [ ] Define debug logging helper in a shared location
27
+ - [ ] Add --debug flag parsing in main.go
28
+ - [ ] Instrument key points in board init, file watcher, and update dispatch
29
+ - [ ] Add tests for debug flag behavior
30
+ - [ ] Run `make build && make test`
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: E15-hardening/T004-dist-checksums
3
+ status: planned
4
+ objective: Generate checksums.txt during make dist using Go crypto APIs
5
+ depends_on: []
6
+ ---
7
+
8
+ # T004: Add Distribution Checksums
9
+
10
+ ## Context Files
11
+
12
+ - `internal/buildtool/main.go` — dist() function that creates tar.gz archives
13
+ - `Makefile` — dist target
14
+
15
+ ## Acceptance Criteria
16
+
17
+ - [ ] dist() generates checksums.txt file with SHA256 hashes
18
+ - [ ] checksums.txt is included in the dist directory
19
+ - [ ] Existing archive creation behavior preserved
20
+ - [ ] `go test ./...` passes
21
+
22
+ ## Implementation Plan
23
+
24
+ - [ ] Add SHA256 checksum computation in dist() using crypto/sha256
25
+ - [ ] Write checksums.txt to dist directory
26
+ - [ ] Add tests for checksum generation
27
+ - [ ] Run `make build && make test`
@@ -0,0 +1,28 @@
1
+ ---
2
+ id: E15-hardening/T005-windows-targets
3
+ status: planned
4
+ objective: Add Windows amd64 and arm64 build targets to buildtool
5
+ depends_on: []
6
+ ---
7
+
8
+ # T005: Add Windows Build Targets
9
+
10
+ ## Context Files
11
+
12
+ - `internal/buildtool/main.go` — targets list, build logic, localExecutable
13
+
14
+ ## Acceptance Criteria
15
+
16
+ - [ ] Windows amd64 target added
17
+ - [ ] Windows arm64 target added
18
+ - [ ] .exe suffix handled for Windows binaries
19
+ - [ ] Existing Linux and Darwin targets preserved
20
+ - [ ] `go test ./...` passes
21
+
22
+ ## Implementation Plan
23
+
24
+ - [ ] Add windows-amd64 and windows-arm64 to targets list
25
+ - [ ] Handle .exe suffix in build output path
26
+ - [ ] Update localExecutable to detect Windows
27
+ - [ ] Update tests for new targets
28
+ - [ ] Run `make build && make test`
@@ -0,0 +1,26 @@
1
+ ---
2
+ id: E15-hardening/T006-abbreviation-splitting
3
+ status: planned
4
+ objective: Fix splitChecklistSentences to skip periods preceded by known abbreviations
5
+ depends_on: []
6
+ ---
7
+
8
+ # T006: Fix Abbreviation Handling in Checklist Sentence Splitting
9
+
10
+ ## Context Files
11
+
12
+ - `internal/board/detail.go:88` — splitChecklistSentences function
13
+
14
+ ## Acceptance Criteria
15
+
16
+ - [ ] Known abbreviations (e.g., "e.g.", "i.e.") do not trigger sentence breaks
17
+ - [ ] Existing sentence splitting behavior preserved for non-abbreviation periods
18
+ - [ ] Abbreviation list is configurable/extensible
19
+ - [ ] `go test ./...` passes with no regressions
20
+
21
+ ## Implementation Plan
22
+
23
+ - [ ] Define known abbreviation set
24
+ - [ ] Add abbreviation check before period-based sentence split
25
+ - [ ] Add test cases for abbreviations in sentences
26
+ - [ ] Run `make build && make test`
@@ -0,0 +1,28 @@
1
+ ---
2
+ id: E15-hardening/T007-root-test-allowlist
3
+ status: planned
4
+ objective: Move agent_skills_test.go to a test package and extract audit allowlist to a named constant
5
+ depends_on: []
6
+ ---
7
+
8
+ # T007: Move Root-Level Test and Extract Audit Allowlist
9
+
10
+ ## Context Files
11
+
12
+ - `agent_skills_test.go` — root-level package main test
13
+ - `internal/board/epic_panel.go:116-119` — allowedSections map
14
+
15
+ ## Acceptance Criteria
16
+
17
+ - [ ] agent_skills_test.go moved to cmd_test package (or appropriate location)
18
+ - [ ] allowedSections extracted to a named constant with documentation
19
+ - [ ] All existing tests still pass after refactoring
20
+ - [ ] `go test ./...` passes with no regressions
21
+
22
+ ## Implementation Plan
23
+
24
+ - [ ] Move agent_skills_test.go to an appropriate internal test package
25
+ - [ ] Update imports and paths in moved test
26
+ - [ ] Extract allowedSections map to a named constant
27
+ - [ ] Update any references in epic_panel.go
28
+ - [ ] Run `make build && make test`
@@ -0,0 +1,25 @@
1
+ ---
2
+ id: E06-audit-command/T001-cli-entrypoint
3
+ status: in_progress
4
+ objective: "Create CLI entrypoint for savepoint audit command"
5
+ depends_on: []
6
+ ---
7
+
8
+ # T001: CLI Entrypoint
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - `savepoint audit --help` shows usage: `audit <epic-id|release> [--skip --reason]`
13
+ - `savepoint audit <epic-id>` runs audit for that epic
14
+ - `savepoint audit <release>` runs audit for all unaudited epics in that release
15
+ - `savepoint audit --skip --reason "..."` skips the audit and logs reason
16
+ - Unknown arguments show error and exit non-zero
17
+
18
+ ## Implementation Plan
19
+
20
+ - [x] Add `cmd/audit.go` with CLI argument parsing
21
+ - [x] Wire audit command into main.go
22
+ - [x] Implement arg validation for epic-id (E##) and release (v#.#) formats
23
+ - [x] Add subcommand dispatch to audit workflow
24
+ - [x] Test `savepoint audit --help` output
25
+ - [x] Run `make build && make test`
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: E06-audit-command/T002-quality-gates
3
+ status: done
4
+ objective: "Implement quality gate runner that blocks on failure"
5
+ depends_on: ["E06-audit-command/T001-cli-entrypoint"]
6
+ phase: build
7
+ ---
8
+
9
+ # T002: Quality Gates
10
+
11
+ ## Acceptance Criteria
12
+
13
+ - Reads `quality_gates` from `.savepoint/config.yml`
14
+ - Runs each configured command (lint, typecheck, test)
15
+ - Blocks audit if any gate fails and `block_on_failure: true`
16
+ - Continues if `block_on_failure: false` but logs failure
17
+ - Shows clear output: which gates passed/failed
18
+
19
+ ## Implementation Plan
20
+
21
+ - [x] Add `internal/audit/gates.go`
22
+ - [x] Read config `quality_gates` struct
23
+ - [x] Implement `RunGates(ctx) error` that executes each command
24
+ - [x] Handle null gates (skip if not configured)
25
+ - [x] Add exit code propagation for blocking behavior
26
+ - [x] Test with configured gates in .savepoint/config.yml
27
+ - [x] Run `make build && make test`
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: E06-audit-command/T003-snapshot
3
+ status: planned
4
+ objective: "Generate file tree and changed-files snapshot"
5
+ depends_on: ["E06-audit-command/T002-quality-gates"]
6
+ ---
7
+
8
+ # T003: Snapshot Generation
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - Generates `.savepoint/audit/{release}/{epic}/snapshot.md`
13
+ - Includes file tree (gitignore-respecting)
14
+ - Includes list of changed files (from git)
15
+ - Does NOT include file contents (no code in snapshot)
16
+ - Snapshot path matches expected format
17
+
18
+ ## Implementation Plan
19
+
20
+ - [ ] Add `internal/audit/snapshot.go`
21
+ - [ ] Implement `GenerateSnapshot(epic, release) error`
22
+ - [ ] Walk directory tree respecting .gitignore
23
+ - [ ] Run `git diff --name-only` for changed files
24
+ - [ ] Write snapshot.md with tree + changed-files sections
25
+ - [ ] Create audit directory if not exists
26
+ - [ ] Test snapshot output format
27
+ - [ ] Run `make build && make test`
@@ -0,0 +1,29 @@
1
+ ---
2
+ id: E06-audit-command/T004-ai-reconcile
3
+ status: planned
4
+ objective: "Generate AI prompt for semantic review, parse findings"
5
+ depends_on: ["E06-audit-command/T003-snapshot"]
6
+ ---
7
+
8
+ # T004: AI Reconcile (Semantic Review)
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - Generates a prompt file for human to give to their AI
13
+ - Prompt includes: snapshot, epic E##-Detail.md, changed files list, AGENTS.md Code Style rules
14
+ - Prompt instructs AI to check against 10 Code Style rules
15
+ - After human runs AI, parses findings for "Must Fix Before Close" section
16
+ - Fails audit if "Must Fix Before Close" has any items
17
+
18
+ ## Implementation Plan
19
+
20
+ - [ ] Add `internal/audit/reconcile.go`
21
+ - [ ] Implement `GeneratePrompt(epic, release) (string, error)`
22
+ - [ ] Embed 10 Code Style rules in prompt template
23
+ - [ ] Include snapshot.md content in prompt
24
+ - [ ] Include epic E##-Detail.md in prompt
25
+ - [ ] Include changed files list in prompt
26
+ - [ ] Implement `ParseFindings(output) (hasIssues bool, err)`
27
+ - [ ] Check for "Must Fix Before Close" header and non-empty content
28
+ - [ ] Test prompt generation and finding parsing
29
+ - [ ] Run `make build && make test`
@@ -0,0 +1,31 @@
1
+ ---
2
+ id: E06-audit-command/T006-tui-review
3
+ status: planned
4
+ objective: "Implement TUI review mode for approving/rejecting proposals"
5
+ depends_on: ["E06-audit-command/T005-proposals"]
6
+ ---
7
+
8
+ # T006: TUI Review Mode
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - Shows each proposal as a side-by-side diff (old vs new)
13
+ - User can Approve, Reject, or Edit each proposal
14
+ - Edit opens inline editor to modify the "With" section
15
+ - High-divergence warning if proposal changes >50% of file
16
+ - Shows progress: X of Y proposals reviewed
17
+ - Keyboard: arrow nav, Enter approve, Backspace reject, e edit, q quit
18
+
19
+ ## Implementation Plan
20
+
21
+ - [ ] Add `internal/audit/review.go` with Bubble Tea model
22
+ - [ ] Create `ReviewModel` with proposals, current index, decisions
23
+ - [ ] Implement `RenderProposal` showing old/new side-by-side
24
+ - [ ] Add keyboard handlers: Up/Down (nav), Enter (approve), Backspace (reject), e (edit)
25
+ - [ ] Implement edit mode: text area for "With" content
26
+ - [ ] Add high-divergence check (config threshold from config.yml)
27
+ - [ ] Show progress bar: "Proposal 1 of 5"
28
+ - [ ] Track decisions: approved/rejected/edited map
29
+ - [ ] Return decisions to caller for apply step
30
+ - [ ] Test review flow manually
31
+ - [ ] Run `make build && make test`
@@ -0,0 +1,34 @@
1
+ ---
2
+ id: E06-audit-command/T008-skip-handling
3
+ status: planned
4
+ objective: "Implement audit skip with logging"
5
+ depends_on: ["E06-audit-command/T001-cli-entrypoint"]
6
+ ---
7
+
8
+ # T008: Skip Handling
9
+
10
+ ## Acceptance Criteria
11
+
12
+ - `--skip --reason "..."` flags are required together
13
+ - Missing reason shows error
14
+ - Skipped audit logged to `.savepoint/audit-log.md`
15
+ - Log entry includes: timestamp, epic, release, reason, skipped-by
16
+ - Skipped epic still advances router (no changes to docs)
17
+
18
+ ## Implementation Plan
19
+
20
+ - [ ] Add `internal/audit/log.go`
21
+ - [ ] Implement `LogSkip(epic, release, reason) error`
22
+ - [ ] Parse existing audit-log.md or create new
23
+ - [ ] Append new entry in format:
24
+ ```markdown
25
+ ## {timestamp}
26
+
27
+ - **Epic:** {epic}
28
+ - **Release:** {release}
29
+ - **Reason:** {user reason}
30
+ - **Status:** ⚠ skipped
31
+ ```
32
+ - [ ] Update router to advance past skipped epic
33
+ - [ ] Test skip flow with valid/invalid args
34
+ - [ ] Run `make build && make test`
@@ -0,0 +1,139 @@
1
+ ---
2
+ version: 1.1
3
+ name: "Board Polish & Navigation"
4
+ status: in_progress
5
+ ---
6
+
7
+ # Release v1.1 — Board Polish & Navigation
8
+
9
+ ## Overview
10
+
11
+ v1.1 is the "love what you look at" release. It takes the functional board from v1 and makes it polished, reliable, and pleasant to navigate. The four epics cover layout robustness, multi-platform tooling, visual refinement, and a new epic navigation paradigm.
12
+
13
+ **v1 delivered:** a working Kanban board with phase transitions.
14
+ **v1.1 delivers:** a board that doesn't flicker on resize, builds everywhere, looks intentional, and treats epics as first-class navigable objects.
15
+
16
+ ## What ships in v1.1
17
+
18
+ 1. **TUI Optimisation (E01)** ✅ *Audited and complete*
19
+ - Next Activity indicator in header
20
+ - Naming conventions reconciled (Design.md → E##-Detail.md, PRD.md → v1-PRD.md)
21
+ - Virtual viewport scrolling for columns and detail overlay
22
+ - Column focus border stability — no content shift when switching columns
23
+ - All 7 tasks done
24
+
25
+ 2. **Cross-Platform Compatibility (E02)** — *Not started*
26
+ - `make build`, `test`, `clean` work on Windows, Linux, macOS
27
+ - Linux amd64 + arm64 and macOS amd64 + arm64 build targets
28
+ - Smoke tests and versioned release artifacts
29
+ - 4 tasks planned
30
+
31
+ 3. **UI Visual Refinement (E03)** — *Not started*
32
+ - Right-border clipping fixed on terminal resize
33
+ - Next Activity as a dedicated line below header with phase-aligned styling
34
+ - Checkbox rendering at sentence boundaries
35
+ - Width arithmetic audit — content fills available space exactly
36
+ - 4 tasks planned
37
+
38
+ 4. **Epic Navigation (E04)** — *Not started*
39
+ - Epic sidebar becomes a focusable, navigable component
40
+ - ↑/↓ to navigate epics, ←/→ to enter/exit sidebar
41
+ - Enter opens an "Epic Detail" overlay showing E##-Detail.md content
42
+ - Existing `E` key dropdown retained
43
+ - 2 tasks planned
44
+
45
+ 5. **Tasking Permissions & Router Updates (E05)** ✅ *Audited and complete*
46
+ - Agents can only set `status: in_progress`; user alone sets `done` or retreats
47
+ - New TUI `p` priority hotkey explicitly updates router to the focused non-done task
48
+ - Router task priority decoupled from navigation — browse without side effects
49
+ - Priority writes keep router in `task-building`; audit handoff remains explicit
50
+ - All 6 tasks done
51
+
52
+ 6. **Audit Command (E06)** — *Planned*
53
+ - `savepoint audit <epic-id|release>` runs full pipeline
54
+ - Quality gates block on failure
55
+ - AI semantic review checks 10 Code Style rules — blocks if "Must Fix Before Close" has items
56
+ - TUI review mode for approving/rejecting proposals
57
+ - Updates Design.md last_audited, marks epic status: audited
58
+ - 9 tasks planned
59
+
60
+ 7. **Init Command (E07)** — *Planned*
61
+ - `savepoint init [dir] [--force] [--install]` scaffolds .savepoint/
62
+ - Target validation (empty/compatible/already-initialized)
63
+ - Template-based scaffold with project name interpolation
64
+ - Magic prompt output to stdout + clipboard
65
+ - Best-effort clipboard (doesn't fail on error)
66
+ - 7 tasks planned
67
+
68
+ 8. **Board Command (E08)** — *Planned*
69
+ - `savepoint board [--release <release>] [--epic <epic>]` launches TUI
70
+ - `savepoint` (no args) defaults to board
71
+ - Bubble Tea TUI with 3-column Kanban
72
+ - Detail pane for selected task
73
+ - Keyboard navigation (arrows, vim-style j/k/h/l)
74
+ - Status transitions with gate enforcement
75
+ - Non-TTY plain table fallback
76
+ - 8 tasks planned
77
+
78
+ 9. **Doctor Command (E09)** — *Planned*
79
+ - `savepoint doctor [--epic <epic>]` runs diagnostics
80
+ - Config, router, structure, YAML validation
81
+ - Dependency checks (missing deps, cycles, duplicates)
82
+ - Audit state and orphan detection
83
+ - Ad-hoc quality gate runner
84
+ - Human-readable diagnostic output with repair suggestions
85
+ - Exit codes: 0=clean, 1=problems, 2=error
86
+ - 6 tasks planned
87
+
88
+ 10. **Task File Validation & Auto-Fix (E12)** — *In Progress*
89
+ - Default `phase: build` when `status=in_progress` but phase missing
90
+ - Default `status: planned` when both status and column missing
91
+ - Better error hints with suggested fixes
92
+ - Validate on write with helpful messages
93
+
94
+ 11. **Codebase Audit Remediation (E13)** — *In Progress*
95
+ - Fix cycle detection bug producing inaccurate error paths
96
+ - Remove dead code, stdlib reimplementations, hardcoded state maps
97
+ - Centralize duplicated logic (normalization, frontmatter extraction, shared utilities)
98
+ - Fix AtomicWrite cross-device fallback and config accent defaults
99
+ - Add quality gate timeout
100
+ - Remove committed binaries, add gitignore and linter config
101
+ - Decompose `update.go` monolith into focused handlers
102
+ - Extract synchronous I/O from `Update()` into `tea.Cmd` async pattern
103
+ - Add test coverage for untested packages
104
+ - 7 tasks planned
105
+
106
+ ## Epic breakdown
107
+
108
+ | # | Epic | Status | Tasks |
109
+ |---|------|--------|-------|
110
+ | 01 | TUI Optimisation | Audited | 7/7 done |
111
+ | 02 | Cross-Platform Compatibility | Audited | 4/4 done |
112
+ | 03 | UI Visual Refinement | Planned | 0/4 done |
113
+ | 04 | Epic Navigation | Audited | 2/2 done |
114
+ | 05 | Tasking Permissions & Router Updates | Audited | 6/6 done |
115
+ | 06 | Audit Command | Planned | 0/9 done |
116
+ | 07 | Init Command | Planned | 0/7 done |
117
+ | 08 | Board Command | Planned | 0/8 done |
118
+ | 09 | Doctor Command | Planned | 0/6 done |
119
+ | 10 | Task File Validation & Auto-Fix | In Progress | 5/5 done |
120
+ | 13 | Codebase Audit Remediation | In Progress | 0/7 done |
121
+
122
+ ## Success criteria
123
+
124
+ - `make build` and `make test` pass on Windows, Linux, and macOS
125
+ - Terminal resize at any width ≥ 40 produces no visual corruption
126
+ - Content fills the available terminal width exactly at every breakpoint
127
+ - Epic sidebar is navigable with ↑/↓, and Enter shows a detail overlay
128
+ - All existing v1 functionality is preserved unchanged
129
+ - `go build ./...` and `go test ./...` pass
130
+
131
+ ## Known issues
132
+
133
+ - E03 has `Design.md` instead of the expected `E03-Detail.md` — rename to match convention (tracked in E01/T002 scope, may need a follow-up task)
134
+
135
+ ## Risks
136
+
137
+ - **Build tooling scope creep.** E02 is pure Makefile work, but smoke-testing on non-Windows requires either CI or manual verification on actual Linux/macOS.
138
+ - **Naming convention holdout.** E03's `Design.md` may cause discovery or rendering issues if the board ever reads `E##-Detail.md` by pattern. Low priority — handled as a rename task if needed.
139
+ - **Epic panel is ≥120 only.** E04's features require a wide terminal — users on narrow terminals still use the `E` key dropdown.
@@ -1,136 +1,57 @@
1
1
  # Agent State Machine
2
2
 
3
- This file routes the agent based on the project's current state. Read this whenever you start a session.
3
+ ## Read order
4
4
 
5
- ## Read order on every session
5
+ 1. This file (router.md)
6
+ 2. Current state → next action
7
+ 3. Active epic E##-Detail.md
8
+ 4. Active task file
6
9
 
7
- 1. This file (you are here)
8
- 2. The current state below to know what to do next
9
- 3. The active epic Design
10
- 4. The active task file, when a task is selected
11
-
12
- Read `.savepoint/PRD.md` only for project vision changes. Read `.savepoint/Design.md` only for architecture changes or audit closeout. Read `.savepoint/releases/v1/PRD.md` only for release planning or epic-order questions.
13
-
14
- **Conditional read (token discipline):** if your active task touches **TUI rendering, theme, or visual design**, also read `.savepoint/visual-identity.md` after Design.md. Otherwise skip it — it's ~1.8K tokens you don't need.
10
+ Read `.savepoint/PRD.md` only for vision changes. Read `.savepoint/Design.md` only for architecture/audit.
15
11
 
16
12
  ## Current state
17
13
 
18
14
  ```yaml
19
15
  state: task-building
20
16
  release: v1.1
21
- epic: E01-tui-optimisation
22
- task: E01-tui-optimisation/T001-border-resize-fix
23
- next_action: Build v1.1 E01 T001 border resize fix.
17
+ epic: E14
18
+ task: E15-hardening/T001-benchmarks
19
+ next_action: Build E15-hardening/T001-benchmarks.
24
20
  ```
25
21
 
26
- ## State → next action
27
-
28
- <!-- AGENT: Read the state above. Find the matching block below. Follow it. -->
29
-
30
- ### `state: pre-implementation`
31
-
32
- The project has its PRD and Design locked but no epics defined yet.
33
-
34
- **Next action:**
35
-
36
- 1. Read `.savepoint/releases/v1/PRD.md` — the v1 release scope (epic list lives there).
37
- 2. Help the user define the epics list and confirm priority.
38
- 3. For each epic in order, create the directory `.savepoint/releases/v1/epics/E##-{epic-name}/` with a `Design.md` stub.
39
- 4. When epic E01 (scaffolding) is created, transition to `state: epic-design` for that epic.
40
-
41
- **Do not** start writing code. We are still in planning.
42
-
43
- ### `state: epic-design`
44
-
45
- An epic exists but its `Design.md` is empty or a stub.
46
-
47
- **Next action:** Walk the user through filling out the epic's `Design.md`:
48
-
49
- - What is this epic adding to the system?
50
- - What components / files does it touch?
51
- - What's the architectural delta vs the current state?
52
-
53
- When complete, transition to `state: epic-task-breakdown` for this epic.
54
-
55
- ### `state: epic-task-breakdown`
56
-
57
- Epic Design exists but tasks are missing or not fully planned.
58
-
59
- **Next action:**
22
+ ## State → action
60
23
 
61
- 1. Re-read the epic Design.
62
- 2. Create or update the full epic task list — each task **independently buildable**, **objective-led**, with declared `depends_on`.
63
- 3. Each task file lives at `.savepoint/releases/v1/epics/{E##-epic}/tasks/TNNN-slug.md` with frontmatter:
64
- ```yaml
65
- ---
66
- id: {E##-epic}/TNNN-slug
67
- status: planned
68
- objective: "<one sentence>"
69
- depends_on: []
70
- ---
71
- ```
72
- 4. In the same pass, write each task's `## Implementation Plan` as inline `- [ ]` checkboxes.
73
- 5. When every task is planned, transition to `state: task-building` for the first unblocked task.
24
+ ### pre-implementation
74
25
 
75
- ### `state: task-planning`
26
+ PRD + Design locked, no epics yet.
76
27
 
77
- Reserved for repair or late-added tasks. Normal epic planning happens during `state: epic-task-breakdown`.
28
+ **Next:** 1) Read release PRD for epic list, 2) Define + confirm epic order, 3) Create epic stubs. Transition to `epic-design` for E01.
78
29
 
79
- **Next action:** Read the task's `objective`. Write the implementation plan as inline `- [ ]` checkboxes under a `## Implementation Plan` heading. Set `status: planned`. Stop.
30
+ ### epic-design
80
31
 
81
- ### `state: task-building`
32
+ Epic E##-Detail.md is empty/stub.
82
33
 
83
- Task is `in_progress`. All `depends_on` are `done`.
34
+ **Next:** Define what this epic adds, files it touches, and architectural delta. Then transition to `epic-task-breakdown`.
84
35
 
85
- **Next action:** Execute the plan. Tick checkboxes as you complete them. Edit code per the **Code Style** rules in `AGENTS.md`. When all checkboxes tick, set `status: review` and stop.
36
+ ### epic-task-breakdown
86
37
 
87
- ### `state: audit-pending`
38
+ Epic exists, tasks missing.
88
39
 
89
- The last task in an epic is `done`. Audit must run before the next epic starts.
40
+ **Next:** 1) Re-read epic, 2) Create task files at `tasks/TNNN-slug.md` with `status: planned`, `objective`, `depends_on`, 3) Add `## Implementation Plan` checkboxes per task. When all planned → first unblocked task.
90
41
 
91
- **Next action:** Confirm `.savepoint/audit/{E##-epic}/snapshot.md` exists. If it is missing while the audit CLI is still unavailable, create one manual snapshot from the known epic scope once; do not search broadly for replacement inputs. Then read the snapshot, read the epic's `Design.md`, and read only the files listed as changed. Write one patch-shaped proposal bundle to `.savepoint/audit/{E##-epic}/proposals.md`:
92
-
93
- - `Design.md` section — merge only the epic delta into project architecture.
94
- - `AGENTS.md` section — refresh Codebase Map entries from changed-module metadata; preserve existing rows.
95
- - `epic-Design.md` section — add "implemented as:" notes and deltas from the original plan.
96
- - `Quality Review` section — semantic-review findings against the 10 Code Style rules (advisory only).
97
-
98
- Prefer delta-only edits (`Insert After`, `Replace`, `Delete`) anchored to exact text. Do not quote and replace entire large sections unless the whole section genuinely changed.
99
-
100
- Proposal format:
101
-
102
- ```md
103
- ## Target File
104
-
105
- `path/to/file.md`
106
-
107
- ## Replace
108
-
109
- <exact old heading, marker, or section>
110
-
111
- ## With
112
-
113
- <new content>
114
- ```
115
-
116
- Quality review section format:
117
-
118
- ```md
119
- ## Must Fix Before Close
120
-
121
- ## Carry Forward
122
-
123
- ## Already Fixed
124
- ```
42
+ ### task-building
125
43
 
126
- After proposals are approved, apply approved proposals to live files, mark the epic `Design.md` as `status: audited`, update project `Design.md` `last_audited`, refresh `AGENTS.md` Codebase Map, and advance this router to the next epic state.
44
+ Task `in_progress`, depends satisfied.
127
45
 
128
- Stop. The user reviews proposals in the TUI before commit actions.
46
+ **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.
129
47
 
130
- ## Capability check
48
+ ### audit-pending
131
49
 
132
- If you are not Claude Opus / Gemini 2.5 Pro / GPT-5.5 / equivalent, surface a warning to the user:
50
+ Epic complete, needs audit before next epic.
133
51
 
134
- > _"Heads up I'm running on a lighter model. Savepoint's planning steps work best with top-tier models because the embedded prompts are detailed. I'll do my best, but consider switching the model for PRD/Design/Task-breakdown steps."_
52
+ **Next:** Fresh audit agent reads epic E##-Detail.md, task files, drift notes, Design.md, AGENTS.md, and scoped changed files. Write one audit file to `.savepoint/releases/{release}/epics/{E##-epic}/E##-Audit.md`:
53
+ - `## Main Findings` user-facing narrative only
54
+ - `## Code Style Review` checklist against AGENTS.md rules
55
+ - `## Proposed Changes` admin/apply blocks using `### Target File`, `### Replace`, `### With`
135
56
 
136
- Then proceed.
57
+ After user approves: apply proposals, mark epic `status: audited`, update Design.md `last_audited`, advance router.