savepoint 1.0.0 → 1.0.2

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 (136) hide show
  1. package/.claude/settings.local.json +8 -1
  2. package/.savepoint/Design.md +26 -17
  3. package/.savepoint/audit/v1/E01/proposals.md +168 -0
  4. package/.savepoint/audit/v1/E01/snapshot.md +78 -0
  5. package/.savepoint/audit/{E01-go-setup → v1/E01-go-setup}/proposals.md +7 -7
  6. package/.savepoint/audit/{E01-go-setup → v1/E01-go-setup}/snapshot.md +2 -2
  7. package/.savepoint/audit/{E01-scaffolding → v1/E01-scaffolding}/proposals/AGENTS.md +5 -5
  8. package/.savepoint/audit/{E02-data-readers → v1/E02-data-readers}/proposals.md +20 -20
  9. package/.savepoint/audit/{E02-data-readers → v1/E02-data-readers}/snapshot.md +1 -1
  10. package/.savepoint/audit/{E03-board-tui-core → v1/E03-board-tui-core}/proposals.md +11 -11
  11. package/.savepoint/audit/{E03-board-tui-core → v1/E03-board-tui-core}/snapshot.md +1 -1
  12. package/.savepoint/audit/{E04-board-components → v1/E04-board-components}/proposals.md +14 -14
  13. package/.savepoint/audit/{E04-board-components → v1/E04-board-components}/snapshot.md +1 -1
  14. package/.savepoint/audit/{E05-init-command → v1/E05-init-command}/snapshot.md +1 -1
  15. package/.savepoint/audit/{E05-phase-transitions → v1/E05-phase-transitions}/proposals.md +4 -4
  16. package/.savepoint/audit/{E05-phase-transitions → v1/E05-phase-transitions}/snapshot.md +1 -1
  17. package/.savepoint/audit/v1/E06-atari-noir-layout/proposals.md +130 -0
  18. package/.savepoint/audit/v1/E06-atari-noir-layout/snapshot.md +84 -0
  19. package/.savepoint/audit/{E07-audit-pipeline → v1/E07-audit-pipeline}/snapshot.md +6 -6
  20. package/.savepoint/audit/v1.1/E02-cross-platform-compatibility/proposals.md +114 -0
  21. package/.savepoint/audit/v1.1/E02-cross-platform-compatibility/snapshot.md +41 -0
  22. package/.savepoint/audit/v1.1/E04-epic-navigation/proposals.md +156 -0
  23. package/.savepoint/audit/v1.1/E04-epic-navigation/snapshot.md +48 -0
  24. package/.savepoint/config.yml +3 -3
  25. package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T001-init-module.md +1 -1
  26. package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T005-layout.md +1 -1
  27. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T002-card.md +1 -1
  28. package/.savepoint/releases/v1/epics/E04-board-components/tasks/T006-help-overlay.md +1 -1
  29. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/E06-Detail.md +62 -0
  30. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T002-header-and-dividers.md +1 -1
  31. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T003-footer-status-bar.md +1 -1
  32. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T004-component-refinement.md +1 -1
  33. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T007-detail-card-fixes.md +7 -7
  34. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T008-checkbox-states.md +10 -8
  35. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T009-router-priority-marker.md +16 -9
  36. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T010-auto-refresh-watcher.md +27 -22
  37. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/E01-Detail.md +40 -0
  38. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T001-next-activity-header.md +56 -0
  39. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T002-rename-epic-design-files.md +38 -0
  40. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T003-rename-release-prd.md +28 -0
  41. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T004-update-instruction-files.md +51 -0
  42. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T005-update-cross-references.md +45 -0
  43. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T006-column-and-detail-scrolling.md +68 -0
  44. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T007-column-focus-border-stability.md +57 -0
  45. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Detail.md +49 -0
  46. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T001-fix-makefile.md +37 -0
  47. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T002-linux-build-target.md +38 -0
  48. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T003-macos-build-target.md +36 -0
  49. package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T004-smoke-tests-and-artifacts.md +59 -0
  50. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/E03-Detail.md +32 -0
  51. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T001-border-resize-fix.md +40 -0
  52. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T002-next-activity-below-header.md +64 -0
  53. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T003-checkbox-rendering-fix.md +56 -0
  54. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T005-unify-status-glyphs.md +65 -0
  55. package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T006-forced-256-color-profile.md +36 -0
  56. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Detail.md +51 -0
  57. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T001-sidebar-focusable-navigation.md +65 -0
  58. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T002-epic-detail-overlay.md +73 -0
  59. package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T003-epic-status-glyphs.md +73 -0
  60. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Detail.md +45 -0
  61. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T001-update-agents-md.md +34 -0
  62. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T002-update-router-md.md +30 -0
  63. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T003-update-design-md.md +33 -0
  64. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T004-implement-m-hotkey.md +88 -0
  65. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T005-update-help-overlay.md +30 -0
  66. package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T006-tests-and-quality-gates.md +46 -0
  67. package/.savepoint/releases/v1.1/v1.1-PRD.md +79 -0
  68. package/.savepoint/router.md +33 -105
  69. package/.savepoint/visual-identity.md +4 -3
  70. package/AGENTS.md +56 -113
  71. package/Makefile +19 -3
  72. package/README.md +7 -6
  73. package/agent-skills/savepoint-audit/SKILL.md +6 -6
  74. package/agent-skills/savepoint-build-task/SKILL.md +2 -2
  75. package/agent-skills/savepoint-create-plan/SKILL.md +3 -3
  76. package/agent-skills/savepoint-create-task/SKILL.md +2 -2
  77. package/agent-skills/savepoint-draft-prd/SKILL.md +1 -1
  78. package/agent-skills/savepoint-system-design/SKILL.md +1 -1
  79. package/go.mod +4 -1
  80. package/go.sum +2 -0
  81. package/internal/board/board.go +66 -14
  82. package/internal/board/board_test.go +124 -0
  83. package/internal/board/card.go +40 -3
  84. package/internal/board/card_test.go +121 -14
  85. package/internal/board/column.go +40 -5
  86. package/internal/board/column_test.go +65 -10
  87. package/internal/board/detail.go +115 -23
  88. package/internal/board/detail_test.go +132 -25
  89. package/internal/board/epic_panel.go +105 -8
  90. package/internal/board/epic_panel_test.go +343 -5
  91. package/internal/board/layout.go +12 -2
  92. package/internal/board/layout_test.go +17 -0
  93. package/internal/board/model.go +146 -23
  94. package/internal/board/render_policy_test.go +77 -0
  95. package/internal/board/status.go +23 -0
  96. package/internal/board/update.go +300 -9
  97. package/internal/board/update_test.go +166 -0
  98. package/internal/board/view.go +141 -17
  99. package/internal/board/view_test.go +161 -3
  100. package/internal/board/watch.go +100 -0
  101. package/internal/buildtool/main.go +219 -0
  102. package/internal/data/parser.go +39 -1
  103. package/internal/data/parser_test.go +43 -2
  104. package/internal/data/task.go +22 -2
  105. package/internal/styles/palette.go +9 -7
  106. package/internal/styles/styles.go +42 -25
  107. package/main.go +9 -0
  108. package/package.json +5 -4
  109. package/savepoint +0 -0
  110. package/savepoint.exe +0 -0
  111. package/templates/project/.savepoint/router.md +6 -5
  112. package/templates/project/AGENTS.md +47 -101
  113. package/templates/prompts/audit-reconciliation.prompt.md +6 -6
  114. package/templates/prompts/epic-design.prompt.md +3 -3
  115. package/templates/prompts/task-breakdown.prompt.md +1 -1
  116. package/templates/prompts/task-building.prompt.md +1 -1
  117. package/templates/prompts/task-planning.prompt.md +1 -1
  118. package/.savepoint/releases/v1/epics/E06-atari-noir-layout/Design.md +0 -42
  119. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/Design.md +0 -26
  120. package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T001-border-resize-fix.md +0 -35
  121. package/main.exe +0 -0
  122. /package/.savepoint/audit/{E01-scaffolding → v1/E01-scaffolding}/proposals/Design.md +0 -0
  123. /package/.savepoint/audit/{E01-scaffolding → v1/E01-scaffolding}/proposals/epic-Design.md +0 -0
  124. /package/.savepoint/audit/{E01-scaffolding → v1/E01-scaffolding}/proposals/quality-review.md +0 -0
  125. /package/.savepoint/audit/{E01-scaffolding → v1/E01-scaffolding}/snapshot.md +0 -0
  126. /package/.savepoint/audit/{E02-data-model → v1/E02-data-model}/snapshot.md +0 -0
  127. /package/.savepoint/audit/{E03-cli-foundation → v1/E03-cli-foundation}/snapshot.md +0 -0
  128. /package/.savepoint/audit/{E04-templates-and-prompts → v1/E04-templates-and-prompts}/snapshot.md +0 -0
  129. /package/.savepoint/audit/{E06-tui-board → v1/E06-tui-board}/snapshot.md +0 -0
  130. /package/.savepoint/audit/{E08-board-workflow-cleanup → v1/E08-board-workflow-cleanup}/snapshot.md +0 -0
  131. /package/.savepoint/releases/v1/epics/E01-go-setup/{Design.md → E01-Detail.md} +0 -0
  132. /package/.savepoint/releases/v1/epics/E02-data-readers/{Design.md → E02-Detail.md} +0 -0
  133. /package/.savepoint/releases/v1/epics/E03-board-tui-core/{Design.md → E03-Detail.md} +0 -0
  134. /package/.savepoint/releases/v1/epics/E04-board-components/{Design.md → E04-Detail.md} +0 -0
  135. /package/.savepoint/releases/v1/epics/E05-phase-transitions/{Design.md → E05-Detail.md} +0 -0
  136. /package/.savepoint/releases/v1/{PRD.md → v1-PRD.md} +0 -0
@@ -31,29 +31,29 @@
31
31
  ## Insert After
32
32
 
33
33
  ```md
34
- | `internal/data/errors.go` | [E02-data-readers](.savepoint/releases/v1/epics/E02-data-readers/Design.md) | Shared data-reader boundary error sentinels |
34
+ | `internal/data/errors.go` | [E02-data-readers](.savepoint/releases/v1/epics/E02-data-readers/E02-Detail.md) | Shared data-reader boundary error sentinels |
35
35
  ```
36
36
 
37
37
  ## With
38
38
 
39
39
  ```md
40
- | `internal/board/model.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Bubble Tea board state for grouped tasks, focused column/task, selected release/epic, responsive size, and active overlay |
41
- | `internal/board/update.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Keyboard and window-size update handling for board navigation, overlays, selectors, and quit behavior |
42
- | `internal/board/layout.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Responsive board geometry breakpoints and column/sidebar width calculation |
43
- | `internal/board/view.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) | Board view composition, status bar, responsive columns, and overlay placement helpers |
44
- | `internal/board/column.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Column renderer with status header, task count, empty state, and focused border styling |
45
- | `internal/board/card.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Task card renderer with phase glyphs, metadata dimming, truncation, and focus styling |
46
- | `internal/board/epic_panel.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Wide epic sidebar and narrow epic selector dropdown renderers |
47
- | `internal/board/detail.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Task detail overlay renderer with task metadata, description, acceptance criteria, and phase labels |
48
- | `internal/board/release.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Release selector dropdown renderer and current-release cursor lookup |
49
- | `internal/board/help.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Keyboard shortcut help overlay renderer |
50
- | `internal/styles/*.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Atari-Noir Lip Gloss palette and shared board, card, overlay, glyph, status, and tag styles |
51
- | `internal/board/*_test.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/Design.md) / [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/Design.md) | Go board model, layout, update, view, component, selector, detail, and help tests |
40
+ | `internal/board/model.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/E03-Detail.md) | Bubble Tea board state for grouped tasks, focused column/task, selected release/epic, responsive size, and active overlay |
41
+ | `internal/board/update.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/E03-Detail.md) | Keyboard and window-size update handling for board navigation, overlays, selectors, and quit behavior |
42
+ | `internal/board/layout.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/E03-Detail.md) | Responsive board geometry breakpoints and column/sidebar width calculation |
43
+ | `internal/board/view.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/E03-Detail.md) | Board view composition, status bar, responsive columns, and overlay placement helpers |
44
+ | `internal/board/column.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md) | Column renderer with status header, task count, empty state, and focused border styling |
45
+ | `internal/board/card.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md) | Task card renderer with phase glyphs, metadata dimming, truncation, and focus styling |
46
+ | `internal/board/epic_panel.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md) | Wide epic sidebar and narrow epic selector dropdown renderers |
47
+ | `internal/board/detail.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md) | Task detail overlay renderer with task metadata, description, acceptance criteria, and phase labels |
48
+ | `internal/board/release.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md) | Release selector dropdown renderer and current-release cursor lookup |
49
+ | `internal/board/help.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md) | Keyboard shortcut help overlay renderer |
50
+ | `internal/styles/*.go` | [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md) | Atari-Noir Lip Gloss palette and shared board, card, overlay, glyph, status, and tag styles |
51
+ | `internal/board/*_test.go` | [E03-board-tui-core](.savepoint/releases/v1/epics/E03-board-tui-core/E03-Detail.md) / [E04-board-components](.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md) | Go board model, layout, update, view, component, selector, detail, and help tests |
52
52
  ```
53
53
 
54
54
  ## Target File
55
55
 
56
- `.savepoint/releases/v1/epics/E04-board-components/Design.md`
56
+ `.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md`
57
57
 
58
58
  ## Insert After
59
59
 
@@ -16,7 +16,7 @@ next_action: "Epic E04-board-components complete. Start a new agent session for
16
16
 
17
17
  ## Epic Scope
18
18
 
19
- Epic design: `.savepoint/releases/v1/epics/E04-board-components/Design.md`
19
+ Epic design: `.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md`
20
20
 
21
21
  Tasks:
22
22
 
@@ -64,7 +64,7 @@ test/
64
64
  | `.savepoint/audit/E05-init-command/proposals.md` | Single audit proposal bundle, pending. |
65
65
  | `.savepoint/metrics/context-bench.md` | Context rows for E05 task building. |
66
66
  | `AGENTS.md` | Codebase Map needs E05 module refresh. |
67
- | `.savepoint/releases/v1/epics/E05-init-command/Design.md` | Epic Design needs implemented-as notes. |
67
+ | `.savepoint/releases/v1/epics/E05-init-command/E05-Detail.md` | Epic Design needs implemented-as notes. |
68
68
 
69
69
  ## New files introduced by E05
70
70
 
@@ -23,19 +23,19 @@
23
23
  ## Insert After
24
24
 
25
25
  ```md
26
- | `internal/data/errors.go` | [E02-data-readers](.savepoint/releases/v1/epics/E02-data-readers/Design.md) | Shared data-reader boundary error sentinels |
26
+ | `internal/data/errors.go` | [E02-data-readers](.savepoint/releases/v1/epics/E02-data-readers/E02-Detail.md) | Shared data-reader boundary error sentinels |
27
27
  ```
28
28
 
29
29
  ## With
30
30
 
31
31
  ```md
32
- | `internal/data/write.go` | [E05-phase-transitions](.savepoint/releases/v1/epics/E05-phase-transitions/Design.md) | Mtime-checked task status/phase and router current-state write helpers |
33
- | `internal/board/transitions.go` | [E05-phase-transitions](.savepoint/releases/v1/epics/E05-phase-transitions/Design.md) | Board phase advance/retreat lifecycle and dependency gate checks |
32
+ | `internal/data/write.go` | [E05-phase-transitions](.savepoint/releases/v1/epics/E05-phase-transitions/E05-Detail.md) | Mtime-checked task status/phase and router current-state write helpers |
33
+ | `internal/board/transitions.go` | [E05-phase-transitions](.savepoint/releases/v1/epics/E05-phase-transitions/E05-Detail.md) | Board phase advance/retreat lifecycle and dependency gate checks |
34
34
  ```
35
35
 
36
36
  ## Target File
37
37
 
38
- `.savepoint/releases/v1/epics/E05-phase-transitions/Design.md`
38
+ `.savepoint/releases/v1/epics/E05-phase-transitions/E05-Detail.md`
39
39
 
40
40
  ## Insert After
41
41
 
@@ -14,7 +14,7 @@ next_action: "Epic E05-phase-transitions is complete. Start a new agent session
14
14
 
15
15
  ## Epic Scope
16
16
 
17
- - `.savepoint/releases/v1/epics/E05-phase-transitions/Design.md`
17
+ - `.savepoint/releases/v1/epics/E05-phase-transitions/E05-Detail.md`
18
18
  - `.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T001-phase-stepping.md`
19
19
  - `.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T002-gates.md`
20
20
  - `.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T003-write-task.md`
@@ -0,0 +1,130 @@
1
+ # E06 Atari-Noir Layout Audit Proposals
2
+
3
+ ## Target File
4
+
5
+ `.savepoint/Design.md`
6
+
7
+ ## Replace
8
+
9
+ ```md
10
+ - **Board command** (`savepoint board`) reads project, non-TTY fallback, Ink TUI, transition gates, mtime writes, audit signaling (epic E06).
11
+ ```
12
+
13
+ ## With
14
+
15
+ ```md
16
+ - **Board command** (`savepoint board`) reads project state, renders the Atari-Noir TUI board, supports release/epic filtering, detail overlays, task status transitions with mtime-guarded writes, router priority markers, and fsnotify-based task auto-refresh (epic E06).
17
+ ```
18
+
19
+ ## Target File
20
+
21
+ `.savepoint/Design.md`
22
+
23
+ ## Replace
24
+
25
+ ```md
26
+ **Layout:** single screen with a 5-column Kanban board and detail pane. Non-TTY output uses `src/tui/render/plain-table.ts`.
27
+
28
+ **Implementation modules:** see AGENTS.md Codebase Map (E06 and E07 epic rows).
29
+ ```
30
+
31
+ ## With
32
+
33
+ ```md
34
+ **Layout:** single screen with a 3-column task board (`planned`, `in_progress`, `done`), optional epic sidebar on wide terminals, centered overlays for release/epic/help/task detail, static Atari-Noir header/footer, and navigation hints. Non-TTY output remains a plain table fallback.
35
+
36
+ **Board persistence and refresh:** task status transitions write canonical task frontmatter through `internal/data.WriteTaskStatus` with mtime conflict checks. The board watches `.savepoint/releases/` recursively with fsnotify and reloads task data after debounced file changes.
37
+
38
+ **Implementation modules:** see AGENTS.md Codebase Map.
39
+ ```
40
+
41
+ ## Target File
42
+
43
+ `AGENTS.md`
44
+
45
+ ## Replace
46
+
47
+ ```md
48
+ | `internal/board/` | TUI board components, models, layouts, transitions, and rendering logic |
49
+ | `internal/data/` | Task data models, frontmatter parsing, project configuration, routing, and generic file readers |
50
+ | `internal/styles/` | Shared visual design system, TUI styling, and palettes |
51
+ ```
52
+
53
+ ## With
54
+
55
+ ```md
56
+ | `internal/board/` | TUI board models, layout, rendering, overlays, task transitions, router priority markers, and fsnotify refresh |
57
+ | `internal/data/` | Task/router/config models, frontmatter parsing, checklist state parsing, mtime-guarded writes, discovery, and generic file readers |
58
+ | `internal/styles/` | Atari-Noir palette constants, terminal color fallbacks, shared TUI styles, semantic glyph/tag styles, and footer/header styling |
59
+ ```
60
+
61
+ ## Target File
62
+
63
+ `.savepoint/releases/v1/epics/E06-atari-noir-layout/E06-Detail.md`
64
+
65
+ ## Replace
66
+
67
+ ```md
68
+ # Epic E07: Atari-Noir Layout Uplift
69
+ ```
70
+
71
+ ## With
72
+
73
+ ```md
74
+ # Epic E06: Atari-Noir Layout Uplift
75
+ ```
76
+
77
+ ## Target File
78
+
79
+ `.savepoint/releases/v1/epics/E06-atari-noir-layout/E06-Detail.md`
80
+
81
+ ## Insert After
82
+
83
+ ```md
84
+ | `internal/board/epic_panel.go` | Refine epic panel layout |
85
+ ```
86
+
87
+ ## With
88
+
89
+ ```md
90
+
91
+ ## Implemented As
92
+
93
+ - `internal/styles/palette.go` defines the Atari-Noir hex palette plus ANSI256/ANSI16 fallbacks.
94
+ - `internal/styles/styles.go` centralizes header, divider, footer, column, card, detail, glyph, and semantic tag styles.
95
+ - `internal/board/view.go` renders the static SavePoint header, the static `PLAN │ BUILD │ AUDIT` footer, subdued navigation hints, and overlay composition.
96
+ - `internal/board/card.go` wraps long task titles instead of truncating them and uses a green `▣` marker for the router-priority task.
97
+ - `internal/board/detail.go` adds spacing below Acceptance Criteria and Implementation Plan headings, renders checklist state with `☑`/`□`, and labels the router-priority task.
98
+ - `internal/data/task.go` and `internal/data/parser.go` represent Implementation Plan items as `CheckItem{Text, Done}` and parse `- [x]`, `- [ ]`, and legacy `- ` items.
99
+ - `internal/data/write.go` persists task status and phase changes with mtime conflict protection.
100
+ - `internal/board/watch.go` adds fsnotify-based recursive release directory watching, 100ms debounce, and reload messages used by `internal/board/update.go`.
101
+
102
+ ## Implementation Deltas
103
+
104
+ - The original visual-only scope expanded to include board usability fixes requested during E06: footer navigation hints, detail overlay spacing, card title word-wrap, checklist state rendering, router priority markers, and auto-refresh on task file changes.
105
+ - The current implementation still uses rounded frames/borders on header, board, columns, cards, and epic panel. That differs from the design language of "unnecessary borders removed" and should be reconciled before closing the visual uplift.
106
+ - `styles.Divider` exists but the main view does not render explicit full-width top/bottom divider lines; divider-like output currently comes from framed containers and component separators.
107
+ ```
108
+
109
+ ## Quality Review
110
+
111
+ ## Must Fix Before Close
112
+
113
+ - None remaining after approval closeout.
114
+
115
+ ## Carry Forward
116
+
117
+ - `internal/board/watch.go:17`: watcher errors are consumed silently. This is acceptable for v1 audit as non-blocking resilience, but a future task should surface watcher failures in `StatusMessage` or diagnostics.
118
+ - `internal/board/update.go:68` and `internal/board/update.go:84`: `ErrMtimeConflict` is intentionally non-destructive, but the user receives no visible conflict message because that error is ignored. Consider showing a manual-refresh message so conflicts are understandable.
119
+ - `go.mod`: `github.com/fsnotify/fsnotify` is currently listed as indirect even though project code imports it directly. `go mod tidy` may fix this metadata.
120
+ - Root instruction drift: `AGENTS.md` references `agent-skills/audit/SKILL.md`, but the repository contains `agent-skills/savepoint-audit/SKILL.md`.
121
+
122
+ ## Already Fixed
123
+
124
+ - `go build ./...`: PASS during audit.
125
+ - `go test ./...`: PASS during audit.
126
+ - Approval closeout added explicit full-width divider lines rendered through `styles.Divider`.
127
+ - Approval closeout removed unnecessary borders from unfocused header, board, column, card, and epic panel surfaces while preserving focused Atari Orange borders.
128
+ - T008 checklist parsing preserves checked/unchecked state in `data.CheckItem` and renders checked items distinctly.
129
+ - T009 router priority marker is wired through model, card, column, and detail rendering.
130
+ - T010 auto-refresh watcher is isolated in `internal/board/watch.go` and cleanly disabled in tests when `Model.Watcher` is nil.
@@ -0,0 +1,84 @@
1
+ ---
2
+ type: audit-snapshot
3
+ release: v1
4
+ epic: E06-atari-noir-layout
5
+ created: 2026-05-02
6
+ mode: manual
7
+ reason: "Audit CLI snapshot was unavailable; router authorized one manual snapshot from known epic scope."
8
+ ---
9
+
10
+ # E06 Atari-Noir Layout Snapshot
11
+
12
+ ## Router State
13
+
14
+ - `state`: `audit-pending`
15
+ - `release`: `v1`
16
+ - `epic`: `E06-atari-noir-layout`
17
+ - `task`: `E06-atari-noir-layout/T010-auto-refresh-watcher`
18
+ - `next_action`: All E06 tasks done. Start new agent session for epic audit.
19
+
20
+ ## Epic Scope
21
+
22
+ E06 implemented the Atari-Noir TUI layout uplift and related board usability fixes:
23
+
24
+ - Atari-Noir palette/style usage in `internal/styles/`.
25
+ - Header/footer rendering, navigation hints, and board layout adjustments in `internal/board/view.go`.
26
+ - Card title wrapping and detail overlay spacing/checklist rendering in `internal/board/card.go` and `internal/board/detail.go`.
27
+ - Router priority marker support across board model/card/detail rendering.
28
+ - Task checklist state parsing in `internal/data/parser.go` and `internal/data/task.go`.
29
+ - File watcher auto-refresh and task status disk persistence in `internal/board/watch.go`, `internal/board/board.go`, `internal/board/model.go`, and `internal/board/update.go`.
30
+
31
+ ## Task Files Reviewed
32
+
33
+ - `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T001-color-system.md`
34
+ - `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T002-header-and-dividers.md`
35
+ - `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T003-footer-status-bar.md`
36
+ - `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T004-component-refinement.md`
37
+ - `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T005-restore-nav-hints.md`
38
+ - `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T007-detail-card-fixes.md`
39
+ - `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T008-checkbox-states.md`
40
+ - `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T009-router-priority-marker.md`
41
+ - `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T010-auto-refresh-watcher.md`
42
+
43
+ ## Changed Files In Epic Scope
44
+
45
+ - `go.mod`
46
+ - `go.sum`
47
+ - `internal/board/board.go`
48
+ - `internal/board/card.go`
49
+ - `internal/board/card_test.go`
50
+ - `internal/board/column.go`
51
+ - `internal/board/column_test.go`
52
+ - `internal/board/detail.go`
53
+ - `internal/board/detail_test.go`
54
+ - `internal/board/epic_panel.go`
55
+ - `internal/board/layout.go`
56
+ - `internal/board/model.go`
57
+ - `internal/board/update.go`
58
+ - `internal/board/view.go`
59
+ - `internal/board/view_test.go`
60
+ - `internal/board/watch.go`
61
+ - `internal/data/parser.go`
62
+ - `internal/data/parser_test.go`
63
+ - `internal/data/task.go`
64
+ - `internal/data/write.go`
65
+ - `internal/styles/palette.go`
66
+ - `internal/styles/styles.go`
67
+
68
+ ## Drift Notes Found
69
+
70
+ - `T002-header-and-dividers.md`: `internal/styles/palette.go` and `internal/styles/styles.go` were not yet reflected with sufficient specificity in the Codebase Map.
71
+
72
+ ## Verification
73
+
74
+ - `go build ./...`: PASS
75
+ - `go test ./...`: PASS
76
+ - Approval closeout rerun: `go build ./...` PASS, `go test ./...` PASS.
77
+ - `make build` and `make test`: not run; `make` is not installed on PATH in this environment.
78
+
79
+ ## Audit Observations
80
+
81
+ - `agent-skills/audit/SKILL.md` is referenced by the root instructions but does not exist; `agent-skills/savepoint-audit/SKILL.md` was used as the equivalent audit skill.
82
+ - The epic Design title says `Epic E07`; the folder, router, and task IDs identify this epic as `E06-atari-noir-layout`.
83
+ - The implementation added scoped behavior beyond the original visual uplift: footer navigation hints, detail overlay spacing, card word-wrap, checklist state parsing/rendering, router priority markers, and fsnotify auto-refresh.
84
+ - Visual ACs around explicit full-width dividers and border reduction are not fully represented in `internal/board/view.go` and `internal/styles/styles.go`; see proposals quality review.
@@ -32,18 +32,18 @@ next_action: Run savepoint audit for E07-audit-pipeline.
32
32
  | M | .claude/settings.local.json |
33
33
  | M | .savepoint/Design.md |
34
34
  | M | .savepoint/metrics/context-bench.md |
35
- | M | .savepoint/releases/v1/PRD.md |
36
- | M | .savepoint/releases/v1/epics/E05-init-command/Design.md |
35
+ | M | .savepoint/releases/v1/v1-PRD.md |
36
+ | M | .savepoint/releases/v1/epics/E05-init-command/E05-Detail.md |
37
37
  | M | .savepoint/releases/v1/epics/E05-init-command/tasks/T001-init-cli-contract.md |
38
38
  | M | .savepoint/releases/v1/epics/E05-init-command/tasks/T002-target-validation.md |
39
39
  | M | .savepoint/releases/v1/epics/E05-init-command/tasks/T003-scaffold-writer.md |
40
40
  | M | .savepoint/releases/v1/epics/E05-init-command/tasks/T004-magic-prompt-and-clipboard.md |
41
41
  | M | .savepoint/releases/v1/epics/E05-init-command/tasks/T005-dev-deps-install-option.md |
42
42
  | M | .savepoint/releases/v1/epics/E05-init-command/tasks/T006-init-command-integration.md |
43
- | M | .savepoint/releases/v1/epics/E06-tui-board/Design.md |
44
- | D | .savepoint/releases/v1/epics/E08-doctor-command/Design.md |
45
- | D | .savepoint/releases/v1/epics/E09-docs-and-packaging/Design.md |
46
- | D | .savepoint/releases/v1/epics/E10-release-validation/Design.md |
43
+ | M | .savepoint/releases/v1/epics/E06-tui-board/E06-Detail.md |
44
+ | D | .savepoint/releases/v1/epics/E08-doctor-command/E08-Detail.md |
45
+ | D | .savepoint/releases/v1/epics/E09-docs-and-packaging/E09-Detail.md |
46
+ | D | .savepoint/releases/v1/epics/E10-release-validation/E10-Detail.md |
47
47
  | M | .savepoint/router.md |
48
48
  | M | .savepoint/visual-identity.md |
49
49
  | M | AGENTS.md |
@@ -0,0 +1,114 @@
1
+ # Audit Proposals: v1.1 E02 Cross-Platform Compatibility
2
+
3
+ ## Target File
4
+
5
+ `.savepoint/Design.md`
6
+
7
+ ## Replace
8
+
9
+ ```md
10
+ ## 12. Distribution & build
11
+
12
+ > Audit note: the live repository is transitioning from the documented TypeScript/Node implementation to a Go module (`github.com/opencode/savepoint`). The architecture document still contains substantial TypeScript-era implementation detail and should be reconciled as Go epics are audited.
13
+
14
+ - **License:** MIT.
15
+ - **Install:** primary `npx savepoint init`, persistent `npm i -g savepoint` → `savepoint`.
16
+ - **Runtime:** Node 20.10+ LTS, ESM-only, no native deps. macOS / Linux / Windows-Terminal.
17
+ - **Repo:** single package. TypeScript strict. `tsup` build → `dist/`. Bin `dist/cli.js` shebanged.
18
+ - **No telemetry.** Ever.
19
+ ```
20
+
21
+ ## With
22
+
23
+ ```md
24
+ ## 12. Distribution & build
25
+
26
+ > Audit note: the live repository is now a Go module (`github.com/opencode/savepoint`). Remaining TypeScript-era distribution details should be removed as Go epics are audited.
27
+
28
+ - **License:** MIT.
29
+ - **Runtime:** Go CLI binary. Source builds with `go build`; tests run with `go test ./...`.
30
+ - **Local build:** `make build` builds `savepoint` and injects `main.version` from `VERSION`.
31
+ - **Cross-platform builds:** `make build-all` cross-compiles linux-amd64, linux-arm64, darwin-amd64, and darwin-arm64 raw binaries into `dist/{platform}-{arch}/savepoint`.
32
+ - **Artifacts:** `make dist` creates versioned `.tar.gz` archives in `dist/` for the Linux and Darwin targets.
33
+ - **Smoke validation:** `make smoke-test` builds the local binary and runs `./savepoint --version` as a headless exit-0 check.
34
+ - **No telemetry.** Ever.
35
+ ```
36
+
37
+ ## Target File
38
+
39
+ `AGENTS.md`
40
+
41
+ ## Replace
42
+
43
+ ```md
44
+ | `main.go` | CLI Entrypoint and root command wiring |
45
+ ```
46
+
47
+ ## With
48
+
49
+ ```md
50
+ | `main.go` | CLI entrypoint, root command wiring, and `--version` handling via build-time version injection |
51
+ ```
52
+
53
+ ## Target File
54
+
55
+ `.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Detail.md`
56
+
57
+ ## Insert After
58
+
59
+ ```md
60
+ ## Architectural notes
61
+
62
+ - All Go code uses `path/filepath` — no syscalls are platform-specific
63
+ - Bubble Tea handles terminal differences across platforms
64
+ - No Go build tags or platform-specific files needed
65
+ - This is purely a build-tooling and release-workflow epic
66
+ ```
67
+
68
+ ## With
69
+
70
+ ```md
71
+ ## Implemented as
72
+
73
+ - `Makefile` now has `build-linux`, `build-darwin`, `build-all`, `dist`, and `smoke-test` targets.
74
+ - `VERSION` defaults from `git describe --tags --abbrev=0` with a `v0.0.0` fallback and is injected into the binary with `-ldflags "-X main.version=$(VERSION)"`.
75
+ - `main.go` handles `--version` before launching the TUI, which gives smoke tests a non-interactive success path.
76
+ - `dist/` remains ignored by git and contains both raw cross-compiled binaries and versioned `.tar.gz` archives for Linux and Darwin builds.
77
+ - Windows zip packaging was not implemented in this epic; the final implementation covers the Linux and Darwin targets named in the epic's build-all definition of done.
78
+ ```
79
+
80
+ ## Target File
81
+
82
+ `.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Detail.md`
83
+
84
+ ## Replace
85
+
86
+ ```md
87
+ - [x] Makefile replaced with Go-native commands (no `rm`, `cp`, `mkdir`)
88
+ ```
89
+
90
+ ## With
91
+
92
+ ```md
93
+ - [ ] Makefile replaced with Go-native commands (no `rm`, `cp`, `mkdir`)
94
+ ```
95
+
96
+ ## Quality Review
97
+
98
+ ## Must Fix Before Close
99
+
100
+ - `Makefile`: `clean` still runs `rm -rf dist/`, which violates T001 acceptance criteria: "`make clean` removes the binary without using `rm -f` or other Unix-only commands" and "No shell commands in Makefile are platform-dependent."
101
+ - `Makefile`: `build-linux` and `build-darwin` still use `mkdir -p` and inline `GOOS=... GOARCH=...` environment assignment. That is fine for Linux, macOS, Git Bash, and WSL, but it is not a shell-agnostic Makefile implementation.
102
+ - `Makefile`: `dist` relies on `tar`, so packaging is not yet toolchain-native or Windows-shell portable.
103
+ - `.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T004-smoke-tests-and-artifacts.md`: the task says `go test ./...` was not run even though the task completion protocol requires the full quality-gate suite before `status: done`.
104
+
105
+ ## Carry Forward
106
+
107
+ - Windows `.zip` artifacts were deferred in T004. Keep that as a known scope gap unless the project narrows E02 explicitly to Linux and Darwin distribution.
108
+ - Consider moving cross-platform build and archive logic into a tiny Go helper if the project wants true shell portability while keeping `make` as the human entrypoint.
109
+
110
+ ## Already Fixed
111
+
112
+ - `main.go` has a headless `--version` path, so smoke testing no longer needs to start the TUI.
113
+ - Linux and Darwin raw binary targets exist for amd64 and arm64.
114
+ - `AGENTS.md` already documents `build-all`, `dist`, and `smoke-test`.
@@ -0,0 +1,41 @@
1
+ # Audit Snapshot: v1.1 E02 Cross-Platform Compatibility
2
+
3
+ Manual snapshot created because the audit CLI snapshot was missing while the router is already in `audit-pending`.
4
+
5
+ ## Epic
6
+
7
+ - Release: `v1.1`
8
+ - Epic: `E02-cross-platform-compatibility`
9
+ - Source: `.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Detail.md`
10
+ - Router state: `audit-pending`
11
+
12
+ ## Completed Tasks
13
+
14
+ - `E02-cross-platform-compatibility/T001-fix-makefile`
15
+ - `E02-cross-platform-compatibility/T002-linux-build-target`
16
+ - `E02-cross-platform-compatibility/T003-macos-build-target`
17
+ - `E02-cross-platform-compatibility/T004-smoke-tests-and-artifacts`
18
+
19
+ ## Changed Files Listed By Task Logs
20
+
21
+ - `Makefile`
22
+ - `AGENTS.md`
23
+ - `.gitignore`
24
+ - `main.go`
25
+ - `internal/board/board.go`
26
+
27
+ ## Drift Notes Found
28
+
29
+ - `main.go`: added `version` package-level var and `--version` arg check. Not yet in Codebase Map.
30
+
31
+ ## Verification Reported By Tasks
32
+
33
+ - T001: `go build -o savepoint main.go` PASS, `go test ./...` PASS, `go clean` PASS
34
+ - T002: `go build` PASS, `go test ./...` PASS; Linux binaries reported as ELF for amd64 and arm64
35
+ - T003: `go build` PASS, `go test ./...` PASS; Darwin binaries reported as Mach-O for amd64 and arm64
36
+ - T004: `go build` PASS, `./savepoint --version` PASS; `go test ./...` not run
37
+
38
+ ## Audit Notes
39
+
40
+ - The final `Makefile` includes cross-compile and packaging targets, but still contains Unix shell forms in `clean`, `build-linux`, `build-darwin`, `dist`, and `VERSION`.
41
+ - `T004` explicitly deferred Windows zip artifacts; the implemented release artifacts cover Linux and Darwin only.