savepoint 1.0.2 → 1.0.4
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.
- package/.claude/settings.local.json +12 -1
- package/.github/workflows/ci.yml +20 -0
- package/.golangci.yml +11 -0
- package/.savepoint/Design.md +40 -38
- package/.savepoint/{audit/v1.1/E02-cross-platform-compatibility/proposals.md → releases/v1.1/epics/E02-cross-platform-compatibility/E02-Audit.md} +48 -38
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/E03-Audit.md +195 -0
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/E03-Detail.md +14 -1
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T006-forced-256-color-profile.md +3 -3
- package/.savepoint/{audit/v1.1/E04-epic-navigation/proposals.md → releases/v1.1/epics/E04-epic-navigation/E04-Audit.md} +65 -54
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Audit.md +237 -0
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Detail.md +25 -16
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T001-update-agents-md.md +17 -6
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T002-update-router-md.md +15 -5
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T003-update-design-md.md +19 -5
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T004-implement-m-hotkey.md +11 -1
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T005-update-help-overlay.md +9 -6
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T006-tests-and-quality-gates.md +29 -13
- package/.savepoint/releases/v1.1/epics/E06-audit-command/E06-Audit.md +56 -0
- package/.savepoint/releases/v1.1/epics/E06-audit-command/E06-Detail.md +63 -0
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T005-proposals.md +44 -0
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T007-apply-close.md +35 -0
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T009-integration.md +40 -0
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T010-audit-file-migration.md +45 -0
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T011-model-tab-state.md +26 -0
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T012-epic-audit-render.md +33 -0
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T013-handle-tab-keys.md +34 -0
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T014-tab-indicator.md +33 -0
- package/.savepoint/releases/v1.1/epics/E07-init-command/E07-Audit.md +336 -0
- package/.savepoint/releases/v1.1/epics/E07-init-command/E07-Detail.md +61 -0
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T001-cli-entrypoint.md +37 -0
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T002-target-validation.md +28 -0
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T003-scaffold-writer.md +46 -0
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T004-atomic-writes.md +27 -0
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T005-magic-prompt.md +25 -0
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T006-clipboard.md +26 -0
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T007-integration-test.md +26 -0
- package/.savepoint/releases/v1.1/epics/E08-board-command/E08-Audit.md +333 -0
- package/.savepoint/releases/v1.1/epics/E08-board-command/E08-Detail.md +68 -0
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T001-cli-entrypoint.md +26 -0
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T002-non-tty-fallback.md +27 -0
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T003-tui-app-shell.md +28 -0
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T004-board-model.md +29 -0
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T005-detail-pane.md +27 -0
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T006-status-transitions.md +29 -0
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T007-theme-fallbacks.md +29 -0
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T008-integration-test.md +27 -0
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/E09-Audit.md +207 -0
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/E09-Detail.md +65 -0
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T001-cli-entrypoint.md +24 -0
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T002-config-router-validation.md +28 -0
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T003-structure-checks.md +29 -0
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T004-dependency-checks.md +27 -0
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T005-audit-orphan-checks.md +28 -0
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T006-quality-gates-report.md +31 -0
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/E11-Detail.md +36 -0
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T001-debug-logging.md +25 -0
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T002-increase-debounce.md +21 -0
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T003-error-handling.md +22 -0
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T004-test-verify.md +29 -0
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/E12-Audit.md +444 -0
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/E12-Detail.md +45 -0
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T001-default-phase.md +35 -0
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T002-default-status.md +19 -0
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T003-better-errors.md +29 -0
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T004-validate-on-write.md +25 -0
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T005-tests.md +37 -0
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/E13-Audit.md +118 -0
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/E13-Detail.md +73 -0
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T001-safe-cleanup.md +66 -0
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T002-bug-fixes.md +35 -0
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T003-centralize-duplication.md +60 -0
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T004-infrastructure.md +33 -0
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T005-decompose-update.md +37 -0
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T006-async-io.md +40 -0
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T007-test-coverage.md +37 -0
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Audit.md +267 -0
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Detail.md +54 -0
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T001-group-model.md +39 -0
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T002-data-interfaces.md +42 -0
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T003-discover-orphans.md +33 -0
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T004-epic-panel-headings.md +35 -0
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T005-shell-tokenization.md +27 -0
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T006-unify-enums.md +29 -0
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T007-testutil-package.md +28 -0
- package/.savepoint/releases/v1.1/epics/E15-hardening/E15-Audit.md +272 -0
- package/.savepoint/releases/v1.1/epics/E15-hardening/E15-Detail.md +60 -0
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T001-benchmarks.md +31 -0
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T002-fuzz-targets.md +34 -0
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T003-debug-flag.md +30 -0
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T004-dist-checksums.md +27 -0
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T005-windows-targets.md +28 -0
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T006-abbreviation-splitting.md +26 -0
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T007-root-test-allowlist.md +33 -0
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T008-ci-and-release-automation.md +46 -0
- package/.savepoint/releases/v1.1/epics/_archived/T001-cli-entrypoint.md +25 -0
- package/.savepoint/releases/v1.1/epics/_archived/T002-quality-gates.md +27 -0
- package/.savepoint/releases/v1.1/epics/_archived/T003-snapshot.md +27 -0
- package/.savepoint/releases/v1.1/epics/_archived/T004-ai-reconcile.md +29 -0
- package/.savepoint/releases/v1.1/epics/_archived/T006-tui-review.md +31 -0
- package/.savepoint/releases/v1.1/epics/_archived/T008-skip-handling.md +34 -0
- package/.savepoint/releases/v1.1/v1.1-PRD.md +67 -7
- package/.savepoint/router.md +10 -17
- package/AGENTS.md +39 -24
- package/Makefile +3 -1
- package/README.md +0 -1
- package/agent-skills/savepoint-audit/SKILL.md +86 -34
- package/agent-skills/savepoint-build-task/SKILL.md +7 -2
- package/agent-skills/savepoint-create-plan/SKILL.md +7 -2
- package/agent-skills/savepoint-create-task/SKILL.md +44 -31
- package/agent-skills/savepoint-draft-prd/SKILL.md +7 -2
- package/agent-skills/savepoint-system-design/SKILL.md +7 -2
- package/agent_skills_test.go +91 -0
- package/cmd/board.go +59 -0
- package/cmd/board_test.go +137 -0
- package/cmd/doctor.go +53 -0
- package/cmd/doctor_test.go +146 -0
- package/cmd/init.go +63 -0
- package/cmd/init_test.go +104 -0
- package/internal/board/board.go +44 -36
- package/internal/board/board_test.go +27 -82
- package/internal/board/card.go +43 -23
- package/internal/board/card_test.go +74 -5
- package/internal/board/column.go +75 -15
- package/internal/board/column_test.go +76 -2
- package/internal/board/debug.go +26 -0
- package/internal/board/debug_test.go +108 -0
- package/internal/board/detail.go +33 -47
- package/internal/board/detail_test.go +48 -0
- package/internal/board/epic_panel.go +120 -22
- package/internal/board/epic_panel_test.go +302 -17
- package/internal/board/help.go +1 -0
- package/internal/board/help_test.go +1 -0
- package/internal/board/integration_test.go +266 -0
- package/internal/board/interfaces.go +65 -0
- package/internal/board/interfaces_test.go +114 -0
- package/internal/board/io.go +93 -0
- package/internal/board/model.go +79 -118
- package/internal/board/plain.go +88 -0
- package/internal/board/plain_test.go +117 -0
- package/internal/board/release.go +1 -9
- package/internal/board/release_test.go +6 -6
- package/internal/board/status.go +4 -4
- package/internal/board/theme.go +24 -0
- package/internal/board/theme_test.go +31 -0
- package/internal/board/transitions.go +113 -88
- package/internal/board/transitions_test.go +164 -141
- package/internal/board/tui.go +32 -0
- package/internal/board/update.go +344 -215
- package/internal/board/update_test.go +326 -18
- package/internal/board/util.go +76 -0
- package/internal/board/view.go +31 -28
- package/internal/board/view_test.go +74 -2
- package/internal/board/watch.go +41 -5
- package/internal/buildtool/main.go +45 -15
- package/internal/buildtool/main_test.go +224 -0
- package/internal/data/config.go +17 -3
- package/internal/data/config_test.go +49 -0
- package/internal/data/discover.go +26 -0
- package/internal/data/discover_test.go +34 -10
- package/internal/data/errors.go +4 -0
- package/internal/data/fuzz_test.go +75 -0
- package/internal/data/lifecycle.go +13 -6
- package/internal/data/lifecycle_test.go +14 -11
- package/internal/data/parser.go +22 -6
- package/internal/data/parser_test.go +31 -7
- package/internal/data/task.go +0 -9
- package/internal/data/testdata/fuzz/FuzzSplitFrontmatterBody/68eb66b0fe91e7e3 +2 -0
- package/internal/data/write.go +88 -11
- package/internal/data/write_test.go +167 -0
- package/internal/doctor/checks.go +567 -0
- package/internal/doctor/checks_test.go +716 -0
- package/internal/doctor/gates.go +193 -0
- package/internal/doctor/gates_test.go +166 -0
- package/internal/doctor/interfaces.go +64 -0
- package/internal/doctor/interfaces_test.go +104 -0
- package/internal/doctor/repairs.go +80 -0
- package/internal/doctor/repairs_test.go +81 -0
- package/internal/doctor/report.go +157 -0
- package/internal/doctor/report_test.go +89 -0
- package/internal/init/clipboard.go +146 -0
- package/internal/init/clipboard_test.go +74 -0
- package/internal/init/install.go +16 -0
- package/internal/init/integration_test.go +197 -0
- package/internal/init/prompt.go +14 -0
- package/internal/init/prompt_test.go +77 -0
- package/internal/init/scaffold.go +59 -0
- package/internal/init/scaffold_test.go +179 -0
- package/internal/init/template_freshness_test.go +56 -0
- package/internal/init/validate.go +85 -0
- package/internal/init/validate_test.go +141 -0
- package/internal/init/write.go +73 -0
- package/internal/init/write_test.go +91 -0
- package/internal/styles/styles_test.go +133 -0
- package/internal/testutil/fixture.go +113 -0
- package/internal/testutil/fs.go +26 -0
- package/main.go +120 -4
- package/package.json +2 -2
- package/project-audit/audit_report_glm_5.1.md +411 -0
- package/project-audit/audit_report_opus_4.6.md +406 -0
- package/project-audit/consolidated-audit-report.md +456 -0
- package/templates/project/.savepoint/Design.md +2 -2
- package/templates/project/.savepoint/router.md +10 -10
- package/templates/project/AGENTS.md +33 -21
- package/templates/project/agent-skills/savepoint-audit/SKILL.md +87 -0
- package/templates/project/agent-skills/savepoint-build-task/SKILL.md +44 -0
- package/templates/project/agent-skills/savepoint-create-plan/SKILL.md +33 -0
- package/templates/project/agent-skills/savepoint-create-task/SKILL.md +44 -0
- package/templates/project/agent-skills/savepoint-draft-prd/SKILL.md +37 -0
- package/templates/project/agent-skills/savepoint-system-design/SKILL.md +38 -0
- package/templates/prompts/audit-reconciliation.prompt.md +33 -28
- package/templates/prompts/design.prompt.md +3 -1
- package/.savepoint/audit/v1/E01/proposals.md +0 -168
- package/.savepoint/audit/v1/E01/snapshot.md +0 -78
- package/.savepoint/audit/v1/E01-go-setup/proposals.md +0 -166
- package/.savepoint/audit/v1/E01-go-setup/snapshot.md +0 -71
- package/.savepoint/audit/v1/E01-scaffolding/proposals/AGENTS.md +0 -66
- package/.savepoint/audit/v1/E01-scaffolding/proposals/Design.md +0 -210
- package/.savepoint/audit/v1/E01-scaffolding/proposals/epic-Design.md +0 -117
- package/.savepoint/audit/v1/E01-scaffolding/proposals/quality-review.md +0 -101
- package/.savepoint/audit/v1/E01-scaffolding/snapshot.md +0 -54
- package/.savepoint/audit/v1/E02-data-model/snapshot.md +0 -128
- package/.savepoint/audit/v1/E02-data-readers/proposals.md +0 -123
- package/.savepoint/audit/v1/E02-data-readers/snapshot.md +0 -54
- package/.savepoint/audit/v1/E03-board-tui-core/proposals.md +0 -146
- package/.savepoint/audit/v1/E03-board-tui-core/snapshot.md +0 -57
- package/.savepoint/audit/v1/E03-cli-foundation/snapshot.md +0 -106
- package/.savepoint/audit/v1/E04-board-components/proposals.md +0 -118
- package/.savepoint/audit/v1/E04-board-components/snapshot.md +0 -77
- package/.savepoint/audit/v1/E04-templates-and-prompts/snapshot.md +0 -115
- package/.savepoint/audit/v1/E05-init-command/snapshot.md +0 -125
- package/.savepoint/audit/v1/E05-phase-transitions/proposals.md +0 -83
- package/.savepoint/audit/v1/E05-phase-transitions/snapshot.md +0 -36
- package/.savepoint/audit/v1/E06-atari-noir-layout/proposals.md +0 -130
- package/.savepoint/audit/v1/E06-atari-noir-layout/snapshot.md +0 -84
- package/.savepoint/audit/v1/E06-tui-board/snapshot.md +0 -64
- package/.savepoint/audit/v1/E07-audit-pipeline/snapshot.md +0 -165
- package/.savepoint/audit/v1/E08-board-workflow-cleanup/snapshot.md +0 -65
- package/.savepoint/audit/v1.1/E02-cross-platform-compatibility/snapshot.md +0 -41
- package/.savepoint/audit/v1.1/E04-epic-navigation/snapshot.md +0 -48
- package/ink-cli-ui-design.zip +0 -0
- package/savepoint +0 -0
- package/savepoint.exe +0 -0
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: audit-snapshot
|
|
3
|
-
epic: E03-cli-foundation
|
|
4
|
-
created: 2026-04-27
|
|
5
|
-
manual: true
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Audit Snapshot: E03-cli-foundation
|
|
9
|
-
|
|
10
|
-
Manual snapshot generated because `savepoint audit` is not implemented yet.
|
|
11
|
-
|
|
12
|
-
## Source file tree
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
src/
|
|
16
|
-
cli.ts - process entrypoint; delegates to runCli() with process globals
|
|
17
|
-
cli/
|
|
18
|
-
args.ts - argument parsing and normalization
|
|
19
|
-
environment.ts - TTY, color, and platform detection
|
|
20
|
-
exit-codes.ts - shared exit code constants
|
|
21
|
-
help.ts - help text generation (top-level and per-command)
|
|
22
|
-
run.ts - testable CLI runner with injectable argv/streams/env
|
|
23
|
-
commands/
|
|
24
|
-
audit.ts - stub: savepoint audit
|
|
25
|
-
board.ts - stub: savepoint board
|
|
26
|
-
doctor.ts - stub: savepoint doctor
|
|
27
|
-
init.ts - stub: savepoint init
|
|
28
|
-
test/
|
|
29
|
-
cli/
|
|
30
|
-
args.test.ts - parser unit tests
|
|
31
|
-
commands.test.ts - command stub dispatch tests
|
|
32
|
-
environment.test.ts - TTY/color detection tests
|
|
33
|
-
help.test.ts - help text generation tests
|
|
34
|
-
run.test.ts - full runner dispatch tests (35 tests)
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Config / metadata changes
|
|
38
|
-
|
|
39
|
-
| Path | Purpose |
|
|
40
|
-
| --------------------------------------- | --------------------------------------------------------------------------------------------- |
|
|
41
|
-
| `.savepoint/router.md` | Router state still pointed at T001; E03 tasks were completed without router updates per task. |
|
|
42
|
-
| `E03-cli-foundation/tasks/T001-T006.md` | Six planned and completed E03 task files. |
|
|
43
|
-
|
|
44
|
-
## New files introduced by E03
|
|
45
|
-
|
|
46
|
-
- `src/cli/args.ts`
|
|
47
|
-
- `src/cli/environment.ts`
|
|
48
|
-
- `src/cli/exit-codes.ts`
|
|
49
|
-
- `src/cli/help.ts`
|
|
50
|
-
- `src/cli/run.ts`
|
|
51
|
-
- `src/commands/audit.ts`
|
|
52
|
-
- `src/commands/board.ts`
|
|
53
|
-
- `src/commands/doctor.ts`
|
|
54
|
-
- `src/commands/init.ts`
|
|
55
|
-
- `src/commands/result.ts`
|
|
56
|
-
- `test/cli/args.test.ts`
|
|
57
|
-
- `test/cli/commands.test.ts`
|
|
58
|
-
- `test/cli/environment.test.ts`
|
|
59
|
-
- `test/cli/help.test.ts`
|
|
60
|
-
- `test/cli/run.test.ts`
|
|
61
|
-
|
|
62
|
-
## Modified files
|
|
63
|
-
|
|
64
|
-
- `src/cli.ts` — replaced old placeholder with `runCli()` delegation; process globals isolated here.
|
|
65
|
-
- `src/cli/run.ts` — command-level unknown flags now return usage errors.
|
|
66
|
-
- `src/commands/audit.ts` — prettier formatting applied.
|
|
67
|
-
- `src/commands/board.ts` — prettier formatting applied.
|
|
68
|
-
- `src/commands/doctor.ts` — prettier formatting applied.
|
|
69
|
-
- `src/commands/init.ts` — prettier formatting applied.
|
|
70
|
-
- `test/cli/environment.test.ts` — prettier formatting applied.
|
|
71
|
-
- `test/cli/run.test.ts` — prettier formatting applied.
|
|
72
|
-
|
|
73
|
-
## Quality gates
|
|
74
|
-
|
|
75
|
-
- `npm run build` passed. Output: `dist/cli.js` 4.83 KB.
|
|
76
|
-
- `npm run typecheck` passed.
|
|
77
|
-
- `npm run lint` passed.
|
|
78
|
-
- `npm run format:check` initially failed on 6 pre-existing files (commands and CLI tests); fixed with `prettier --write`, then passed.
|
|
79
|
-
- During audit closeout, `npm.cmd test -- test/cli/run.test.ts` initially failed in the sandbox with esbuild `spawn EPERM`; rerunning outside the sandbox passed.
|
|
80
|
-
- `npm test` passed: 21 test files, 259 tests (0 failures).
|
|
81
|
-
|
|
82
|
-
## Coverage summary
|
|
83
|
-
|
|
84
|
-
| Branch | Test file | Tests |
|
|
85
|
-
| ------------------------- | ------------------- | ----- |
|
|
86
|
-
| Bare invocation | run.test.ts | 3 |
|
|
87
|
-
| Global help flags | run.test.ts | 4 |
|
|
88
|
-
| Version flags | run.test.ts | 4 |
|
|
89
|
-
| Command dispatch (4 cmds) | run.test.ts | 8 |
|
|
90
|
-
| Command-level help | run.test.ts | 7 |
|
|
91
|
-
| Unknown command | run.test.ts | 3 |
|
|
92
|
-
| Unknown flag | run.test.ts | 6 |
|
|
93
|
-
| Argument parsing | args.test.ts | 12 |
|
|
94
|
-
| Help text | help.test.ts | 13 |
|
|
95
|
-
| Environment detection | environment.test.ts | 15 |
|
|
96
|
-
| Command stubs | commands.test.ts | 8 |
|
|
97
|
-
|
|
98
|
-
## Deviations from epic Design
|
|
99
|
-
|
|
100
|
-
| Item | Status | Note |
|
|
101
|
-
| ------------------------- | ------ | ---------------------------------------------------------------------------------------------------- |
|
|
102
|
-
| Audit snapshot | manual | Generated by the agent because the audit CLI does not exist yet. |
|
|
103
|
-
| Router state | manual | Router still shows T001 as active; router was not updated per-task during E03 implementation. |
|
|
104
|
-
| Prettier failures at gate | fixed | 6 command/test files had formatting issues at T006; fixed before gate closeout. |
|
|
105
|
-
| `src/cli.ts` entrypoint | done | Updated from placeholder to `runCli()` delegation with all process globals isolated at the boundary. |
|
|
106
|
-
| Command-level flags | fixed | Unknown command-level flags now return usage errors instead of dispatching command stubs. |
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
## Target File
|
|
2
|
-
|
|
3
|
-
`.savepoint/Design.md`
|
|
4
|
-
|
|
5
|
-
## Replace
|
|
6
|
-
|
|
7
|
-
```md
|
|
8
|
-
**Layout:** single screen with a 5-column Kanban board and detail pane. Non-TTY output uses `src/tui/render/plain-table.ts`.
|
|
9
|
-
|
|
10
|
-
**Implementation modules:** see AGENTS.md Codebase Map (E06 and E07 epic rows).
|
|
11
|
-
|
|
12
|
-
**Keybindings:** arrow/vim navigation, enter advances, backspace retreats, r/R refreshes, a/A exits toward audit review when proposals exist, q quits.
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## With
|
|
16
|
-
|
|
17
|
-
```md
|
|
18
|
-
**Layout:** Go Bubble Tea board with responsive columns: wide terminals (`>=120` cols) show an epic sidebar plus planned / in-progress / done columns; medium terminals show three columns; narrow terminals show the focused column only.
|
|
19
|
-
|
|
20
|
-
**Board components:** E04 adds Lip Gloss renderers for columns, task cards, epic sidebar/dropdown, release dropdown, task detail overlay, and help overlay. Selector, detail, and help overlays dim the current board and composite a centered panel over it.
|
|
21
|
-
|
|
22
|
-
**Implementation modules:** see AGENTS.md Codebase Map (`internal/board/*`, `internal/styles/*`, and `internal/data/*` rows).
|
|
23
|
-
|
|
24
|
-
**Keybindings:** h/left and l/right move columns; enter opens task detail or selects an overlay item; e opens the epic selector on narrow screens; r opens the release selector; ? opens help; esc/q close overlays; q/ctrl+c quit from the base board.
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Target File
|
|
28
|
-
|
|
29
|
-
`AGENTS.md`
|
|
30
|
-
|
|
31
|
-
## Insert After
|
|
32
|
-
|
|
33
|
-
```md
|
|
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
|
-
```
|
|
36
|
-
|
|
37
|
-
## With
|
|
38
|
-
|
|
39
|
-
```md
|
|
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
|
-
```
|
|
53
|
-
|
|
54
|
-
## Target File
|
|
55
|
-
|
|
56
|
-
`.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md`
|
|
57
|
-
|
|
58
|
-
## Insert After
|
|
59
|
-
|
|
60
|
-
```md
|
|
61
|
-
## Definition of Done
|
|
62
|
-
|
|
63
|
-
- Cards render with correct phase glyphs and colors.
|
|
64
|
-
- Focused card has orange accent border.
|
|
65
|
-
- Epic panel renders on wide screens; dropdown on narrow.
|
|
66
|
-
- Detail overlay opens with Enter, closes with Esc.
|
|
67
|
-
- Epic dropdown opens with `e`, release with `r`.
|
|
68
|
-
- Help overlay opens with `?`.
|
|
69
|
-
- All components render without wrapping or layout breaks.
|
|
70
|
-
- Component tests pass.
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## With
|
|
74
|
-
|
|
75
|
-
```md
|
|
76
|
-
## Implemented As
|
|
77
|
-
|
|
78
|
-
- `internal/board/column.go` renders status columns with uppercase label, task count, empty state, focused border, and task cards.
|
|
79
|
-
- `internal/board/card.go` renders standalone task cards with build/test/audit glyphs, dim metadata, truncation, and focused styling.
|
|
80
|
-
- `internal/board/epic_panel.go` renders the wide epic sidebar and narrow epic dropdown; `e` opens the dropdown only below the wide breakpoint.
|
|
81
|
-
- `internal/board/release.go` renders the release dropdown; `r` opens it at all widths.
|
|
82
|
-
- `internal/board/detail.go` renders task detail panels with wrapped long text; `internal/board/view.go` dims the board and composites selector/detail/help overlays over the base board.
|
|
83
|
-
- `internal/board/help.go` renders the keyboard shortcut overlay.
|
|
84
|
-
- `internal/styles/styles.go` and `internal/styles/palette.go` add shared Lip Gloss styles for cards, overlays, metadata, glyphs, and dim text.
|
|
85
|
-
|
|
86
|
-
## Audit Deltas
|
|
87
|
-
|
|
88
|
-
- Planned `internal/board/dropdown.go` was not created; epic and release dropdowns are separate renderers.
|
|
89
|
-
- Task cards are integrated into column rendering; board columns now display card borders and phase glyphs.
|
|
90
|
-
- Selecting an epic or release updates `SelectedEpic` / `SelectedRelease` and regroups visible board tasks from `Model.AllTasks`.
|
|
91
|
-
- Selector/detail/help overlays keep the dimmed board visible behind the panel.
|
|
92
|
-
- Base board up/down navigation moves the focused task within the focused column.
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
## Quality Review
|
|
96
|
-
|
|
97
|
-
## Must Fix Before Close
|
|
98
|
-
|
|
99
|
-
No open findings.
|
|
100
|
-
|
|
101
|
-
## Must Fix Before Next Epic
|
|
102
|
-
|
|
103
|
-
No open findings.
|
|
104
|
-
|
|
105
|
-
## Carry Forward
|
|
106
|
-
|
|
107
|
-
- The current project architecture and Codebase Map still contain substantial TypeScript-era rows. This proposal adds E04 Go rows as a delta, but a later audit should reconcile the stale TypeScript implementation sections once the Go transition is complete.
|
|
108
|
-
|
|
109
|
-
## Already Fixed
|
|
110
|
-
|
|
111
|
-
- Board columns render `RenderCard`, so phase glyphs, card borders, truncation, and focused card styling are visible in the actual board.
|
|
112
|
-
- Epic and release selections regroup visible tasks from `Model.AllTasks`.
|
|
113
|
-
- Epic and release dropdowns use the same dimmed-base overlay composition as detail/help.
|
|
114
|
-
- Base board up/down navigation moves `FocusedTask` and clamps at column bounds.
|
|
115
|
-
- Detail rows, descriptions, and acceptance criteria wrap long text within overlay width.
|
|
116
|
-
- Focused tests passed during audit: `go test ./internal/board/...`.
|
|
117
|
-
- Full Go suite passed during audit: `go test ./...`.
|
|
118
|
-
- Help and detail overlays use the dimmed-base compositing path and close on `esc` / `q`.
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
# Manual Audit Snapshot: E04-board-components
|
|
2
|
-
|
|
3
|
-
Created: 2026-05-01
|
|
4
|
-
|
|
5
|
-
Reason: `.savepoint/router.md` is in `audit-pending` for `E04-board-components`, but `.savepoint/audit/E04-board-components/snapshot.md` was missing. Per router instructions, this is a one-time manual snapshot from the known epic scope.
|
|
6
|
-
|
|
7
|
-
## Router State
|
|
8
|
-
|
|
9
|
-
```yaml
|
|
10
|
-
state: audit-pending
|
|
11
|
-
release: v1
|
|
12
|
-
epic: E04-board-components
|
|
13
|
-
task: E04-board-components/T006-help-overlay
|
|
14
|
-
next_action: "Epic E04-board-components complete. Start a new agent session for audit."
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Epic Scope
|
|
18
|
-
|
|
19
|
-
Epic design: `.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md`
|
|
20
|
-
|
|
21
|
-
Tasks:
|
|
22
|
-
|
|
23
|
-
- `.savepoint/releases/v1/epics/E04-board-components/tasks/T001-column.md`
|
|
24
|
-
- `.savepoint/releases/v1/epics/E04-board-components/tasks/T002-card.md`
|
|
25
|
-
- `.savepoint/releases/v1/epics/E04-board-components/tasks/T003-epic-panel.md`
|
|
26
|
-
- `.savepoint/releases/v1/epics/E04-board-components/tasks/T004-detail-overlay.md`
|
|
27
|
-
- `.savepoint/releases/v1/epics/E04-board-components/tasks/T005-release-dropdown.md`
|
|
28
|
-
- `.savepoint/releases/v1/epics/E04-board-components/tasks/T006-help-overlay.md`
|
|
29
|
-
|
|
30
|
-
## Files Listed By Epic Design
|
|
31
|
-
|
|
32
|
-
- `internal/board/column.go`
|
|
33
|
-
- `internal/board/card.go`
|
|
34
|
-
- `internal/board/epic_panel.go`
|
|
35
|
-
- `internal/board/detail.go`
|
|
36
|
-
- `internal/board/dropdown.go` (planned; no live file found)
|
|
37
|
-
- `internal/board/help.go`
|
|
38
|
-
- `internal/board/card_test.go`
|
|
39
|
-
- `internal/board/column_test.go`
|
|
40
|
-
|
|
41
|
-
## Additional Files Touched By Task Logs
|
|
42
|
-
|
|
43
|
-
- `internal/board/model.go`
|
|
44
|
-
- `internal/board/update.go`
|
|
45
|
-
- `internal/board/view.go`
|
|
46
|
-
- `internal/board/layout.go`
|
|
47
|
-
- `internal/board/detail_test.go`
|
|
48
|
-
- `internal/board/epic_panel_test.go`
|
|
49
|
-
- `internal/board/help_test.go`
|
|
50
|
-
- `internal/board/release.go`
|
|
51
|
-
- `internal/board/release_test.go`
|
|
52
|
-
- `internal/board/update_test.go`
|
|
53
|
-
- `internal/board/view_test.go`
|
|
54
|
-
- `internal/styles/styles.go`
|
|
55
|
-
- `internal/styles/palette.go`
|
|
56
|
-
|
|
57
|
-
## Verification Re-run During Audit
|
|
58
|
-
|
|
59
|
-
- `go test ./internal/board/...` passed.
|
|
60
|
-
- `go test ./...` passed.
|
|
61
|
-
|
|
62
|
-
## Scoped Review Notes
|
|
63
|
-
|
|
64
|
-
- `RenderCard` is implemented and tested, but `RenderColumn` still renders plain task labels through `taskLabel`, and `rg RenderCard internal/board` shows no production call site outside `card.go`.
|
|
65
|
-
- Epic and release selection currently mutate `SelectedEpic` / `SelectedRelease` only. There is no data reload or regrouping path in `internal/board/update.go`, so the task-list update acceptance criteria are not yet satisfied.
|
|
66
|
-
- Detail/help overlays are composited over dimmed base board. Epic/release dropdowns use `lipgloss.Place` over a blank canvas, so the board is not visible behind those overlays.
|
|
67
|
-
|
|
68
|
-
## Post-Audit Implementation
|
|
69
|
-
|
|
70
|
-
Updated after user request to implement all audit findings:
|
|
71
|
-
|
|
72
|
-
- `RenderColumn` now renders `RenderCard` for each task.
|
|
73
|
-
- `Model` now stores `AllTasks` and regroups visible tasks when epic/release selection changes.
|
|
74
|
-
- Base board `up`/`k` and `down`/`j` move focused task selection.
|
|
75
|
-
- Epic/release dropdowns now composite over the dimmed board.
|
|
76
|
-
- Detail overlay text now wraps long rows, description, and acceptance criteria.
|
|
77
|
-
- Verification after implementation: `go build ./...`, `go vet ./...`, and `go test ./...` passed.
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: audit-snapshot
|
|
3
|
-
epic: E04-templates-and-prompts
|
|
4
|
-
created: 2026-04-27
|
|
5
|
-
manual: true
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Audit Snapshot: E04-templates-and-prompts
|
|
9
|
-
|
|
10
|
-
Manual snapshot generated because `savepoint audit` is not implemented yet.
|
|
11
|
-
|
|
12
|
-
## Source file tree
|
|
13
|
-
|
|
14
|
-
```text
|
|
15
|
-
src/
|
|
16
|
-
templates/
|
|
17
|
-
index.ts - public export surface for template helpers
|
|
18
|
-
load.ts - async template file loader with path-aware not_found errors
|
|
19
|
-
manifest.ts - typed manifest of project, release, and prompt templates
|
|
20
|
-
paths.ts - template root discovery and template path resolution
|
|
21
|
-
render.ts - small placeholder interpolation helper
|
|
22
|
-
templates/
|
|
23
|
-
project/
|
|
24
|
-
AGENTS.md
|
|
25
|
-
.savepoint/
|
|
26
|
-
router.md
|
|
27
|
-
PRD.md
|
|
28
|
-
Design.md
|
|
29
|
-
config.yml
|
|
30
|
-
visual-identity.md
|
|
31
|
-
release/
|
|
32
|
-
v1/
|
|
33
|
-
PRD.md
|
|
34
|
-
prompts/
|
|
35
|
-
audit-reconciliation.prompt.md
|
|
36
|
-
design.prompt.md
|
|
37
|
-
epic-design.prompt.md
|
|
38
|
-
prd.prompt.md
|
|
39
|
-
task-breakdown.prompt.md
|
|
40
|
-
task-building.prompt.md
|
|
41
|
-
task-planning.prompt.md
|
|
42
|
-
test/
|
|
43
|
-
templates/
|
|
44
|
-
project-templates.test.ts
|
|
45
|
-
prompt-templates.test.ts
|
|
46
|
-
render-integrity.test.ts
|
|
47
|
-
router-template.test.ts
|
|
48
|
-
template-registry.test.ts
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Config / metadata changes
|
|
52
|
-
|
|
53
|
-
| Path | Purpose |
|
|
54
|
-
| --------------------------------------------------------- | ------------------------------------------- |
|
|
55
|
-
| `.savepoint/router.md` | Router state points to E04 audit-pending. |
|
|
56
|
-
| `E04-templates-and-prompts/tasks/T001-T005.md` | Five completed E04 task files. |
|
|
57
|
-
| `.savepoint/audit/E04-templates-and-prompts/snapshot.md` | Manual audit snapshot for this epic. |
|
|
58
|
-
| `.savepoint/audit/E04-templates-and-prompts/proposals.md` | Single audit proposal bundle for this epic. |
|
|
59
|
-
|
|
60
|
-
## New files introduced by E04
|
|
61
|
-
|
|
62
|
-
- `src/templates/index.ts`
|
|
63
|
-
- `src/templates/load.ts`
|
|
64
|
-
- `src/templates/manifest.ts`
|
|
65
|
-
- `src/templates/paths.ts`
|
|
66
|
-
- `src/templates/render.ts`
|
|
67
|
-
- `templates/project/AGENTS.md`
|
|
68
|
-
- `templates/project/.savepoint/router.md`
|
|
69
|
-
- `templates/project/.savepoint/PRD.md`
|
|
70
|
-
- `templates/project/.savepoint/Design.md`
|
|
71
|
-
- `templates/project/.savepoint/config.yml`
|
|
72
|
-
- `templates/project/.savepoint/visual-identity.md`
|
|
73
|
-
- `templates/release/v1/PRD.md`
|
|
74
|
-
- `templates/prompts/audit-reconciliation.prompt.md`
|
|
75
|
-
- `templates/prompts/design.prompt.md`
|
|
76
|
-
- `templates/prompts/epic-design.prompt.md`
|
|
77
|
-
- `templates/prompts/prd.prompt.md`
|
|
78
|
-
- `templates/prompts/task-breakdown.prompt.md`
|
|
79
|
-
- `templates/prompts/task-building.prompt.md`
|
|
80
|
-
- `templates/prompts/task-planning.prompt.md`
|
|
81
|
-
- `test/templates/project-templates.test.ts`
|
|
82
|
-
- `test/templates/prompt-templates.test.ts`
|
|
83
|
-
- `test/templates/render-integrity.test.ts`
|
|
84
|
-
- `test/templates/router-template.test.ts`
|
|
85
|
-
- `test/templates/template-registry.test.ts`
|
|
86
|
-
|
|
87
|
-
## Quality gates
|
|
88
|
-
|
|
89
|
-
- `npm run build` passed. Output: `dist/cli.js` 4.83 KB.
|
|
90
|
-
- `npm run typecheck` passed.
|
|
91
|
-
- `npm run lint` passed.
|
|
92
|
-
- `npm run format:check` passed.
|
|
93
|
-
- `npm test` passed: 26 test files, 299 tests.
|
|
94
|
-
|
|
95
|
-
## Coverage summary
|
|
96
|
-
|
|
97
|
-
| Branch / behavior | Test file |
|
|
98
|
-
| ---------------------------------------- | --------------------------------------------------- |
|
|
99
|
-
| Template path routing by template family | template-registry.test.ts |
|
|
100
|
-
| Missing template boundary error | template-registry.test.ts |
|
|
101
|
-
| Placeholder interpolation | template-registry.test.ts, render-integrity.test.ts |
|
|
102
|
-
| Required project template files/markers | project-templates.test.ts |
|
|
103
|
-
| Router states and read-order markers | router-template.test.ts |
|
|
104
|
-
| Prompt template set and required markers | prompt-templates.test.ts |
|
|
105
|
-
| Audit prompt single-bundle guidance | prompt-templates.test.ts |
|
|
106
|
-
|
|
107
|
-
## Deviations from epic Design
|
|
108
|
-
|
|
109
|
-
| Item | Status | Note |
|
|
110
|
-
| ------------------------- | ------ | ------------------------------------------------------------------------------------------------------ |
|
|
111
|
-
| Audit snapshot | manual | Generated by the agent because the audit CLI does not exist yet. |
|
|
112
|
-
| Template loader errors | done | Loader currently reports missing read failures as `not_found`. |
|
|
113
|
-
| Interpolation variables | done | Implemented for `projectName`, `releaseNumber`, and `releaseName`. |
|
|
114
|
-
| Audit proposal output | done | E04 prompt locks audit reconciliation to one `proposals.md` bundle. |
|
|
115
|
-
| Audit initiation friction | found | The router assumed the snapshot existed; this caused an unnecessary missing-file probe at audit start. |
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: audit-snapshot
|
|
3
|
-
epic: E05-init-command
|
|
4
|
-
created: 2026-04-27
|
|
5
|
-
manual: true
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Audit Snapshot: E05-init-command
|
|
9
|
-
|
|
10
|
-
Manual snapshot generated because `savepoint audit` is not implemented yet.
|
|
11
|
-
|
|
12
|
-
## Source file tree
|
|
13
|
-
|
|
14
|
-
```text
|
|
15
|
-
src/
|
|
16
|
-
cli.ts - async process entrypoint delegates to runCli()
|
|
17
|
-
cli/
|
|
18
|
-
args.ts - init option parsing and validation
|
|
19
|
-
exit-codes.ts - shared CLI exit code constants, including boundary errors
|
|
20
|
-
help.ts - init help text
|
|
21
|
-
run.ts - async command dispatcher and init dependency injection
|
|
22
|
-
commands/
|
|
23
|
-
init.ts - init command orchestration
|
|
24
|
-
init/
|
|
25
|
-
clipboard.ts - best-effort clipboard command selection and execution
|
|
26
|
-
dev-deps.ts - package manager detection and optional install execution
|
|
27
|
-
magic-prompt.ts - post-init prompt generation from template assets
|
|
28
|
-
validate-target.ts - target directory safety checks
|
|
29
|
-
write-scaffold.ts - template-backed scaffold writer
|
|
30
|
-
templates/
|
|
31
|
-
manifest.ts - project and prompt template registry entries
|
|
32
|
-
templates/
|
|
33
|
-
project/
|
|
34
|
-
AGENTS.md
|
|
35
|
-
.savepoint/
|
|
36
|
-
router.md
|
|
37
|
-
metrics/
|
|
38
|
-
context-bench.md
|
|
39
|
-
prompts/
|
|
40
|
-
magic-prompt.prompt.md
|
|
41
|
-
test/
|
|
42
|
-
cli/
|
|
43
|
-
args.test.ts
|
|
44
|
-
commands.test.ts
|
|
45
|
-
run.test.ts
|
|
46
|
-
init/
|
|
47
|
-
clipboard.test.ts
|
|
48
|
-
dev-deps.test.ts
|
|
49
|
-
init-command.test.ts
|
|
50
|
-
magic-prompt.test.ts
|
|
51
|
-
validate-target.test.ts
|
|
52
|
-
write-scaffold.test.ts
|
|
53
|
-
templates/
|
|
54
|
-
project-templates.test.ts
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Config / metadata changes
|
|
58
|
-
|
|
59
|
-
| Path | Purpose |
|
|
60
|
-
| --------------------------------------------------------- | --------------------------------------- |
|
|
61
|
-
| `.savepoint/router.md` | Router state reached E05 audit handoff. |
|
|
62
|
-
| `E05-init-command/tasks/T001-T006.md` | Six completed E05 task files. |
|
|
63
|
-
| `.savepoint/audit/E05-init-command/snapshot.md` | Manual audit snapshot for this epic. |
|
|
64
|
-
| `.savepoint/audit/E05-init-command/proposals.md` | Single audit proposal bundle, pending. |
|
|
65
|
-
| `.savepoint/metrics/context-bench.md` | Context rows for E05 task building. |
|
|
66
|
-
| `AGENTS.md` | Codebase Map needs E05 module refresh. |
|
|
67
|
-
| `.savepoint/releases/v1/epics/E05-init-command/E05-Detail.md` | Epic Design needs implemented-as notes. |
|
|
68
|
-
|
|
69
|
-
## New files introduced by E05
|
|
70
|
-
|
|
71
|
-
- `src/init/clipboard.ts`
|
|
72
|
-
- `src/init/dev-deps.ts`
|
|
73
|
-
- `src/init/magic-prompt.ts`
|
|
74
|
-
- `src/init/validate-target.ts`
|
|
75
|
-
- `src/init/write-scaffold.ts`
|
|
76
|
-
- `templates/project/.savepoint/metrics/context-bench.md`
|
|
77
|
-
- `templates/prompts/magic-prompt.prompt.md`
|
|
78
|
-
- `test/init/clipboard.test.ts`
|
|
79
|
-
- `test/init/dev-deps.test.ts`
|
|
80
|
-
- `test/init/init-command.test.ts`
|
|
81
|
-
- `test/init/magic-prompt.test.ts`
|
|
82
|
-
- `test/init/validate-target.test.ts`
|
|
83
|
-
- `test/init/write-scaffold.test.ts`
|
|
84
|
-
|
|
85
|
-
## Changed files in scope
|
|
86
|
-
|
|
87
|
-
- `src/cli.ts`
|
|
88
|
-
- `src/cli/args.ts`
|
|
89
|
-
- `src/cli/exit-codes.ts`
|
|
90
|
-
- `src/cli/help.ts`
|
|
91
|
-
- `src/cli/run.ts`
|
|
92
|
-
- `src/commands/init.ts`
|
|
93
|
-
- `src/templates/manifest.ts`
|
|
94
|
-
- `templates/project/AGENTS.md`
|
|
95
|
-
- `templates/project/.savepoint/router.md`
|
|
96
|
-
- `test/cli/args.test.ts`
|
|
97
|
-
- `test/cli/commands.test.ts`
|
|
98
|
-
- `test/cli/run.test.ts`
|
|
99
|
-
- `test/templates/project-templates.test.ts`
|
|
100
|
-
|
|
101
|
-
## Quality gates
|
|
102
|
-
|
|
103
|
-
- Focused init tests passed during task closeout.
|
|
104
|
-
- Full quality gate suite passed during T006 closeout per task context.
|
|
105
|
-
|
|
106
|
-
## Coverage summary
|
|
107
|
-
|
|
108
|
-
| Branch / behavior | Test file |
|
|
109
|
-
| ----------------------------------------- | --------------------------------------- |
|
|
110
|
-
| Init CLI option parsing and invalid flags | args.test.ts |
|
|
111
|
-
| Init command dispatch and async runner | run.test.ts, init-command.test.ts |
|
|
112
|
-
| Target directory validation | validate-target.test.ts |
|
|
113
|
-
| Scaffold writing and overwrite behavior | write-scaffold.test.ts |
|
|
114
|
-
| Magic prompt generation | magic-prompt.test.ts |
|
|
115
|
-
| Clipboard success, skip, and failure | clipboard.test.ts, init-command.test.ts |
|
|
116
|
-
| Dev-dependency install path | dev-deps.test.ts, init-command.test.ts |
|
|
117
|
-
| Template registry and project assets | project-templates.test.ts |
|
|
118
|
-
|
|
119
|
-
## Deviations from epic Design
|
|
120
|
-
|
|
121
|
-
| Item | Status | Note |
|
|
122
|
-
| --------------------- | ------ | --------------------------------------------------------------------------------------------- |
|
|
123
|
-
| Audit snapshot | manual | Generated by the agent because the audit CLI does not exist yet. |
|
|
124
|
-
| Init command boundary | done | `runCli()` and init orchestration became async to support clipboard and install subprocesses. |
|
|
125
|
-
| Optional install | done | Implemented as explicit flag-driven behavior with package manager detection. |
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
# Audit Proposals: E05-phase-transitions
|
|
2
|
-
|
|
3
|
-
## Target File
|
|
4
|
-
|
|
5
|
-
`.savepoint/Design.md`
|
|
6
|
-
|
|
7
|
-
## Insert After
|
|
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
|
-
- **Phase transitions** are owned by the Go board/data boundary: `internal/board/transitions.go` defines planned/in_progress/done phase movement and gate checks; `internal/data/write.go` owns mtime-checked task and router frontmatter writes.
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Target File
|
|
20
|
-
|
|
21
|
-
`AGENTS.md`
|
|
22
|
-
|
|
23
|
-
## Insert After
|
|
24
|
-
|
|
25
|
-
```md
|
|
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
|
-
```
|
|
28
|
-
|
|
29
|
-
## With
|
|
30
|
-
|
|
31
|
-
```md
|
|
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
|
-
```
|
|
35
|
-
|
|
36
|
-
## Target File
|
|
37
|
-
|
|
38
|
-
`.savepoint/releases/v1/epics/E05-phase-transitions/E05-Detail.md`
|
|
39
|
-
|
|
40
|
-
## Insert After
|
|
41
|
-
|
|
42
|
-
```md
|
|
43
|
-
## Definition of Done
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## With
|
|
47
|
-
|
|
48
|
-
```md
|
|
49
|
-
## Implemented As
|
|
50
|
-
|
|
51
|
-
- `internal/board/transitions.go` implements in-memory phase movement and `CanAdvance` gate checks.
|
|
52
|
-
- `internal/board/update.go` maps Space and Backspace to transition helpers and displays gate-block reasons in the status bar.
|
|
53
|
-
- `internal/data/write.go` adds mtime-checked write helpers for task frontmatter and router current state.
|
|
54
|
-
- `internal/board/model.go` carries `Root` and writes selected release/epic changes back to `router.md`.
|
|
55
|
-
|
|
56
|
-
## Audit Delta
|
|
57
|
-
|
|
58
|
-
- The task write helper exists, but board Space/Backspace does not yet call it, so task markdown write-back is not implemented on the live interaction path.
|
|
59
|
-
- Router write-back is implemented only for release/epic overlay selection, preserving the existing `next_action` value.
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Quality Review
|
|
63
|
-
|
|
64
|
-
## Must Fix Before Close
|
|
65
|
-
|
|
66
|
-
- `internal/board/update.go:47` and `internal/board/update.go:64`: Space/Backspace mutate `m.AllTasks` and refresh the grouped view, but never call `data.WriteTaskStatus`. The epic Definition of Done says task `.md` files are updated and mtime conflicts are detected/reported. The current live board path is memory-only, so the central write-back acceptance criteria from T003 are not satisfied outside isolated helper tests.
|
|
67
|
-
- `internal/board/update.go:47`: the update path has no way to know a selected task file path or expected task mtime. `data.Task` carries task metadata but not source path/mtime, and the board model does not keep a side table for them. That means mtime conflict detection cannot be enforced for task status transitions as designed.
|
|
68
|
-
|
|
69
|
-
## Must Fix Before Next Epic
|
|
70
|
-
|
|
71
|
-
- Add reducer/integration tests for Space and Backspace that verify the board either writes through `WriteTaskStatus` successfully or reports `ErrMtimeConflict` without mutating local state. Current tests cover `Advance`, `Retreat`, and `WriteTaskStatus` independently, but not the user-facing transition workflow.
|
|
72
|
-
- Harden `WriteTaskStatus` body preservation. `internal/data/write.go:54` computes the body offset from the trimmed frontmatter returned by `extractFrontmatter`; frontmatter with extra blank lines or trailing whitespace can shift the splice point. Prefer deriving the body boundary from delimiter indexes in the original normalized content.
|
|
73
|
-
|
|
74
|
-
## Carry Forward
|
|
75
|
-
|
|
76
|
-
- Keep `WriteRouterState` as the data-layer boundary for router YAML updates, but document that callers must preserve `next_action` by reading existing router state first.
|
|
77
|
-
- Consider splitting `internal/data/write.go` if task writes and router writes grow separate validation rules; for now it is still small enough to remain a single file.
|
|
78
|
-
|
|
79
|
-
## Already Fixed
|
|
80
|
-
|
|
81
|
-
- Phase order helpers cover planned -> in_progress/build -> test -> audit -> done and the reverse path.
|
|
82
|
-
- Dependency gates block audit -> done when dependencies are missing or not done.
|
|
83
|
-
- Router release/epic selection writes through the data-layer mtime helper and reports errors via `StatusMessage`.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# Audit Snapshot: E05-phase-transitions
|
|
2
|
-
|
|
3
|
-
Manual snapshot created because `.savepoint/audit/E05-phase-transitions/snapshot.md` was missing when the router was already in `audit-pending`.
|
|
4
|
-
|
|
5
|
-
## Router State
|
|
6
|
-
|
|
7
|
-
```yaml
|
|
8
|
-
state: audit-pending
|
|
9
|
-
release: v1
|
|
10
|
-
epic: E05-phase-transitions
|
|
11
|
-
task: ""
|
|
12
|
-
next_action: "Epic E05-phase-transitions is complete. Start a new agent session for the audit."
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Epic Scope
|
|
16
|
-
|
|
17
|
-
- `.savepoint/releases/v1/epics/E05-phase-transitions/E05-Detail.md`
|
|
18
|
-
- `.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T001-phase-stepping.md`
|
|
19
|
-
- `.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T002-gates.md`
|
|
20
|
-
- `.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T003-write-task.md`
|
|
21
|
-
- `.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T004-write-router.md`
|
|
22
|
-
|
|
23
|
-
## Changed Files Reviewed
|
|
24
|
-
|
|
25
|
-
- `internal/board/transitions.go`
|
|
26
|
-
- `internal/board/transitions_test.go`
|
|
27
|
-
- `internal/board/update.go`
|
|
28
|
-
- `internal/board/model.go`
|
|
29
|
-
- `internal/data/write.go`
|
|
30
|
-
- `internal/data/write_test.go`
|
|
31
|
-
|
|
32
|
-
## Audit Notes
|
|
33
|
-
|
|
34
|
-
- The repository has a broad dirty worktree unrelated to this audit. This snapshot is intentionally scoped to the active epic design, task context logs, and files named by the E05 design/tasks.
|
|
35
|
-
- Task closeout logs report `go build ./...`, `go vet ./...`, and `go test ./...` passing during implementation.
|
|
36
|
-
- The audit did not rerun quality gates; this artifact is the semantic reconciliation snapshot.
|