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
package/AGENTS.md CHANGED
@@ -1,141 +1,99 @@
1
1
  # Agents Guide
2
2
 
3
- Welcome, AI agent. This project (`savepoint`) uses its own conventions to manage its own build. You are about to dogfood the workflow.
4
-
5
3
  ## Workflow
6
4
 
7
- Before doing anything, read `.savepoint/router.md`. That file routes you to the next file based on the project's current state.
8
-
9
- **Available Custom Skills:**
10
- Savepoint ships with skills that define your role at each stage.
11
- - `draft-prd`: Acts as a strict Product Manager to interrogate the user and write the PRD.
12
- - `system-design`: Acts as a Staff Engineer mapping the architecture.
13
- - `create-plan` / `create-task`: Acts as a Technical PM breaking work into Epics and ACs.
14
- - `build-task`: Acts as the disciplined execution engine writing code and logging drift.
15
- - `audit`: Acts as the QA Lead reconciling code with documentation.
16
-
17
- **Skill Activation (CRITICAL):**
18
- When you read `.savepoint/router.md`, you MUST activate the corresponding agent skill for the current state before taking any action. Use the `activate_skill` tool (or equivalent) for the appropriate phase:
19
- - `state: draft-prd` -> Activate the `draft-prd` skill.
20
- - `state: design` -> Activate the `system-design` skill.
21
- - `state: planning` -> Activate the `create-plan` skill.
22
- - `state: task-breakdown` -> Activate the `create-task` skill.
23
- - `state: in-progress` -> Activate the `build-task` skill.
24
- - `state: audit-pending` -> Activate the `audit` skill.
25
-
26
- When you are about to write code, you must first read, in order:
27
-
28
- 1. `.savepoint/router.md` — current state and next action
29
- 2. The active epic Design: `.savepoint/releases/v1/epics/{E##-epic}/Design.md`
30
- 3. The active task file: `.savepoint/releases/v1/epics/{E##-epic}/tasks/{T###}-*.md`
31
- 4. Directly touched source/test files
32
-
33
- Read `.savepoint/PRD.md` only for project vision changes, major scope questions, or when the router explicitly asks for it.
34
- Read `.savepoint/Design.md` only when the task changes architecture or audit state. Read `.savepoint/releases/v1/PRD.md` only when planning epics, changing release scope, or resolving epic order.
35
-
36
- **Conditional read:** if the active task touches TUI implementation, also read `agent-skills/ink-tui-design/SKILL.md` as the execution guide. If it touches TUI rendering, theme, or visual design, also read `.savepoint/visual-identity.md` as the visual guardrails. Otherwise skip the extra files — they are tokens you do not need.
37
-
38
- **Do not load files outside the current task scope** unless the task requires it. Token discipline is the wedge of this product; we honor it on ourselves.
39
-
40
- Planning and implementation are separate handoffs:
41
-
42
- - Epic task breakdown and detailed task planning happen together in one pass by one planning agent.
43
- - Each task file must be independently buildable, objective-led, include explicit `depends_on` IDs, contain `## Acceptance Criteria` (observable outcomes) before `## Implementation Plan` (build checklist), and include a `## Context Log` for files read, estimated input tokens, and notes.
44
- - Implementation happens one task at a time and may be handed to any agent. Clear context between tasks by default; rehydrate only from the router, active epic Design, active task file, and directly touched source/test files.
45
- - During implementation, run focused tests for the touched behavior first; reserve the full quality-gate suite for task closeout.
5
+ 1. Read `.savepoint/router.md` state + next action
6
+ 2. Activate skill per table below
7
+ 3. Read: router → epic → task → source files
46
8
 
47
- - After all tasks in an epic are `done`, hand the epic back for audit.
48
- - Any explicit audit request overrides the normal handoff timing for that epic. Persist the audit to `.savepoint/audit/{E##-epic}/snapshot.md` and `.savepoint/audit/{E##-epic}/proposals.md` before replying; do not stop at chat-only findings.
9
+ ## Skill Activation
49
10
 
50
- ## Task Status Canon
11
+ | State | Skill |
12
+ |-------|-------|
13
+ | pre-implementation | savepoint-draft-prd |
14
+ | epic-design | savepoint-system-design |
15
+ | epic-task-breakdown | savepoint-create-task |
16
+ | task-building | savepoint-build-task |
17
+ | audit-pending | savepoint-audit |
51
18
 
52
- Task frontmatter `status` must be exactly one of `planned`, `in_progress`, or `done`.
19
+ Use the `skill` tool when the listed skill is available. If the agent says the skill is not found, read `agent-skills/{skill}/SKILL.md` directly and follow it as the active skill.
53
20
 
54
- Active task phase is represented separately with `phase: build`, `phase: test`, or `phase: audit`, and `phase` is only valid when `status: in_progress`.
21
+ Read `.savepoint/PRD.md` only for vision changes, `.savepoint/Design.md` only for architecture/audit.
55
22
 
56
- Never write `todo`, `doing`, `blocked`, `review`, `audit`, or phase names into `status`. If a task is blocked, keep its canonical status and document the blocker in the body.
23
+ ## Task Status
57
24
 
58
- ## Task Completion Protocol
25
+ - `status`: only `planned`, `in_progress`, or `done`
26
+ - `stage` (build/test/audit): **required** when `status: in_progress` — omitting it is a parse error
27
+ - Never: todo, doing, blocked, review, audit
28
+ - Agents may set a task to `status: in_progress` when starting implementation.
29
+ - Only the user may set a task to `status: done` or retreat a task to an earlier status.
59
30
 
60
- When a task reaches `status: done`, you MUST:
31
+ ## Implementation
61
32
 
62
- 1. Verify every `## Acceptance Criteria` line has a passing test or verified manual outcome. A task is not done until its acceptance criteria are satisfied, not merely its implementation checkboxes ticked.
63
- 2. Tick all checkboxes in the `## Implementation Plan`.
64
- 3. Fill the `## Context Log` (files read, estimated input tokens, notes).
65
- 4. Run the full quality-gate suite (`make build && make test`). Record the result in the Context Log.
66
- 5. If any gate fails, fix it or document the blocker in the task file before setting `status: done`.
67
- 6. Set the task frontmatter to `status: done`.
68
- 7. Update `router.md` with the next action (next unblocked task, or `audit-pending` if all tasks done).
69
- 8. **Stop. Prompt the user:**
70
- > "Task {id} is done. Quality gates: {pass/fail list}. Router updated to {next_action}. Review the changes, then tell me to continue."
33
+ 1. Read task's `## Context Files` using `Read` tool one call per file, no explore, no glob
34
+ 2. Read task's `## Acceptance Criteria` + `## Implementation Plan`
35
+ 3. When starting implementation, set task frontmatter to `status: in_progress` + `stage: build` (both required together)
36
+ 4. After setting `in_progress`, press `p` in the TUI to mark the focused task as router priority
37
+ 5. Execute in order, tick checkboxes
38
+ 6. Verify every AC has passing test/outcome
39
+ 7. Run quality gates (build + test)
40
+ 8. Update router.md: next task or `audit-pending`
41
+ 9. **Stop. Prompt user before continuing.**
71
42
 
72
- **Do not start the next task. Do not advance past this point without user acknowledgment.**
43
+ ## Drift Check
73
44
 
74
- ## Task Closeout Meta-Check
45
+ - New files/modules not in Codebase Map?
46
+ - Architecture changed from Design.md?
75
47
 
76
- After marking a task `done` and before prompting the user, ask yourself:
48
+ If yes append `## Drift Notes` to task file.
77
49
 
78
- - Did this task add new source files, modules, or exports not in the Codebase Map?
79
- - Did this task change the architecture from what `.savepoint/Design.md` describes?
50
+ ## Audit Handoff
80
51
 
81
- If yes, append a `## Drift Notes` section to the task file:
82
- - `Drift: {file} added, not yet in Codebase Map.`
83
- - `Drift: {section} in Design.md may need update.`
52
+ The agent that builds an epic **must not audit it**. Start a fresh session.
84
53
 
85
- Drift notes are lightweight annotations. They do **not** replace the epic audit. They flag what the next audit should reconcile.
54
+ ## Audit File Structure
86
55
 
87
- ## Audit Handoff Rule
56
+ - Audit is agent-led via `savepoint-audit`, not a `savepoint audit` CLI pipeline.
57
+ - Write exactly one `.savepoint/releases/{release}/epics/{E##-slug}/E##-Audit.md`.
58
+ - The TUI Audit tab renders `## Main Findings` and `## Code Style Review` only.
59
+ - Keep file-specific `### Target File` / `### Replace` / `### With` blocks under `## Proposed Changes` so admin apply details do not appear in the Epic Detail panel.
60
+ - During audit apply/close, update the same `E##-Audit.md` visible sections so `## Main Findings` and `## Code Style Review` describe the applied outcome, not stale pre-apply blockers.
88
61
 
89
- The agent session that builds an epic **must not** run its audit. Audit requires fresh eyes.
90
-
91
- When all tasks in an epic are `done`:
92
- 1. Update `router.md` to `state: audit-pending` for that epic.
93
- 2. Stop. Tell the user: "Epic {id} is complete. Start a new agent session for the audit."
94
- 3. The user starts a fresh session. The new agent reads `router.md`, sees `audit-pending`, and follows the audit-reconciliation instructions.
62
+ ## Code Style
95
63
 
96
- **If you are in the same session that built the epic, you must not audit it.**
64
+ - **One job per file** split files when responsibilities mix.
65
+ - **One job per function** — small, named, testable units.
66
+ - **Test branches** — cover meaningful conditionals and edge cases.
67
+ - **Types document intent** — prefer explicit types over comments.
68
+ - **Build only what is needed** — no speculative abstractions.
69
+ - **Handle errors at boundaries** — validate inputs, APIs, IO, and external data.
70
+ - **One source of truth** — no duplicated rules, constants, state, or config.
71
+ - **Comments explain why** — not what the code already says.
72
+ - **Content lives in data** — keep copy/config out of logic.
73
+ - **Small diffs** — minimal, reviewable, behaviour-preserving changes.
97
74
 
98
- ## Build / Test / Run
75
+ ## Build
99
76
 
100
77
  ```bash
101
- make build # go build -o savepoint main.go
102
- make test # go test ./...
103
- make run # go run main.go
104
- make clean # rm -f savepoint
78
+ make build && make test
105
79
  ```
106
80
 
107
- ## Code Style
108
-
109
- 1. **One job per file.** If a file does two things, split it.
110
- 2. **One-sentence rule.** If you can't describe a function in one sentence, refactor.
111
- 3. **Test what branches.** Logic with if/else/switch gets a test. Pure rendering: skip.
112
- 4. **Types are documentation.** No `any`. Let the compiler help.
113
- 5. **Build, don't speculate.** No code for hypothetical futures.
114
- 6. **Errors at boundaries.** Handle failure where data enters or leaves the system.
115
- 7. **One source of truth.** State lives in one place. No syncing copies.
116
- 8. **Comments explain WHY,** not what. If removing the comment wouldn't confuse a future reader, delete it.
117
- 9. **Content in data files.** Markdown/JSON/YAML, not strings in code.
118
- 10. **Small diffs.** Each task touches as few files as possible.
119
-
120
81
  ## Codebase Map
121
82
 
122
- | Module | Purpose |
123
- | ------------------------------------ | ---------------------------------------------------------------------------------------------------- |
124
- | `main.go` | CLI Entrypoint and root command wiring |
125
- | `internal/board/` | TUI board models, layout, rendering, overlays, task transitions, router priority markers, and fsnotify refresh |
126
- | `internal/data/` | Task/router/config models, frontmatter parsing, checklist state parsing, mtime-guarded writes, discovery, and generic file readers |
127
- | `internal/styles/` | Atari-Noir palette constants, terminal color fallbacks, shared TUI styles, semantic glyph/tag styles, and footer/header styling |
128
- | `cmd/` | Additional CLI subcommands (if any) |
129
- | `templates/` | Default project scaffold markdown, YAML assets, and agent prompt templates |
130
- | `agent-skills/` | Custom skill guides for different agent phases (`draft-prd`, `audit`, etc.) |
131
-
132
- ## CLI rules for agents
83
+ | Module | Purpose |
84
+ |--------|---------|
85
+ | `main.go` | CLI entrypoint, --version |
86
+ | `cmd/` | CLI command arg parsing and dispatch for init, board, and doctor |
87
+ | `internal/init/` | Target validation, scaffold writing from templates |
88
+ | `internal/board/` | TUI board, overlays, epic sidebar, Next Activity line, router priority key, detail checklist rendering, status glyphs, forced color profile, async update I/O commands, shared board utilities |
89
+ | `internal/buildtool/` | Makefile helper, cross-compile, archives |
90
+ | `internal/doctor/` | Read-only project diagnostics, integrity checks, timed quality gate execution, report formatting, typed repair suggestions |
91
+ | `internal/data/` | Task/router models, frontmatter parsing/splitting, lifecycle validation/defaulting, discovery including root-dir traversal, unified task status constants, canonical write helpers |
92
+ | `internal/testutil/` | Shared Go test fixtures and filesystem helpers for internal package tests |
93
+ | `internal/styles/` | Atari-Noir palette, TUI styles |
94
+ | `templates/` | Scaffold markdown, YAML, prompts |
95
+ | `agent-skills/` | Phase-specific skill guides |
96
+
97
+ ## CLI Rules
133
98
 
134
99
  **Never run `savepoint` commands.** The CLI is for the human. Edit files directly.
135
-
136
- (For this repo specifically: `savepoint` doesn't exist yet — we're building it. Even once it exists, this rule stands.)
137
-
138
- ## Recommended planning models
139
-
140
- For PRD/Design/Task planning, this workflow assumes a top-tier model: Claude Opus, Gemini 2.5 Pro, GPT-5.5, or equivalent. Lighter models may not follow embedded prompt instructions reliably. If you are not one of those, advise the user before proceeding with planning steps.
141
- instructions reliably. If you are not one of those, advise the user before proceeding with planning steps.
package/Makefile CHANGED
@@ -1,7 +1,9 @@
1
- .PHONY: build test run clean
1
+ .PHONY: build test run clean build-linux build-darwin build-all dist smoke-test
2
+
3
+ VERSION ?=
2
4
 
3
5
  build:
4
- go build -o savepoint main.go
6
+ go run ./internal/buildtool -version "$(VERSION)" build
5
7
 
6
8
  test:
7
9
  go test ./...
@@ -10,4 +12,18 @@ run:
10
12
  go run main.go
11
13
 
12
14
  clean:
13
- rm -f savepoint
15
+ go run ./internal/buildtool -version "$(VERSION)" clean
16
+
17
+ build-linux:
18
+ go run ./internal/buildtool -version "$(VERSION)" build-linux
19
+
20
+ build-darwin:
21
+ go run ./internal/buildtool -version "$(VERSION)" build-darwin
22
+
23
+ build-all: build-linux build-darwin
24
+
25
+ dist:
26
+ go run ./internal/buildtool -version "$(VERSION)" dist
27
+
28
+ smoke-test:
29
+ go run ./internal/buildtool -version "$(VERSION)" smoke-test
package/README.md CHANGED
@@ -34,11 +34,11 @@ Savepoint turns your project into a series of hard gates, enforced by **six bund
34
34
 
35
35
  Small scopes. Small context windows. No wandering.
36
36
 
37
- - **The PRD Gate (`draft-prd`):** The agent interviews you to ensure your idea is crisp enough for a V1 before writing any architecture.
38
- - **The Design Gate (`system-design`):** Write down what you actually want. If you can't explain it simply in a markdown file, the AI is going to make a mess of it.
39
- - **The Plan Gate (`create-plan` & `create-task`):** Break the idea down into small, manageable steps. No giant leaps. This becomes the checklist the AI _must_ follow.
40
- - **The Build Gate (`build-task`):** The AI writes code for one small step at a time. The scope stays tight so it doesn't wander off into the weeds. It logs "Drift Notes" instead of cowboy-coding architectural changes.
41
- - **The Audit Gate (`audit`):** Before moving on, we stop and check. Does the code match the plan? We don't advance until the map matches the territory.
37
+ - **The PRD Gate (`savepoint-draft-prd`):** The agent interviews you to ensure your idea is crisp enough for a V1 before writing any architecture.
38
+ - **The Design Gate (`savepoint-system-design`):** Write down what you actually want. If you can't explain it simply in a markdown file, the AI is going to make a mess of it.
39
+ - **The Plan Gate (`savepoint-create-plan` & `savepoint-create-task`):** Break the idea down into small, manageable steps. No giant leaps. This becomes the checklist the AI _must_ follow.
40
+ - **The Build Gate (`savepoint-build-task`):** The AI writes code for one small step at a time. The scope stays tight so it doesn't wander off into the weeds. It logs "Drift Notes" instead of cowboy-coding architectural changes.
41
+ - **The Audit Gate (`savepoint-audit`):** Before moving on, we stop and check. Does the code match the plan? We don't advance until the map matches the territory.
42
42
 
43
43
  > 🔒 **The Audit Loop** — When the last task in an epic moves to `done`, the next epic stays _locked_ until your docs (`Design.md`, `AGENTS.md`, and the epic's own design) are reconciled with the actual code via the audit agent. **No existing markdown-first task tool has this gate.**
44
44
 
@@ -61,7 +61,6 @@ Built for a cinematic, technical feel without the bloat.
61
61
  | :----------------- | :--------------------------------------------------------------------------------------------------- |
62
62
  | `savepoint init` | Scaffold the loop, write your `AGENTS.md` guide, drop the baby gates, and generate the magic prompt. |
63
63
  | `savepoint board` | Launch the Atari-Noir Kanban TUI to track the vibe. |
64
- | `savepoint audit` | Stop the AI. Sync the map with the territory. |
65
64
  | `savepoint doctor` | Check the integrity of the state machine. |
66
65
 
67
66
  ---
@@ -76,3 +75,4 @@ I’m sharing it to prove a point: The real power of AI isn't just the size of t
76
75
 
77
76
  **License:** MIT
78
77
  **Status:** Recursive Construction (v1 MVP in progress)
78
+ us:** Recursive Construction (v1 MVP in progress)
@@ -1,35 +1,87 @@
1
- # Savepoint Skill: Audit (`audit`)
2
-
3
- ## Objective
4
- At the end of an epic, review the implemented code against the Epic objectives and Task Acceptance Criteria, and reconcile any documentation "Drift".
5
-
6
- ## Context
7
- The Audit Gate is Savepoint's wedge. It prevents projects from degrading into chaos. The `audit` agent acts as the Quality Assurance and Documentation Lead. It reviews the work of the `build-task` agent with "fresh eyes," ensuring that the `Design.md` and the `AGENTS.md` Codebase Map reflect the actual reality of the codebase before the next Epic begins.
8
-
9
- ## Trigger
10
- This skill is activated when the `.savepoint/router.md` state is `audit-pending`.
11
-
12
- ## Input
13
- - `.savepoint/audit/{E##-slug}/snapshot.md` (what changed).
14
- - `.savepoint/releases/v1/epics/{E##-slug}/Design.md` (the epic design).
15
- - `.savepoint/Design.md` (project architecture).
16
- - `AGENTS.md` (agent guide and codebase map).
17
- - The source and test files modified during the Epic.
18
-
19
- ## Workflow
20
-
21
- 1. **Fresh Eyes Check:** If you are the exact same agent session that just built the `build-task` code for this Epic, you MUST STOP. Tell the user: "Epic complete. Start a new agent session for the audit."
22
- 2. **Verify ACs:** Review the completed tasks for the Epic. Ensure the Acceptance Criteria were actually met by the committed code.
23
- 3. **Process Drift Notes (Reconciliation):** Read every task file in the Epic and look for `## Drift Notes`.
24
- 4. **Draft Proposals:** Based on the code changes and the Drift Notes, write exactly ONE file: `.savepoint/audit/{E##-slug}/proposals.md`. It must contain:
25
- * **Design.md section:** Propose updates to merge the epic's architectural changes into the project-level `Design.md`.
26
- * **AGENTS.md section:** Propose updates to refresh the Codebase Map table with new or changed modules.
27
- * **Epic-Design.md section:** Add "Implemented as:" notes showing where reality deviated from the original plan.
28
- * **Quality Review section:** List any minor code-style infractions that must be fixed before the next Epic.
29
- 5. **Review Format:** Use `## Target File`, `## Replace`, and `## With` formatting in the proposals document so it is easy for a human (or an agent) to apply later.
30
- 6. **Handoff:** Do not apply the proposals yourself. Do not mark the epic audited. Stop and prompt the user to review `.savepoint/audit/{E##-slug}/proposals.md` (often via the TUI). Once the user approves, the proposals are applied, and the router moves to the next Epic.
31
-
32
- ## Constraints
33
- - **Do not write product code.** You are an auditor.
34
- - **Do not apply the changes immediately.** Write the proposals document first.
35
- - **One proposals file.** Do not create multiple proposal files.
1
+ ---
2
+ name: savepoint-audit
3
+ description: Performs Savepoint audit-pending work for a completed epic, reviewing implementation against task acceptance criteria and writing the required E##-Audit.md handoff file.
4
+ ---
5
+
6
+ # Savepoint Skill: Audit (`audit`)
7
+
8
+ ## Objective
9
+ At the end of an epic, review the implemented code against the Epic objectives and Task Acceptance Criteria, and reconcile any documentation "Drift".
10
+
11
+ ## Context
12
+ The Audit Gate is Savepoint's wedge. It prevents projects from degrading into chaos. The `audit` agent acts as the Quality Assurance and Documentation Lead. It reviews the work of the `build-task` agent with "fresh eyes," ensuring that the `Design.md` and the `AGENTS.md` Codebase Map reflect the actual reality of the codebase before the next Epic begins.
13
+
14
+ ## Trigger
15
+ This skill is activated when the `.savepoint/router.md` state is `audit-pending`.
16
+
17
+ ## Input
18
+ - `.savepoint/releases/{release}/epics/{E##-slug}/E##-Detail.md` (the epic design).
19
+ - `.savepoint/Design.md` (project architecture).
20
+ - `AGENTS.md` (agent guide and codebase map).
21
+ - The source and test files modified during the Epic.
22
+
23
+ ## Workflow
24
+
25
+ 1. **Fresh Eyes Check:** If you are the exact same agent session that just built the `build-task` code for this Epic, you MUST STOP. Tell the user: "Epic complete. Start a new agent session for the audit."
26
+ 2. **Verify ACs:** Review the completed tasks for the Epic. Ensure the Acceptance Criteria were actually met by the committed code. Also confirm each task file has a `## Context Files` section — flag any missing ones under `## Main Findings` as a process gap.
27
+ 3. **Process Drift Notes (Reconciliation):** Read every task file in the Epic and look for `## Drift Notes`.
28
+ 4. **Draft Audit File:** Based on the code changes and the Drift Notes, write exactly ONE file: `.savepoint/releases/{release}/epics/{E##-slug}/E##-Audit.md`. It must use this format:
29
+ ````md
30
+ ---
31
+ type: audit-findings
32
+ audited: YYYY-MM-DD
33
+ ---
34
+ # Audit Findings: E## {Epic Name}
35
+
36
+ ## Main Findings
37
+ [human-readable audit summary only: AC verification, important drift, and notable risks. Do not include per-file replacement blocks here.]
38
+
39
+ ## Code Style Review
40
+ - [ ] One job per file
41
+ - [ ] One-sentence functions
42
+ - [ ] Test branches
43
+ - [ ] Types are documentation
44
+ - [ ] Build, don't speculate
45
+ - [ ] Errors at boundaries
46
+ - [ ] One source of truth
47
+ - [ ] Comments explain WHY
48
+ - [ ] Content in data files
49
+ - [ ] Small diffs
50
+
51
+ ## Proposed Changes
52
+ ### Target File
53
+ path/to/file.md
54
+
55
+ ### Replace
56
+ ```
57
+ exact old text
58
+ ```
59
+
60
+ ### With
61
+ ```
62
+ replacement text
63
+ ```
64
+ ````
65
+ The TUI Audit tab renders only `## Main Findings` and `## Code Style Review`. Keep `## Proposed Changes` as admin/apply metadata so the Epic Detail panel does not show stale file-change blocks.
66
+ 5. **Review Format:** Use `### Target File`, `### Replace`, and `### With` formatting only inside `## Proposed Changes`. Include proposals for:
67
+ * **Design.md:** Merge the epic's architectural changes into the project-level `Design.md`.
68
+ * **AGENTS.md:** Refresh the Codebase Map table with new or changed modules.
69
+ * **Epic E##-Detail.md:** Add "Implemented as:" notes showing where reality deviated from the original plan.
70
+ * **Implementation fixes:** Include any must-fix code or test changes found during audit.
71
+ 6. **Handoff:** Do not apply the proposals yourself. Do not mark the epic audited. Stop and prompt the user to review `.savepoint/releases/{release}/epics/{E##-slug}/E##-Audit.md` (via the TUI Audit tab). Tell them: "Review the audit tab. When ready, say 'apply audit' to apply proposals and close the epic."
72
+ 7. **Apply + Close** (only when the user approves by saying "apply audit" or equivalent):
73
+ 1. Read `E##-Audit.md` — extract every `### Target File` / `### Replace` / `### With` block from `## Proposed Changes`.
74
+ 2. For each pair, apply the replacement to the target file named in the preceding `### Target File` line.
75
+ 3. Update `E##-Audit.md` visible sections: rewrite `## Main Findings` and `## Code Style Review` so the TUI Audit tab reflects the applied outcome, resolved findings, remaining risks if any, and final code-style status. Keep `## Proposed Changes` intact as admin/apply trace unless the user asks to remove it.
76
+ 4. Update `E##-Detail.md` frontmatter: set `status: audited`.
77
+ 5. Update `.savepoint/Design.md` frontmatter: set `last_audited: {release}/{E##-slug}`.
78
+ 6. Read `.savepoint/router.md` current state. Advance:
79
+ - If more epics remain in the release: set `state: epic-design`, `epic: {next-epic-slug}`, `task: ""`, `next_action: "Draft epic design"`.
80
+ - If no more epics: set `state: epic-design`, `epic: ""`, `next_action: "Plan next epic"`.
81
+ 7. Print apply summary: "Applied X proposals. Updated audit findings. Epic {E##} closed as audited. Router → {new state}."
82
+
83
+ ## Constraints
84
+ - **Do not write product code.** You are an auditor.
85
+ - **Do not apply the changes immediately.** Write the proposals document first.
86
+ - **One proposals file.** Do not create multiple proposal files.
87
+ - **No CLI audit pipeline.** Savepoint audit is agent-led and skill-driven; do not invoke or design around a `savepoint audit` command.
@@ -1,4 +1,9 @@
1
- # Savepoint Skill: Build Task (`build-task`)
1
+ ---
2
+ name: savepoint-build-task
3
+ description: Executes Savepoint task-building work when .savepoint/router.md state is task-building, including implementing one active task, checking acceptance criteria, running quality gates, and stopping for user review.
4
+ ---
5
+
6
+ # Savepoint Skill: Build Task (`build-task`)
2
7
 
3
8
  ## Objective
4
9
  Act as a disciplined coding agent that strictly follows Savepoint's implementation loop.
@@ -7,11 +12,11 @@ Act as a disciplined coding agent that strictly follows Savepoint's implementati
7
12
  The `build-task` skill is the execution engine. It reads the detailed task plan, writes the code, and proves that the Acceptance Criteria (ACs) have been met. It is strictly constrained to the scope of the single active task. It does not rewrite architecture, and it does not fix unrelated bugs.
8
13
 
9
14
  ## Trigger
10
- This skill is activated when the `.savepoint/router.md` state is `in-progress` and points to a specific task file.
15
+ This skill is activated when the `.savepoint/router.md` state is `task-building` and points to a specific task file.
11
16
 
12
17
  ## Input
13
18
  - `.savepoint/router.md` (Current state).
14
- - The active epic Design: `.savepoint/releases/v1/epics/{E##-epic}/Design.md`.
19
+ - The active epic E##-Detail.md: `.savepoint/releases/v1/epics/{E##-epic}/E##-Detail.md`.
15
20
  - The active task file: `.savepoint/releases/v1/epics/{E##-epic}/tasks/{T###}-*.md`.
16
21
  - Directly touched source/test files.
17
22
 
@@ -36,4 +41,4 @@ This skill is activated when the `.savepoint/router.md` state is `in-progress` a
36
41
 
37
42
  ## Constraints
38
43
  - **Stay in scope:** Do not touch files outside of what is required for the Acceptance Criteria.
39
- - **Do not edit architecture documents.** If you must deviate from the plan, write the code and log a "Drift Note" in the task file.
44
+ - **Do not edit architecture documents.** If you must deviate from the plan, write the code and log a "Drift Note" in the task file.
@@ -1,4 +1,9 @@
1
- # Savepoint Skill: Create Plan (`create-plan`)
1
+ ---
2
+ name: savepoint-create-plan
3
+ description: Creates Savepoint release epics from the PRD and Design documents when the router is in pre-implementation planning.
4
+ ---
5
+
6
+ # Savepoint Skill: Create Plan (`create-plan`)
2
7
 
3
8
  ## Objective
4
9
  Turn the Product Requirements Document (PRD) and the architectural `Design.md` into Epics (logical slices of work) and high-level tasks that can be implemented independently.
@@ -7,22 +12,22 @@ Turn the Product Requirements Document (PRD) and the architectural `Design.md` i
7
12
  Savepoint enforces small scopes to prevent AI agents from "wandering." The `create-plan` skill acts as the Technical Project Manager. It takes the grand vision and the architectural blueprint and slices it into a sequence of achievable, testable milestones (Epics).
8
13
 
9
14
  ## Trigger
10
- This skill is activated when the `.savepoint/router.md` state is `planning`.
15
+ This skill is activated when the `.savepoint/router.md` state is `pre-implementation`.
11
16
 
12
17
  ## Input
13
18
  - `.savepoint/PRD.md` (Vision and constraints)
14
19
  - `.savepoint/Design.md` (Architecture and layout)
15
- - `.savepoint/releases/v1/PRD.md` (Optional: Release-scoped PRD)
20
+ - `.savepoint/releases/v1/v1-PRD.md` (Optional: Release-scoped PRD)
16
21
 
17
22
  ## Workflow
18
23
 
19
24
  1. **Read the Context:** Consume the PRD and Design documents to understand the scope and technical constraints.
20
25
  2. **Define Epics:** Group the work into high-level features or milestones. Name them clearly (e.g., `E01-scaffolding`, `E02-database`, `E03-auth`). Each Epic must represent a deliverable slice of value.
21
- 3. **Draft Epic Designs:** For each Epic, create a shell `Design.md` inside `.savepoint/releases/v1/epics/{E##-epic-name}/Design.md`. This file should describe the *delta* (what this specific epic adds to the overall architecture).
26
+ 3. **Draft Epic Designs:** For each Epic, create a shell `E##-Detail.md` inside `.savepoint/releases/v1/epics/{E##-epic-name}/E##-Detail.md`. This file should describe the *delta* (what this specific epic adds to the overall architecture).
22
27
  4. **Breakdown Tasks (High Level):** Inside each Epic folder, list out the high-level tasks required to complete it. Do not write full implementation plans yet—just identify the discrete chunks of work (e.g., `T001-setup-repo.md`, `T002-init-db.md`).
23
28
  5. **Order and Dependency:** Ensure the Epics and tasks are ordered logically. You cannot build the frontend auth UI (E03) before the database models (E02) exist.
24
29
  6. **Handoff:** Update `.savepoint/router.md` to `state: task-breakdown` and point it at the first Epic. Prompt the user to review the Epic list.
25
30
 
26
31
  ## Constraints
27
32
  - **Do not write code.**
28
- - **Do not write detailed implementation steps.** That is the job of the `create-task` skill. Keep the task outlines high-level at this stage.
33
+ - **Do not write detailed implementation steps.** That is the job of the `create-task` skill. Keep the task outlines high-level at this stage.
@@ -1,31 +1,44 @@
1
- # Savepoint Skill: Create Task (`create-task`)
2
-
3
- ## Objective
4
- Take high-level tasks identified during the planning phase and build detailed, actionable task plans with strict Acceptance Criteria.
5
-
6
- ## Context
7
- A task plan is a contract between the planner and the builder. If the task plan is vague, the resulting code will be buggy. The `create-task` skill acts as a Senior Engineer writing tickets for a Junior Developer (the `build-task` agent). It must define exactly *what* constitutes success and *how* to achieve it, without actually writing the code.
8
-
9
- ## Trigger
10
- This skill is activated when the `.savepoint/router.md` state is `task-breakdown` and the router points to a specific task file.
11
-
12
- ## Input
13
- - `.savepoint/releases/v1/epics/{E##-epic}/Design.md` (The active Epic's design).
14
- - The high-level task markdown file (e.g., `.savepoint/releases/v1/epics/{E##-epic}/tasks/T001-slug.md`).
15
-
16
- ## Workflow
17
-
18
- 1. **Read Context:** Understand the goal of the specific task within the context of its parent Epic.
19
- 2. **Define Acceptance Criteria (ACs):** This is the most critical step. Write explicit, observable outcomes. (e.g., "Running `npm test` passes 5 tests for the auth module" or "The `/login` route returns a 200 OK with a valid JWT"). Do not use subjective language like "looks good."
20
- 3. **Draft Implementation Plan:** Create a step-by-step checklist for the `build-task` agent to follow.
21
- * List which files need to be created or modified.
22
- * Specify which functions or components need to be written.
23
- * Include instructions to write tests *first* if applicable.
24
- 4. **Add Context Log Shell:** Ensure the bottom of the task file includes a `## Context Log` section with placeholders for `Files read:`, `Estimated input tokens:`, and `Notes:`.
25
- 5. **Define Dependencies:** If this task relies on another task being completed first, explicitly declare it in the YAML frontmatter (e.g., `depends_on: [T001-setup]`).
26
- 6. **Status Update:** Change the task frontmatter to `status: planned`.
27
- 7. **Handoff:** Update `.savepoint/router.md` to `state: in-progress` and ensure it points to the newly planned task. Prompt the user to approve the task plan before building begins.
28
-
29
- ## Constraints
30
- - **Do not write code.** Your job is to plan the work, not execute it.
31
- - **Keep it isolated:** The task plan should touch as few files as possible. If a task plan requires modifying 15 files, it is too large and should be broken down further.
1
+ ---
2
+ name: savepoint-create-task
3
+ description: Plans Savepoint task files during epic-task-breakdown by writing acceptance criteria, implementation checklists, dependencies, and context-log shells.
4
+ ---
5
+
6
+ # Savepoint Skill: Create Task (`create-task`)
7
+
8
+ ## Objective
9
+ Take high-level tasks identified during the planning phase and build detailed, actionable task plans with strict Acceptance Criteria.
10
+
11
+ ## Context
12
+ A task plan is a contract between the planner and the builder. If the task plan is vague, the resulting code will be buggy. The `create-task` skill acts as a Senior Engineer writing tickets for a Junior Developer (the `build-task` agent). It must define exactly *what* constitutes success and *how* to achieve it, without actually writing the code.
13
+
14
+ ## Trigger
15
+ This skill is activated when the `.savepoint/router.md` state is `epic-task-breakdown` and the router points to a specific epic.
16
+
17
+ ## Input
18
+ - `.savepoint/releases/v1/epics/{E##-epic}/E##-Detail.md` (The active Epic's design).
19
+ - The high-level task markdown file (e.g., `.savepoint/releases/v1/epics/{E##-epic}/tasks/T001-slug.md`).
20
+
21
+ ## Workflow
22
+
23
+ 1. **Read Context:** Understand the goal of the specific task within the context of its parent Epic.
24
+ 2. **Define Acceptance Criteria (ACs):** This is the most critical step. Write explicit, observable outcomes. (e.g., "Running `npm test` passes 5 tests for the auth module" or "The `/login` route returns a 200 OK with a valid JWT"). Do not use subjective language like "looks good."
25
+ 3. **Draft Implementation Plan:** Create a step-by-step checklist for the `build-task` agent to follow.
26
+ * List which files need to be created or modified.
27
+ * Specify which functions or components need to be written.
28
+ * Include instructions to write tests *first* if applicable.
29
+ 4. **Populate Context Files:** Add a `## Context Files` section listing the exact file paths the build agent must read before coding. Pull these from the epic's Components table — only the files this task actually touches or depends on. Example:
30
+ ```markdown
31
+ ## Context Files
32
+ - `internal/board/board.go`
33
+ - `internal/board/model.go`
34
+ - `internal/data/config.go`
35
+ ```
36
+ No globs. No directories. Exact paths only.
37
+ 5. **Add Context Log Shell:** Ensure the bottom of the task file includes a `## Context Log` section with placeholders for `Files read:`, `Estimated input tokens:`, and `Notes:`.
38
+ 5. **Define Dependencies:** If this task relies on another task being completed first, explicitly declare it in the YAML frontmatter (e.g., `depends_on: [T001-setup]`).
39
+ 6. **Status Update:** Change the task frontmatter to `status: planned`.
40
+ 7. **Handoff:** Update `.savepoint/router.md` to `state: in-progress` and ensure it points to the newly planned task. Prompt the user to approve the task plan before building begins.
41
+
42
+ ## Constraints
43
+ - **Do not write code.** Your job is to plan the work, not execute it.
44
+ - **Keep it isolated:** The task plan should touch as few files as possible. If a task plan requires modifying 15 files, it is too large and should be broken down further.
@@ -1,4 +1,9 @@
1
- # Savepoint Skill: Draft PRD (`draft-prd`)
1
+ ---
2
+ name: savepoint-draft-prd
3
+ description: Guides Savepoint PRD drafting and refinement before implementation, interviewing the user until the product scope is clear enough for design.
4
+ ---
5
+
6
+ # Savepoint Skill: Draft PRD (`draft-prd`)
2
7
 
3
8
  ## Objective
4
9
  Help the user write a structured, sufficiently detailed Product Requirements Document (PRD) before any design or planning occurs.
@@ -7,7 +12,7 @@ Help the user write a structured, sufficiently detailed Product Requirements Doc
7
12
  In the Savepoint workflow, the PRD is the absolute source of truth. If the PRD is a vague brain-dump, the resulting architecture and code will be a mess. Your job as the `draft-prd` agent is to act as a strict Product Manager. You do not write code. You interrogate the user's idea until it is crisp enough to build a V1.
8
13
 
9
14
  ## Trigger
10
- This skill is activated when the `.savepoint/router.md` state is `draft-prd` or when the user explicitly asks you to help them write or refine their PRD.
15
+ This skill is activated when the `.savepoint/router.md` state is `pre-implementation` or when the user explicitly asks you to help them write or refine their PRD.
11
16
 
12
17
  ## Input
13
18
  - The user's initial idea, brain-dump, or `.txt` file outline.
@@ -29,4 +34,4 @@ This skill is activated when the `.savepoint/router.md` state is `draft-prd` or
29
34
  ## Constraints
30
35
  - **Do not write code.**
31
36
  - **Do not plan Epics.** That is the job of the `create-plan` skill.
32
- - **Do not make technical architectural decisions.** That is the job of the `system-design` skill. Your focus is strictly on *what* and *why*, not *how*.
37
+ - **Do not make technical architectural decisions.** That is the job of the `system-design` skill. Your focus is strictly on *what* and *why*, not *how*.
@@ -1,4 +1,9 @@
1
- # Savepoint Skill: System Design (`system-design`)
1
+ ---
2
+ name: savepoint-system-design
3
+ description: Produces Savepoint system or epic design documents from the PRD when the router is in epic-design or the user asks for architectural design.
4
+ ---
5
+
6
+ # Savepoint Skill: System Design (`system-design`)
2
7
 
3
8
  ## Objective
4
9
  Translate the Product Requirements Document (PRD) into the initial architectural blueprint (`Design.md`) before the planning phase breaks the work down into Epics.
@@ -7,7 +12,7 @@ Translate the Product Requirements Document (PRD) into the initial architectural
7
12
  Before any tasks can be planned, the project needs a high-level technical direction. The `system-design` skill acts as the Staff Engineer. It reads the vision and constraints from the PRD and makes authoritative technical decisions regarding architecture, directory layout, dependency strategies, and workflow rules.
8
13
 
9
14
  ## Trigger
10
- This skill is activated when the `.savepoint/router.md` state is `design` or when the user explicitly asks to design the system based on the PRD.
15
+ This skill is activated when the `.savepoint/router.md` state is `epic-design` or when the user explicitly asks to design the system based on the PRD.
11
16
 
12
17
  ## Input
13
18
  - `.savepoint/PRD.md` (The source of truth for "what" and "why").
@@ -30,4 +35,4 @@ This skill is activated when the `.savepoint/router.md` state is `design` or whe
30
35
  ## Constraints
31
36
  - **Do not write code.**
32
37
  - **Do not break down tasks.** That is the job of the `create-plan` skill.
33
- - **Maintain Token Discipline:** Keep the `Design.md` concise. It is meant to be read by AI agents on every turn. Rambling design docs destroy context windows.
38
+ - **Maintain Token Discipline:** Keep the `Design.md` concise. It is meant to be read by AI agents on every turn. Rambling design docs destroy context windows.