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
@@ -1,130 +1,76 @@
1
1
  # Agents Guide
2
2
 
3
- Welcome, AI agent. This project (`{{PROJECT_NAME}}`) uses Savepoint to manage its build.
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
- **Skill Activation (CRITICAL):**
10
- 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:
11
- - `state: draft-prd` -> Activate the `draft-prd` skill.
12
- - `state: design` -> Activate the `system-design` skill.
13
- - `state: planning` -> Activate the `create-plan` skill.
14
- - `state: task-breakdown` -> Activate the `create-task` skill.
15
- - `state: in-progress` -> Activate the `build-task` skill.
16
- - `state: audit-pending` -> Activate the `audit` skill.
17
-
18
- When you are about to write code, you must first read, in order:
19
-
20
- 1. `.savepoint/router.md` — current state and next action
21
- 2. The active epic Design: `.savepoint/releases/v{{RELEASE_NUMBER}}/epics/{E##-epic}/Design.md`
22
- 3. The active task file: `.savepoint/releases/v{{RELEASE_NUMBER}}/epics/{E##-epic}/tasks/{T###}-*.md`
23
- 4. Directly touched source/test files
24
-
25
- Read `.savepoint/PRD.md` only for project vision changes, major scope questions, or when the router explicitly asks for it.
26
- Read `.savepoint/Design.md` only when the task changes architecture or audit state. Read `.savepoint/releases/v{{RELEASE_NUMBER}}/PRD.md` only when planning epics, changing release scope, or resolving epic order.
27
-
28
- **Conditional read (token discipline):** if your active task touches **Ink/TUI implementation**, also read `agent-skills/ink-tui-design/SKILL.md` after Design.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.
29
-
30
- **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.
31
-
32
- Planning and implementation are separate handoffs:
33
-
34
- - Epic task breakdown and detailed task planning happen together in one pass by one planning agent.
35
- - 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.
36
- - 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.
37
- - During implementation, run focused tests for the touched behavior first; reserve the full quality-gate suite for task closeout.
38
-
39
- - After all tasks in an epic are `done`, hand the epic back for audit.
40
- - 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.
41
-
42
- ## Task Status Canon
5
+ 1. Read `.savepoint/router.md` state + next action
6
+ 2. Activate skill per table below
7
+ 3. Read: router → epic → task → source files
43
8
 
44
- Task frontmatter `status` must be exactly one of `planned`, `in_progress`, or `done`.
9
+ ## Skill Activation
45
10
 
46
- Active task phase is represented separately with `phase: build`, `phase: test`, or `phase: audit`, and `phase` is only valid when `status: in_progress`.
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 |
47
18
 
48
- 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.
19
+ Use `skill` tool.
49
20
 
50
- ## Task Completion Protocol
21
+ Read `.savepoint/PRD.md` only for vision changes, `.savepoint/Design.md` only for architecture/audit.
51
22
 
52
- When a task reaches `status: done`, you MUST:
23
+ ## Task Status
53
24
 
54
- 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.
55
- 2. Tick all checkboxes in the `## Implementation Plan`.
56
- 3. Fill the `## Context Log` (files read, estimated input tokens, notes).
57
- 4. Run the full quality-gate suite (`npm run build && npm run typecheck && npm run lint && npm run format:check && npm test`). Record the result in the Context Log.
58
- 5. If any gate fails, fix it or document the blocker in the task file before setting `status: done`.
59
- 6. Set the task frontmatter to `status: done`.
60
- 7. Update `router.md` with the next action (next unblocked task, or `audit-pending` if all tasks done).
61
- 8. **Stop. Prompt the user:**
62
- > "Task {id} is done. Quality gates: {pass/fail list}. Router updated to {next_action}. Review the changes, then tell me to continue."
25
+ - `status`: only `planned`, `in_progress`, or `done`
26
+ - `phase` (build/test/audit): only when `status: in_progress`
27
+ - Never: todo, doing, blocked, review, audit
63
28
 
64
- **Do not start the next task. Do not advance past this point without user acknowledgment.**
29
+ ## Implementation
65
30
 
66
- ## Task Closeout Meta-Check
31
+ 1. Read task's `## Acceptance Criteria` + `## Implementation Plan`
32
+ 2. Execute in order, tick checkboxes
33
+ 3. Verify every AC has passing test/outcome
34
+ 4. Run quality gates (build + test)
35
+ 5. Update task: tick boxes, fill `## Context Log`, set `status: done`
36
+ 6. Update router.md: next task or `audit-pending`
37
+ 7. **Stop. Prompt user before continuing.**
67
38
 
68
- After marking a task `done` and before prompting the user, ask yourself:
39
+ ## Drift Check
69
40
 
70
- - Did this task add new source files, modules, or exports not in the Codebase Map?
71
- - Did this task change the architecture from what `.savepoint/Design.md` describes?
41
+ - New files/modules not in Codebase Map?
42
+ - Architecture changed from Design.md?
72
43
 
73
- If yes, append a `## Drift Notes` section to the task file:
74
- - `Drift: {file} added, not yet in Codebase Map.`
75
- - `Drift: {section} in Design.md may need update.`
44
+ If yes append `## Drift Notes` to task file.
76
45
 
77
- Drift notes are lightweight annotations. They do **not** replace the epic audit. They flag what the next audit should reconcile.
46
+ ## Audit Handoff
78
47
 
79
- ## Audit Handoff Rule
48
+ The agent that builds an epic **must not audit it**. Start a fresh session.
80
49
 
81
- The agent session that builds an epic **must not** run its audit. Audit requires fresh eyes.
82
-
83
- When all tasks in an epic are `done`:
84
- 1. Update `router.md` to `state: audit-pending` for that epic.
85
- 2. Stop. Tell the user: "Epic {id} is complete. Start a new agent session for the audit."
86
- 3. The user starts a fresh session. The new agent reads `router.md`, sees `audit-pending`, and follows the audit-reconciliation instructions.
87
-
88
- **If you are in the same session that built the epic, you must not audit it.**
50
+ ## Code Style
89
51
 
90
- ## Build / Test / Run
52
+ 1. One job per file
53
+ 2. One-sentence functions
54
+ 3. Test branches
55
+ 4. Types are documentation
56
+ 5. Build, don't speculate
57
+ 6. Errors at boundaries
58
+ 7. One source of truth
59
+ 8. Comments explain WHY
60
+ 9. Content in data files
61
+ 10. Small diffs
91
62
 
92
- <!-- FILL IN: your project's build, typecheck, lint, format, and test commands. -->
63
+ ## Build
93
64
 
94
65
  ```bash
95
- npm run build # compile
96
- npm run typecheck # type check
97
- npm run lint # lint
98
- npm run format:check # format check
99
- npm test # test suite
66
+ npm run build && npm run test
100
67
  ```
101
68
 
102
- ## Code Style
103
-
104
- 1. **One job per file.** If a file does two things, split it.
105
- 2. **One-sentence rule.** If you can't describe a function in one sentence, refactor.
106
- 3. **Test what branches.** Logic with if/else/switch gets a test. Pure rendering: skip.
107
- 4. **Types are documentation.** No `any`. Let the compiler help.
108
- 5. **Build, don't speculate.** No code for hypothetical futures.
109
- 6. **Errors at boundaries.** Handle failure where data enters or leaves the system.
110
- 7. **One source of truth.** State lives in one place. No syncing copies.
111
- 8. **Comments explain WHY,** not what. If removing the comment wouldn't confuse a future reader, delete it.
112
- 9. **Content in data files.** Markdown/JSON/YAML, not strings in code.
113
- 10. **Small diffs.** Each task touches as few files as possible.
114
-
115
69
  ## Codebase Map
116
70
 
117
- <!-- AUTO-GENERATED BY savepoint audit. Do not edit manually. -->
118
-
119
71
  | Module | Epic | Purpose |
120
- | ------ | ---- | ------- |
121
-
122
- <!-- END AUTO-GENERATED -->
123
-
124
- ## CLI rules for agents
125
-
126
- **Never run `savepoint` commands.** The CLI is for the human. Edit files directly.
72
+ |--------|------|---------|
127
73
 
128
- ## Recommended planning models
74
+ ## CLI Rules
129
75
 
130
- 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.
76
+ **Never run `savepoint` commands.** The CLI is for the human. Edit files directly.
@@ -8,21 +8,21 @@ You are reconciling an epic after its last task is done. The epic is `status: au
8
8
 
9
9
  ## Input
10
10
 
11
- - `.savepoint/audit/{E##-slug}/snapshot.md` — what changed during the epic. If this file is missing while the audit CLI is still unavailable, create one manual snapshot from the known epic scope once; do not search broadly for replacement inputs.
12
- - `.savepoint/releases/v{N}/epics/{E##-slug}/Design.md` — the epic design (may have deltas from the original plan).
11
+ - `.savepoint/audit/{release}/{E##-slug}/snapshot.md` — what changed during the epic. If this file is missing while the audit CLI is still unavailable, create one manual snapshot from the known epic scope once; do not search broadly for replacement inputs.
12
+ - `.savepoint/releases/{release}/epics/{E##-slug}/E##-Detail.md` — the epic design (may have deltas from the original plan).
13
13
  - `.savepoint/Design.md` — project architecture.
14
14
  - `AGENTS.md` — agent guide and codebase map.
15
15
  - Only the source and test files listed in the snapshot.
16
16
 
17
17
  ## Output
18
18
 
19
- One file: `.savepoint/audit/{E##-slug}/proposals.md`
19
+ One file: `.savepoint/audit/{release}/{E##-slug}/proposals.md`
20
20
 
21
21
  The proposals bundle must contain these sections in order:
22
22
 
23
23
  1. **Design.md section** — merge only the epic's architectural delta into the project-level `.savepoint/Design.md`.
24
24
  2. **AGENTS.md section** — refresh the Codebase Map table with new or changed modules; preserve existing rows.
25
- 3. **epic-Design.md section** — add "Implemented as:" notes and deviations from the original plan.
25
+ 3. **epic-E##-Detail.md section** — add "Implemented as:" notes and deviations from the original plan.
26
26
  4. **Quality Review section** — semantic-review findings against the project's code style rules.
27
27
 
28
28
  ## Proposal Format
@@ -62,6 +62,6 @@ Use this shape for every proposed change:
62
62
  3. **Do not apply changes yourself.** Write the proposals; the user reviews them in the TUI before commit.
63
63
  4. **Track context.** Count only intentional audit context reads, and keep notes short.
64
64
  5. **Stop after proposals.** Do not update the router, do not mark the epic audited, and do not commit.
65
- 6. **Be honest about deviations.** If the implementation diverged from the design, document why in the epic-Design.md section.
66
- 7. **Never stop at chat-only findings.** Persist `.savepoint/audit/{E##-slug}/proposals.md` before you report the audit result back to the user.
65
+ 6. **Be honest about deviations.** If the implementation diverged from the design, document why in the epic-E##-Detail.md section.
66
+ 7. **Never stop at chat-only findings.** Persist `.savepoint/audit/{release}/{E##-slug}/proposals.md` before you report the audit result back to the user.
67
67
  8. **Carry-forwards must be actionable.** If an item is "Must Fix Before Next Epic," explain what the next epic's agent should verify. Vague carry-forwards are rejected.
@@ -1,18 +1,18 @@
1
1
  # Prompt: Epic Design Creation
2
2
 
3
- <!-- AGENT: You have a release PRD and a project Design. Write one epic Design.md. Stop when that single epic design is complete. -->
3
+ <!-- AGENT: You have a release PRD and a project Design. Write one epic E##-Detail.md. Stop when that single epic design is complete. -->
4
4
 
5
5
  You are designing one epic for a Savepoint-managed release.
6
6
 
7
7
  ## Input
8
8
 
9
- - `.savepoint/releases/v{N}/PRD.md` — release scope and epic list.
9
+ - `.savepoint/releases/{release}/{release}-PRD.md` — release scope and epic list.
10
10
  - `.savepoint/Design.md` — project architecture and constraints.
11
11
  - The epic name and one-sentence purpose from the release PRD table.
12
12
 
13
13
  ## Output
14
14
 
15
- A single markdown file at `.savepoint/releases/v{N}/epics/{E##-slug}/Design.md`:
15
+ A single markdown file at `.savepoint/releases/{release}/epics/{E##-slug}/E##-Detail.md`:
16
16
 
17
17
  ```
18
18
  ---
@@ -6,7 +6,7 @@ You are breaking an approved epic into a set of tasks that agents can build one
6
6
 
7
7
  ## Input
8
8
 
9
- - `.savepoint/releases/v{N}/epics/{E##-slug}/Design.md` — the epic to break down.
9
+ - `.savepoint/releases/v{N}/epics/{E##-slug}/E##-Detail.md` — the epic to break down.
10
10
  - `.savepoint/Design.md` — project architecture (for boundary checks).
11
11
 
12
12
  ## Output
@@ -7,7 +7,7 @@ You are implementing one Savepoint task that is `in_progress` with all `depends_
7
7
  ## Input
8
8
 
9
9
  - `.savepoint/router.md` — confirms you are on the correct task.
10
- - `.savepoint/releases/v{N}/epics/{E##-slug}/Design.md` — epic context.
10
+ - `.savepoint/releases/v{N}/epics/{E##-slug}/E##-Detail.md` — epic context.
11
11
  - The active task file: `.savepoint/releases/v{N}/epics/{E##-slug}/tasks/TNNN-slug.md` — your checklist.
12
12
  - Any directly touched source or test files.
13
13
 
@@ -7,7 +7,7 @@ You are repairing or late-adding one task to an epic that is already in progress
7
7
  ## Input
8
8
 
9
9
  - The task file stub (may have an empty or incomplete `## Implementation Plan`).
10
- - `.savepoint/releases/v{N}/epics/{E##-slug}/Design.md` — epic context.
10
+ - `.savepoint/releases/v{N}/epics/{E##-slug}/E##-Detail.md` — epic context.
11
11
  - `.savepoint/router.md` — current state.
12
12
 
13
13
  ## Output
@@ -1,42 +0,0 @@
1
- ---
2
- type: epic-design
3
- status: planned
4
- ---
5
-
6
- # Epic E07: Atari-Noir Layout Uplift
7
-
8
- ## Purpose
9
-
10
- Update the existing TUI to align with the **Atari-Noir SavePoint design system**. This is a visual and layout uplift focused on restraint, clarity, and control, preserving existing functionality while eliminating visual noise and strictly adhering to the new color and layout rules.
11
-
12
- ## What this epic adds
13
-
14
- - Centralized Atari-Noir color system in `palette.go`.
15
- - Restructured `styles.go` mapped to exact usage rules.
16
- - Static header component: `▣ S A V E P O I N T`.
17
- - Static footer component: `PLAN │ BUILD │ AUDIT`.
18
- - Full-width subtle horizontal dividers.
19
- - Refined component styling (columns, cards, epic panel) to remove unnecessary borders and improve spacing.
20
-
21
- ## Definition of Done
22
-
23
- - All colors match the Atari-Noir strict specification.
24
- - Header renders correctly with no wrapping.
25
- - Footer displays PLAN / BUILD / AUDIT cleanly without dynamic status text.
26
- - Full-width dividers frame the content.
27
- - Cards/panels feel like surfaces, not text blocks.
28
- - Spacing is consistent and components breathe.
29
- - Focus/selection is obvious through position and Atari Orange borders, not relying solely on color text changes.
30
- - Existing functionality remains 100% intact.
31
-
32
- ## Components and files
33
-
34
- | Path | Purpose |
35
- |------|---------|
36
- | `internal/styles/palette.go` | Define strict hex values |
37
- | `internal/styles/styles.go` | Map styles to new usage rules |
38
- | `internal/board/view.go` | Implement header, footer, dividers |
39
- | `internal/board/layout.go` | Adjust layout height calculations |
40
- | `internal/board/column.go` | Refine column styling and spacing |
41
- | `internal/board/card.go` | Refine card surface and focus state |
42
- | `internal/board/epic_panel.go` | Refine epic panel layout |
@@ -1,26 +0,0 @@
1
- ---
2
- type: epic-design
3
- status: planned
4
- ---
5
-
6
- # Epic E01: TUI Optimisation
7
-
8
- ## Purpose
9
-
10
- Performance, layout robustness, and structural improvements for the board TUI. Focused on fixing rendering edge-cases (resize clipping, wasted space) and improving the codebase's architectural hygiene around file watching and data refresh.
11
-
12
- ## Definition of Done
13
-
14
- - Right-border clipping is eliminated at all terminal widths ≥ 40
15
- - Resize handling is robust — no corruption, no artifacts when growing/shrinking
16
- - The board auto-refreshes when task files change on disk via fsnotify
17
-
18
- ## Components and files
19
-
20
- | Path | Purpose |
21
- |------|---------|
22
- | `internal/board/layout.go` | Layout arithmetic and resize guards |
23
- | `internal/board/view.go` | Minimum width clamping |
24
- | `internal/board/watch.go` | File watcher and reload commands |
25
- | `internal/board/model.go` | Watcher lifecycle |
26
- | `internal/board/update.go` | Reload message handling |
@@ -1,35 +0,0 @@
1
- ---
2
- id: E01-tui-optimisation/T001-border-resize-fix
3
- status: planned
4
- objective: "Fix right-border clipping and ensure clean rendering on terminal resize"
5
- depends_on: []
6
- ---
7
-
8
- # T001: Fix Right-Border Clipping and Resize Robustness
9
-
10
- ## Acceptance Criteria
11
-
12
- - The board frame right border (`│` or rounded corner) is always visible at any terminal width ≥ 40 chars
13
- - Reducing terminal width below a breakpoint (120→119, 80→79) does not leave stray pixels or broken border artifacts
14
- - Reducing to very narrow widths (< 50) degrades gracefully (no visual corruption)
15
- - Expanding terminal width back renders cleanly with no leftover characters from previous dimensions
16
- - All existing layout breakpoints (120/80) still function correctly
17
-
18
- ## Implementation Plan
19
-
20
- - [ ] Edit `internal/board/layout.go` — audit width arithmetic to ensure total content width exactly fills `width - boardFrameOverhead` at every breakpoint; use `totalWidth := cw*colCount + colOverhead*colCount` and pad any remainder so it matches `inner` exactly.
21
- - [ ] Edit `internal/board/view.go` — add minimum terminal width clamping (e.g., floor to 40) in `View()` to prevent degenerate states.
22
- - [ ] Edit `internal/board/layout.go` — add a `minBoardWidth` const and guard `CalculateLayout` inputs below it.
23
- - [ ] Run `make build && make test` to verify no regressions.
24
-
25
- ## Context Log
26
-
27
- Files read:
28
- - `internal/board/layout.go`
29
- - `internal/board/view.go`
30
- - `internal/board/update.go`
31
-
32
- Estimated input tokens: 600
33
-
34
- Notes:
35
- - Moved from `E06-atari-noir-layout/T006-border-resize-fix` (release v1) to `E01-tui-optimisation` (release v1.1).
package/main.exe DELETED
Binary file
File without changes