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,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: planned
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E01: Archive and Reset
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Archive all v1 epics, reset the project to a clean slate, and establish the v1 release structure for the simplified savepoint. This epic is pure filesystem and metadata housekeeping — no code changes.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- `_archived/` directory containing all 11 original v1 epics (E01–E11).
|
|
15
|
-
- A rewritten `PRD.md` scoped to the simplified savepoint: board-only CLI, phase model, no audit pipeline.
|
|
16
|
-
- Five new epic directories under `releases/v1/epics/` with Design.md stubs.
|
|
17
|
-
- A rewritten `router.md` pointing at the first new epic.
|
|
18
|
-
|
|
19
|
-
## Definition of Done
|
|
20
|
-
|
|
21
|
-
- All 11 original epic directories live under `releases/v1/epics/_archived/`.
|
|
22
|
-
- `releases/v1/PRD.md` describes the simplified scope.
|
|
23
|
-
- Five new epic directories exist: E01-archive-and-reset, E02-domain-phase-model, E03-cli-simplify, E04-board-phase-integration, E05-project-cleanup.
|
|
24
|
-
- `router.md` uses the 3-state model (`planning`, `building`, `reviewing`) and points at E01.
|
|
25
|
-
- No references to old epics remain in active files.
|
|
26
|
-
|
|
27
|
-
## Components and files
|
|
28
|
-
|
|
29
|
-
| Path | Purpose |
|
|
30
|
-
|------|---------|
|
|
31
|
-
| `releases/v1/epics/_archived/` | Archive of all original v1 epics |
|
|
32
|
-
| `releases/v1/PRD.md` | Rewritten release scope for simplified savepoint |
|
|
33
|
-
| `releases/v1/epics/E01-archive-and-reset/Design.md` | This file |
|
|
34
|
-
| `releases/v1/epics/E01-archive-and-reset/tasks/` | Archive + reset tasks |
|
|
35
|
-
| `releases/v1/epics/E02-domain-phase-model/Design.md` | Phase model epic stub |
|
|
36
|
-
| `releases/v1/epics/E03-cli-simplify/Design.md` | CLI simplification epic stub |
|
|
37
|
-
| `releases/v1/epics/E04-board-phase-integration/Design.md` | Board phase epic stub |
|
|
38
|
-
| `releases/v1/epics/E05-project-cleanup/Design.md` | Cleanup epic stub |
|
|
39
|
-
| `router.md` | 3-state router, points at E01 |
|
package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T001-archive-epics.md
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-archive-and-reset/T001-archive-epics
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Move all 11 original v1 epic directories into _archived/"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: Archive Epics
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- All 11 original epic directories (E01-scaffolding through E11-release-validation) exist under `releases/v1/epics/_archived/`.
|
|
13
|
-
- No original epic directories remain under `releases/v1/epics/` except `_archived/`.
|
|
14
|
-
- All task files and Design.md files within archived epics are preserved.
|
|
15
|
-
|
|
16
|
-
## Implementation Plan
|
|
17
|
-
|
|
18
|
-
- [ ] Create `releases/v1/epics/_archived/` directory.
|
|
19
|
-
- [ ] Move each of the 11 original epic directories into `_archived/`.
|
|
20
|
-
- [ ] Verify no original epic dirs remain at top level.
|
package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T002-rewrite-prd.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-archive-and-reset/T002-rewrite-prd
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Rewrite releases/v1/PRD.md with simplification scope"
|
|
5
|
-
depends_on: [E01-archive-and-reset/T001-archive-epics]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T002: Rewrite PRD
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `releases/v1/PRD.md` defines the simplified savepoint scope.
|
|
13
|
-
- Scope includes: board-only CLI, phase model (build/test/audit), no audit pipeline, no init command, no doctor command.
|
|
14
|
-
- PRD frontmatter is valid: `version`, `name`, `status`.
|
|
15
|
-
- No references to the full 11-epic v1 scope remain in the active PRD.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [ ] Read existing PRD.md for reference.
|
|
20
|
-
- [ ] Write new PRD.md with simplified scope: board command, phase model, minimal CLI.
|
|
21
|
-
- [ ] Update frontmatter: status = in_progress, version = 1.
|
|
22
|
-
- [ ] List 5 new epics in scope table.
|
package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T003-create-epic-stubs.md
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-archive-and-reset/T003-create-epic-stubs
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Create 5 new epic directories with Design.md stubs"
|
|
5
|
-
depends_on: [E01-archive-and-reset/T002-rewrite-prd]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T003: Create Epic Stubs
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Five epic directories exist under `releases/v1/epics/`: E01-archive-and-reset, E02-domain-phase-model, E03-cli-simplify, E04-board-phase-integration, E05-project-cleanup.
|
|
13
|
-
- Each epic directory contains a `Design.md` with valid frontmatter (`type: epic-design`, `status: planned`).
|
|
14
|
-
- Each Design.md contains Purpose, What this epic adds, Definition of Done, and Components sections.
|
|
15
|
-
- Each epic has a `tasks/` subdirectory.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [ ] Create directory structure for each epic.
|
|
20
|
-
- [ ] Write Design.md for E02-domain-phase-model.
|
|
21
|
-
- [ ] Write Design.md for E03-cli-simplify.
|
|
22
|
-
- [ ] Write Design.md for E04-board-phase-integration.
|
|
23
|
-
- [ ] Write Design.md for E05-project-cleanup.
|
|
24
|
-
- [ ] Verify all 5 epic dirs exist with Design.md.
|
package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T004-update-router.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-archive-and-reset/T004-update-router
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Rewrite router.md with 3-state model and point at E01"
|
|
5
|
-
depends_on: [E01-archive-and-reset/T003-create-epic-stubs]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T004: Update Router
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `router.md` defines 3 states: `planning`, `building`, `reviewing`.
|
|
13
|
-
- `router.md` points at epic `E01-archive-and-reset` as the active epic.
|
|
14
|
-
- `router.md` contains a `## Current state` yaml block with valid frontmatter.
|
|
15
|
-
- No references to old 6-state model remain.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [ ] Read existing router.md.
|
|
20
|
-
- [ ] Rewrite state machine section with 3 states.
|
|
21
|
-
- [ ] Update Current state yaml block: state = planning, release = v1, epic = E01-archive-and-reset.
|
|
22
|
-
- [ ] Verify yaml is parseable.
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: audited
|
|
4
|
-
audited: 2026-04-27
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Epic E01: scaffolding
|
|
8
|
-
|
|
9
|
-
## Purpose
|
|
10
|
-
|
|
11
|
-
Create the minimum production-ready TypeScript package foundation for `savepoint`, including build, test, lint, formatting, package metadata, and source tree conventions. This epic establishes the first auditable codebase baseline without implementing user-facing Savepoint behavior.
|
|
12
|
-
|
|
13
|
-
## What this epic adds
|
|
14
|
-
|
|
15
|
-
- A single-package Node 20.10+ TypeScript project using ESM.
|
|
16
|
-
- npm package metadata for package name `savepoint` and binary name `savepoint`.
|
|
17
|
-
- A `tsup` build that emits `dist/cli.js` with a Node shebang.
|
|
18
|
-
- Strict TypeScript configuration.
|
|
19
|
-
- Vitest test setup for future unit and integration tests.
|
|
20
|
-
- ESLint and Prettier configuration for mechanical quality gates.
|
|
21
|
-
- A minimal source layout that future epics can extend.
|
|
22
|
-
- Baseline npm scripts for build, typecheck, lint, format check, and test.
|
|
23
|
-
- Root documentation and ignore files needed for ordinary OSS development.
|
|
24
|
-
|
|
25
|
-
## Components and files
|
|
26
|
-
|
|
27
|
-
Expected files introduced by this epic:
|
|
28
|
-
|
|
29
|
-
| Path | Purpose |
|
|
30
|
-
| -------------------- | ------------------------------------------------------------------------ |
|
|
31
|
-
| `package.json` | Package metadata, bin mapping, scripts, dependencies, files allowlist. |
|
|
32
|
-
| `package-lock.json` | Locked dependency graph for repeatable installs. |
|
|
33
|
-
| `tsconfig.json` | Strict TypeScript compiler settings for ESM Node output. |
|
|
34
|
-
| `tsup.config.ts` | Build entry and output configuration. |
|
|
35
|
-
| `vitest.config.ts` | Test runner configuration. |
|
|
36
|
-
| `eslint.config.js` | Flat ESLint config for TypeScript. |
|
|
37
|
-
| `.prettierrc.json` | Formatting rules. |
|
|
38
|
-
| `.gitignore` | Ignore generated artifacts and local environment files. |
|
|
39
|
-
| `README.md` | Minimal development README until release docs expand it. |
|
|
40
|
-
| `LICENSE` | MIT license placeholder for the package. |
|
|
41
|
-
| `src/cli.ts` | Minimal executable entrypoint that prints help/version placeholder text. |
|
|
42
|
-
| `src/version.ts` | Single source for the package version used by the placeholder CLI. |
|
|
43
|
-
| `test/smoke.test.ts` | Baseline test proving the test runner and exported constants work. |
|
|
44
|
-
|
|
45
|
-
## Architectural delta
|
|
46
|
-
|
|
47
|
-
Before this epic, the repository contains only planning markdown and Savepoint workflow metadata. After this epic, it becomes an installable npm package skeleton with a compilable CLI entrypoint.
|
|
48
|
-
|
|
49
|
-
This does not add the actual Savepoint command system. The placeholder `src/cli.ts` exists only to validate packaging, shebang output, and the future binary surface. Real command dispatch belongs to `cli-foundation`.
|
|
50
|
-
|
|
51
|
-
## Boundaries
|
|
52
|
-
|
|
53
|
-
In scope:
|
|
54
|
-
|
|
55
|
-
- Configure the repo as an ESM-only TypeScript package.
|
|
56
|
-
- Make `npm run build`, `npm run typecheck`, `npm run lint`, and `npm test` meaningful.
|
|
57
|
-
- Keep runtime code minimal and dependency-light.
|
|
58
|
-
- Use package and binary name `savepoint`.
|
|
59
|
-
|
|
60
|
-
Out of scope:
|
|
61
|
-
|
|
62
|
-
- Argument parsing beyond placeholder help/version output.
|
|
63
|
-
- Reading or writing `.savepoint` project files.
|
|
64
|
-
- Implementing `init`, `board`, `audit`, or `doctor`.
|
|
65
|
-
- Ink, React, TUI rendering, theming, or visual identity work.
|
|
66
|
-
- Template content or Router Pattern prompt assets.
|
|
67
|
-
- Release publishing automation beyond package metadata basics.
|
|
68
|
-
|
|
69
|
-
## Quality gates
|
|
70
|
-
|
|
71
|
-
The scaffold should support these commands:
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
npm run build
|
|
75
|
-
npm run typecheck
|
|
76
|
-
npm run lint
|
|
77
|
-
npm test
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
The first audit after this epic should be able to update `AGENTS.md` with a codebase map that reflects the new top-level modules.
|
|
81
|
-
|
|
82
|
-
## Design constraints
|
|
83
|
-
|
|
84
|
-
- Keep files small and obvious; no framework or architecture abstractions before there is behavior to organize.
|
|
85
|
-
- Use strict typing from the first commit.
|
|
86
|
-
- Avoid `any`.
|
|
87
|
-
- Keep config conventional enough that a vibe coder can recognize and modify it.
|
|
88
|
-
- Do not add native dependencies.
|
|
89
|
-
- Do not add telemetry, update checks, analytics, or postinstall scripts.
|
|
90
|
-
|
|
91
|
-
## Open decisions
|
|
92
|
-
|
|
93
|
-
- The exact dependency versions are implementation details, but they should be current stable versions compatible with Node 20.10+.
|
|
94
|
-
- `README.md` should stay intentionally sparse in this epic; fuller public-facing docs belong to `docs-and-packaging`.
|
|
95
|
-
|
|
96
|
-
## Implemented as
|
|
97
|
-
|
|
98
|
-
Implemented on 2026-04-27 across tasks T001–T005. All quality gates pass.
|
|
99
|
-
|
|
100
|
-
**Deviations from original design:**
|
|
101
|
-
|
|
102
|
-
| Item | Deviation | Reason |
|
|
103
|
-
| ---------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
104
|
-
| `vitest.config.js` | Extra file not in design | `npm test` requires `--configLoader runner` pointing at a `.js` config on Windows; `.ts` config cannot be loaded directly in this execution path |
|
|
105
|
-
| `scripts/vitest-preload.cjs` | Extra file not in design | Windows runner executes a `net use` child_process call during Vitest startup; this CJS preload stubs that call and also stubs esbuild transforms to avoid a secondary Windows compat issue |
|
|
106
|
-
| `.prettierignore` | Extra file not in design | Standard convention; consistent with `.gitignore` exclusions |
|
|
107
|
-
|
|
108
|
-
**Dependency versions (pinned):**
|
|
109
|
-
|
|
110
|
-
| Package | Version |
|
|
111
|
-
| ------------------- | ------- |
|
|
112
|
-
| `typescript` | ^5.8.3 |
|
|
113
|
-
| `tsup` | ^8.5.1 |
|
|
114
|
-
| `vitest` | ^3.2.4 |
|
|
115
|
-
| `eslint` | ^9.33.0 |
|
|
116
|
-
| `typescript-eslint` | ^8.39.0 |
|
|
117
|
-
| `prettier` | ^3.6.2 |
|
|
118
|
-
| `@types/node` | ^24.1.0 |
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# E01-scaffolding Handoff
|
|
2
|
-
|
|
3
|
-
Read this instead of the full audit unless debugging scaffold history.
|
|
4
|
-
|
|
5
|
-
- Package scaffold exists for `savepoint` version `0.1.0`.
|
|
6
|
-
- Commands available through npm: `build`, `typecheck`, `lint`, `format:check`, and `test`.
|
|
7
|
-
- Windows test execution uses `scripts/vitest-preload.cjs` plus `vitest.config.js`.
|
|
8
|
-
- Source baseline: `src/cli.ts`, `src/version.ts`, and `test/smoke.test.ts`.
|
|
9
|
-
- Carried forward to `E03-cli-foundation`: real CLI dispatch tests and the decision on whether `version.ts` should derive from `package.json`.
|
package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T001-package-baseline.md
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-scaffolding/T001-package-baseline
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Establish the `savepoint` npm package identity and baseline repository hygiene files without implementing CLI behavior."
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Task T001: Package Baseline
|
|
9
|
-
|
|
10
|
-
## Implementation Plan
|
|
11
|
-
|
|
12
|
-
- [x] Draft `package.json` with package name, binary mapping, Node engine, and module type.
|
|
13
|
-
- [x] Add `.gitignore` for generated, dependency, coverage, and local environment artifacts.
|
|
14
|
-
- [x] Add minimal `README.md` content that describes the repo as the `savepoint` scaffold.
|
|
15
|
-
- [x] Add MIT `LICENSE` text for the package baseline.
|
|
16
|
-
- [x] Verify the files align with the package and binary name `savepoint`.
|
|
17
|
-
|
|
18
|
-
## Scope
|
|
19
|
-
|
|
20
|
-
Create the root package and repository metadata that every later scaffolding task builds on.
|
|
21
|
-
|
|
22
|
-
Expected files:
|
|
23
|
-
|
|
24
|
-
- `package.json`
|
|
25
|
-
- `.gitignore`
|
|
26
|
-
- `README.md`
|
|
27
|
-
- `LICENSE`
|
|
28
|
-
|
|
29
|
-
## Acceptance Criteria
|
|
30
|
-
|
|
31
|
-
- `package.json` uses package name `savepoint`.
|
|
32
|
-
- `package.json` declares binary name `savepoint` pointing at `dist/cli.js`.
|
|
33
|
-
- `package.json` declares Node `>=20.10`.
|
|
34
|
-
- `package.json` is ESM-only with `"type": "module"`.
|
|
35
|
-
- `README.md` is intentionally minimal and development-focused.
|
|
36
|
-
- `LICENSE` contains MIT license text.
|
|
37
|
-
- `.gitignore` excludes generated build, dependency, coverage, and local environment artifacts.
|
|
38
|
-
|
|
39
|
-
## Out Of Scope
|
|
40
|
-
|
|
41
|
-
- TypeScript configuration.
|
|
42
|
-
- Build tooling.
|
|
43
|
-
- Test tooling.
|
|
44
|
-
- Lint or format tooling.
|
|
45
|
-
- Real command behavior.
|
package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T002-typescript-build.md
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-scaffolding/T002-typescript-build
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Add the strict TypeScript source layout and `tsup` build that emits the placeholder `savepoint` CLI binary."
|
|
5
|
-
depends_on: [E01-scaffolding/T001-package-baseline]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Task T002: TypeScript Build
|
|
9
|
-
|
|
10
|
-
## Implementation Plan
|
|
11
|
-
|
|
12
|
-
- [x] Add `tsconfig.json` with strict NodeNext compilation settings for the scaffold.
|
|
13
|
-
- [x] Add `tsup.config.ts` and a minimal `src/cli.ts` entrypoint that builds to `dist/cli.js`.
|
|
14
|
-
- [x] Add `src/version.ts` as the single source of version metadata used by the CLI placeholder.
|
|
15
|
-
- [x] Add TypeScript and build dependencies to `package.json`.
|
|
16
|
-
- [x] Generate `package-lock.json` from the updated manifest.
|
|
17
|
-
- [x] Verify `npm run build` and `npm run typecheck` pass.
|
|
18
|
-
|
|
19
|
-
## Scope
|
|
20
|
-
|
|
21
|
-
Create the minimal source tree and build configuration needed for a compiled CLI placeholder.
|
|
22
|
-
|
|
23
|
-
Expected files:
|
|
24
|
-
|
|
25
|
-
- `tsconfig.json`
|
|
26
|
-
- `tsup.config.ts`
|
|
27
|
-
- `src/cli.ts`
|
|
28
|
-
- `src/version.ts`
|
|
29
|
-
- `package-lock.json`
|
|
30
|
-
|
|
31
|
-
Expected `package.json` updates:
|
|
32
|
-
|
|
33
|
-
- Add TypeScript/build dependencies.
|
|
34
|
-
- Add `build` and `typecheck` scripts.
|
|
35
|
-
|
|
36
|
-
## Acceptance Criteria
|
|
37
|
-
|
|
38
|
-
- `npm run build` emits `dist/cli.js`.
|
|
39
|
-
- The emitted CLI file has a Node shebang.
|
|
40
|
-
- `npm run typecheck` passes under strict TypeScript settings.
|
|
41
|
-
- The placeholder CLI can print version/help placeholder output.
|
|
42
|
-
- No real command dispatch is implemented.
|
|
43
|
-
|
|
44
|
-
## Out Of Scope
|
|
45
|
-
|
|
46
|
-
- Argument parsing beyond minimal placeholder output.
|
|
47
|
-
- `init`, `board`, `audit`, or `doctor` behavior.
|
|
48
|
-
- Tests beyond whatever is necessary to validate the build manually.
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-scaffolding/T003-vitest-smoke
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Add Vitest configuration and a smoke test that proves the scaffolded package can run automated tests."
|
|
5
|
-
depends_on: [E01-scaffolding/T002-typescript-build]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Task T003: Vitest Smoke Test
|
|
9
|
-
|
|
10
|
-
## Implementation Plan
|
|
11
|
-
|
|
12
|
-
- [x] Add Vitest configuration and include pattern for the scaffold smoke test.
|
|
13
|
-
- [x] Add a smoke test that imports scaffolded source and asserts the exported version.
|
|
14
|
-
- [x] Add the Vitest dependency and `test` script to `package.json`.
|
|
15
|
-
- [x] Adjust the scaffold for the Windows runner path so `npm test` executes reliably in this environment.
|
|
16
|
-
- [x] Verify `npm test` and `npm run typecheck` pass.
|
|
17
|
-
|
|
18
|
-
## Scope
|
|
19
|
-
|
|
20
|
-
Introduce the test runner and a small smoke test for the existing scaffolded source.
|
|
21
|
-
|
|
22
|
-
Expected files:
|
|
23
|
-
|
|
24
|
-
- `vitest.config.ts`
|
|
25
|
-
- `test/smoke.test.ts`
|
|
26
|
-
|
|
27
|
-
Expected `package.json` updates:
|
|
28
|
-
|
|
29
|
-
- Add Vitest dependency.
|
|
30
|
-
- Add `test` script.
|
|
31
|
-
|
|
32
|
-
## Acceptance Criteria
|
|
33
|
-
|
|
34
|
-
- `npm test` runs Vitest.
|
|
35
|
-
- The smoke test imports TypeScript source.
|
|
36
|
-
- The smoke test verifies stable placeholder behavior such as exported version metadata.
|
|
37
|
-
- Tests do not depend on generated `dist/` output.
|
|
38
|
-
|
|
39
|
-
## Out Of Scope
|
|
40
|
-
|
|
41
|
-
- CLI integration tests.
|
|
42
|
-
- Command behavior tests.
|
|
43
|
-
- Filesystem fixture tests.
|
package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T004-lint-format-gates.md
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-scaffolding/T004-lint-format-gates
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Add ESLint and Prettier configuration so the scaffold has mechanical quality gates from the first epic."
|
|
5
|
-
depends_on: [E01-scaffolding/T003-vitest-smoke]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Task T004: Lint And Format Gates
|
|
9
|
-
|
|
10
|
-
## Implementation Plan
|
|
11
|
-
|
|
12
|
-
- [x] Add ESLint, TypeScript ESLint, Prettier, and supporting config dependencies to `package.json`.
|
|
13
|
-
- [x] Add `eslint.config.js` with flat-config rules that reject `any` in TypeScript.
|
|
14
|
-
- [x] Add `.prettierrc.json` and ignore rules for generated output.
|
|
15
|
-
- [x] Add `lint` and `format:check` scripts to `package.json`.
|
|
16
|
-
- [x] Verify `npm run lint` and `npm run format:check` pass on the current scaffold.
|
|
17
|
-
- [x] Verify the existing scaffold still passes `npm run build`, `npm test`, and `npm run typecheck`.
|
|
18
|
-
|
|
19
|
-
## Scope
|
|
20
|
-
|
|
21
|
-
Add lint and formatting configuration for the TypeScript project.
|
|
22
|
-
|
|
23
|
-
Expected files:
|
|
24
|
-
|
|
25
|
-
- `eslint.config.js`
|
|
26
|
-
- `.prettierrc.json`
|
|
27
|
-
|
|
28
|
-
Expected `package.json` updates:
|
|
29
|
-
|
|
30
|
-
- Add ESLint, TypeScript ESLint, and Prettier dependencies.
|
|
31
|
-
- Add `lint` and `format:check` scripts.
|
|
32
|
-
|
|
33
|
-
## Acceptance Criteria
|
|
34
|
-
|
|
35
|
-
- `npm run lint` passes.
|
|
36
|
-
- `npm run format:check` passes.
|
|
37
|
-
- ESLint is configured with the flat config format.
|
|
38
|
-
- ESLint rejects `any` usage in project TypeScript.
|
|
39
|
-
- Prettier covers source, test, config, and markdown files.
|
|
40
|
-
|
|
41
|
-
## Out Of Scope
|
|
42
|
-
|
|
43
|
-
- Language-specific quality presets beyond TypeScript.
|
|
44
|
-
- Dependency boundary tooling.
|
|
45
|
-
- Auto-format command requirements beyond a check script.
|
package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T005-scaffold-verification.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-scaffolding/T005-scaffold-verification
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Verify the complete scaffold through the agreed npm scripts and make any final minimal adjustments needed for the first audit baseline."
|
|
5
|
-
depends_on: [E01-scaffolding/T004-lint-format-gates]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Task T005: Scaffold Verification
|
|
9
|
-
|
|
10
|
-
## Implementation Plan
|
|
11
|
-
|
|
12
|
-
- [x] Run the full scaffold command set: build, typecheck, lint, format check, and tests.
|
|
13
|
-
- [x] Inspect the repo for any missing scaffold artifacts or generated files that should stay ignored.
|
|
14
|
-
- [x] Make only minimal corrections if the baseline is still inconsistent.
|
|
15
|
-
- [x] Mark the scaffold task complete once the verification set passes.
|
|
16
|
-
|
|
17
|
-
## Scope
|
|
18
|
-
|
|
19
|
-
Run the full scaffold command set and make small corrective edits if any setup task left the baseline inconsistent.
|
|
20
|
-
|
|
21
|
-
Expected verification commands:
|
|
22
|
-
|
|
23
|
-
- `npm run build`
|
|
24
|
-
- `npm run typecheck`
|
|
25
|
-
- `npm run lint`
|
|
26
|
-
- `npm run format:check`
|
|
27
|
-
- `npm test`
|
|
28
|
-
|
|
29
|
-
## Acceptance Criteria
|
|
30
|
-
|
|
31
|
-
- All expected verification commands pass.
|
|
32
|
-
- `package-lock.json` is present and consistent with `package.json`.
|
|
33
|
-
- `dist/` remains generated output and is not committed as source.
|
|
34
|
-
- The repo is ready for the first epic audit to populate the `AGENTS.md` codebase map.
|
|
35
|
-
|
|
36
|
-
## Out Of Scope
|
|
37
|
-
|
|
38
|
-
- Updating `AGENTS.md` codebase map before audit.
|
|
39
|
-
- Implementing command behavior.
|
|
40
|
-
- Public release packaging polish.
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: audited
|
|
4
|
-
audited: 2026-04-27
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Epic E02: data-model
|
|
8
|
-
|
|
9
|
-
## Context Budget
|
|
10
|
-
|
|
11
|
-
For implementation tasks in this epic, read only:
|
|
12
|
-
|
|
13
|
-
- `.savepoint/router.md`
|
|
14
|
-
- this epic `Design.md`
|
|
15
|
-
- the active task file
|
|
16
|
-
- directly touched source/test files
|
|
17
|
-
|
|
18
|
-
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.
|
|
19
|
-
|
|
20
|
-
## Purpose
|
|
21
|
-
|
|
22
|
-
Build the core file-backed model for releases, epics, tasks, statuses, dependencies, and project configuration. This epic gives later CLI and TUI work a typed domain layer instead of each command parsing markdown independently.
|
|
23
|
-
|
|
24
|
-
## What this epic adds
|
|
25
|
-
|
|
26
|
-
- Typed models for releases, epics, tasks, task statuses, dependency IDs, config, and router state.
|
|
27
|
-
- Markdown frontmatter parsing for task and planning files.
|
|
28
|
-
- Readers for `.savepoint/releases/{release}/PRD.md`, epic `Design.md`, and task files.
|
|
29
|
-
- Status transition validation for `planned`, `in_progress`, and `done`, with legacy `backlog` and `review` normalized on read.
|
|
30
|
-
- Dependency resolution, missing dependency detection, and cycle detection.
|
|
31
|
-
- Shared filesystem helpers for scoped `.savepoint` reads.
|
|
32
|
-
- Unit tests for parsing, validation, dependency logic, and state transitions.
|
|
33
|
-
|
|
34
|
-
## Implementation strategy
|
|
35
|
-
|
|
36
|
-
- Use structured parsers for YAML/frontmatter and Markdown boundaries.
|
|
37
|
-
- Keep domain types and validation pure; filesystem reads belong in `src/fs/*` and `src/readers/*`.
|
|
38
|
-
- Keep writes out of scope except temporary test fixtures.
|
|
39
|
-
- Make ID parsing understand prefixed epic and task IDs such as `E02-data-model/T001-readers`.
|
|
40
|
-
- Return boundary errors that include the path and reason without forcing callers to parse error text.
|
|
41
|
-
|
|
42
|
-
## Components and files
|
|
43
|
-
|
|
44
|
-
Expected files introduced or extended by this epic:
|
|
45
|
-
|
|
46
|
-
| Path | Purpose |
|
|
47
|
-
| ----------------------- | --------------------------------------------------- |
|
|
48
|
-
| `src/domain/status.ts` | Status values and transition rules. |
|
|
49
|
-
| `src/domain/ids.ts` | Release, epic, and task ID parsing/formatting. |
|
|
50
|
-
| `src/domain/task.ts` | Task frontmatter and task document types. |
|
|
51
|
-
| `src/domain/release.ts` | Release PRD metadata types. |
|
|
52
|
-
| `src/domain/config.ts` | `config.yml` type and defaults. |
|
|
53
|
-
| `src/fs/markdown.ts` | Markdown/frontmatter read helpers. |
|
|
54
|
-
| `src/fs/project.ts` | Project root and `.savepoint` path helpers. |
|
|
55
|
-
| `src/readers/*.ts` | Release, epic, task, router, and config readers. |
|
|
56
|
-
| `src/validation/*.ts` | Status, dependency, duplicate ID, and cycle checks. |
|
|
57
|
-
| `test/**/*.test.ts` | Unit tests for the model and validation behavior. |
|
|
58
|
-
|
|
59
|
-
## Architectural delta
|
|
60
|
-
|
|
61
|
-
Before this epic, Savepoint has only a package scaffold. After this epic, it has a reusable domain and read-only persistence layer for the file-based state machine.
|
|
62
|
-
|
|
63
|
-
This epic intentionally avoids write operations except where tests create fixtures. Writes belong to later command/TUI/audit work once behavior exists.
|
|
64
|
-
|
|
65
|
-
## Boundaries
|
|
66
|
-
|
|
67
|
-
In scope:
|
|
68
|
-
|
|
69
|
-
- Parse markdown frontmatter with clear boundary errors.
|
|
70
|
-
- Model task dependencies using repo-relative task IDs.
|
|
71
|
-
- Detect cycles and broken dependencies.
|
|
72
|
-
- Expose pure validation functions usable by CLI, TUI, audit, and doctor.
|
|
73
|
-
|
|
74
|
-
Out of scope:
|
|
75
|
-
|
|
76
|
-
- Creating or editing tasks.
|
|
77
|
-
- Rendering any TUI.
|
|
78
|
-
- Implementing command dispatch.
|
|
79
|
-
- Running quality gates.
|
|
80
|
-
- Writing audit proposals.
|
|
81
|
-
|
|
82
|
-
## Quality gates
|
|
83
|
-
|
|
84
|
-
- Branching parser and validator logic must have unit tests.
|
|
85
|
-
- Fixture files should be small and local to tests.
|
|
86
|
-
- Errors should identify the file path and failure reason.
|
|
87
|
-
|
|
88
|
-
## Design constraints
|
|
89
|
-
|
|
90
|
-
- Prefer structured parsers over ad hoc string splitting.
|
|
91
|
-
- Keep filesystem access at boundaries; domain validation should be pure.
|
|
92
|
-
- Use one source of truth for status transitions and dependency rules.
|
|
93
|
-
|
|
94
|
-
## Implemented as
|
|
95
|
-
|
|
96
|
-
Implemented on 2026-04-27 across tasks T001-T007. The read-only data model landed with focused unit tests and passing mechanical gates after formatting the E02 task markdown.
|
|
97
|
-
|
|
98
|
-
**Implemented components:**
|
|
99
|
-
|
|
100
|
-
| Path | Result |
|
|
101
|
-
| -------------------------------- | ----------------------------------------------------------------------- |
|
|
102
|
-
| `src/domain/ids.ts` | Release, epic, and full task ID parsing plus formatting helpers. |
|
|
103
|
-
| `src/domain/status.ts` | Canonical task status values and transition validation. |
|
|
104
|
-
| `src/domain/task.ts` | Task frontmatter and task document validation. |
|
|
105
|
-
| `src/domain/release.ts` | Release PRD frontmatter validation. |
|
|
106
|
-
| `src/domain/epic.ts` | Epic Design frontmatter validation. |
|
|
107
|
-
| `src/domain/router.ts` | Router state value and Current state validation. |
|
|
108
|
-
| `src/domain/config.ts` | Config defaults and merge behavior. |
|
|
109
|
-
| `src/fs/markdown.ts` | Structured YAML frontmatter parsing with path-aware boundary errors. |
|
|
110
|
-
| `src/fs/project.ts` | `.savepoint` root discovery and scoped path construction. |
|
|
111
|
-
| `src/readers/*.ts` | Read-only release, epic, router, config, and task-set readers. |
|
|
112
|
-
| `src/validation/dependencies.ts` | Duplicate task ID, missing dependency, and cycle detection. |
|
|
113
|
-
| `test/**/*.test.ts` | Branch coverage for parser, reader, status, config, and graph behavior. |
|
|
114
|
-
|
|
115
|
-
**Deviations from original design:**
|
|
116
|
-
|
|
117
|
-
| Item | Deviation | Reason / follow-up |
|
|
118
|
-
| ----------------------------- | -------------------- | --------------------------------------------------------------------------------------- |
|
|
119
|
-
| `done` status transitions | Fixed during audit | `done -> review` is allowed so completed work can be reopened for audit-stale rechecks. |
|
|
120
|
-
| Config accent validation | Fixed during audit | Non-string custom accent values are ignored before merging defaults. |
|
|
121
|
-
| Audit snapshot/router flip | Manual | Expected until E07 implements the audit CLI pipeline. |
|
|
122
|
-
| `.claude/settings.local.json` | Local untracked file | Decide whether to add `.claude/` to `.gitignore` before commit. |
|
|
123
|
-
|
|
124
|
-
**Quality gates:**
|
|
125
|
-
|
|
126
|
-
| Gate | Result |
|
|
127
|
-
| ---------------------- | ---------------------------------------------------------------------------------------- |
|
|
128
|
-
| `npm run build` | Passed. |
|
|
129
|
-
| `npm run typecheck` | Passed. |
|
|
130
|
-
| `npm run lint` | Passed. |
|
|
131
|
-
| `npm run format:check` | Passed after formatting E02 task markdown. |
|
|
132
|
-
| `npm test` | Passed outside sandbox: 16 test files, 176 tests. Sandbox run hit esbuild `spawn EPERM`. |
|
|
133
|
-
|
|
134
|
-
## Close Criteria
|
|
135
|
-
|
|
136
|
-
- All `E02-data-model` tasks are `done`.
|
|
137
|
-
- `npm run build`, `npm run typecheck`, `npm run lint`, `npm run format:check`, and `npm test` pass.
|
|
138
|
-
- Tests cover parser errors, valid documents, invalid statuses, allowed and disallowed status transitions, missing dependencies, duplicate IDs, and dependency cycles.
|
|
139
|
-
- Audit snapshot exists at `.savepoint/audit/E02-data-model/snapshot.md`.
|
|
140
|
-
- Audit proposals are accepted, rejected, or explicitly carried forward.
|
|
141
|
-
- This epic `Design.md` has `status: audited`.
|
|
142
|
-
- Router points to the next epic state.
|
package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T001-domain-ids-status.md
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-data-model/T001-domain-ids-status
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Define pure domain primitives for release, epic, task IDs, task statuses, and allowed status transitions."
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: Domain IDs and Statuses
|
|
9
|
-
|
|
10
|
-
## Scope
|
|
11
|
-
|
|
12
|
-
Introduce the core domain types and validation helpers that later readers and validators can share.
|
|
13
|
-
|
|
14
|
-
## Acceptance Criteria
|
|
15
|
-
|
|
16
|
-
- Release, epic, and task ID parsing accepts the E02 design's expected ID shapes.
|
|
17
|
-
- Task status values are represented from one source of truth.
|
|
18
|
-
- Status transition validation covers allowed and disallowed transitions.
|
|
19
|
-
- Branching validation behavior has focused unit tests.
|
|
20
|
-
|
|
21
|
-
## Implementation Plan
|
|
22
|
-
|
|
23
|
-
- [x] Inspect existing package/test conventions needed to place domain modules and focused unit tests.
|
|
24
|
-
- [x] Add pure ID parsing and formatting helpers for release IDs, epic IDs, task numbers, and full task IDs.
|
|
25
|
-
- [x] Add task status constants/types and one transition rule table for `backlog`, `planned`, `in_progress`, `review`, and `done`.
|
|
26
|
-
- [x] Add validation helpers that return typed success/failure results without filesystem access.
|
|
27
|
-
- [x] Add unit tests for valid and invalid ID shapes plus allowed and disallowed status transitions.
|