savepoint 1.0.4 → 1.0.7
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/package.json +11 -4
- package/savepoint.exe +0 -0
- package/.claude/settings.local.json +0 -38
- package/.github/workflows/ci.yml +0 -20
- package/.golangci.yml +0 -11
- package/.prettierignore +0 -4
- package/.savepoint/Design.md +0 -207
- package/.savepoint/PRD.md +0 -58
- package/.savepoint/config.yml +0 -27
- package/.savepoint/releases/v1/epics/E01-go-setup/E01-Detail.md +0 -39
- package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T001-init-module.md +0 -42
- package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T002-entrypoint.md +0 -23
- package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T003-directory-structure.md +0 -24
- package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T004-makefile.md +0 -23
- package/.savepoint/releases/v1/epics/E02-data-readers/E02-Detail.md +0 -61
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T001-task-struct.md +0 -29
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T002-frontmatter-parser.md +0 -30
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T003-router-reader.md +0 -29
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T004-config-reader.md +0 -29
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T005-discovery.md +0 -30
- package/.savepoint/releases/v1/epics/E03-board-tui-core/E03-Detail.md +0 -38
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T001-model.md +0 -29
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T002-update-loop.md +0 -30
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T003-view.md +0 -34
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T004-styles.md +0 -29
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T005-layout.md +0 -42
- package/.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md +0 -44
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T001-column.md +0 -34
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T002-card.md +0 -33
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T003-epic-panel.md +0 -49
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T004-detail-overlay.md +0 -40
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T005-release-dropdown.md +0 -33
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T006-help-overlay.md +0 -34
- package/.savepoint/releases/v1/epics/E05-phase-transitions/E05-Detail.md +0 -38
- package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T001-phase-stepping.md +0 -29
- package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T002-gates.md +0 -31
- package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T003-write-task.md +0 -31
- package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T004-write-router.md +0 -31
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/E06-Detail.md +0 -62
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T001-color-system.md +0 -39
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T002-header-and-dividers.md +0 -52
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T003-footer-status-bar.md +0 -52
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T004-component-refinement.md +0 -53
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T005-restore-nav-hints.md +0 -39
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T007-detail-card-fixes.md +0 -36
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T008-checkbox-states.md +0 -40
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T009-router-priority-marker.md +0 -48
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T010-auto-refresh-watcher.md +0 -66
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/Design.md +0 -39
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T001-archive-epics.md +0 -20
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T002-rewrite-prd.md +0 -22
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T003-create-epic-stubs.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T004-update-router.md +0 -22
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/Design.md +0 -118
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/handoff.md +0 -9
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T001-package-baseline.md +0 -45
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T002-typescript-build.md +0 -48
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T003-vitest-smoke.md +0 -43
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T004-lint-format-gates.md +0 -45
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T005-scaffold-verification.md +0 -40
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/Design.md +0 -142
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T001-domain-ids-status.md +0 -27
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T002-markdown-frontmatter-boundary.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T003-task-documents.md +0 -29
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T004-release-epic-router-config-readers.md +0 -30
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T005-dependency-validation.md +0 -29
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T006-epic-task-set-reader.md +0 -29
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T007-quality-gates.md +0 -31
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/Design.md +0 -40
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T001-phase-types.md +0 -27
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T002-phase-frontmatter.md +0 -25
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T003-simplify-config.md +0 -26
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T004-simplify-router-domain.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/Design.md +0 -122
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T001-argument-parser-contract.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T002-help-text-generation.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T003-terminal-environment-detection.md +0 -27
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T004-command-stub-modules.md +0 -29
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T005-cli-runner-dispatch.md +0 -34
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T006-entrypoint-quality-gates.md +0 -32
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/Design.md +0 -43
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T001-strip-args.md +0 -26
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T002-strip-help.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T003-strip-run.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T004-delete-commands.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T005-update-cli-tests.md +0 -22
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/Design.md +0 -48
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T001-board-data-phases.md +0 -26
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T002-phase-rendering.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T003-detail-pane-phases.md +0 -27
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T004-phase-transitions.md +0 -42
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T005-phase-gates.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T006-phase-write-back.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T007-remove-audit-flow.md +0 -27
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T008-board-tests.md +0 -25
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/Design.md +0 -85
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T001-project-template-assets.md +0 -17
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T002-release-and-prompt-assets.md +0 -20
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T003-template-registry-renderer.md +0 -22
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T004-template-integrity-tests.md +0 -17
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T005-template-closeout-quality-gates.md +0 -16
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/Design.md +0 -88
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T001-init-cli-contract.md +0 -22
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T002-target-validation.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T003-scaffold-writer.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T004-magic-prompt-and-clipboard.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T005-dev-deps-install-option.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T006-init-command-integration.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/Design.md +0 -53
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T001-delete-dead-src.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T002-delete-dead-tests.md +0 -26
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T003-delete-assets.md +0 -25
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T004-clean-savepoint.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T005-rewrite-agents-md.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T006-clean-package-json.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T007-verify.md +0 -25
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/Design.md +0 -104
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T001-board-command-data.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T002-board-view-state.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T003-transition-gates-and-writes.md +0 -25
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T004-terminal-theme.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T005-ink-board-ui.md +0 -26
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T006-board-integration-audit-entry.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/Design.md +0 -88
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T001-audit-cli-contract.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T002-quality-gate-runner.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T003-snapshot-and-prompt.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T004-audit-orchestration-router.md +0 -27
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T005-proposal-validation-apply.md +0 -25
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T006-audit-review-state.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T007-audit-review-ui.md +0 -26
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T008-audit-pipeline-integration.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/Design.md +0 -103
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T001-acceptance-criteria-model.md +0 -30
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T002-release-task-set-reader.md +0 -33
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T003-board-data-and-plain-output.md +0 -34
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T004-board-selection-state.md +0 -33
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T005-ink-board-layout-cleanup.md +0 -37
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T006-task-detail-popup.md +0 -36
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T007-templates-acceptance-criteria.md +0 -34
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T008-board-workflow-integration.md +0 -41
- package/.savepoint/releases/v1/epics/_archived/E09-doctor-command/Design.md +0 -70
- package/.savepoint/releases/v1/epics/_archived/E10-docs-and-packaging/Design.md +0 -68
- package/.savepoint/releases/v1/epics/_archived/E11-release-validation/Design.md +0 -68
- package/.savepoint/releases/v1/v1-PRD.md +0 -66
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/E01-Detail.md +0 -40
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T001-next-activity-header.md +0 -56
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T002-rename-epic-design-files.md +0 -38
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T003-rename-release-prd.md +0 -28
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T004-update-instruction-files.md +0 -51
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T005-update-cross-references.md +0 -45
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T006-column-and-detail-scrolling.md +0 -68
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T007-column-focus-border-stability.md +0 -57
- package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Audit.md +0 -124
- package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Detail.md +0 -49
- package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T001-fix-makefile.md +0 -37
- package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T002-linux-build-target.md +0 -38
- package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T003-macos-build-target.md +0 -36
- package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T004-smoke-tests-and-artifacts.md +0 -59
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/E03-Audit.md +0 -195
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/E03-Detail.md +0 -45
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T001-border-resize-fix.md +0 -40
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T002-next-activity-below-header.md +0 -64
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T003-checkbox-rendering-fix.md +0 -56
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T005-unify-status-glyphs.md +0 -65
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T006-forced-256-color-profile.md +0 -36
- package/.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Audit.md +0 -167
- package/.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Detail.md +0 -51
- package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T001-sidebar-focusable-navigation.md +0 -65
- package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T002-epic-detail-overlay.md +0 -73
- package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T003-epic-status-glyphs.md +0 -73
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Audit.md +0 -237
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Detail.md +0 -54
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T001-update-agents-md.md +0 -45
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T002-update-router-md.md +0 -40
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T003-update-design-md.md +0 -47
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T004-implement-m-hotkey.md +0 -98
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T005-update-help-overlay.md +0 -33
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T006-tests-and-quality-gates.md +0 -62
- package/.savepoint/releases/v1.1/epics/E06-audit-command/E06-Audit.md +0 -56
- package/.savepoint/releases/v1.1/epics/E06-audit-command/E06-Detail.md +0 -63
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T005-proposals.md +0 -44
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T007-apply-close.md +0 -35
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T009-integration.md +0 -40
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T010-audit-file-migration.md +0 -45
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T011-model-tab-state.md +0 -26
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T012-epic-audit-render.md +0 -33
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T013-handle-tab-keys.md +0 -34
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T014-tab-indicator.md +0 -33
- package/.savepoint/releases/v1.1/epics/E07-init-command/E07-Audit.md +0 -336
- package/.savepoint/releases/v1.1/epics/E07-init-command/E07-Detail.md +0 -61
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T001-cli-entrypoint.md +0 -37
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T002-target-validation.md +0 -28
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T003-scaffold-writer.md +0 -46
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T004-atomic-writes.md +0 -27
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T005-magic-prompt.md +0 -25
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T006-clipboard.md +0 -26
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T007-integration-test.md +0 -26
- package/.savepoint/releases/v1.1/epics/E08-board-command/E08-Audit.md +0 -333
- package/.savepoint/releases/v1.1/epics/E08-board-command/E08-Detail.md +0 -68
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T001-cli-entrypoint.md +0 -26
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T002-non-tty-fallback.md +0 -27
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T003-tui-app-shell.md +0 -28
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T004-board-model.md +0 -29
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T005-detail-pane.md +0 -27
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T006-status-transitions.md +0 -29
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T007-theme-fallbacks.md +0 -29
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T008-integration-test.md +0 -27
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/E09-Audit.md +0 -207
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/E09-Detail.md +0 -65
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T001-cli-entrypoint.md +0 -24
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T002-config-router-validation.md +0 -28
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T003-structure-checks.md +0 -29
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T004-dependency-checks.md +0 -27
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T005-audit-orphan-checks.md +0 -28
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T006-quality-gates-report.md +0 -31
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/E11-Detail.md +0 -36
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T001-debug-logging.md +0 -25
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T002-increase-debounce.md +0 -21
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T003-error-handling.md +0 -22
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T004-test-verify.md +0 -29
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/E12-Audit.md +0 -444
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/E12-Detail.md +0 -45
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T001-default-phase.md +0 -35
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T002-default-status.md +0 -19
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T003-better-errors.md +0 -29
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T004-validate-on-write.md +0 -25
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T005-tests.md +0 -37
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/E13-Audit.md +0 -118
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/E13-Detail.md +0 -73
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T001-safe-cleanup.md +0 -66
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T002-bug-fixes.md +0 -35
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T003-centralize-duplication.md +0 -60
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T004-infrastructure.md +0 -33
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T005-decompose-update.md +0 -37
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T006-async-io.md +0 -40
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T007-test-coverage.md +0 -37
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Audit.md +0 -267
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Detail.md +0 -54
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T001-group-model.md +0 -39
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T002-data-interfaces.md +0 -42
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T003-discover-orphans.md +0 -33
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T004-epic-panel-headings.md +0 -35
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T005-shell-tokenization.md +0 -27
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T006-unify-enums.md +0 -29
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T007-testutil-package.md +0 -28
- package/.savepoint/releases/v1.1/epics/E15-hardening/E15-Audit.md +0 -272
- package/.savepoint/releases/v1.1/epics/E15-hardening/E15-Detail.md +0 -60
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T001-benchmarks.md +0 -31
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T002-fuzz-targets.md +0 -34
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T003-debug-flag.md +0 -30
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T004-dist-checksums.md +0 -27
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T005-windows-targets.md +0 -28
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T006-abbreviation-splitting.md +0 -26
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T007-root-test-allowlist.md +0 -33
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T008-ci-and-release-automation.md +0 -46
- package/.savepoint/releases/v1.1/epics/_archived/T001-cli-entrypoint.md +0 -25
- package/.savepoint/releases/v1.1/epics/_archived/T002-quality-gates.md +0 -27
- package/.savepoint/releases/v1.1/epics/_archived/T003-snapshot.md +0 -27
- package/.savepoint/releases/v1.1/epics/_archived/T004-ai-reconcile.md +0 -29
- package/.savepoint/releases/v1.1/epics/_archived/T006-tui-review.md +0 -31
- package/.savepoint/releases/v1.1/epics/_archived/T008-skip-handling.md +0 -34
- package/.savepoint/releases/v1.1/v1.1-PRD.md +0 -139
- package/.savepoint/router.md +0 -57
- package/.savepoint/visual-identity.md +0 -125
- package/AGENTS.md +0 -99
- package/CLAUDE.md +0 -1
- package/GEMINI.md +0 -1
- package/Makefile +0 -31
- package/agent-skills/ink-tui-design/SKILL.md +0 -309
- package/agent-skills/ink-tui-design/references/component-patterns.md +0 -371
- package/agent-skills/ink-tui-design/references/hooks-guide.md +0 -436
- package/agent-skills/ink-tui-design/references/ink-gotchas.md +0 -330
- package/agent-skills/ink-tui-design/references/testing-patterns.md +0 -384
- package/agent-skills/savepoint-audit/SKILL.md +0 -87
- package/agent-skills/savepoint-build-task/SKILL.md +0 -44
- package/agent-skills/savepoint-create-plan/SKILL.md +0 -33
- package/agent-skills/savepoint-create-task/SKILL.md +0 -44
- package/agent-skills/savepoint-draft-prd/SKILL.md +0 -37
- package/agent-skills/savepoint-system-design/SKILL.md +0 -38
- package/agent-skills/superpowers/brainstorming/SKILL.md +0 -165
- package/agent-skills/superpowers/brainstorming/visual-companion.md +0 -304
- package/agent-skills/superpowers/dispatching-parallel-agents/SKILL.md +0 -193
- package/agent-skills/superpowers/executing-plans/SKILL.md +0 -77
- package/agent-skills/superpowers/finishing-a-development-branch/SKILL.md +0 -213
- package/agent-skills/superpowers/receiving-code-review/SKILL.md +0 -226
- package/agent-skills/superpowers/requesting-code-review/SKILL.md +0 -115
- package/agent-skills/superpowers/requesting-code-review/code-reviewer.md +0 -160
- package/agent-skills/superpowers/subagent-driven-development/SKILL.md +0 -292
- package/agent-skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +0 -27
- package/agent-skills/superpowers/subagent-driven-development/implementer-prompt.md +0 -113
- package/agent-skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +0 -61
- package/agent-skills/superpowers/systematic-debugging/SKILL.md +0 -305
- package/agent-skills/superpowers/systematic-debugging/condition-based-waiting.md +0 -122
- package/agent-skills/superpowers/systematic-debugging/defense-in-depth.md +0 -130
- package/agent-skills/superpowers/systematic-debugging/root-cause-tracing.md +0 -183
- package/agent-skills/superpowers/test-driven-development/SKILL.md +0 -389
- package/agent-skills/superpowers/test-driven-development/testing-anti-patterns.md +0 -317
- package/agent-skills/superpowers/verification-before-completion/SKILL.md +0 -147
- package/agent-skills/superpowers/writing-plans/SKILL.md +0 -159
- package/agent-skills/superpowers/writing-plans/plan-document-reviewer-prompt.md +0 -49
- package/agent_skills_test.go +0 -91
- package/assets/banner.png +0 -0
- package/assets/logo.png +0 -0
- package/assets/strawman.png +0 -0
- package/cmd/board.go +0 -59
- package/cmd/board_test.go +0 -137
- package/cmd/doctor.go +0 -53
- package/cmd/doctor_test.go +0 -146
- package/cmd/init.go +0 -63
- package/cmd/init_test.go +0 -104
- package/go.mod +0 -36
- package/go.sum +0 -75
- package/internal/board/board.go +0 -181
- package/internal/board/board_test.go +0 -168
- package/internal/board/card.go +0 -129
- package/internal/board/card_test.go +0 -287
- package/internal/board/column.go +0 -156
- package/internal/board/column_test.go +0 -210
- package/internal/board/debug.go +0 -26
- package/internal/board/debug_test.go +0 -108
- package/internal/board/detail.go +0 -218
- package/internal/board/detail_test.go +0 -388
- package/internal/board/epic_panel.go +0 -264
- package/internal/board/epic_panel_test.go +0 -869
- package/internal/board/help.go +0 -41
- package/internal/board/help_test.go +0 -86
- package/internal/board/integration_test.go +0 -266
- package/internal/board/interfaces.go +0 -65
- package/internal/board/interfaces_test.go +0 -114
- package/internal/board/io.go +0 -93
- package/internal/board/layout.go +0 -68
- package/internal/board/layout_test.go +0 -106
- package/internal/board/model.go +0 -235
- package/internal/board/model_test.go +0 -67
- package/internal/board/plain.go +0 -88
- package/internal/board/plain_test.go +0 -117
- package/internal/board/release.go +0 -34
- package/internal/board/release_test.go +0 -177
- package/internal/board/render_policy_test.go +0 -77
- package/internal/board/status.go +0 -23
- package/internal/board/theme.go +0 -24
- package/internal/board/theme_test.go +0 -31
- package/internal/board/transitions.go +0 -113
- package/internal/board/transitions_test.go +0 -164
- package/internal/board/tui.go +0 -32
- package/internal/board/update.go +0 -575
- package/internal/board/update_test.go +0 -602
- package/internal/board/util.go +0 -76
- package/internal/board/view.go +0 -317
- package/internal/board/view_test.go +0 -377
- package/internal/board/watch.go +0 -136
- package/internal/buildtool/main.go +0 -249
- package/internal/buildtool/main_test.go +0 -224
- package/internal/data/config.go +0 -101
- package/internal/data/config_test.go +0 -122
- package/internal/data/discover.go +0 -178
- package/internal/data/discover_test.go +0 -130
- package/internal/data/errors.go +0 -13
- package/internal/data/fuzz_test.go +0 -75
- package/internal/data/lifecycle.go +0 -44
- package/internal/data/lifecycle_test.go +0 -41
- package/internal/data/parser.go +0 -243
- package/internal/data/parser_test.go +0 -281
- package/internal/data/router.go +0 -52
- package/internal/data/router_test.go +0 -35
- package/internal/data/task.go +0 -57
- package/internal/data/task_test.go +0 -51
- package/internal/data/testdata/fuzz/FuzzSplitFrontmatterBody/68eb66b0fe91e7e3 +0 -2
- package/internal/data/write.go +0 -221
- package/internal/data/write_test.go +0 -623
- package/internal/doctor/checks.go +0 -567
- package/internal/doctor/checks_test.go +0 -716
- package/internal/doctor/gates.go +0 -193
- package/internal/doctor/gates_test.go +0 -166
- package/internal/doctor/interfaces.go +0 -64
- package/internal/doctor/interfaces_test.go +0 -104
- package/internal/doctor/repairs.go +0 -80
- package/internal/doctor/repairs_test.go +0 -81
- package/internal/doctor/report.go +0 -157
- package/internal/doctor/report_test.go +0 -89
- package/internal/init/clipboard.go +0 -146
- package/internal/init/clipboard_test.go +0 -74
- package/internal/init/install.go +0 -16
- package/internal/init/integration_test.go +0 -197
- package/internal/init/prompt.go +0 -14
- package/internal/init/prompt_test.go +0 -77
- package/internal/init/scaffold.go +0 -59
- package/internal/init/scaffold_test.go +0 -179
- package/internal/init/template_freshness_test.go +0 -56
- package/internal/init/validate.go +0 -85
- package/internal/init/validate_test.go +0 -141
- package/internal/init/write.go +0 -73
- package/internal/init/write_test.go +0 -91
- package/internal/styles/palette.go +0 -49
- package/internal/styles/styles.go +0 -139
- package/internal/styles/styles_test.go +0 -133
- package/internal/testutil/fixture.go +0 -113
- package/internal/testutil/fs.go +0 -26
- package/main.go +0 -136
- package/project-audit/audit_report_glm_5.1.md +0 -411
- package/project-audit/audit_report_opus_4.6.md +0 -406
- package/project-audit/consolidated-audit-report.md +0 -456
- package/scripts/vitest-preload.cjs +0 -95
- package/templates/project/.savepoint/Design.md +0 -47
- package/templates/project/.savepoint/PRD.md +0 -34
- package/templates/project/.savepoint/config.yml +0 -27
- package/templates/project/.savepoint/router.md +0 -153
- package/templates/project/.savepoint/visual-identity.md +0 -122
- package/templates/project/AGENTS.md +0 -88
- package/templates/project/agent-skills/savepoint-audit/SKILL.md +0 -87
- package/templates/project/agent-skills/savepoint-build-task/SKILL.md +0 -44
- package/templates/project/agent-skills/savepoint-create-plan/SKILL.md +0 -33
- package/templates/project/agent-skills/savepoint-create-task/SKILL.md +0 -44
- package/templates/project/agent-skills/savepoint-draft-prd/SKILL.md +0 -37
- package/templates/project/agent-skills/savepoint-system-design/SKILL.md +0 -38
- package/templates/prompts/audit-reconciliation.prompt.md +0 -72
- package/templates/prompts/design.prompt.md +0 -45
- package/templates/prompts/epic-design.prompt.md +0 -43
- package/templates/prompts/magic-prompt.prompt.md +0 -7
- package/templates/prompts/prd.prompt.md +0 -42
- package/templates/prompts/task-breakdown.prompt.md +0 -54
- package/templates/prompts/task-building.prompt.md +0 -38
- package/templates/prompts/task-planning.prompt.md +0 -53
- package/templates/release/v1/PRD.md +0 -37
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
version: 1
|
|
3
|
-
name: "Simplified Board"
|
|
4
|
-
status: in_progress
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Release v1 — Simplified Board
|
|
8
|
-
|
|
9
|
-
## Simplification Objective
|
|
10
|
-
|
|
11
|
-
The original v1 scope (11 epics, 5 CLI commands, full audit pipeline) proved over-engineered. This release strips savepoint back to its essential value: a board for tracking AI-driven development work through phases.
|
|
12
|
-
|
|
13
|
-
**Stack change:** Ink/TypeScript → Bubble Tea/Go. Full rewrite.
|
|
14
|
-
|
|
15
|
-
**What stays:**
|
|
16
|
-
- `savepoint board` — Bubble Tea TUI for viewing and moving tasks
|
|
17
|
-
- The `.savepoint/` data structure: router → release → epic → task
|
|
18
|
-
- AGENTS.md as the agent bootstrap file
|
|
19
|
-
|
|
20
|
-
**What goes:**
|
|
21
|
-
- `init`, `audit`, `doctor` commands
|
|
22
|
-
- Full 6-step audit pipeline
|
|
23
|
-
- Template scaffolding and prompt generation
|
|
24
|
-
- Quality gates, divergence thresholds, snapshot generation
|
|
25
|
-
- Complex router state machine (6 states → 3 states)
|
|
26
|
-
- TypeScript, React, Ink, npm, tsup, vitest
|
|
27
|
-
|
|
28
|
-
**What replaces the audit pipeline:**
|
|
29
|
-
- Tasks in `in_progress` now carry a `phase`: `build → test → audit → done`
|
|
30
|
-
- The board itself enforces phase progression
|
|
31
|
-
- Space advances phase, backspace retreats
|
|
32
|
-
- Must reach `audit` phase before advancing to `done`
|
|
33
|
-
|
|
34
|
-
## What ships in v0.2.0
|
|
35
|
-
|
|
36
|
-
- `savepoint board` — the only CLI command (Go binary)
|
|
37
|
-
- Phase-aware Kanban board: planned / in_progress (build/test/audit) / done
|
|
38
|
-
- Task status transitions with phase gating
|
|
39
|
-
- Non-TTY plain table fallback
|
|
40
|
-
- Atari-Noir theme, fully overridable via `config.yml`
|
|
41
|
-
- Go 1.23+, single binary, `go build`
|
|
42
|
-
|
|
43
|
-
## Epic breakdown
|
|
44
|
-
|
|
45
|
-
| # | Epic name | Purpose |
|
|
46
|
-
| --- | ---------------------------- | ------- |
|
|
47
|
-
| 01 | `E01-go-setup` | Initialize Go module, project structure, dependencies, build loop |
|
|
48
|
-
| 02 | `E02-data-readers` | Parse markdown/yaml, read .savepoint data (router, config, tasks) |
|
|
49
|
-
| 03 | `E03-board-tui-core` | Bubble Tea model, update loop, view, styles, responsive layout |
|
|
50
|
-
| 04 | `E04-board-components` | Columns, cards with phase glyphs, epic panel, detail overlay, dropdowns, help |
|
|
51
|
-
| 05 | `E05-phase-transitions` | Phase stepping, gates, task frontmatter write-back, router state write-back |
|
|
52
|
-
|
|
53
|
-
## Success criteria
|
|
54
|
-
|
|
55
|
-
- `savepoint board` launches and renders the phase-aware Kanban board.
|
|
56
|
-
- Space/backspace correctly advances/retreats task phases.
|
|
57
|
-
- Cannot advance to `done` without passing through `audit` phase.
|
|
58
|
-
- `go build` produces a working binary.
|
|
59
|
-
- `go test ./...` passes.
|
|
60
|
-
- No dead code, no unused dependencies, no references to deleted commands.
|
|
61
|
-
|
|
62
|
-
## Risks
|
|
63
|
-
|
|
64
|
-
- **Agent compliance.** Simpler structure should improve compliance. AGENTS.md must be crystal clear.
|
|
65
|
-
- **Phase model clarity.** Users must understand build/test/audit as sub-states of in_progress. Board rendering must make this obvious.
|
|
66
|
-
- **Go ecosystem.** New stack requires different testing patterns, dependency management, build tooling.
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: audited
|
|
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
|
-
- Board columns use virtual viewport scrolling — 4-5 cards visible with `↑/↓` indicators
|
|
18
|
-
- Detail overlay is height-capped (~70%) with scroll indicators for overflow content
|
|
19
|
-
- All scroll indicators use dim/subtle styling consistent with Atari Noir aesthetic
|
|
20
|
-
|
|
21
|
-
## Implemented As
|
|
22
|
-
|
|
23
|
-
- Header Next Activity rendering is implemented in `internal/board/view.go` using `FormatNextActivity` and `styles.HeaderRight`.
|
|
24
|
-
- Column and detail scrolling are implemented through `ColumnOffsets`, `DetailOffset`, height-aware layout, viewport slicing, and subtle scroll indicators in `internal/board/model.go`, `internal/board/layout.go`, `internal/board/update.go`, `internal/board/column.go`, and `internal/board/detail.go`.
|
|
25
|
-
- Focus border stability is implemented by rendering unfocused columns with `styles.ColumnUnfocused`, matching focused column border dimensions while using the subtle border color.
|
|
26
|
-
- Naming conventions were reconciled across workflow docs: per-epic `Design.md` files became `E##-Detail.md`, and release `PRD.md` became `{release}-PRD.md`.
|
|
27
|
-
- The originally listed fsnotify watcher scope was already present from the prior TUI epic and was reviewed as existing behavior rather than newly introduced in this epic.
|
|
28
|
-
|
|
29
|
-
## Components and files
|
|
30
|
-
|
|
31
|
-
| Path | Purpose |
|
|
32
|
-
|------|---------|
|
|
33
|
-
| `internal/board/layout.go` | Layout arithmetic and resize guards, height-aware ContentHeight |
|
|
34
|
-
| `internal/board/view.go` | Minimum width clamping, height passthrough to renderers |
|
|
35
|
-
| `internal/board/watch.go` | File watcher and reload commands |
|
|
36
|
-
| `internal/board/model.go` | Watcher lifecycle, ColumnOffsets, DetailOffset state |
|
|
37
|
-
| `internal/board/update.go` | Reload message handling, auto-scroll offsets, PageUp/PageDown |
|
|
38
|
-
| `internal/board/column.go` | Virtual viewport slicing, scroll indicator rendering |
|
|
39
|
-
| `internal/board/detail.go` | Height-capped overlay, detail scroll indicators |
|
|
40
|
-
| `internal/styles/styles.go` | ScrollIndicator style (dim/subtle) |
|
package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T001-next-activity-header.md
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-tui-optimisation/T001-next-activity-header
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Show Next Activity indicator in the TUI header bar, right-aligned, displaying the current router state"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: Next Activity Header Display
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- The header bar displays "Next Activity:" followed by a formatted state string on the right side
|
|
13
|
-
- When router state is `task-building`, displays "Build T{NNN} (E{NN}) v{N}" format (e.g., "Build T010 (E06) v1")
|
|
14
|
-
- When router state is `audit-pending`, displays "Audit E{NN}" format (e.g., "Audit E06")
|
|
15
|
-
- For `epic-design` state, displays "Design E{NN}" format
|
|
16
|
-
- For `epic-task-breakdown` state, displays "Plan E{NN}" format
|
|
17
|
-
- For `pre-implementation` state, displays "Planning v{N}" format
|
|
18
|
-
- The Next Activity text (excluding "Next Activity:" label) is capped at 20 characters maximum, with ellipsis truncation if exceeded
|
|
19
|
-
- The display gracefully degrades at narrow terminal widths (header text remains intact, Next Activity truncates but doesn't break layout)
|
|
20
|
-
- All existing tests pass
|
|
21
|
-
|
|
22
|
-
## Implementation Plan
|
|
23
|
-
|
|
24
|
-
- [x] Add `HeaderRight` style to `internal/styles/styles.go` (dim foreground, right-aligned)
|
|
25
|
-
- [x] Create `FormatNextActivity(state *data.RouterState) string` helper in `internal/board/view.go` that:
|
|
26
|
-
- Parses router state and formats compact string based on state type
|
|
27
|
-
- Truncates to max 20 chars using `xansi.Truncate` with ellipsis
|
|
28
|
-
- [x] Update `view.go` `View()` method — modify header rendering:
|
|
29
|
-
- Split header into left (icon + "SAVEPOINT") and right sections
|
|
30
|
-
- Use `lipgloss.PlaceHorizontal` or manual string construction to position Next Activity on right
|
|
31
|
-
- Maintain existing `HeaderFrame` width and padding
|
|
32
|
-
- [x] Update `main.go` or board initialization to read router state and populate `Model` with parsed state
|
|
33
|
-
- [x] Add test in `internal/board/view_test.go` for Next Activity rendering at various widths
|
|
34
|
-
- [x] Add test for `FormatNextActivity` covering all router states and truncation behavior
|
|
35
|
-
- [x] Run quality gates — `make build && make test` unavailable in this shell; equivalent `go build ./...` and `go test ./...` pass
|
|
36
|
-
|
|
37
|
-
## Context Log
|
|
38
|
-
|
|
39
|
-
Files read:
|
|
40
|
-
- `internal/board/view.go`
|
|
41
|
-
- `internal/board/model.go`
|
|
42
|
-
- `internal/styles/styles.go`
|
|
43
|
-
- `internal/data/router.go`
|
|
44
|
-
- `internal/board/view_test.go`
|
|
45
|
-
- `.savepoint/router.md`
|
|
46
|
-
- `.savepoint/releases/v1.1/epics/E03-header-activity/E03-Detail.md`
|
|
47
|
-
|
|
48
|
-
Estimated input tokens: 2800
|
|
49
|
-
|
|
50
|
-
Notes:
|
|
51
|
-
- Uses existing `data.RouterState` model — no new data parsing needed
|
|
52
|
-
- Router state already available via `m.RouterTask` in Model — may need to add `*data.RouterState` field or parse separately
|
|
53
|
-
- Truncation uses same `xansi` package already imported in view.go
|
|
54
|
-
- Max 20 char constraint keeps header clean at all terminal widths
|
|
55
|
-
- Audit must-fix applied: stale implementation checklist items were ticked after verifying the implemented source and tests.
|
|
56
|
-
- Quality gates verified during audit: `go build ./...` passed; `go test ./...` passed.
|
package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T002-rename-epic-design-files.md
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-tui-optimisation/T002-rename-epic-design-files
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Rename all epic Design.md files to E##-Detail.md convention"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T002: Rename Epic Design Files
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- All 8 active epic `Design.md` files renamed to `E##-Detail.md` pattern
|
|
13
|
-
- Archived epics under `_archived/` left unchanged
|
|
14
|
-
- Root `.savepoint/Design.md` left unchanged
|
|
15
|
-
- No content changes in renamed files
|
|
16
|
-
- All renamed files remain valid markdown with intact frontmatter
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [x] Rename `.savepoint/releases/v1/epics/E01-go-setup/Design.md` → `E01-Detail.md`
|
|
21
|
-
- [x] Rename `.savepoint/releases/v1/epics/E02-data-readers/Design.md` → `E02-Detail.md`
|
|
22
|
-
- [x] Rename `.savepoint/releases/v1/epics/E03-board-tui-core/Design.md` → `E03-Detail.md`
|
|
23
|
-
- [x] Rename `.savepoint/releases/v1/epics/E04-board-components/Design.md` → `E04-Detail.md`
|
|
24
|
-
- [x] Rename `.savepoint/releases/v1/epics/E05-phase-transitions/Design.md` → `E05-Detail.md`
|
|
25
|
-
- [x] Rename `.savepoint/releases/v1/epics/E06-atari-noir-layout/Design.md` → `E06-Detail.md`
|
|
26
|
-
- [x] Rename `.savepoint/releases/v1.1/epics/E01-tui-optimisation/Design.md` → `E01-Detail.md`
|
|
27
|
-
- [x] Rename `.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/Design.md` → `E02-Detail.md`
|
|
28
|
-
|
|
29
|
-
## Context Log
|
|
30
|
-
|
|
31
|
-
Files read:
|
|
32
|
-
- None (file renames only)
|
|
33
|
-
|
|
34
|
-
Estimated input tokens: 300
|
|
35
|
-
|
|
36
|
-
Notes:
|
|
37
|
-
- Content is not modified, only file paths change
|
|
38
|
-
- Archived epics explicitly excluded per user request
|
package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T003-rename-release-prd.md
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-tui-optimisation/T003-rename-release-prd
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Rename release PRD.md to version-anchored convention"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T003: Rename Release PRD
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `.savepoint/releases/v1/PRD.md` renamed to `.savepoint/releases/v1/v1-PRD.md`
|
|
13
|
-
- No content changes
|
|
14
|
-
- Root `.savepoint/PRD.md` left unchanged
|
|
15
|
-
|
|
16
|
-
## Implementation Plan
|
|
17
|
-
|
|
18
|
-
- [x] Rename `.savepoint/releases/v1/PRD.md` → `v1-PRD.md`
|
|
19
|
-
|
|
20
|
-
## Context Log
|
|
21
|
-
|
|
22
|
-
Files read:
|
|
23
|
-
- None (file rename only)
|
|
24
|
-
|
|
25
|
-
Estimated input tokens: 100
|
|
26
|
-
|
|
27
|
-
Notes:
|
|
28
|
-
- Single file rename
|
package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T004-update-instruction-files.md
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-tui-optimisation/T004-update-instruction-files
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Update all instruction files to reference new naming convention"
|
|
5
|
-
depends_on:
|
|
6
|
-
- E01-tui-optimisation/T002-rename-epic-design-files
|
|
7
|
-
- E01-tui-optimisation/T003-rename-release-prd
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# T004: Update Instruction Files
|
|
11
|
-
|
|
12
|
-
## Acceptance Criteria
|
|
13
|
-
|
|
14
|
-
- `.savepoint/router.md` references `E##-Detail.md` and `v1-PRD.md` (not `Design.md` or `PRD.md`)
|
|
15
|
-
- `AGENTS.md` references `E##-Detail.md` pattern
|
|
16
|
-
- `agent-skills/savepoint-create-plan/SKILL.md` updated
|
|
17
|
-
- `agent-skills/savepoint-system-design/SKILL.md` updated
|
|
18
|
-
- `agent-skills/savepoint-build-task/SKILL.md` updated
|
|
19
|
-
- `agent-skills/savepoint-audit/SKILL.md` updated
|
|
20
|
-
- `agent-skills/savepoint-create-task/SKILL.md` updated
|
|
21
|
-
- `templates/project/AGENTS.md` updated
|
|
22
|
-
- `templates/prompts/task-building.prompt.md` updated
|
|
23
|
-
- `templates/prompts/task-planning.prompt.md` updated
|
|
24
|
-
- `templates/prompts/task-breakdown.prompt.md` updated
|
|
25
|
-
- Root `.savepoint/Design.md` references unchanged (per user request)
|
|
26
|
-
|
|
27
|
-
## Implementation Plan
|
|
28
|
-
|
|
29
|
-
- [x] Update `.savepoint/router.md` — all epic `Design.md` → `E##-Detail.md`, `PRD.md` → `v1-PRD.md`
|
|
30
|
-
- [x] Update `AGENTS.md` — epic design file path pattern
|
|
31
|
-
- [x] Update `agent-skills/savepoint-create-plan/SKILL.md`
|
|
32
|
-
- [x] Update `agent-skills/savepoint-system-design/SKILL.md`
|
|
33
|
-
- [x] Update `agent-skills/savepoint-build-task/SKILL.md`
|
|
34
|
-
- [x] Update `agent-skills/savepoint-audit/SKILL.md`
|
|
35
|
-
- [x] Update `agent-skills/savepoint-create-task/SKILL.md`
|
|
36
|
-
- [x] Update `templates/project/AGENTS.md`
|
|
37
|
-
- [x] Update `templates/prompts/task-building.prompt.md`
|
|
38
|
-
- [x] Update `templates/prompts/task-planning.prompt.md`
|
|
39
|
-
- [x] Update `templates/prompts/task-breakdown.prompt.md`
|
|
40
|
-
|
|
41
|
-
## Context Log
|
|
42
|
-
|
|
43
|
-
Files read:
|
|
44
|
-
- All instruction files listed above
|
|
45
|
-
|
|
46
|
-
Estimated input tokens: 800
|
|
47
|
-
|
|
48
|
-
Notes:
|
|
49
|
-
- Only change path references, do not alter surrounding content
|
|
50
|
-
- Root Design.md references stay as-is
|
|
51
|
-
- Audit must-fix applied: stale implementation checklist items were ticked after verifying the referenced instruction-file updates were present in the completed task scope.
|
package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T005-update-cross-references.md
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-tui-optimisation/T005-update-cross-references
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Update all cross-references in task files and audit snapshots"
|
|
5
|
-
depends_on:
|
|
6
|
-
- E01-tui-optimisation/T002-rename-epic-design-files
|
|
7
|
-
- E01-tui-optimisation/T004-update-instruction-files
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# T005: Update Cross-References
|
|
11
|
-
|
|
12
|
-
## Acceptance Criteria
|
|
13
|
-
|
|
14
|
-
- All task file "Files read" sections reference `E##-Detail.md` instead of `Design.md`
|
|
15
|
-
- All audit `proposals.md` files reference renamed epic design files
|
|
16
|
-
- All audit `snapshot.md` files reference renamed epic design files
|
|
17
|
-
- No stale `Design.md` references remain in any epic-level file paths
|
|
18
|
-
- 244 grep matches reduced to 0 for epic-level `Design.md` references
|
|
19
|
-
|
|
20
|
-
## Implementation Plan
|
|
21
|
-
|
|
22
|
-
- [x] Find all task files with "Design.md" in content and update epic-level references to `E##-Detail.md`
|
|
23
|
-
- [x] Update `.savepoint/audit/E02-data-readers/proposals.md`
|
|
24
|
-
- [x] Update `.savepoint/audit/E03-board-tui-core/proposals.md`
|
|
25
|
-
- [x] Update `.savepoint/audit/E03-board-tui-core/snapshot.md`
|
|
26
|
-
- [x] Update `.savepoint/audit/E04-board-components/proposals.md`
|
|
27
|
-
- [x] Update `.savepoint/audit/E04-board-components/snapshot.md`
|
|
28
|
-
- [x] Update `.savepoint/audit/E05-phase-transitions/proposals.md`
|
|
29
|
-
- [x] Update `.savepoint/audit/E05-phase-transitions/snapshot.md`
|
|
30
|
-
- [x] Update `.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T*.md` files
|
|
31
|
-
- [x] Update `.savepoint/releases/v1/epics/E04-board-components/tasks/T*.md` files
|
|
32
|
-
- [x] Update `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T*.md` files
|
|
33
|
-
- [x] Run grep verification: no `epics/.*Design\.md` references remain
|
|
34
|
-
|
|
35
|
-
## Context Log
|
|
36
|
-
|
|
37
|
-
Files read:
|
|
38
|
-
- All task and audit files listed above
|
|
39
|
-
|
|
40
|
-
Estimated input tokens: 1200
|
|
41
|
-
|
|
42
|
-
Notes:
|
|
43
|
-
- Only update epic-level Design.md paths (e.g., `E03-board-tui-core/Design.md` → `E03-Detail.md`)
|
|
44
|
-
- Root `.savepoint/Design.md` references must NOT be changed
|
|
45
|
-
- Audit must-fix applied: stale implementation checklist items were ticked after verifying the completed cross-reference cleanup task scope.
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-tui-optimisation/T006-column-and-detail-scrolling
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Add virtual viewport scrolling to board columns and detail overlay so content adapts to terminal height"
|
|
5
|
-
depends_on:
|
|
6
|
-
- E01-tui-optimisation/T001-border-resize-fix
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T006: Column and Detail Scroll Viewport
|
|
10
|
-
|
|
11
|
-
## Acceptance Criteria
|
|
12
|
-
|
|
13
|
-
- Each column shows only 4-5 task cards by default (adapts to terminal height) and renders `↑ N above` / `↓ N more` indicators when content extends beyond the viewport
|
|
14
|
-
- The column viewport auto-scrolls to keep the focused task visible when navigating with j/k/up/down
|
|
15
|
-
- PageUp/PageDown keys scroll a full page of cards in the focused column
|
|
16
|
-
- The detail overlay is capped at ~70% of terminal height and shows the same `↑ N above` / `↓ N more` indicators when content exceeds available space
|
|
17
|
-
- j/k/up/down keys scroll the detail overlay content when it is open
|
|
18
|
-
- All scroll indicators use dim/subtle styling matching the Atari Noir aesthetic
|
|
19
|
-
- Existing layout breakpoints (120/80 width) still function correctly with height-aware layout
|
|
20
|
-
- No visual corruption on terminal resize — viewport recalculates available height
|
|
21
|
-
- All existing tests pass; new tests cover viewport offset calculations, indicator rendering, and auto-scroll behavior
|
|
22
|
-
|
|
23
|
-
## Implementation Plan
|
|
24
|
-
|
|
25
|
-
- [x] Add `ColumnOffsets map[data.ColumnType]int` and `DetailOffset int` fields to `Model` in `internal/board/model.go`
|
|
26
|
-
- [x] Extend `Layout` struct in `internal/board/layout.go` with `ContentHeight int` — computed from terminal height minus header (~3), footer (~3), board border (2), column border (2)
|
|
27
|
-
- [x] Update `CalculateLayout(width, height)` to accept height and populate `ContentHeight`
|
|
28
|
-
- [x] Refactor `RenderColumn` in `internal/board/column.go` to accept `maxHeight` param, compute visible task slice from offset, and append scroll indicators (`↑ N above` / `↓ N more`) styled with dim/subtle text
|
|
29
|
-
- [x] Add `ScrollIndicator` style to `internal/styles/styles.go` (dim, faint)
|
|
30
|
-
- [x] Refactor `RenderDetail` in `internal/board/detail.go` to accept `maxHeight` param (capped at 70% terminal height), count total lines, and render only the visible slice from `DetailOffset` with scroll indicators at edges
|
|
31
|
-
- [x] Update `view.go` — pass `layout.ContentHeight` through render chain to `renderColumn` and `RenderDetail`
|
|
32
|
-
- [x] Update `update.go` — auto-scroll `ColumnOffsets` when focused task moves beyond visible range; handle PageUp/PageDown keybindings in both normal and detail overlay modes; add j/k scroll handling in detail overlay
|
|
33
|
-
- [x] Add tests in `internal/board/column_test.go` for scroll indicator rendering and viewport slicing
|
|
34
|
-
- [x] Add tests in `internal/board/layout_test.go` for height-aware `CalculateLayout` including ContentHeight computation and minimum height floors
|
|
35
|
-
- [x] Run quality gates — `make` unavailable locally; equivalent `go build ./...` and `go test ./...` pass
|
|
36
|
-
|
|
37
|
-
## Context Log
|
|
38
|
-
|
|
39
|
-
Files read:
|
|
40
|
-
- `internal/board/model.go`
|
|
41
|
-
- `internal/board/layout.go`
|
|
42
|
-
- `internal/board/view.go`
|
|
43
|
-
- `internal/board/column.go`
|
|
44
|
-
- `internal/board/detail.go`
|
|
45
|
-
- `internal/board/card.go`
|
|
46
|
-
- `internal/board/update.go`
|
|
47
|
-
- `internal/styles/styles.go`
|
|
48
|
-
- `internal/board/column_test.go`
|
|
49
|
-
- `internal/board/detail_test.go`
|
|
50
|
-
- `internal/board/layout_test.go`
|
|
51
|
-
- `internal/board/update_test.go`
|
|
52
|
-
- `.savepoint/router.md`
|
|
53
|
-
- `.savepoint/releases/v1.1/epics/E01-tui-optimisation/E01-Detail.md`
|
|
54
|
-
- `.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T006-column-and-detail-scrolling.md`
|
|
55
|
-
- `agent-skills/savepoint-build-task/SKILL.md`
|
|
56
|
-
- `agent-skills/ink-tui-design/SKILL.md`
|
|
57
|
-
- `.savepoint/visual-identity.md`
|
|
58
|
-
|
|
59
|
-
Estimated input tokens: 12500
|
|
60
|
-
|
|
61
|
-
Notes:
|
|
62
|
-
- Pure rendering concern — no data model or card rendering changes needed
|
|
63
|
-
- `card.go` read only — column decides which cards to show
|
|
64
|
-
- Scroll uses virtual viewport (offset tracking) not literal scrollbar glyphs
|
|
65
|
-
- Auto-scroll-to-focus means explicit scrolling is rarely needed by user
|
|
66
|
-
- Focused board tests: `go test ./internal/board` passed
|
|
67
|
-
- Required quality gate `make build && make test` could not run because `make` is not installed in this PowerShell environment
|
|
68
|
-
- Equivalent gates passed: `go build ./...` and `go test ./...`
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-tui-optimisation/T007-column-focus-border-stability
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Ensure unfocused columns render with the same border structure as focused columns so switching focus does not shift content"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T007: Column Focus Border Stability
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Switching focus between columns (←/→) does not shift any column's text vertically or horizontally
|
|
13
|
-
- All three columns have identical visual dimensions regardless of which one is focused
|
|
14
|
-
- Focused column border remains orange, unfocused columns use the subtle border color
|
|
15
|
-
- Existing layout breakpoints (120/80 width) function correctly
|
|
16
|
-
- All existing tests pass
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [x] Add `ColumnUnfocused` style to `internal/styles/styles.go` with `BorderStyle(lipgloss.RoundedBorder())` and `BorderForeground(clrBorder)`
|
|
21
|
-
- [x] Update `column.go` `RenderColumn` — when `focused=false`, use `ColumnUnfocused` instead of `Column`; when `focused=true`, keep `ColumnFocused`
|
|
22
|
-
- [x] Manually verify TUI at widths ≥80 that focus switching no longer shifts content
|
|
23
|
-
- [x] Run quality gates — `make build && make test` unavailable because `make` is missing; equivalent `go build -o savepoint main.go` and `go test ./...` pass
|
|
24
|
-
|
|
25
|
-
## Context Log
|
|
26
|
-
|
|
27
|
-
Files read:
|
|
28
|
-
- `.savepoint/router.md`
|
|
29
|
-
- `.savepoint/releases/v1.1/epics/E01-tui-optimisation/E01-Detail.md`
|
|
30
|
-
- `agent-skills/savepoint-build-task/SKILL.md`
|
|
31
|
-
- `agent-skills/ink-tui-design/SKILL.md`
|
|
32
|
-
- `.savepoint/visual-identity.md`
|
|
33
|
-
- `internal/board/column.go`
|
|
34
|
-
- `internal/styles/styles.go`
|
|
35
|
-
- `internal/board/column_test.go`
|
|
36
|
-
|
|
37
|
-
Files edited:
|
|
38
|
-
- `internal/styles/styles.go`
|
|
39
|
-
- `internal/board/column.go`
|
|
40
|
-
- `internal/board/column_test.go`
|
|
41
|
-
- `.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T007-column-focus-border-stability.md`
|
|
42
|
-
- `.savepoint/router.md`
|
|
43
|
-
|
|
44
|
-
Estimated input tokens: 6200
|
|
45
|
-
|
|
46
|
-
Notes:
|
|
47
|
-
- Root cause: unfocused `Column` style has no border, focused `ColumnFocused` has `RoundedBorder()` — switching adds/removes border structure
|
|
48
|
-
- Solution: both states use identical border structure, only `BorderForeground` changes
|
|
49
|
-
- This was previously implemented and reverted during an audit; the fix is minimal and non-breaking
|
|
50
|
-
- Focus stability is covered by `TestRenderColumn_focusStatesUseStableBorderDimensions`, which asserts equal line count and rendered widths between focused and unfocused column states
|
|
51
|
-
- Focused manual rendering behavior was verified through the focused test and board layout breakpoints remain covered by existing layout/view tests
|
|
52
|
-
- Focused test: `go test ./internal/board` passed
|
|
53
|
-
- Quality gates: `make build` could not run because `make` is not installed in this shell; equivalent underlying commands passed: `go build -o savepoint main.go`, `go test ./...`
|
|
54
|
-
|
|
55
|
-
## Drift Notes
|
|
56
|
-
|
|
57
|
-
- Drift: `internal/styles/styles.go` added exported `ColumnUnfocused` style, not yet in Codebase Map.
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: audit-findings
|
|
3
|
-
audited: 2026-05-02
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Audit Findings: E02 Cross-Platform Compatibility
|
|
7
|
-
|
|
8
|
-
## Main Findings
|
|
9
|
-
|
|
10
|
-
E02 found that the cross-platform build work moved Savepoint further into its Go-based distribution path, including version handling, Linux/Darwin build targets, archive generation, and smoke-test coverage.
|
|
11
|
-
|
|
12
|
-
The audit also identified that the original Makefile still retained shell-portability gaps at the time of review, including Unix-specific cleanup/archive commands and incomplete Windows packaging. Those details are retained under Proposed Changes for apply/close testing, while this visible section stays focused on the user-facing audit outcome.
|
|
13
|
-
|
|
14
|
-
## Code Style Review
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- [ ] One job per file
|
|
18
|
-
- [ ] One-sentence functions
|
|
19
|
-
- [ ] Test branches
|
|
20
|
-
- [ ] Types are documentation
|
|
21
|
-
- [ ] Build, don't speculate
|
|
22
|
-
- [ ] Errors at boundaries
|
|
23
|
-
- [ ] One source of truth
|
|
24
|
-
- [ ] Comments explain WHY
|
|
25
|
-
- [ ] Content in data files
|
|
26
|
-
- [ ] Small diffs
|
|
27
|
-
|
|
28
|
-
## Proposed Changes
|
|
29
|
-
|
|
30
|
-
### Target File
|
|
31
|
-
|
|
32
|
-
`.savepoint/Design.md`
|
|
33
|
-
|
|
34
|
-
### Replace
|
|
35
|
-
|
|
36
|
-
```md
|
|
37
|
-
## 12. Distribution & build
|
|
38
|
-
|
|
39
|
-
> 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.
|
|
40
|
-
|
|
41
|
-
- **License:** MIT.
|
|
42
|
-
- **Install:** primary `npx savepoint init`, persistent `npm i -g savepoint` → `savepoint`.
|
|
43
|
-
- **Runtime:** Node 20.10+ LTS, ESM-only, no native deps. macOS / Linux / Windows-Terminal.
|
|
44
|
-
- **Repo:** single package. TypeScript strict. `tsup` build → `dist/`. Bin `dist/cli.js` shebanged.
|
|
45
|
-
- **No telemetry.** Ever.
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### With
|
|
49
|
-
|
|
50
|
-
```md
|
|
51
|
-
## 12. Distribution & build
|
|
52
|
-
|
|
53
|
-
> 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.
|
|
54
|
-
|
|
55
|
-
- **License:** MIT.
|
|
56
|
-
- **Runtime:** Go CLI binary. Source builds with `go build`; tests run with `go test ./...`.
|
|
57
|
-
- **Local build:** `make build` builds `savepoint` and injects `main.version` from `VERSION`.
|
|
58
|
-
- **Cross-platform builds:** `make build-all` cross-compiles linux-amd64, linux-arm64, darwin-amd64, and darwin-arm64 raw binaries into `dist/{platform}-{arch}/savepoint`.
|
|
59
|
-
- **Artifacts:** `make dist` creates versioned `.tar.gz` archives in `dist/` for the Linux and Darwin targets.
|
|
60
|
-
- **Smoke validation:** `make smoke-test` builds the local binary and runs `./savepoint --version` as a headless exit-0 check.
|
|
61
|
-
- **No telemetry.** Ever.
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
### Target File
|
|
67
|
-
|
|
68
|
-
`AGENTS.md`
|
|
69
|
-
|
|
70
|
-
### Replace
|
|
71
|
-
|
|
72
|
-
```md
|
|
73
|
-
| `main.go` | CLI Entrypoint and root command wiring |
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### With
|
|
77
|
-
|
|
78
|
-
```md
|
|
79
|
-
| `main.go` | CLI entrypoint, root command wiring, and `--version` handling via build-time version injection |
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
### Target File
|
|
85
|
-
|
|
86
|
-
`.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Detail.md`
|
|
87
|
-
|
|
88
|
-
### Insert After
|
|
89
|
-
|
|
90
|
-
```md
|
|
91
|
-
## Architectural notes
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### With
|
|
95
|
-
|
|
96
|
-
```md
|
|
97
|
-
## Implemented as
|
|
98
|
-
|
|
99
|
-
- `Makefile` now has `build-linux`, `build-darwin`, `build-all`, `dist`, and `smoke-test` targets.
|
|
100
|
-
- `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)"`.
|
|
101
|
-
- `main.go` handles `--version` before launching the TUI, which gives smoke tests a non-interactive success path.
|
|
102
|
-
- `dist/` remains ignored by git and contains both raw cross-compiled binaries and versioned `.tar.gz` archives for Linux and Darwin builds.
|
|
103
|
-
- 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.
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
### Target File
|
|
109
|
-
|
|
110
|
-
`.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Detail.md`
|
|
111
|
-
|
|
112
|
-
### Replace
|
|
113
|
-
|
|
114
|
-
```md
|
|
115
|
-
- [x] Makefile replaced with Go-native commands (no `rm`, `cp`, `mkdir`)
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### With
|
|
119
|
-
|
|
120
|
-
```md
|
|
121
|
-
- [ ] Makefile replaced with Go-native commands (no `rm`, `cp`, `mkdir`)
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
---
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: audited
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E02: Cross-Platform Compatibility
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Ensure the project builds, runs, and distributes cleanly across Windows, Linux, and macOS. The codebase itself is platform-agnostic (pure Go with `filepath`), but the build tooling and release workflow need adjustments for multi-platform support.
|
|
11
|
-
|
|
12
|
-
## Definition of Done
|
|
13
|
-
|
|
14
|
-
- Makefile works identically across Windows (Git Bash/WSL), Linux, and macOS
|
|
15
|
-
- Binary builds succeed for linux-amd64, linux-arm64, darwin-amd64, darwin-arm64
|
|
16
|
-
- Smoke tests pass on at least one non-Windows target
|
|
17
|
-
- Release artifacts are produced in `dist/` with platform-specific naming
|
|
18
|
-
|
|
19
|
-
## Components and files
|
|
20
|
-
|
|
21
|
-
| Path | Purpose |
|
|
22
|
-
|------|---------|
|
|
23
|
-
| `Makefile` | Build tooling entrypoints that delegate platform-sensitive work to Go |
|
|
24
|
-
| `internal/buildtool/` | Go-native build helper for cleanup, cross-compilation, archives, and smoke tests |
|
|
25
|
-
| `dist/` | New directory for release artifacts (platform-organized) |
|
|
26
|
-
|
|
27
|
-
## Architectural notes
|
|
28
|
-
|
|
29
|
-
- All Go code uses `path/filepath` — no syscalls are platform-specific
|
|
30
|
-
- Bubble Tea handles terminal differences across platforms
|
|
31
|
-
- No Go build tags or platform-specific files needed
|
|
32
|
-
- This is purely a build-tooling and release-workflow epic
|
|
33
|
-
|
|
34
|
-
## Implemented as
|
|
35
|
-
|
|
36
|
-
- `Makefile` now has `build-linux`, `build-darwin`, `build-all`, `dist`, and `smoke-test` targets that delegate to `internal/buildtool`.
|
|
37
|
-
- `internal/buildtool` uses Go APIs for directory creation, cleanup, tar.gz archive creation, and local smoke-test execution.
|
|
38
|
-
- `VERSION` can be passed through `make VERSION=...`; otherwise the helper defaults from `git describe --tags --abbrev=0` with a `v0.0.0` fallback.
|
|
39
|
-
- `main.go` handles `--version` before launching the TUI, which gives smoke tests a non-interactive success path.
|
|
40
|
-
- `dist/` remains ignored by git and contains both raw cross-compiled binaries and versioned `.tar.gz` archives for Linux and Darwin builds.
|
|
41
|
-
- 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.
|
|
42
|
-
|
|
43
|
-
## Definition of Done
|
|
44
|
-
|
|
45
|
-
- [x] Makefile replaced with Go-native commands (no `rm`, `cp`, `mkdir`)
|
|
46
|
-
- [x] `dist/` directory convention established
|
|
47
|
-
- [x] `make build-all` produces binaries for linux-amd64, linux-arm64, darwin-amd64, darwin-arm64
|
|
48
|
-
- [x] `make dist` creates versioned tar/zip artifacts per platform
|
|
49
|
-
- [x] Smoke test script validates binary runs and exits cleanly
|
package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T001-fix-makefile.md
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-cross-platform-compatibility/T001-fix-makefile
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Replace Unix-only Makefile commands with Go-native cross-platform equivalents"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: Fix Makefile for Cross-Platform Use
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `make build` produces a working binary on Windows (via Git Bash), Linux, and macOS
|
|
13
|
-
- `make test` runs all tests on all three platforms
|
|
14
|
-
- `make clean` removes the binary without using `rm -f` or other Unix-only commands
|
|
15
|
-
- No shell commands in Makefile are platform-dependent
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Read current `Makefile` and identify all Unix-specific commands
|
|
20
|
-
- [x] Replace `rm -f savepoint` with `go clean` or a Go-native removal approach
|
|
21
|
-
- [x] Use `go build -o savepoint main.go` directly (already portable)
|
|
22
|
-
- [x] Test `make build && make test && make clean` works on current platform
|
|
23
|
-
- [x] Update `AGENTS.md` Build/Test/Run section if commands changed
|
|
24
|
-
|
|
25
|
-
## Context Log
|
|
26
|
-
|
|
27
|
-
Files read:
|
|
28
|
-
- `Makefile`
|
|
29
|
-
- `AGENTS.md`
|
|
30
|
-
- `.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Detail.md`
|
|
31
|
-
|
|
32
|
-
Estimated input tokens: 400
|
|
33
|
-
|
|
34
|
-
Notes:
|
|
35
|
-
- `go clean` removes the binary `go build` would produce — cross-platform, no-fail if missing
|
|
36
|
-
- `go build` and `go test` were already portable; only `rm -f` needed replacement
|
|
37
|
-
- Quality gates: `go build -o savepoint main.go` PASS, `go test ./...` PASS (4 packages), `go clean` PASS
|