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,28 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-data-model/T002-markdown-frontmatter-boundary
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Add scoped markdown/frontmatter read helpers that return typed boundary errors with file path and reason."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E02-data-model/T001-domain-ids-status
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T002: Markdown Frontmatter Boundary
|
|
10
|
-
|
|
11
|
-
## Scope
|
|
12
|
-
|
|
13
|
-
Create the filesystem boundary for reading markdown documents with structured frontmatter parsing.
|
|
14
|
-
|
|
15
|
-
## Acceptance Criteria
|
|
16
|
-
|
|
17
|
-
- Markdown documents can be read from scoped project paths.
|
|
18
|
-
- Frontmatter is parsed with a structured YAML/frontmatter parser.
|
|
19
|
-
- Missing, malformed, or invalid frontmatter returns errors that include path and reason.
|
|
20
|
-
- Parser success and failure branches have focused unit tests.
|
|
21
|
-
|
|
22
|
-
## Implementation Plan
|
|
23
|
-
|
|
24
|
-
- [x] Review the T001 domain result/error style and existing test fixture conventions.
|
|
25
|
-
- [x] Add a scoped project path helper for locating `.savepoint` documents without exposing arbitrary filesystem reads.
|
|
26
|
-
- [x] Add a markdown/frontmatter reader that uses a structured parser and preserves markdown body content.
|
|
27
|
-
- [x] Define path-aware boundary errors for missing files, missing frontmatter, malformed frontmatter, and schema rejection.
|
|
28
|
-
- [x] Add focused unit tests for successful reads and each parser/boundary failure branch using small temporary fixtures.
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-data-model/T003-task-documents
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Parse task markdown files into typed task documents with validated IDs, statuses, objectives, and dependency IDs."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E02-data-model/T001-domain-ids-status
|
|
7
|
-
- E02-data-model/T002-markdown-frontmatter-boundary
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# T003: Task Documents
|
|
11
|
-
|
|
12
|
-
## Scope
|
|
13
|
-
|
|
14
|
-
Build the task reader and task document model on top of the markdown/frontmatter boundary.
|
|
15
|
-
|
|
16
|
-
## Acceptance Criteria
|
|
17
|
-
|
|
18
|
-
- Task frontmatter maps into a typed task document.
|
|
19
|
-
- Invalid task IDs, statuses, objectives, or dependency IDs are rejected with path-aware errors.
|
|
20
|
-
- Markdown body content remains available to callers.
|
|
21
|
-
- Valid and invalid task document cases have focused unit tests.
|
|
22
|
-
|
|
23
|
-
## Implementation Plan
|
|
24
|
-
|
|
25
|
-
- [x] Reuse the T001 ID/status validators and the T002 markdown/frontmatter boundary as the only parsing inputs.
|
|
26
|
-
- [x] Define the typed task frontmatter and task document model, including validated dependency IDs and markdown body.
|
|
27
|
-
- [x] Implement task document parsing that rejects invalid IDs, statuses, missing objectives, and malformed `depends_on` values with path-aware errors.
|
|
28
|
-
- [x] Keep task parsing read-only and separate pure frontmatter validation from filesystem access.
|
|
29
|
-
- [x] Add focused unit tests for valid task files and each invalid frontmatter branch.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-data-model/T004-release-epic-router-config-readers
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Add read-only models and readers for release PRDs, epic designs, router state, and project configuration."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E02-data-model/T001-domain-ids-status
|
|
7
|
-
- E02-data-model/T002-markdown-frontmatter-boundary
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# T004: Release, Epic, Router, and Config Readers
|
|
11
|
-
|
|
12
|
-
## Scope
|
|
13
|
-
|
|
14
|
-
Expose typed read-only access for the remaining Savepoint planning documents and config state.
|
|
15
|
-
|
|
16
|
-
## Acceptance Criteria
|
|
17
|
-
|
|
18
|
-
- Release PRD, epic Design, router state, and config data have typed models.
|
|
19
|
-
- Readers keep filesystem access at the boundary.
|
|
20
|
-
- Config defaults are applied from one place.
|
|
21
|
-
- Missing or malformed input returns path-aware boundary errors.
|
|
22
|
-
- Reader branches and config default behavior have focused unit tests.
|
|
23
|
-
|
|
24
|
-
## Implementation Plan
|
|
25
|
-
|
|
26
|
-
- [x] Reuse the T001 domain primitives and T002 markdown/frontmatter boundary for all document reads.
|
|
27
|
-
- [x] Define typed models for release PRD metadata, epic Design metadata, router state, and project config defaults.
|
|
28
|
-
- [x] Implement read-only readers that keep path resolution and file IO at the boundary.
|
|
29
|
-
- [x] Apply config defaults from one exported source of truth before returning typed config data.
|
|
30
|
-
- [x] Add focused unit tests for valid reads, malformed or missing input, router-state validation, and config default behavior.
|
package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T005-dependency-validation.md
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-data-model/T005-dependency-validation
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Validate task dependency graphs for missing dependencies, duplicate IDs, and cycles using pure domain functions."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E02-data-model/T003-task-documents
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T005: Dependency Validation
|
|
10
|
-
|
|
11
|
-
## Scope
|
|
12
|
-
|
|
13
|
-
Implement dependency resolution and graph validation over parsed task documents.
|
|
14
|
-
|
|
15
|
-
## Acceptance Criteria
|
|
16
|
-
|
|
17
|
-
- Missing dependency IDs are reported with the dependent task ID.
|
|
18
|
-
- Duplicate task IDs are detected.
|
|
19
|
-
- Dependency cycles are detected and reported with enough IDs to explain the cycle.
|
|
20
|
-
- Validation functions are pure and do not read files.
|
|
21
|
-
- Missing dependency, duplicate ID, and cycle branches have focused unit tests.
|
|
22
|
-
|
|
23
|
-
## Implementation Plan
|
|
24
|
-
|
|
25
|
-
- [x] Build on the T003 task document model and keep validation functions independent of filesystem access.
|
|
26
|
-
- [x] Implement duplicate task ID detection over a task document collection.
|
|
27
|
-
- [x] Implement missing dependency detection that reports the dependent task ID and unresolved dependency ID.
|
|
28
|
-
- [x] Implement dependency cycle detection that returns enough task IDs to explain the cycle.
|
|
29
|
-
- [x] Add focused unit tests for valid graphs, missing dependencies, duplicate IDs, simple cycles, and longer cycles.
|
package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T006-epic-task-set-reader.md
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-data-model/T006-epic-task-set-reader
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Read an epic task directory into a validated task set using the task reader and dependency validation."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E02-data-model/T003-task-documents
|
|
7
|
-
- E02-data-model/T005-dependency-validation
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# T006: Epic Task Set Reader
|
|
11
|
-
|
|
12
|
-
## Scope
|
|
13
|
-
|
|
14
|
-
Connect the file-backed task reader to dependency validation for an entire epic's task directory.
|
|
15
|
-
|
|
16
|
-
## Acceptance Criteria
|
|
17
|
-
|
|
18
|
-
- An epic task directory is read into a typed task set.
|
|
19
|
-
- Dependency validation runs after all task files are parsed.
|
|
20
|
-
- File boundary errors and graph validation errors remain distinguishable.
|
|
21
|
-
- Valid task sets and invalid graph cases have focused unit tests with small fixtures.
|
|
22
|
-
|
|
23
|
-
## Implementation Plan
|
|
24
|
-
|
|
25
|
-
- [x] Reuse the T003 task reader and T005 dependency validation without duplicating parsing or graph logic.
|
|
26
|
-
- [x] Add an epic task directory reader that discovers task markdown files and parses each into typed task documents.
|
|
27
|
-
- [x] Run dependency validation only after all readable task files have been parsed.
|
|
28
|
-
- [x] Return distinguishable results for file boundary failures versus dependency graph validation failures.
|
|
29
|
-
- [x] Add focused fixture tests for a valid task set, parse failures, missing dependencies, duplicate IDs, and cycles.
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-data-model/T007-quality-gates
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Run and fix the E02 data-model quality gates so the read-only domain layer is buildable and covered."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E02-data-model/T004-release-epic-router-config-readers
|
|
7
|
-
- E02-data-model/T006-epic-task-set-reader
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# T007: Quality Gates
|
|
11
|
-
|
|
12
|
-
## Scope
|
|
13
|
-
|
|
14
|
-
Close the epic implementation by running the required checks and making any small fixes needed by the data-model work.
|
|
15
|
-
|
|
16
|
-
## Acceptance Criteria
|
|
17
|
-
|
|
18
|
-
- `npm run build` passes.
|
|
19
|
-
- `npm run typecheck` passes.
|
|
20
|
-
- `npm run lint` passes.
|
|
21
|
-
- `npm run format:check` passes.
|
|
22
|
-
- `npm test` passes.
|
|
23
|
-
- E02 parser, validator, reader, and transition test coverage matches the epic Design close criteria.
|
|
24
|
-
|
|
25
|
-
## Implementation Plan
|
|
26
|
-
|
|
27
|
-
- [x] Run `npm run build` and fix any compile or packaging failures introduced by E02.
|
|
28
|
-
- [x] Run `npm run typecheck` and fix strict TypeScript issues without weakening domain types.
|
|
29
|
-
- [x] Run `npm run lint` and fix lint findings without broad refactors.
|
|
30
|
-
- [x] Run `npm run format:check` and apply formatting only where needed.
|
|
31
|
-
- [x] Run `npm test` and add or adjust focused tests until E02 close-criteria coverage is represented.
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: planned
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E02: Domain Phase Model
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Extend the domain layer to support the build/test/audit phase model within the `in_progress` status. Simplify the config model to theme-only and collapse the router state machine from 6 to 3 states.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- `TaskPhase` type with constants and transition rules.
|
|
15
|
-
- Phase validation in task frontmatter parsing.
|
|
16
|
-
- Phase-to-accent color mapping for TUI rendering.
|
|
17
|
-
- Simplified config model (theme-only, no quality gates or audit config).
|
|
18
|
-
- Collapsed router domain (3 states: planning, building, reviewing).
|
|
19
|
-
|
|
20
|
-
## Definition of Done
|
|
21
|
-
|
|
22
|
-
- `status.ts` defines `TaskPhase`, phase transitions, and `PHASE_ACCENTS`.
|
|
23
|
-
- `task.ts` validates `phase?: TaskPhase` in frontmatter.
|
|
24
|
-
- `config.ts` contains only `ThemeConfig` and `SavepointConfig` (no quality_gates, audit, verify_strict).
|
|
25
|
-
- `router.ts` defines 3 states (`planning`, `building`, `reviewing`).
|
|
26
|
-
- All existing domain tests compile and pass (or are updated).
|
|
27
|
-
- No references to old 6-state model remain in domain code.
|
|
28
|
-
|
|
29
|
-
## Components and files
|
|
30
|
-
|
|
31
|
-
| Path | Purpose |
|
|
32
|
-
|------|---------|
|
|
33
|
-
| `src/domain/status.ts` | TaskPhase type, phase transitions, accent mapping |
|
|
34
|
-
| `src/domain/task.ts` | Phase frontmatter field and validation |
|
|
35
|
-
| `src/domain/config.ts` | Simplified theme-only config model |
|
|
36
|
-
| `src/domain/router.ts` | 3-state router domain |
|
|
37
|
-
| `test/domain/status.test.ts` | Phase transition tests |
|
|
38
|
-
| `test/domain/task.test.ts` | Phase frontmatter validation tests |
|
|
39
|
-
| `test/domain/config.test.ts` | Simplified config tests |
|
|
40
|
-
| `test/domain/router.test.ts` | 3-state router tests |
|
package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T001-phase-types.md
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-domain-phase-model/T001-phase-types
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Add TaskPhase type, constants, transitions, and accent color mapping to status.ts"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: Phase Types
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `status.ts` exports `TaskPhase` type (`build | test | audit`).
|
|
13
|
-
- Phase order constant exists: `['build', 'test', 'audit']`.
|
|
14
|
-
- `getNextPhase(current)` and `getPreviousPhase(current)` functions exist.
|
|
15
|
-
- `PHASE_ACCENTS` maps each phase to a hex color string.
|
|
16
|
-
- Phase transition validation: `isPhaseTransitionAllowed(from, to)` returns boolean.
|
|
17
|
-
- All phase functions have unit tests.
|
|
18
|
-
|
|
19
|
-
## Implementation Plan
|
|
20
|
-
|
|
21
|
-
- [ ] Read existing `status.ts` to understand current structure.
|
|
22
|
-
- [ ] Add `TaskPhase` type and `TASK_PHASES` constant array.
|
|
23
|
-
- [ ] Add `getNextPhase` and `getPreviousPhase` helpers.
|
|
24
|
-
- [ ] Add `PHASE_ACCENTS` mapping.
|
|
25
|
-
- [ ] Add `isPhaseTransitionAllowed` with no-skipping rule.
|
|
26
|
-
- [ ] Write/update `test/domain/status.test.ts` with phase tests.
|
|
27
|
-
- [ ] Run `npm test` and verify phase tests pass.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-domain-phase-model/T002-phase-frontmatter
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Add phase field to TaskFrontmatter and update validation in task.ts"
|
|
5
|
-
depends_on: [E02-domain-phase-model/T001-phase-types]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T002: Phase Frontmatter
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `TaskFrontmatter` interface includes optional `phase?: TaskPhase`.
|
|
13
|
-
- `validateTaskFrontmatter` accepts and validates `phase` as optional string.
|
|
14
|
-
- Invalid phase values are rejected with clear error messages.
|
|
15
|
-
- `phase` is absent when `status` is not `in_progress`.
|
|
16
|
-
- All task validation tests pass.
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [ ] Read existing `task.ts` and `test/domain/task.test.ts`.
|
|
21
|
-
- [ ] Add `phase?: TaskPhase` to `TaskFrontmatter` interface.
|
|
22
|
-
- [ ] Update `validateTaskFrontmatter` to parse optional `phase` field.
|
|
23
|
-
- [ ] Validate that phase is one of `build`, `test`, `audit` if present.
|
|
24
|
-
- [ ] Update `test/domain/task.test.ts` with phase validation cases.
|
|
25
|
-
- [ ] Run `npm test` and verify.
|
package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T003-simplify-config.md
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-domain-phase-model/T003-simplify-config
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Remove quality_gates, audit, verify_strict from config model; keep theme only"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T003: Simplify Config
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `config.ts` contains only `ThemeConfig` and a minimal `SavepointConfig` wrapper.
|
|
13
|
-
- `CONFIG_DEFAULTS` has no `quality_gates`, `audit`, or `verify_strict` fields.
|
|
14
|
-
- `applyConfigDefaults` only processes theme keys.
|
|
15
|
-
- `readers/config.ts` still reads and returns a valid config (theme defaults if missing).
|
|
16
|
-
- All config tests pass.
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [ ] Read existing `config.ts` and `test/domain/config.test.ts`.
|
|
21
|
-
- [ ] Remove `QualityGates`, `AuditConfig` interfaces.
|
|
22
|
-
- [ ] Remove `quality_gates`, `audit`, `verify_strict` from `SavepointConfig`.
|
|
23
|
-
- [ ] Update `CONFIG_DEFAULTS` to theme-only.
|
|
24
|
-
- [ ] Simplify `applyConfigDefaults` to only handle theme fields.
|
|
25
|
-
- [ ] Update `test/domain/config.test.ts`.
|
|
26
|
-
- [ ] Run `npm test`.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-domain-phase-model/T004-simplify-router-domain
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Collapse router states from 6 to 3 in router.ts"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T004: Simplify Router Domain
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `router.ts` defines 3 states: `planning`, `building`, `reviewing`.
|
|
13
|
-
- `isRouterStateValue` validates only the 3 states.
|
|
14
|
-
- `validateRouterState` accepts the 3-state model.
|
|
15
|
-
- `RouterState` interface unchanged (still has `state`, `release`, `epic`, `task`, `next_action`).
|
|
16
|
-
- All router tests pass.
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [ ] Read existing `router.ts` and `test/domain/router.test.ts`.
|
|
21
|
-
- [ ] Replace `ROUTER_STATES` array with 3 states.
|
|
22
|
-
- [ ] Update `isRouterStateValue` and `validateRouterState`.
|
|
23
|
-
- [ ] Update `test/domain/router.test.ts` with 3-state cases.
|
|
24
|
-
- [ ] Run `npm test`.
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: audited
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E03: cli-foundation
|
|
7
|
-
|
|
8
|
-
## Context Budget
|
|
9
|
-
|
|
10
|
-
For implementation tasks in this epic, read only:
|
|
11
|
-
|
|
12
|
-
- `.savepoint/router.md`
|
|
13
|
-
- this epic `Design.md`
|
|
14
|
-
- the active task file
|
|
15
|
-
- directly touched source/test files
|
|
16
|
-
|
|
17
|
-
Read `.savepoint/Design.md` only if the task changes architecture. Read `.savepoint/releases/v1/PRD.md`, prior epic docs, audit proposals, or `.savepoint/visual-identity.md` only when the active task explicitly requires them.
|
|
18
|
-
|
|
19
|
-
For E03 specifically, do not preload E02 source files, E02 audit proposals, `.savepoint/PRD.md`, or `.savepoint/releases/v1/PRD.md` during implementation. The CLI foundation should use the command contract in this file and the active task as its source of truth.
|
|
20
|
-
|
|
21
|
-
## Purpose
|
|
22
|
-
|
|
23
|
-
Introduce the real `savepoint` command shell: argument parsing, command dispatch, help/version output, exit codes, and terminal capability detection. This epic wires a command framework around stub command handlers so later epics can fill behavior without changing the CLI contract.
|
|
24
|
-
|
|
25
|
-
## What this epic adds
|
|
26
|
-
|
|
27
|
-
- Command dispatch for `init`, `board`, `audit`, and `doctor`.
|
|
28
|
-
- Top-level `--help` and `--version`.
|
|
29
|
-
- Command-level help text.
|
|
30
|
-
- Unknown command and unknown flag handling.
|
|
31
|
-
- Exit code conventions.
|
|
32
|
-
- TTY and color capability detection helpers.
|
|
33
|
-
- A testable CLI runner separated from process globals.
|
|
34
|
-
|
|
35
|
-
## Implementation strategy
|
|
36
|
-
|
|
37
|
-
- Use a small local parser instead of a CLI framework unless implementation proves it would reduce code.
|
|
38
|
-
- Treat the allowed commands as a closed set: `init`, `board`, `audit`, `doctor`.
|
|
39
|
-
- Treat allowed global flags as a closed set: `--help`, `-h`, `--version`, `-v`.
|
|
40
|
-
- Keep command stubs shallow. They should return deterministic "not implemented yet" results and exit codes without reading or writing project files.
|
|
41
|
-
- Keep process globals in `src/cli.ts`; tests should exercise `runCli()` with injected argv, streams, and environment.
|
|
42
|
-
|
|
43
|
-
## Components and files
|
|
44
|
-
|
|
45
|
-
Expected files introduced or extended by this epic:
|
|
46
|
-
|
|
47
|
-
| Path | Purpose |
|
|
48
|
-
| ------------------------ | --------------------------------------------------- |
|
|
49
|
-
| `src/cli.ts` | Process entrypoint that invokes the CLI runner. |
|
|
50
|
-
| `src/cli/run.ts` | Testable command runner. |
|
|
51
|
-
| `src/cli/args.ts` | Argument parsing and normalization. |
|
|
52
|
-
| `src/cli/help.ts` | Help text generation. |
|
|
53
|
-
| `src/cli/exit-codes.ts` | Shared exit code constants. |
|
|
54
|
-
| `src/cli/environment.ts` | TTY, color, and platform detection. |
|
|
55
|
-
| `src/commands/*.ts` | Stub command modules for the fixed command surface. |
|
|
56
|
-
| `test/cli/**/*.test.ts` | CLI parser and dispatch tests. |
|
|
57
|
-
|
|
58
|
-
## Architectural delta
|
|
59
|
-
|
|
60
|
-
Before this epic, the binary is a placeholder. After this epic, `savepoint` has a stable command boundary with stubbed behaviors behind it.
|
|
61
|
-
|
|
62
|
-
The command layer should not introduce data-model behavior. Commands that need project data stay as deterministic stubs until a later epic owns the data model.
|
|
63
|
-
|
|
64
|
-
## Implemented As
|
|
65
|
-
|
|
66
|
-
- `src/cli.ts` now isolates process globals and delegates to `runCli()`.
|
|
67
|
-
- `src/cli/args.ts` implements the closed parser contract for bare invocation, global help/version flags, known commands, unknown top-level commands, and unknown top-level flags.
|
|
68
|
-
- `src/cli/run.ts` wires parser output to help, version output, command-level help, command stubs, and usage errors.
|
|
69
|
-
- `src/cli/help.ts` provides deterministic top-level and command-level help text.
|
|
70
|
-
- `src/cli/environment.ts` provides injectable TTY, color, and platform detection.
|
|
71
|
-
- `src/cli/exit-codes.ts` centralizes success, usage-error, and not-implemented exit codes.
|
|
72
|
-
- `src/commands/init.ts`, `src/commands/board.ts`, `src/commands/audit.ts`, and `src/commands/doctor.ts` return deterministic not-yet-implemented results with no project filesystem side effects.
|
|
73
|
-
- `src/commands/result.ts` was added as the shared command-result type used by the command stubs.
|
|
74
|
-
- Focused tests were added under `test/cli/` for parsing, help text, terminal environment detection, command stubs, and runner dispatch.
|
|
75
|
-
- The audit snapshot was generated manually because `savepoint audit` is still a stub.
|
|
76
|
-
- During audit closeout, command-level unknown flags were fixed to return a usage error instead of dispatching command stubs.
|
|
77
|
-
- The audit workflow was updated for future epics to prefer a single delta-shaped proposal bundle over four separate proposal files.
|
|
78
|
-
|
|
79
|
-
Design delta notes:
|
|
80
|
-
|
|
81
|
-
- The planned `src/commands/*.ts` component was implemented as one module per command plus a small shared `result.ts`.
|
|
82
|
-
- The epic design table originally described command modules as the "five-command surface"; the implemented command surface has four commands plus top-level global help/version flags, matching the rest of the design.
|
|
83
|
-
- Command behavior remains stubbed by design. Later epics own real `init`, `board`, `audit`, and `doctor` behavior.
|
|
84
|
-
|
|
85
|
-
## Boundaries
|
|
86
|
-
|
|
87
|
-
In scope:
|
|
88
|
-
|
|
89
|
-
- Preserve the exact v1 CLI surface from the project Design.
|
|
90
|
-
- Make bare `savepoint` print help.
|
|
91
|
-
- Make command stubs return clear "not implemented yet" output where necessary.
|
|
92
|
-
- Keep command functions testable without spawning Node processes.
|
|
93
|
-
|
|
94
|
-
Out of scope:
|
|
95
|
-
|
|
96
|
-
- Implementing `init`, `board`, `audit`, or `doctor` behavior.
|
|
97
|
-
- Adding extra commands such as `task new`, `plan`, or `status`.
|
|
98
|
-
- TUI rendering.
|
|
99
|
-
- Project file writes.
|
|
100
|
-
|
|
101
|
-
## Quality gates
|
|
102
|
-
|
|
103
|
-
- Tests must cover bare invocation, help, version, unknown commands, unknown flags, and each command dispatch path.
|
|
104
|
-
- CLI behavior should be deterministic with injected `argv`, `stdin`, `stdout`, `stderr`, and environment data.
|
|
105
|
-
- Every branch in argument parsing and command dispatch must have a focused test.
|
|
106
|
-
- During individual implementation tasks, run the focused `test/cli/**/*.test.ts` files for touched behavior first. Run the full gate suite at task closeout when practical, and always in the final E03 quality-gates task.
|
|
107
|
-
|
|
108
|
-
## Design constraints
|
|
109
|
-
|
|
110
|
-
- Keep process I/O at the entrypoint boundary.
|
|
111
|
-
- Avoid a heavy CLI framework unless it materially reduces complexity.
|
|
112
|
-
- Command names are fixed: `init`, `board`, `audit`, `doctor`.
|
|
113
|
-
|
|
114
|
-
## Close Criteria
|
|
115
|
-
|
|
116
|
-
- All `E03-cli-foundation` tasks are `done`.
|
|
117
|
-
- `npm run build`, `npm run typecheck`, `npm run lint`, `npm run format:check`, and `npm test` pass.
|
|
118
|
-
- CLI branch tests cover bare invocation, help, version, unknown commands, unknown flags, and each command dispatch path.
|
|
119
|
-
- Audit snapshot exists at `.savepoint/audit/E03-cli-foundation/snapshot.md`.
|
|
120
|
-
- Audit proposals are accepted, rejected, or explicitly carried forward.
|
|
121
|
-
- This epic `Design.md` has `status: audited`.
|
|
122
|
-
- Router points to the next epic state.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E03-cli-foundation/T001-argument-parser-contract
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Define the closed CLI argument parser and exit-code contract for the v1 command surface."
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: Argument Parser Contract
|
|
9
|
-
|
|
10
|
-
## Scope
|
|
11
|
-
|
|
12
|
-
Create the argument parsing foundation for `savepoint` without wiring command behavior yet. This task owns the closed set of global flags, command names, parser result shapes, and shared exit-code constants.
|
|
13
|
-
|
|
14
|
-
## Implementation Plan
|
|
15
|
-
|
|
16
|
-
- [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched CLI/test files.
|
|
17
|
-
- [x] Add `src/cli/exit-codes.ts` with named exit-code constants for success, usage errors, and not-yet-implemented command stubs.
|
|
18
|
-
- [x] Add `src/cli/args.ts` with typed parser results for bare invocation, global help/version flags, command invocation, unknown commands, and unknown flags.
|
|
19
|
-
- [x] Keep allowed commands closed to `init`, `board`, `audit`, and `doctor`.
|
|
20
|
-
- [x] Treat `--help`, `-h`, `--version`, and `-v` as the only allowed global flags.
|
|
21
|
-
- [x] Add focused parser tests covering bare invocation, each global flag alias, each known command, unknown command, and unknown flag branches.
|
|
22
|
-
- [x] Run the focused parser test file.
|
|
23
|
-
|
|
24
|
-
## Acceptance Criteria
|
|
25
|
-
|
|
26
|
-
- The parser is deterministic from an injected `argv` array.
|
|
27
|
-
- Unknown commands and unknown flags are represented as typed parser results, not thrown exceptions.
|
|
28
|
-
- Every parser branch introduced by this task has a focused test.
|
package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T002-help-text-generation.md
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E03-cli-foundation/T002-help-text-generation
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Generate deterministic top-level and command-level help text for the fixed v1 CLI surface."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E03-cli-foundation/T001-argument-parser-contract
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T002: Help Text Generation
|
|
10
|
-
|
|
11
|
-
## Scope
|
|
12
|
-
|
|
13
|
-
Introduce the help-text module used by the runner later. This task does not dispatch commands or touch process streams.
|
|
14
|
-
|
|
15
|
-
## Implementation Plan
|
|
16
|
-
|
|
17
|
-
- [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched CLI/test files.
|
|
18
|
-
- [x] Add `src/cli/help.ts` with deterministic top-level help output for bare `savepoint` and global `--help`/`-h`.
|
|
19
|
-
- [x] Add command-level help output for `init`, `board`, `audit`, and `doctor`.
|
|
20
|
-
- [x] Keep help content limited to the command contract from the epic Design and avoid promising unimplemented behavior.
|
|
21
|
-
- [x] Add focused help tests for top-level help and each command-level help branch.
|
|
22
|
-
- [x] Run the focused help test file.
|
|
23
|
-
|
|
24
|
-
## Acceptance Criteria
|
|
25
|
-
|
|
26
|
-
- Help text is generated by pure functions with no process I/O.
|
|
27
|
-
- Top-level help lists only the fixed v1 command and global flag surface.
|
|
28
|
-
- Each supported command has deterministic command-level help text.
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E03-cli-foundation/T003-terminal-environment-detection
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Provide injectable terminal capability detection for TTY, color, and platform behavior."
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T003: Terminal Environment Detection
|
|
9
|
-
|
|
10
|
-
## Scope
|
|
11
|
-
|
|
12
|
-
Add environment capability helpers that can be used by later CLI and TUI work. This task stays independent from command dispatch and does not read project files.
|
|
13
|
-
|
|
14
|
-
## Implementation Plan
|
|
15
|
-
|
|
16
|
-
- [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched CLI/test files.
|
|
17
|
-
- [x] Add `src/cli/environment.ts` with typed inputs for stdout/stderr TTY state, environment variables, and platform.
|
|
18
|
-
- [x] Detect whether stdout and stderr are TTY-capable from injected stream-like values.
|
|
19
|
-
- [x] Detect color support from injected environment/platform data using conservative rules for `NO_COLOR`, `FORCE_COLOR`, and common CI/non-TTY cases.
|
|
20
|
-
- [x] Add focused tests for TTY true/false branches, color disabled/enabled branches, and platform passthrough.
|
|
21
|
-
- [x] Run the focused environment test file.
|
|
22
|
-
|
|
23
|
-
## Acceptance Criteria
|
|
24
|
-
|
|
25
|
-
- Capability detection is deterministic with injected streams, environment, and platform.
|
|
26
|
-
- No helper reads directly from `process`.
|
|
27
|
-
- Branching behavior for TTY and color detection is covered by focused tests.
|
package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T004-command-stub-modules.md
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E03-cli-foundation/T004-command-stub-modules
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Create deterministic stub handlers for the fixed command surface without project file side effects."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E03-cli-foundation/T001-argument-parser-contract
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T004: Command Stub Modules
|
|
10
|
-
|
|
11
|
-
## Scope
|
|
12
|
-
|
|
13
|
-
Create command modules for the v1 surface so dispatch can call stable handler boundaries before the real command behavior exists.
|
|
14
|
-
|
|
15
|
-
## Implementation Plan
|
|
16
|
-
|
|
17
|
-
- [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched command/test files.
|
|
18
|
-
- [x] Add a small command result type if needed by the stub handlers and runner.
|
|
19
|
-
- [x] Add stub modules under `src/commands/` for `init`, `board`, `audit`, and `doctor`.
|
|
20
|
-
- [x] Make each stub return deterministic "not implemented yet" output and the shared not-implemented exit code.
|
|
21
|
-
- [x] Ensure stubs do not read, write, or discover project files.
|
|
22
|
-
- [x] Add focused tests for each command stub result.
|
|
23
|
-
- [x] Run the focused command-stub test file.
|
|
24
|
-
|
|
25
|
-
## Acceptance Criteria
|
|
26
|
-
|
|
27
|
-
- Each fixed command has a handler module with a testable function.
|
|
28
|
-
- Stub outputs are clear and deterministic.
|
|
29
|
-
- Command stubs have no project filesystem side effects.
|
package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T005-cli-runner-dispatch.md
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E03-cli-foundation/T005-cli-runner-dispatch
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Wire the parser, help text, environment helpers, and command stubs into a testable CLI runner."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E03-cli-foundation/T001-argument-parser-contract
|
|
7
|
-
- E03-cli-foundation/T002-help-text-generation
|
|
8
|
-
- E03-cli-foundation/T003-terminal-environment-detection
|
|
9
|
-
- E03-cli-foundation/T004-command-stub-modules
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# T005: CLI Runner Dispatch
|
|
13
|
-
|
|
14
|
-
## Scope
|
|
15
|
-
|
|
16
|
-
Add the `runCli()` boundary that later command implementations will use. This task owns command dispatch behavior, injected streams/environment, and result-to-output handling, but not the process entrypoint.
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched CLI/command/test files.
|
|
21
|
-
- [x] Add `src/cli/run.ts` with an injectable runner input for `argv`, `stdin`, `stdout`, `stderr`, environment, and platform data.
|
|
22
|
-
- [x] Route bare invocation and global help flags to top-level help output with a success exit code.
|
|
23
|
-
- [x] Route global version flags to the existing package version source with a success exit code.
|
|
24
|
-
- [x] Route command-level help requests to command help output with a success exit code.
|
|
25
|
-
- [x] Route known commands to their stub handlers.
|
|
26
|
-
- [x] Route unknown commands and unknown flags to stderr with the usage-error exit code.
|
|
27
|
-
- [x] Add focused runner tests for bare invocation, help, version, each command dispatch path, command-level help, unknown command, and unknown flag.
|
|
28
|
-
- [x] Run the focused runner test file.
|
|
29
|
-
|
|
30
|
-
## Acceptance Criteria
|
|
31
|
-
|
|
32
|
-
- `runCli()` is testable without spawning Node or reading process globals.
|
|
33
|
-
- Output routing between stdout and stderr is deterministic.
|
|
34
|
-
- Every command dispatch branch required by the epic quality gates has focused coverage.
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E03-cli-foundation/T006-entrypoint-quality-gates
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Connect the process entrypoint to the CLI runner and complete the E03 quality-gate closeout."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E03-cli-foundation/T005-cli-runner-dispatch
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T006: Entrypoint Quality Gates
|
|
10
|
-
|
|
11
|
-
## Scope
|
|
12
|
-
|
|
13
|
-
Finish the CLI foundation by keeping process globals in `src/cli.ts`, running the required quality gates, and creating the E03 audit snapshot handoff.
|
|
14
|
-
|
|
15
|
-
## Implementation Plan
|
|
16
|
-
|
|
17
|
-
- [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched entrypoint/test files.
|
|
18
|
-
- [x] Update `src/cli.ts` so process argv, streams, environment, platform, and exit code handling stay at the entrypoint boundary.
|
|
19
|
-
- [x] Add or update entrypoint-level tests only if existing coverage does not prove the process boundary behavior.
|
|
20
|
-
- [x] Run the focused CLI test files for the touched behavior.
|
|
21
|
-
- [x] Run `npm run build`.
|
|
22
|
-
- [x] Run `npm run typecheck`.
|
|
23
|
-
- [x] Run `npm run lint`.
|
|
24
|
-
- [x] Run `npm run format:check`.
|
|
25
|
-
- [x] Run `npm test`.
|
|
26
|
-
- [x] Create `.savepoint/audit/E03-cli-foundation/snapshot.md` with the implemented file list and quality-gate results for audit handoff.
|
|
27
|
-
|
|
28
|
-
## Acceptance Criteria
|
|
29
|
-
|
|
30
|
-
- Process globals are isolated to `src/cli.ts`.
|
|
31
|
-
- The full E03 quality-gate command list has been run and recorded.
|
|
32
|
-
- The audit snapshot exists for the next `audit-pending` state.
|