savepoint 1.0.3 → 1.0.6
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 +10 -3
- package/{savepoint → savepoint.exe} +0 -0
- package/.claude/settings.local.json +0 -38
- package/.golangci.yml +0 -11
- package/.prettierignore +0 -4
- package/.savepoint/Design.md +0 -206
- 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-Detail.md +0 -43
- 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 -28
- 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 -28
- 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 -29
- 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 -177
- package/internal/board/board_test.go +0 -168
- package/internal/board/card.go +0 -129
- package/internal/board/card_test.go +0 -254
- package/internal/board/column.go +0 -127
- package/internal/board/column_test.go +0 -139
- package/internal/board/detail.go +0 -185
- package/internal/board/detail_test.go +0 -340
- package/internal/board/epic_panel.go +0 -262
- 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 -556
- package/internal/board/update_test.go +0 -575
- package/internal/board/util.go +0 -76
- package/internal/board/view.go +0 -317
- package/internal/board/view_test.go +0 -315
- package/internal/board/watch.go +0 -130
- package/internal/buildtool/main.go +0 -211
- package/internal/buildtool/main_test.go +0 -46
- 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/lifecycle.go +0 -44
- package/internal/data/lifecycle_test.go +0 -41
- package/internal/data/parser.go +0 -242
- 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/write.go +0 -218
- 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 -117
- package/project-audit/audit_report_glm_5.1.md +0 -411
- package/project-audit/audit_report_opus_4.6 +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,88 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: audited
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E05: init-command
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Implement `savepoint init`, the first-run command that creates a Savepoint workflow in an empty or compatible project directory and prints the magic prompt the user gives to an AI agent.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- Target directory validation.
|
|
15
|
-
- Scaffold writing from template assets.
|
|
16
|
-
- Project name and release metadata interpolation.
|
|
17
|
-
- Safe handling for existing files.
|
|
18
|
-
- Magic prompt output to stdout.
|
|
19
|
-
- Best-effort clipboard copy.
|
|
20
|
-
- Optional one-shot dev-dependency installation prompt/flag support as defined by the CLI contract.
|
|
21
|
-
- Integration tests using temporary directories.
|
|
22
|
-
|
|
23
|
-
## Components and files
|
|
24
|
-
|
|
25
|
-
Expected files introduced or extended by this epic:
|
|
26
|
-
|
|
27
|
-
| Path | Purpose |
|
|
28
|
-
| ----------------------------- | ------------------------------------------------- |
|
|
29
|
-
| `src/commands/init.ts` | `savepoint init` command implementation. |
|
|
30
|
-
| `src/init/validate-target.ts` | Target directory checks. |
|
|
31
|
-
| `src/init/write-scaffold.ts` | Template copy/write orchestration. |
|
|
32
|
-
| `src/init/magic-prompt.ts` | Prompt text generation. |
|
|
33
|
-
| `src/init/clipboard.ts` | Best-effort clipboard integration. |
|
|
34
|
-
| `src/init/dev-deps.ts` | Optional dependency-install command construction. |
|
|
35
|
-
| `test/init/**/*.test.ts` | Unit and integration tests for init behavior. |
|
|
36
|
-
|
|
37
|
-
## Architectural delta
|
|
38
|
-
|
|
39
|
-
Before this epic, Savepoint has assets and a command shell but cannot create a project. After this epic, `npx savepoint init` can produce the file-only workflow scaffold consumed by agents.
|
|
40
|
-
|
|
41
|
-
This epic is the first user-visible workflow command, but it should still rely on the existing CLI and template layers rather than embedding content or parsing rules locally.
|
|
42
|
-
|
|
43
|
-
## Implemented As
|
|
44
|
-
|
|
45
|
-
- `src/cli/args.ts`, `src/cli/help.ts`, and `src/cli/run.ts` now recognize `savepoint init [dir]`, `--force`/`-f`, `--install`/`-y`, and init command help.
|
|
46
|
-
- `src/commands/init.ts` orchestrates target validation, scaffold writing, magic prompt generation, best-effort clipboard copy, and optional install execution.
|
|
47
|
-
- `src/init/validate-target.ts` checks missing, empty, compatible, already-initialized, conflicting, and boundary-error target states.
|
|
48
|
-
- `src/init/write-scaffold.ts` loads project templates through the template layer, renders project metadata, creates parent directories, refuses conflicts by default, and writes via temp-file-plus-rename.
|
|
49
|
-
- `src/init/magic-prompt.ts` renders `templates/prompts/magic-prompt.prompt.md` rather than embedding prompt copy in code.
|
|
50
|
-
- `src/init/clipboard.ts` selects platform clipboard commands and returns success, skipped, or failed results without throwing through the init success path.
|
|
51
|
-
- `src/init/dev-deps.ts` detects package managers from lockfiles and builds or runs the matching dev-dependency install command.
|
|
52
|
-
- Project scaffold templates now include `.savepoint/metrics/context-bench.md` so generated projects can track context load from the start.
|
|
53
|
-
- Init tests cover parser behavior, validation, scaffold writes, prompt generation, clipboard behavior, optional install handling, and end-to-end temporary-directory init flows.
|
|
54
|
-
- The audit snapshot was generated manually because `savepoint audit` is still a stub.
|
|
55
|
-
|
|
56
|
-
Design delta notes:
|
|
57
|
-
|
|
58
|
-
- `runCli()` and `src/cli.ts` became async so the init command can perform filesystem, clipboard, and subprocess work.
|
|
59
|
-
- The optional install path is explicit flag-driven behavior in this implementation; interactive prompting is not implemented.
|
|
60
|
-
- Clipboard failures and install failures do not fail the scaffold path; install failures are reported on stderr after successful scaffold and prompt output.
|
|
61
|
-
|
|
62
|
-
## Boundaries
|
|
63
|
-
|
|
64
|
-
In scope:
|
|
65
|
-
|
|
66
|
-
- Create `.savepoint/` and root `AGENTS.md`.
|
|
67
|
-
- Print the initial agent prompt.
|
|
68
|
-
- Avoid overwriting user files unless explicitly allowed by flags.
|
|
69
|
-
- Support Windows, macOS, and Linux filesystem behavior.
|
|
70
|
-
|
|
71
|
-
Out of scope:
|
|
72
|
-
|
|
73
|
-
- Creating epics/tasks interactively.
|
|
74
|
-
- Running the board after init.
|
|
75
|
-
- Implementing audit or doctor.
|
|
76
|
-
- Managing package installation beyond the optional one-shot path.
|
|
77
|
-
|
|
78
|
-
## Quality gates
|
|
79
|
-
|
|
80
|
-
- Integration tests should cover empty directories, existing incompatible files, and successful scaffold creation.
|
|
81
|
-
- Clipboard failures should not fail init if the scaffold was written successfully.
|
|
82
|
-
- File writes should be atomic enough to avoid partially corrupting existing files.
|
|
83
|
-
|
|
84
|
-
## Design constraints
|
|
85
|
-
|
|
86
|
-
- Use the template layer as the only source for generated file content.
|
|
87
|
-
- Keep user-facing output short and copyable.
|
|
88
|
-
- Treat filesystem writes as a boundary with clear errors.
|
package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T001-init-cli-contract.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-init-command/T001-init-cli-contract
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Define and test the `savepoint init` CLI option contract without changing scaffold behavior yet."
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: init-cli-contract
|
|
9
|
-
|
|
10
|
-
## Implementation Plan
|
|
11
|
-
|
|
12
|
-
- [x] Extend CLI argument parsing so `savepoint init` can accept only the init-specific flags required by this epic.
|
|
13
|
-
- [x] Update command help for `savepoint init` to document the supported init usage and flags.
|
|
14
|
-
- [x] Pass parsed init options and command execution context into `runInit()` without breaking other command handlers.
|
|
15
|
-
- [x] Keep the init command returning the current not-implemented result until later tasks wire behavior.
|
|
16
|
-
- [x] Add focused CLI parser and runner tests for valid init flags, invalid init flags, help output, and unchanged non-init command behavior.
|
|
17
|
-
|
|
18
|
-
## Context Log
|
|
19
|
-
|
|
20
|
-
- Files read: not captured before context tracking was added to task files.
|
|
21
|
-
- Estimated input tokens: n/a
|
|
22
|
-
- Notes: Use `.savepoint/metrics/context-bench.md` for measured rows going forward.
|
package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T002-target-validation.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-init-command/T002-target-validation
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Validate whether a target directory can safely receive a Savepoint scaffold."
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T002: target-validation
|
|
9
|
-
|
|
10
|
-
## Implementation Plan
|
|
11
|
-
|
|
12
|
-
- [x] Create `src/init/validate-target.ts` with typed validation results for empty, compatible, already-initialized, and conflicting target directories.
|
|
13
|
-
- [x] Treat existing `.savepoint/` and root `AGENTS.md` paths as protected unless an explicit overwrite mode allows compatible replacement.
|
|
14
|
-
- [x] Normalize filesystem boundary errors into clear validation failures that include the affected path.
|
|
15
|
-
- [x] Add unit tests with temporary directories for empty targets, compatible existing files, incompatible files, missing directories, and inaccessible filesystem errors where practical.
|
|
16
|
-
- [x] Export only the validation types and function needed by later init orchestration.
|
|
17
|
-
- [x] Update `.savepoint/metrics/context-bench.md` with this task's measured context before setting status to review.
|
|
18
|
-
|
|
19
|
-
## Context Log
|
|
20
|
-
|
|
21
|
-
- Files read: not captured before context tracking was added to task files.
|
|
22
|
-
- Estimated input tokens: n/a
|
|
23
|
-
- Notes: Use `.savepoint/metrics/context-bench.md` for measured rows going forward.
|
package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T003-scaffold-writer.md
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-init-command/T003-scaffold-writer
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Write the project scaffold from template assets while preserving existing user files."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E05-init-command/T002-target-validation
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T003: scaffold-writer
|
|
10
|
-
|
|
11
|
-
## Implementation Plan
|
|
12
|
-
|
|
13
|
-
- [x] Create `src/init/write-scaffold.ts` to load project templates through `src/templates` APIs and render project metadata variables.
|
|
14
|
-
- [x] Write `AGENTS.md` and `.savepoint/` files to the target directory with parent directory creation handled in one place.
|
|
15
|
-
- [x] Refuse to overwrite conflicting existing files unless the caller has already selected the explicit overwrite mode.
|
|
16
|
-
- [x] Use temporary-file-plus-rename writes for file content so existing files are not partially corrupted.
|
|
17
|
-
- [x] Add integration tests covering successful scaffold creation, rendered project metadata, conflict refusal, and explicit overwrite behavior.
|
|
18
|
-
- [x] Update `.savepoint/metrics/context-bench.md` with this task's measured context before setting status to review.
|
|
19
|
-
|
|
20
|
-
## Context Log
|
|
21
|
-
|
|
22
|
-
- Files read: 17 (router.md, E05 Design.md, T003 task, AGENTS.md, T001, T002, validate-target.ts, manifest.ts, render.ts, load.ts, paths.ts, index.ts, validate-target.test.ts, context-bench.md, init.ts, config.yml, AGENTS.md template)
|
|
23
|
-
- Estimated input tokens: ~7,225
|
|
24
|
-
- Notes: All 9 new tests pass; 338 total suite green.
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-init-command/T004-magic-prompt-and-clipboard
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Generate the post-init agent prompt and copy it to the clipboard on a best-effort basis."
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T004: magic-prompt-and-clipboard
|
|
9
|
-
|
|
10
|
-
## Implementation Plan
|
|
11
|
-
|
|
12
|
-
- [x] Create `src/init/magic-prompt.ts` with a deterministic prompt generator that uses template-backed content rather than embedded long strings.
|
|
13
|
-
- [x] Keep the generated prompt short enough for terminal output and explicit enough to route an agent into the new project workflow.
|
|
14
|
-
- [x] Create `src/init/clipboard.ts` with platform-aware best-effort copy behavior and typed success, skipped, and failed outcomes.
|
|
15
|
-
- [x] Ensure clipboard failures never throw through the init success path.
|
|
16
|
-
- [x] Add focused tests for prompt generation, platform command selection or skip behavior, and non-fatal clipboard failure handling.
|
|
17
|
-
- [x] Update `.savepoint/metrics/context-bench.md` with this task's measured context before setting status to review.
|
|
18
|
-
|
|
19
|
-
## Context Log
|
|
20
|
-
|
|
21
|
-
- Files read: 15
|
|
22
|
-
- Estimated input tokens: ~7,625
|
|
23
|
-
- Notes: Read T004, AGENTS.md, E05 Design, validate-target, write-scaffold, task-building prompt, templates layer (manifest, load, render, paths), project template files (AGENTS.md, router.md), environment.ts, and both existing init test files for patterns.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-init-command/T005-dev-deps-install-option
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Support the optional one-shot dev-dependency installation path promised by the init command contract."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E05-init-command/T001-init-cli-contract
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T005: dev-deps-install-option
|
|
10
|
-
|
|
11
|
-
## Implementation Plan
|
|
12
|
-
|
|
13
|
-
- [x] Create `src/init/dev-deps.ts` to build the package-manager-specific command needed for the optional Savepoint dev-dependency install.
|
|
14
|
-
- [x] Detect the package manager from lockfiles or package metadata without modifying unrelated project files.
|
|
15
|
-
- [x] Respect init flags that force install, skip install, or leave install as an interactive prompt decision.
|
|
16
|
-
- [x] Run the install command only after scaffold writing succeeds and surface install failures separately from scaffold failures.
|
|
17
|
-
- [x] Add tests for command construction, package manager detection, flag precedence, skipped install, and failed install reporting.
|
|
18
|
-
- [x] Update `.savepoint/metrics/context-bench.md` with this task's measured context before setting status to review.
|
|
19
|
-
|
|
20
|
-
## Context Log
|
|
21
|
-
|
|
22
|
-
- Files read: 12
|
|
23
|
-
- Estimated input tokens: ~6,269
|
|
24
|
-
- Notes: Read T001 and two existing init modules + tests to align with codebase patterns. runInstallCommand is exported separately so tests can drive it with node without a real package manager.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-init-command/T006-init-command-integration
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Wire `savepoint init` end to end from CLI entrypoint to scaffold, prompt output, clipboard, and optional install behavior."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E05-init-command/T001-init-cli-contract
|
|
7
|
-
- E05-init-command/T002-target-validation
|
|
8
|
-
- E05-init-command/T003-scaffold-writer
|
|
9
|
-
- E05-init-command/T004-magic-prompt-and-clipboard
|
|
10
|
-
- E05-init-command/T005-dev-deps-install-option
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# T006: init-command-integration
|
|
14
|
-
|
|
15
|
-
## Implementation Plan
|
|
16
|
-
|
|
17
|
-
- [x] Replace the init stub with orchestration that validates the target, writes the scaffold, prints the magic prompt, attempts clipboard copy, and handles optional install.
|
|
18
|
-
- [x] Return success, usage, and boundary-error exit codes consistently with the existing CLI runner.
|
|
19
|
-
- [x] Keep stdout short and copyable while sending actionable failure details to stderr.
|
|
20
|
-
- [x] Add end-to-end temporary-directory tests for empty directory success, incompatible existing files, already initialized project handling, clipboard failure success, and install failure reporting.
|
|
21
|
-
- [x] Run focused init tests first, then the full quality gate suite for the epic closeout path.
|
|
22
|
-
- [x] Update `.savepoint/metrics/context-bench.md` with this task's measured context before setting status to review.
|
|
23
|
-
|
|
24
|
-
## Context Log
|
|
25
|
-
|
|
26
|
-
- Files read: 21 (AGENTS.md, E05 Design, T006, T001, validate-target.ts, write-scaffold.ts, magic-prompt.ts, clipboard.ts, dev-deps.ts, args.ts, run.ts, cli.ts, exit-codes.ts, result.ts, run.test.ts, validate-target.test.ts, write-scaffold.test.ts, manifest.ts, render.ts, paths.ts, context-bench.md)
|
|
27
|
-
- Estimated input tokens: ~10,925
|
|
28
|
-
- Notes: runCli made async; InitResult replaces CommandResult for init; EXIT_BOUNDARY_ERROR added; InitDeps injection for clipboard/install test overrides; stale commands.test.ts runInit block removed.
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: planned
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E05: Project Cleanup
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Delete all dead files, tests, templates, and assets. Rewrite AGENTS.md as a lean agent guide. Clean package.json of unused dependencies. Verify everything builds, typechecks, lints, and tests.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- Removal of dead source directories (`src/audit/`, `src/tui/audit-review/`).
|
|
15
|
-
- Removal of dead test directories (`test/audit/`, `test/init/`, `test/templates/`).
|
|
16
|
-
- Removal of dead assets (`templates/`, `agent-skills/`, stale markdown files).
|
|
17
|
-
- Cleanup of `.savepoint/` data (delete audit/, metrics/, Design.md, PRD.md, visual-identity.md).
|
|
18
|
-
- Lean AGENTS.md: router read order, phase workflow, build commands, code style.
|
|
19
|
-
- Clean package.json with no unused devDependencies.
|
|
20
|
-
|
|
21
|
-
## Definition of Done
|
|
22
|
-
|
|
23
|
-
- No dead files remain in `src/`, `test/`, `templates/`, `agent-skills/`.
|
|
24
|
-
- `.savepoint/` contains only `router.md`, `config.yml`, and `releases/`.
|
|
25
|
-
- AGENTS.md is under 100 lines, covers router, phases, build, and style.
|
|
26
|
-
- `package.json` has no unused dependencies.
|
|
27
|
-
- `npm run build && npm run typecheck && npm run lint && npm test` all pass.
|
|
28
|
-
- No references to deleted commands, audit pipeline, or old state model remain anywhere.
|
|
29
|
-
|
|
30
|
-
## Components and files
|
|
31
|
-
|
|
32
|
-
| Path | Purpose |
|
|
33
|
-
|------|---------|
|
|
34
|
-
| `AGENTS.md` | Rewritten lean agent guide |
|
|
35
|
-
| `package.json` | Cleaned dependencies |
|
|
36
|
-
| (deleted) `src/audit/` | Removed (7 files) |
|
|
37
|
-
| (deleted) `src/tui/audit-review/` | Removed (5 files) |
|
|
38
|
-
| (deleted) `test/audit/` | Removed (6 files) |
|
|
39
|
-
| (deleted) `test/init/` | Removed |
|
|
40
|
-
| (deleted) `test/templates/` | Removed |
|
|
41
|
-
| (deleted) `test/commands/audit.test.ts` | Removed |
|
|
42
|
-
| (deleted) `test/tui/audit-review/` | Removed |
|
|
43
|
-
| (deleted) `templates/` | Removed |
|
|
44
|
-
| (deleted) `agent-skills/` | Removed |
|
|
45
|
-
| (deleted) `CLAUDE.md` | Removed |
|
|
46
|
-
| (deleted) `GEMINI.md` | Removed |
|
|
47
|
-
| (deleted) `ink-cli-ui-design.zip` | Removed |
|
|
48
|
-
| (deleted) `vitest.config.ts` | Removed |
|
|
49
|
-
| (deleted) `.savepoint/audit/` | Removed |
|
|
50
|
-
| (deleted) `.savepoint/metrics/` | Removed |
|
|
51
|
-
| (deleted) `.savepoint/Design.md` | Removed |
|
|
52
|
-
| (deleted) `.savepoint/PRD.md` | Removed |
|
|
53
|
-
| (deleted) `.savepoint/visual-identity.md` | Removed |
|
package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T001-delete-dead-src.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-project-cleanup/T001-delete-dead-src
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Delete src/audit/ and src/tui/audit-review/ directories"
|
|
5
|
-
depends_on: [E04-board-phase-integration/T008-board-tests]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: Delete Dead Source
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `src/audit/` directory does not exist.
|
|
13
|
-
- `src/tui/audit-review/` directory does not exist.
|
|
14
|
-
- No remaining imports reference files in deleted directories.
|
|
15
|
-
- Build compiles successfully.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [ ] Search codebase for imports from `src/audit/` and `src/tui/audit-review/`.
|
|
20
|
-
- [ ] Confirm all references were removed in E04.
|
|
21
|
-
- [ ] Delete `src/audit/` and all files within.
|
|
22
|
-
- [ ] Delete `src/tui/audit-review/` and all files within.
|
|
23
|
-
- [ ] Run `npm run build`.
|
package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T002-delete-dead-tests.md
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-project-cleanup/T002-delete-dead-tests
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Delete test/audit/, test/init/, test/templates/, test/commands/audit.test.ts, test/tui/audit-review/"
|
|
5
|
-
depends_on: [E04-board-phase-integration/T008-board-tests]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T002: Delete Dead Tests
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `test/audit/` directory does not exist.
|
|
13
|
-
- `test/init/` directory does not exist.
|
|
14
|
-
- `test/templates/` directory does not exist.
|
|
15
|
-
- `test/commands/audit.test.ts` does not exist.
|
|
16
|
-
- `test/tui/audit-review/` directory does not exist.
|
|
17
|
-
- `npm test` still passes.
|
|
18
|
-
|
|
19
|
-
## Implementation Plan
|
|
20
|
-
|
|
21
|
-
- [ ] Delete `test/audit/` and all files within.
|
|
22
|
-
- [ ] Delete `test/init/` and all files within.
|
|
23
|
-
- [ ] Delete `test/templates/` and all files within.
|
|
24
|
-
- [ ] Delete `test/commands/audit.test.ts`.
|
|
25
|
-
- [ ] Delete `test/tui/audit-review/` and all files within.
|
|
26
|
-
- [ ] Run `npm test`.
|
package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T003-delete-assets.md
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-project-cleanup/T003-delete-assets
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Delete templates/, agent-skills/, CLAUDE.md, GEMINI.md, ink-cli-ui-design.zip, vitest.config.ts"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T003: Delete Assets
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `templates/` directory does not exist.
|
|
13
|
-
- `agent-skills/` directory does not exist.
|
|
14
|
-
- `CLAUDE.md`, `GEMINI.md`, `ink-cli-ui-design.zip` do not exist.
|
|
15
|
-
- `vitest.config.ts` does not exist (keep `vitest.config.js`).
|
|
16
|
-
- No references to deleted files remain.
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [ ] Search codebase for references to templates/, agent-skills/, CLAUDE.md, GEMINI.md.
|
|
21
|
-
- [ ] Delete `templates/` and all files within.
|
|
22
|
-
- [ ] Delete `agent-skills/` and all files within.
|
|
23
|
-
- [ ] Delete `CLAUDE.md`, `GEMINI.md`, `ink-cli-ui-design.zip`.
|
|
24
|
-
- [ ] Delete `vitest.config.ts`.
|
|
25
|
-
- [ ] Run `npm run build`.
|
package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T004-clean-savepoint.md
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-project-cleanup/T004-clean-savepoint
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Delete .savepoint/audit/, .savepoint/metrics/, .savepoint/Design.md, .savepoint/PRD.md, .savepoint/visual-identity.md; trim config.yml"
|
|
5
|
-
depends_on: [E05-project-cleanup/T002-delete-dead-tests]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T004: Clean Savepoint Data
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `.savepoint/audit/` directory does not exist.
|
|
13
|
-
- `.savepoint/metrics/` directory does not exist.
|
|
14
|
-
- `.savepoint/Design.md` does not exist.
|
|
15
|
-
- `.savepoint/PRD.md` does not exist.
|
|
16
|
-
- `.savepoint/visual-identity.md` does not exist.
|
|
17
|
-
- `config.yml` contains only theme configuration.
|
|
18
|
-
- `router.md` still exists and is valid.
|
|
19
|
-
|
|
20
|
-
## Implementation Plan
|
|
21
|
-
|
|
22
|
-
- [ ] Delete `.savepoint/audit/` and all files within.
|
|
23
|
-
- [ ] Delete `.savepoint/metrics/` and all files within.
|
|
24
|
-
- [ ] Delete `.savepoint/Design.md`.
|
|
25
|
-
- [ ] Delete `.savepoint/PRD.md`.
|
|
26
|
-
- [ ] Delete `.savepoint/visual-identity.md`.
|
|
27
|
-
- [ ] Read existing `config.yml`.
|
|
28
|
-
- [ ] Rewrite `config.yml` with theme-only content.
|
package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T005-rewrite-agents-md.md
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-project-cleanup/T005-rewrite-agents-md
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Rewrite AGENTS.md as a lean agent guide"
|
|
5
|
-
depends_on: [E04-board-phase-integration/T008-board-tests]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T005: Rewrite AGENTS.md
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `AGENTS.md` is under 100 lines.
|
|
13
|
-
- Covers: router read order, phase workflow, build commands, code style.
|
|
14
|
-
- No Codebase Map table.
|
|
15
|
-
- No audit workflow description.
|
|
16
|
-
- No 6-state planning machine.
|
|
17
|
-
- No capability check warning.
|
|
18
|
-
- Valid markdown, readable by any agent.
|
|
19
|
-
|
|
20
|
-
## Implementation Plan
|
|
21
|
-
|
|
22
|
-
- [ ] Read existing `AGENTS.md`.
|
|
23
|
-
- [ ] Write new lean version: router -> epic -> task workflow.
|
|
24
|
-
- [ ] Document phase model: build -> test -> audit -> done.
|
|
25
|
-
- [ ] List build/test/lint commands.
|
|
26
|
-
- [ ] Keep code style rules (the 10 rules).
|
|
27
|
-
- [ ] Remove everything else.
|
|
28
|
-
|
package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T006-clean-package-json.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-project-cleanup/T006-clean-package-json
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Remove ink-testing-library and verify no unused dependencies"
|
|
5
|
-
depends_on: [E05-project-cleanup/T001-delete-dead-src]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T006: Clean Package JSON
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `ink-testing-library` removed from devDependencies.
|
|
13
|
-
- All remaining dependencies are used by the simplified codebase.
|
|
14
|
-
- `npm install` succeeds.
|
|
15
|
-
- Build still works.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [ ] Read `package.json`.
|
|
20
|
-
- [ ] Remove `ink-testing-library` from devDependencies.
|
|
21
|
-
- [ ] Verify `@types/react` is still needed (yes, Ink uses React).
|
|
22
|
-
- [ ] Run `npm install`.
|
|
23
|
-
- [ ] Run `npm run build`.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-project-cleanup/T007-verify
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Run full verification: build, typecheck, lint, test"
|
|
5
|
-
depends_on: [E05-project-cleanup/T006-clean-package-json]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T007: Verify
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `npm run build` passes.
|
|
13
|
-
- `npm run typecheck` passes.
|
|
14
|
-
- `npm run lint` passes.
|
|
15
|
-
- `npm test` passes.
|
|
16
|
-
- No errors, no warnings, no dead code.
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [ ] Run `npm run build`.
|
|
21
|
-
- [ ] Run `npm run typecheck`.
|
|
22
|
-
- [ ] Run `npm run lint`.
|
|
23
|
-
- [ ] Run `npm test`.
|
|
24
|
-
- [ ] Fix any failures.
|
|
25
|
-
- [ ] Repeat until all gates pass.
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: audited
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E06: tui-board
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Implement `savepoint board`, an Ink-based terminal UI for viewing and moving tasks through the Savepoint workflow, including audit-review mode entry points. The board should make the file-backed state machine usable without replacing direct file editing.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- Ink app shell launched by `savepoint board`.
|
|
15
|
-
- Three-column Kanban view for `planned`, `in_progress`, and `done`.
|
|
16
|
-
- Detail pane for the selected task.
|
|
17
|
-
- Keyboard navigation using arrows and vim-style movement.
|
|
18
|
-
- Status transition actions with gate enforcement.
|
|
19
|
-
- Manual refresh.
|
|
20
|
-
- Theme tokens loaded from `config.yml`.
|
|
21
|
-
- Render fallbacks for 24-bit/256-color, 16-color, `NO_COLOR=1`, and non-TTY plain table output.
|
|
22
|
-
- Optimistic mtime conflict detection before writes.
|
|
23
|
-
- Reducer tests for navigation, selection, and transition behavior.
|
|
24
|
-
|
|
25
|
-
## Components and files
|
|
26
|
-
|
|
27
|
-
Expected files introduced or extended by this epic:
|
|
28
|
-
|
|
29
|
-
| Path | Purpose |
|
|
30
|
-
| ------------------------------- | -------------------------------------------------- |
|
|
31
|
-
| `src/commands/board.ts` | Command entrypoint and non-TTY fallback. |
|
|
32
|
-
| `src/tui/App.tsx` | Ink app root. |
|
|
33
|
-
| `src/tui/Board.tsx` | Kanban layout. |
|
|
34
|
-
| `src/tui/DetailPane.tsx` | Selected task details. |
|
|
35
|
-
| `src/tui/state/*.ts` | Reducers and derived view state. |
|
|
36
|
-
| `src/tui/theme/*.ts` | Theme loading and terminal color fallback mapping. |
|
|
37
|
-
| `src/tui/render/plain-table.ts` | Non-TTY table rendering. |
|
|
38
|
-
| `src/tui/io/*.ts` | Safe task status write helpers and mtime checks. |
|
|
39
|
-
| `test/tui/**/*.test.ts` | Reducer and fallback rendering tests. |
|
|
40
|
-
|
|
41
|
-
## Architectural delta
|
|
42
|
-
|
|
43
|
-
Before this epic, Savepoint can read project files and expose CLI commands. After this epic, users can inspect and advance workflow state through a terminal interface.
|
|
44
|
-
|
|
45
|
-
The TUI uses the domain layer for rules and the filesystem layer for reads/writes. It should not define independent workflow logic.
|
|
46
|
-
|
|
47
|
-
## Visual and interaction design
|
|
48
|
-
|
|
49
|
-
The terminal adaptation of Atari-Noir applies here:
|
|
50
|
-
|
|
51
|
-
- Dark background with warm off-white text where terminal color support allows.
|
|
52
|
-
- One accent color per major semantic area.
|
|
53
|
-
- Quiet borders and compact uppercase headings.
|
|
54
|
-
- Focus shown through accent borders or subtle background tint.
|
|
55
|
-
- Colored glyphs should reinforce state but never be the only signal.
|
|
56
|
-
- Scanlines and web-style glow are skipped in terminal rendering.
|
|
57
|
-
|
|
58
|
-
## Boundaries
|
|
59
|
-
|
|
60
|
-
In scope:
|
|
61
|
-
|
|
62
|
-
- Board navigation and status transitions.
|
|
63
|
-
- Gate enforcement for dependencies and status rules.
|
|
64
|
-
- Plain table fallback when not in a TTY.
|
|
65
|
-
- Manual `r` refresh.
|
|
66
|
-
- Initial audit-review mode entry point if audit proposals exist.
|
|
67
|
-
|
|
68
|
-
## Implemented as
|
|
69
|
-
|
|
70
|
-
- `savepoint board` now reads the Savepoint root, router state, config, and active epic task set through existing readers.
|
|
71
|
-
- Non-TTY sessions render deterministic plain text with warnings and audit-entry signaling.
|
|
72
|
-
- TTY sessions launch an Ink app with five status columns, selected-task detail, keyboard navigation, surfaced load warnings, manual refresh, forward/backward transition actions, and audit proposal handoff.
|
|
73
|
-
- Reducers in `src/tui/state/` own derived view state only; workflow truth remains in project files.
|
|
74
|
-
- Transition gates combine domain status validation with dependency completion checks.
|
|
75
|
-
- Status writes preserve task body and extra frontmatter fields, re-stat after parsing, and return non-destructive conflict/error results.
|
|
76
|
-
- Theme helpers map configured tokens into truecolor, 256-color, 16-color, and no-color palettes.
|
|
77
|
-
|
|
78
|
-
## Audit deltas
|
|
79
|
-
|
|
80
|
-
- Full proposal diff review remains deferred to `E07-audit-pipeline`; E06 only signals that proposals exist and exits toward `savepoint audit`.
|
|
81
|
-
- Rich TUI rendering is covered with deterministic component assertions instead of full-screen snapshots.
|
|
82
|
-
- Conflict UX is implemented as a message plus manual refresh, not an interactive reload prompt.
|
|
83
|
-
|
|
84
|
-
Out of scope:
|
|
85
|
-
|
|
86
|
-
- File watching.
|
|
87
|
-
- Search.
|
|
88
|
-
- Mouse interaction.
|
|
89
|
-
- Drag-and-drop.
|
|
90
|
-
- Full audit proposal diff implementation beyond what `audit-pipeline` needs.
|
|
91
|
-
- Snapshot tests for rich TUI rendering.
|
|
92
|
-
|
|
93
|
-
## Quality gates
|
|
94
|
-
|
|
95
|
-
- Reducers and transition behavior should be covered by tests.
|
|
96
|
-
- Rendering tests should focus on deterministic fallback/plain output, not brittle full-screen snapshots.
|
|
97
|
-
- Conflict detection should be tested without relying on real-time delays where possible.
|
|
98
|
-
|
|
99
|
-
## Design constraints
|
|
100
|
-
|
|
101
|
-
- Keep workflow state in files; the TUI holds only derived view state.
|
|
102
|
-
- Use mtime-based optimistic concurrency.
|
|
103
|
-
- Do not create a lockfile.
|
|
104
|
-
- Keep terminal controls discoverable but avoid loading screens with long instructions.
|
package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T001-board-command-data.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-tui-board/T001-board-command-data
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Replace the board stub with a data-backed command path that can read the active Savepoint project and render deterministic plain output."
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: board-command-data
|
|
9
|
-
|
|
10
|
-
## Implementation Plan
|
|
11
|
-
|
|
12
|
-
- [x] Add the command context needed by `runBoard()` to know the current working directory, stdout TTY capability, environment, and platform without breaking existing command handlers.
|
|
13
|
-
- [x] Resolve the Savepoint project root from the command context and surface boundary errors through existing CLI exit-code conventions.
|
|
14
|
-
- [x] Load router state, config, and the active epic task set through existing readers instead of parsing workflow files inside the command.
|
|
15
|
-
- [x] Introduce a small board data model that groups tasks by the five canonical statuses and records the active release, epic, task, and reader errors.
|
|
16
|
-
- [x] Implement `src/tui/render/plain-table.ts` as the deterministic non-TTY fallback for columns, selected task marker, and empty states.
|
|
17
|
-
- [x] Update board command and runner tests to prove `savepoint board` no longer returns the not-implemented stub in an initialized project and still reports readable errors outside a Savepoint project.
|
|
18
|
-
|
|
19
|
-
## Context Log
|
|
20
|
-
|
|
21
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E06-tui-board/Design.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T001-board-command-data.md`; `.savepoint/metrics/context-bench.md`; `src/commands/board.ts`; `src/cli/run.ts`; `src/cli/environment.ts`; `src/domain/config.ts`; `src/domain/status.ts`; `src/domain/task.ts`; `src/fs/markdown.ts`; `src/fs/project.ts`; `src/readers/config.ts`; `src/readers/router.ts`; `src/readers/tasks.ts`; `src/validation/dependencies.ts`; `test/cli/run.test.ts`; `test/domain/status.test.ts`; `package.json`; `src/cli.ts`; `src/commands/audit.ts`; `src/commands/doctor.ts`; `src/commands/init.ts`; `test/init/validate-target.test.ts`; `test/readers/router.test.ts`; `test/domain/router.test.ts`; `test/cli/commands.test.ts`; `src/domain/router.ts`; `src/domain/ids.ts`; `src/cli/exit-codes.ts`; `src/commands/result.ts`
|
|
22
|
-
- Estimated input tokens: ~19,660
|
|
23
|
-
- Notes: Rehydrated from router, E06 Design, task file, and directly touched source/test files. Extended router schema with optional `task` field to match live `router.md` format. Board command now async with rich result shape matching `runInit` pattern.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-tui-board/T002-board-view-state
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Create pure board view-state reducers for column grouping, selected-task movement, refresh replacement, and keyboard-intent actions."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E06-tui-board/T001-board-command-data
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T002: board-view-state
|
|
10
|
-
|
|
11
|
-
## Implementation Plan
|
|
12
|
-
|
|
13
|
-
- [x] Add `src/tui/state/` modules that derive board columns and task indexes from the T001 board data model without storing duplicate workflow truth.
|
|
14
|
-
- [x] Model selection state so it survives same-task refreshes, falls back predictably when tasks disappear, and handles empty columns.
|
|
15
|
-
- [x] Implement reducer actions for left/right/up/down movement plus vim-style `h`, `j`, `k`, and `l` intents.
|
|
16
|
-
- [x] Add refresh replacement behavior that swaps in newly read task data while preserving selection and visible status columns.
|
|
17
|
-
- [x] Keep transition and filesystem write behavior out of this reducer task so the reducer remains pure.
|
|
18
|
-
- [x] Add focused reducer tests for initial selection, horizontal and vertical navigation, empty columns, and refresh after task reorder/removal.
|
|
19
|
-
|
|
20
|
-
## Context Log
|
|
21
|
-
|
|
22
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E06-tui-board/Design.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T002-board-view-state.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T001-board-command-data.md`; `src/tui/board-data.ts`; `src/tui/render/plain-table.ts`; `src/domain/status.ts`; `src/domain/task.ts`; `src/commands/board.ts`; `test/domain/status.test.ts`; `package.json`; `tsconfig.json`; `.savepoint/metrics/context-bench.md`
|
|
23
|
-
- Estimated input tokens: ~6,925
|
|
24
|
-
- Notes: Rehydrated from router, E06 Design, task file, and directly touched source/test files. Implemented pure reducer with deterministic selection fallbacks and refresh behavior.
|