savepoint 1.0.4 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +11 -4
- package/savepoint.exe +0 -0
- package/.claude/settings.local.json +0 -38
- package/.github/workflows/ci.yml +0 -20
- package/.golangci.yml +0 -11
- package/.prettierignore +0 -4
- package/.savepoint/Design.md +0 -207
- package/.savepoint/PRD.md +0 -58
- package/.savepoint/config.yml +0 -27
- package/.savepoint/releases/v1/epics/E01-go-setup/E01-Detail.md +0 -39
- package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T001-init-module.md +0 -42
- package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T002-entrypoint.md +0 -23
- package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T003-directory-structure.md +0 -24
- package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T004-makefile.md +0 -23
- package/.savepoint/releases/v1/epics/E02-data-readers/E02-Detail.md +0 -61
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T001-task-struct.md +0 -29
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T002-frontmatter-parser.md +0 -30
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T003-router-reader.md +0 -29
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T004-config-reader.md +0 -29
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T005-discovery.md +0 -30
- package/.savepoint/releases/v1/epics/E03-board-tui-core/E03-Detail.md +0 -38
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T001-model.md +0 -29
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T002-update-loop.md +0 -30
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T003-view.md +0 -34
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T004-styles.md +0 -29
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T005-layout.md +0 -42
- package/.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md +0 -44
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T001-column.md +0 -34
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T002-card.md +0 -33
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T003-epic-panel.md +0 -49
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T004-detail-overlay.md +0 -40
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T005-release-dropdown.md +0 -33
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T006-help-overlay.md +0 -34
- package/.savepoint/releases/v1/epics/E05-phase-transitions/E05-Detail.md +0 -38
- package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T001-phase-stepping.md +0 -29
- package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T002-gates.md +0 -31
- package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T003-write-task.md +0 -31
- package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T004-write-router.md +0 -31
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/E06-Detail.md +0 -62
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T001-color-system.md +0 -39
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T002-header-and-dividers.md +0 -52
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T003-footer-status-bar.md +0 -52
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T004-component-refinement.md +0 -53
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T005-restore-nav-hints.md +0 -39
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T007-detail-card-fixes.md +0 -36
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T008-checkbox-states.md +0 -40
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T009-router-priority-marker.md +0 -48
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T010-auto-refresh-watcher.md +0 -66
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/Design.md +0 -39
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T001-archive-epics.md +0 -20
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T002-rewrite-prd.md +0 -22
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T003-create-epic-stubs.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T004-update-router.md +0 -22
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/Design.md +0 -118
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/handoff.md +0 -9
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T001-package-baseline.md +0 -45
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T002-typescript-build.md +0 -48
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T003-vitest-smoke.md +0 -43
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T004-lint-format-gates.md +0 -45
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T005-scaffold-verification.md +0 -40
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/Design.md +0 -142
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T001-domain-ids-status.md +0 -27
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T002-markdown-frontmatter-boundary.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T003-task-documents.md +0 -29
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T004-release-epic-router-config-readers.md +0 -30
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T005-dependency-validation.md +0 -29
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T006-epic-task-set-reader.md +0 -29
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T007-quality-gates.md +0 -31
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/Design.md +0 -40
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T001-phase-types.md +0 -27
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T002-phase-frontmatter.md +0 -25
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T003-simplify-config.md +0 -26
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T004-simplify-router-domain.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/Design.md +0 -122
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T001-argument-parser-contract.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T002-help-text-generation.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T003-terminal-environment-detection.md +0 -27
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T004-command-stub-modules.md +0 -29
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T005-cli-runner-dispatch.md +0 -34
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T006-entrypoint-quality-gates.md +0 -32
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/Design.md +0 -43
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T001-strip-args.md +0 -26
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T002-strip-help.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T003-strip-run.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T004-delete-commands.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T005-update-cli-tests.md +0 -22
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/Design.md +0 -48
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T001-board-data-phases.md +0 -26
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T002-phase-rendering.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T003-detail-pane-phases.md +0 -27
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T004-phase-transitions.md +0 -42
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T005-phase-gates.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T006-phase-write-back.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T007-remove-audit-flow.md +0 -27
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T008-board-tests.md +0 -25
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/Design.md +0 -85
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T001-project-template-assets.md +0 -17
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T002-release-and-prompt-assets.md +0 -20
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T003-template-registry-renderer.md +0 -22
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T004-template-integrity-tests.md +0 -17
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T005-template-closeout-quality-gates.md +0 -16
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/Design.md +0 -88
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T001-init-cli-contract.md +0 -22
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T002-target-validation.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T003-scaffold-writer.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T004-magic-prompt-and-clipboard.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T005-dev-deps-install-option.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T006-init-command-integration.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/Design.md +0 -53
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T001-delete-dead-src.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T002-delete-dead-tests.md +0 -26
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T003-delete-assets.md +0 -25
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T004-clean-savepoint.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T005-rewrite-agents-md.md +0 -28
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T006-clean-package-json.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T007-verify.md +0 -25
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/Design.md +0 -104
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T001-board-command-data.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T002-board-view-state.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T003-transition-gates-and-writes.md +0 -25
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T004-terminal-theme.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T005-ink-board-ui.md +0 -26
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T006-board-integration-audit-entry.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/Design.md +0 -88
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T001-audit-cli-contract.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T002-quality-gate-runner.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T003-snapshot-and-prompt.md +0 -23
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T004-audit-orchestration-router.md +0 -27
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T005-proposal-validation-apply.md +0 -25
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T006-audit-review-state.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T007-audit-review-ui.md +0 -26
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T008-audit-pipeline-integration.md +0 -24
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/Design.md +0 -103
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T001-acceptance-criteria-model.md +0 -30
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T002-release-task-set-reader.md +0 -33
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T003-board-data-and-plain-output.md +0 -34
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T004-board-selection-state.md +0 -33
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T005-ink-board-layout-cleanup.md +0 -37
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T006-task-detail-popup.md +0 -36
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T007-templates-acceptance-criteria.md +0 -34
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T008-board-workflow-integration.md +0 -41
- package/.savepoint/releases/v1/epics/_archived/E09-doctor-command/Design.md +0 -70
- package/.savepoint/releases/v1/epics/_archived/E10-docs-and-packaging/Design.md +0 -68
- package/.savepoint/releases/v1/epics/_archived/E11-release-validation/Design.md +0 -68
- package/.savepoint/releases/v1/v1-PRD.md +0 -66
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/E01-Detail.md +0 -40
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T001-next-activity-header.md +0 -56
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T002-rename-epic-design-files.md +0 -38
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T003-rename-release-prd.md +0 -28
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T004-update-instruction-files.md +0 -51
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T005-update-cross-references.md +0 -45
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T006-column-and-detail-scrolling.md +0 -68
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T007-column-focus-border-stability.md +0 -57
- package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Audit.md +0 -124
- package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/E02-Detail.md +0 -49
- package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T001-fix-makefile.md +0 -37
- package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T002-linux-build-target.md +0 -38
- package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T003-macos-build-target.md +0 -36
- package/.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/tasks/T004-smoke-tests-and-artifacts.md +0 -59
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/E03-Audit.md +0 -195
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/E03-Detail.md +0 -45
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T001-border-resize-fix.md +0 -40
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T002-next-activity-below-header.md +0 -64
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T003-checkbox-rendering-fix.md +0 -56
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T005-unify-status-glyphs.md +0 -65
- package/.savepoint/releases/v1.1/epics/E03-ui-visual-refinement/tasks/T006-forced-256-color-profile.md +0 -36
- package/.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Audit.md +0 -167
- package/.savepoint/releases/v1.1/epics/E04-epic-navigation/E04-Detail.md +0 -51
- package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T001-sidebar-focusable-navigation.md +0 -65
- package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T002-epic-detail-overlay.md +0 -73
- package/.savepoint/releases/v1.1/epics/E04-epic-navigation/tasks/T003-epic-status-glyphs.md +0 -73
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Audit.md +0 -237
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/E05-Detail.md +0 -54
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T001-update-agents-md.md +0 -45
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T002-update-router-md.md +0 -40
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T003-update-design-md.md +0 -47
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T004-implement-m-hotkey.md +0 -98
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T005-update-help-overlay.md +0 -33
- package/.savepoint/releases/v1.1/epics/E05-tasking-permissions/tasks/T006-tests-and-quality-gates.md +0 -62
- package/.savepoint/releases/v1.1/epics/E06-audit-command/E06-Audit.md +0 -56
- package/.savepoint/releases/v1.1/epics/E06-audit-command/E06-Detail.md +0 -63
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T005-proposals.md +0 -44
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T007-apply-close.md +0 -35
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T009-integration.md +0 -40
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T010-audit-file-migration.md +0 -45
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T011-model-tab-state.md +0 -26
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T012-epic-audit-render.md +0 -33
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T013-handle-tab-keys.md +0 -34
- package/.savepoint/releases/v1.1/epics/E06-audit-command/tasks/T014-tab-indicator.md +0 -33
- package/.savepoint/releases/v1.1/epics/E07-init-command/E07-Audit.md +0 -336
- package/.savepoint/releases/v1.1/epics/E07-init-command/E07-Detail.md +0 -61
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T001-cli-entrypoint.md +0 -37
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T002-target-validation.md +0 -28
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T003-scaffold-writer.md +0 -46
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T004-atomic-writes.md +0 -27
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T005-magic-prompt.md +0 -25
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T006-clipboard.md +0 -26
- package/.savepoint/releases/v1.1/epics/E07-init-command/tasks/T007-integration-test.md +0 -26
- package/.savepoint/releases/v1.1/epics/E08-board-command/E08-Audit.md +0 -333
- package/.savepoint/releases/v1.1/epics/E08-board-command/E08-Detail.md +0 -68
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T001-cli-entrypoint.md +0 -26
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T002-non-tty-fallback.md +0 -27
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T003-tui-app-shell.md +0 -28
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T004-board-model.md +0 -29
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T005-detail-pane.md +0 -27
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T006-status-transitions.md +0 -29
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T007-theme-fallbacks.md +0 -29
- package/.savepoint/releases/v1.1/epics/E08-board-command/tasks/T008-integration-test.md +0 -27
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/E09-Audit.md +0 -207
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/E09-Detail.md +0 -65
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T001-cli-entrypoint.md +0 -24
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T002-config-router-validation.md +0 -28
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T003-structure-checks.md +0 -29
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T004-dependency-checks.md +0 -27
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T005-audit-orphan-checks.md +0 -28
- package/.savepoint/releases/v1.1/epics/E09-doctor-command/tasks/T006-quality-gates-report.md +0 -31
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/E11-Detail.md +0 -36
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T001-debug-logging.md +0 -25
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T002-increase-debounce.md +0 -21
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T003-error-handling.md +0 -22
- package/.savepoint/releases/v1.1/epics/E11-board-refresh-fix/tasks/T004-test-verify.md +0 -29
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/E12-Audit.md +0 -444
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/E12-Detail.md +0 -45
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T001-default-phase.md +0 -35
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T002-default-status.md +0 -19
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T003-better-errors.md +0 -29
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T004-validate-on-write.md +0 -25
- package/.savepoint/releases/v1.1/epics/E12-validation-fix/tasks/T005-tests.md +0 -37
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/E13-Audit.md +0 -118
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/E13-Detail.md +0 -73
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T001-safe-cleanup.md +0 -66
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T002-bug-fixes.md +0 -35
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T003-centralize-duplication.md +0 -60
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T004-infrastructure.md +0 -33
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T005-decompose-update.md +0 -37
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T006-async-io.md +0 -40
- package/.savepoint/releases/v1.1/epics/E13-audit-remediation/tasks/T007-test-coverage.md +0 -37
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Audit.md +0 -267
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/E14-Detail.md +0 -54
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T001-group-model.md +0 -39
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T002-data-interfaces.md +0 -42
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T003-discover-orphans.md +0 -33
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T004-epic-panel-headings.md +0 -35
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T005-shell-tokenization.md +0 -27
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T006-unify-enums.md +0 -29
- package/.savepoint/releases/v1.1/epics/E14-structural-improvements/tasks/T007-testutil-package.md +0 -28
- package/.savepoint/releases/v1.1/epics/E15-hardening/E15-Audit.md +0 -272
- package/.savepoint/releases/v1.1/epics/E15-hardening/E15-Detail.md +0 -60
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T001-benchmarks.md +0 -31
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T002-fuzz-targets.md +0 -34
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T003-debug-flag.md +0 -30
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T004-dist-checksums.md +0 -27
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T005-windows-targets.md +0 -28
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T006-abbreviation-splitting.md +0 -26
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T007-root-test-allowlist.md +0 -33
- package/.savepoint/releases/v1.1/epics/E15-hardening/tasks/T008-ci-and-release-automation.md +0 -46
- package/.savepoint/releases/v1.1/epics/_archived/T001-cli-entrypoint.md +0 -25
- package/.savepoint/releases/v1.1/epics/_archived/T002-quality-gates.md +0 -27
- package/.savepoint/releases/v1.1/epics/_archived/T003-snapshot.md +0 -27
- package/.savepoint/releases/v1.1/epics/_archived/T004-ai-reconcile.md +0 -29
- package/.savepoint/releases/v1.1/epics/_archived/T006-tui-review.md +0 -31
- package/.savepoint/releases/v1.1/epics/_archived/T008-skip-handling.md +0 -34
- package/.savepoint/releases/v1.1/v1.1-PRD.md +0 -139
- package/.savepoint/router.md +0 -57
- package/.savepoint/visual-identity.md +0 -125
- package/AGENTS.md +0 -99
- package/CLAUDE.md +0 -1
- package/GEMINI.md +0 -1
- package/Makefile +0 -31
- package/agent-skills/ink-tui-design/SKILL.md +0 -309
- package/agent-skills/ink-tui-design/references/component-patterns.md +0 -371
- package/agent-skills/ink-tui-design/references/hooks-guide.md +0 -436
- package/agent-skills/ink-tui-design/references/ink-gotchas.md +0 -330
- package/agent-skills/ink-tui-design/references/testing-patterns.md +0 -384
- package/agent-skills/savepoint-audit/SKILL.md +0 -87
- package/agent-skills/savepoint-build-task/SKILL.md +0 -44
- package/agent-skills/savepoint-create-plan/SKILL.md +0 -33
- package/agent-skills/savepoint-create-task/SKILL.md +0 -44
- package/agent-skills/savepoint-draft-prd/SKILL.md +0 -37
- package/agent-skills/savepoint-system-design/SKILL.md +0 -38
- package/agent-skills/superpowers/brainstorming/SKILL.md +0 -165
- package/agent-skills/superpowers/brainstorming/visual-companion.md +0 -304
- package/agent-skills/superpowers/dispatching-parallel-agents/SKILL.md +0 -193
- package/agent-skills/superpowers/executing-plans/SKILL.md +0 -77
- package/agent-skills/superpowers/finishing-a-development-branch/SKILL.md +0 -213
- package/agent-skills/superpowers/receiving-code-review/SKILL.md +0 -226
- package/agent-skills/superpowers/requesting-code-review/SKILL.md +0 -115
- package/agent-skills/superpowers/requesting-code-review/code-reviewer.md +0 -160
- package/agent-skills/superpowers/subagent-driven-development/SKILL.md +0 -292
- package/agent-skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +0 -27
- package/agent-skills/superpowers/subagent-driven-development/implementer-prompt.md +0 -113
- package/agent-skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +0 -61
- package/agent-skills/superpowers/systematic-debugging/SKILL.md +0 -305
- package/agent-skills/superpowers/systematic-debugging/condition-based-waiting.md +0 -122
- package/agent-skills/superpowers/systematic-debugging/defense-in-depth.md +0 -130
- package/agent-skills/superpowers/systematic-debugging/root-cause-tracing.md +0 -183
- package/agent-skills/superpowers/test-driven-development/SKILL.md +0 -389
- package/agent-skills/superpowers/test-driven-development/testing-anti-patterns.md +0 -317
- package/agent-skills/superpowers/verification-before-completion/SKILL.md +0 -147
- package/agent-skills/superpowers/writing-plans/SKILL.md +0 -159
- package/agent-skills/superpowers/writing-plans/plan-document-reviewer-prompt.md +0 -49
- package/agent_skills_test.go +0 -91
- package/assets/banner.png +0 -0
- package/assets/logo.png +0 -0
- package/assets/strawman.png +0 -0
- package/cmd/board.go +0 -59
- package/cmd/board_test.go +0 -137
- package/cmd/doctor.go +0 -53
- package/cmd/doctor_test.go +0 -146
- package/cmd/init.go +0 -63
- package/cmd/init_test.go +0 -104
- package/go.mod +0 -36
- package/go.sum +0 -75
- package/internal/board/board.go +0 -181
- package/internal/board/board_test.go +0 -168
- package/internal/board/card.go +0 -129
- package/internal/board/card_test.go +0 -287
- package/internal/board/column.go +0 -156
- package/internal/board/column_test.go +0 -210
- package/internal/board/debug.go +0 -26
- package/internal/board/debug_test.go +0 -108
- package/internal/board/detail.go +0 -218
- package/internal/board/detail_test.go +0 -388
- package/internal/board/epic_panel.go +0 -264
- package/internal/board/epic_panel_test.go +0 -869
- package/internal/board/help.go +0 -41
- package/internal/board/help_test.go +0 -86
- package/internal/board/integration_test.go +0 -266
- package/internal/board/interfaces.go +0 -65
- package/internal/board/interfaces_test.go +0 -114
- package/internal/board/io.go +0 -93
- package/internal/board/layout.go +0 -68
- package/internal/board/layout_test.go +0 -106
- package/internal/board/model.go +0 -235
- package/internal/board/model_test.go +0 -67
- package/internal/board/plain.go +0 -88
- package/internal/board/plain_test.go +0 -117
- package/internal/board/release.go +0 -34
- package/internal/board/release_test.go +0 -177
- package/internal/board/render_policy_test.go +0 -77
- package/internal/board/status.go +0 -23
- package/internal/board/theme.go +0 -24
- package/internal/board/theme_test.go +0 -31
- package/internal/board/transitions.go +0 -113
- package/internal/board/transitions_test.go +0 -164
- package/internal/board/tui.go +0 -32
- package/internal/board/update.go +0 -575
- package/internal/board/update_test.go +0 -602
- package/internal/board/util.go +0 -76
- package/internal/board/view.go +0 -317
- package/internal/board/view_test.go +0 -377
- package/internal/board/watch.go +0 -136
- package/internal/buildtool/main.go +0 -249
- package/internal/buildtool/main_test.go +0 -224
- package/internal/data/config.go +0 -101
- package/internal/data/config_test.go +0 -122
- package/internal/data/discover.go +0 -178
- package/internal/data/discover_test.go +0 -130
- package/internal/data/errors.go +0 -13
- package/internal/data/fuzz_test.go +0 -75
- package/internal/data/lifecycle.go +0 -44
- package/internal/data/lifecycle_test.go +0 -41
- package/internal/data/parser.go +0 -243
- package/internal/data/parser_test.go +0 -281
- package/internal/data/router.go +0 -52
- package/internal/data/router_test.go +0 -35
- package/internal/data/task.go +0 -57
- package/internal/data/task_test.go +0 -51
- package/internal/data/testdata/fuzz/FuzzSplitFrontmatterBody/68eb66b0fe91e7e3 +0 -2
- package/internal/data/write.go +0 -221
- package/internal/data/write_test.go +0 -623
- package/internal/doctor/checks.go +0 -567
- package/internal/doctor/checks_test.go +0 -716
- package/internal/doctor/gates.go +0 -193
- package/internal/doctor/gates_test.go +0 -166
- package/internal/doctor/interfaces.go +0 -64
- package/internal/doctor/interfaces_test.go +0 -104
- package/internal/doctor/repairs.go +0 -80
- package/internal/doctor/repairs_test.go +0 -81
- package/internal/doctor/report.go +0 -157
- package/internal/doctor/report_test.go +0 -89
- package/internal/init/clipboard.go +0 -146
- package/internal/init/clipboard_test.go +0 -74
- package/internal/init/install.go +0 -16
- package/internal/init/integration_test.go +0 -197
- package/internal/init/prompt.go +0 -14
- package/internal/init/prompt_test.go +0 -77
- package/internal/init/scaffold.go +0 -59
- package/internal/init/scaffold_test.go +0 -179
- package/internal/init/template_freshness_test.go +0 -56
- package/internal/init/validate.go +0 -85
- package/internal/init/validate_test.go +0 -141
- package/internal/init/write.go +0 -73
- package/internal/init/write_test.go +0 -91
- package/internal/styles/palette.go +0 -49
- package/internal/styles/styles.go +0 -139
- package/internal/styles/styles_test.go +0 -133
- package/internal/testutil/fixture.go +0 -113
- package/internal/testutil/fs.go +0 -26
- package/main.go +0 -136
- package/project-audit/audit_report_glm_5.1.md +0 -411
- package/project-audit/audit_report_opus_4.6.md +0 -406
- package/project-audit/consolidated-audit-report.md +0 -456
- package/scripts/vitest-preload.cjs +0 -95
- package/templates/project/.savepoint/Design.md +0 -47
- package/templates/project/.savepoint/PRD.md +0 -34
- package/templates/project/.savepoint/config.yml +0 -27
- package/templates/project/.savepoint/router.md +0 -153
- package/templates/project/.savepoint/visual-identity.md +0 -122
- package/templates/project/AGENTS.md +0 -88
- package/templates/project/agent-skills/savepoint-audit/SKILL.md +0 -87
- package/templates/project/agent-skills/savepoint-build-task/SKILL.md +0 -44
- package/templates/project/agent-skills/savepoint-create-plan/SKILL.md +0 -33
- package/templates/project/agent-skills/savepoint-create-task/SKILL.md +0 -44
- package/templates/project/agent-skills/savepoint-draft-prd/SKILL.md +0 -37
- package/templates/project/agent-skills/savepoint-system-design/SKILL.md +0 -38
- package/templates/prompts/audit-reconciliation.prompt.md +0 -72
- package/templates/prompts/design.prompt.md +0 -45
- package/templates/prompts/epic-design.prompt.md +0 -43
- package/templates/prompts/magic-prompt.prompt.md +0 -7
- package/templates/prompts/prd.prompt.md +0 -42
- package/templates/prompts/task-breakdown.prompt.md +0 -54
- package/templates/prompts/task-building.prompt.md +0 -38
- package/templates/prompts/task-planning.prompt.md +0 -53
- package/templates/release/v1/PRD.md +0 -37
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-project-cleanup/T007-verify
|
|
3
|
-
status: planned
|
|
4
|
-
objective: "Run full verification: build, typecheck, lint, test"
|
|
5
|
-
depends_on: [E05-project-cleanup/T006-clean-package-json]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T007: Verify
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `npm run build` passes.
|
|
13
|
-
- `npm run typecheck` passes.
|
|
14
|
-
- `npm run lint` passes.
|
|
15
|
-
- `npm test` passes.
|
|
16
|
-
- No errors, no warnings, no dead code.
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [ ] Run `npm run build`.
|
|
21
|
-
- [ ] Run `npm run typecheck`.
|
|
22
|
-
- [ ] Run `npm run lint`.
|
|
23
|
-
- [ ] Run `npm test`.
|
|
24
|
-
- [ ] Fix any failures.
|
|
25
|
-
- [ ] Repeat until all gates pass.
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: audited
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E06: tui-board
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Implement `savepoint board`, an Ink-based terminal UI for viewing and moving tasks through the Savepoint workflow, including audit-review mode entry points. The board should make the file-backed state machine usable without replacing direct file editing.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- Ink app shell launched by `savepoint board`.
|
|
15
|
-
- Three-column Kanban view for `planned`, `in_progress`, and `done`.
|
|
16
|
-
- Detail pane for the selected task.
|
|
17
|
-
- Keyboard navigation using arrows and vim-style movement.
|
|
18
|
-
- Status transition actions with gate enforcement.
|
|
19
|
-
- Manual refresh.
|
|
20
|
-
- Theme tokens loaded from `config.yml`.
|
|
21
|
-
- Render fallbacks for 24-bit/256-color, 16-color, `NO_COLOR=1`, and non-TTY plain table output.
|
|
22
|
-
- Optimistic mtime conflict detection before writes.
|
|
23
|
-
- Reducer tests for navigation, selection, and transition behavior.
|
|
24
|
-
|
|
25
|
-
## Components and files
|
|
26
|
-
|
|
27
|
-
Expected files introduced or extended by this epic:
|
|
28
|
-
|
|
29
|
-
| Path | Purpose |
|
|
30
|
-
| ------------------------------- | -------------------------------------------------- |
|
|
31
|
-
| `src/commands/board.ts` | Command entrypoint and non-TTY fallback. |
|
|
32
|
-
| `src/tui/App.tsx` | Ink app root. |
|
|
33
|
-
| `src/tui/Board.tsx` | Kanban layout. |
|
|
34
|
-
| `src/tui/DetailPane.tsx` | Selected task details. |
|
|
35
|
-
| `src/tui/state/*.ts` | Reducers and derived view state. |
|
|
36
|
-
| `src/tui/theme/*.ts` | Theme loading and terminal color fallback mapping. |
|
|
37
|
-
| `src/tui/render/plain-table.ts` | Non-TTY table rendering. |
|
|
38
|
-
| `src/tui/io/*.ts` | Safe task status write helpers and mtime checks. |
|
|
39
|
-
| `test/tui/**/*.test.ts` | Reducer and fallback rendering tests. |
|
|
40
|
-
|
|
41
|
-
## Architectural delta
|
|
42
|
-
|
|
43
|
-
Before this epic, Savepoint can read project files and expose CLI commands. After this epic, users can inspect and advance workflow state through a terminal interface.
|
|
44
|
-
|
|
45
|
-
The TUI uses the domain layer for rules and the filesystem layer for reads/writes. It should not define independent workflow logic.
|
|
46
|
-
|
|
47
|
-
## Visual and interaction design
|
|
48
|
-
|
|
49
|
-
The terminal adaptation of Atari-Noir applies here:
|
|
50
|
-
|
|
51
|
-
- Dark background with warm off-white text where terminal color support allows.
|
|
52
|
-
- One accent color per major semantic area.
|
|
53
|
-
- Quiet borders and compact uppercase headings.
|
|
54
|
-
- Focus shown through accent borders or subtle background tint.
|
|
55
|
-
- Colored glyphs should reinforce state but never be the only signal.
|
|
56
|
-
- Scanlines and web-style glow are skipped in terminal rendering.
|
|
57
|
-
|
|
58
|
-
## Boundaries
|
|
59
|
-
|
|
60
|
-
In scope:
|
|
61
|
-
|
|
62
|
-
- Board navigation and status transitions.
|
|
63
|
-
- Gate enforcement for dependencies and status rules.
|
|
64
|
-
- Plain table fallback when not in a TTY.
|
|
65
|
-
- Manual `r` refresh.
|
|
66
|
-
- Initial audit-review mode entry point if audit proposals exist.
|
|
67
|
-
|
|
68
|
-
## Implemented as
|
|
69
|
-
|
|
70
|
-
- `savepoint board` now reads the Savepoint root, router state, config, and active epic task set through existing readers.
|
|
71
|
-
- Non-TTY sessions render deterministic plain text with warnings and audit-entry signaling.
|
|
72
|
-
- TTY sessions launch an Ink app with five status columns, selected-task detail, keyboard navigation, surfaced load warnings, manual refresh, forward/backward transition actions, and audit proposal handoff.
|
|
73
|
-
- Reducers in `src/tui/state/` own derived view state only; workflow truth remains in project files.
|
|
74
|
-
- Transition gates combine domain status validation with dependency completion checks.
|
|
75
|
-
- Status writes preserve task body and extra frontmatter fields, re-stat after parsing, and return non-destructive conflict/error results.
|
|
76
|
-
- Theme helpers map configured tokens into truecolor, 256-color, 16-color, and no-color palettes.
|
|
77
|
-
|
|
78
|
-
## Audit deltas
|
|
79
|
-
|
|
80
|
-
- Full proposal diff review remains deferred to `E07-audit-pipeline`; E06 only signals that proposals exist and exits toward `savepoint audit`.
|
|
81
|
-
- Rich TUI rendering is covered with deterministic component assertions instead of full-screen snapshots.
|
|
82
|
-
- Conflict UX is implemented as a message plus manual refresh, not an interactive reload prompt.
|
|
83
|
-
|
|
84
|
-
Out of scope:
|
|
85
|
-
|
|
86
|
-
- File watching.
|
|
87
|
-
- Search.
|
|
88
|
-
- Mouse interaction.
|
|
89
|
-
- Drag-and-drop.
|
|
90
|
-
- Full audit proposal diff implementation beyond what `audit-pipeline` needs.
|
|
91
|
-
- Snapshot tests for rich TUI rendering.
|
|
92
|
-
|
|
93
|
-
## Quality gates
|
|
94
|
-
|
|
95
|
-
- Reducers and transition behavior should be covered by tests.
|
|
96
|
-
- Rendering tests should focus on deterministic fallback/plain output, not brittle full-screen snapshots.
|
|
97
|
-
- Conflict detection should be tested without relying on real-time delays where possible.
|
|
98
|
-
|
|
99
|
-
## Design constraints
|
|
100
|
-
|
|
101
|
-
- Keep workflow state in files; the TUI holds only derived view state.
|
|
102
|
-
- Use mtime-based optimistic concurrency.
|
|
103
|
-
- Do not create a lockfile.
|
|
104
|
-
- Keep terminal controls discoverable but avoid loading screens with long instructions.
|
package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T001-board-command-data.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-tui-board/T001-board-command-data
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Replace the board stub with a data-backed command path that can read the active Savepoint project and render deterministic plain output."
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: board-command-data
|
|
9
|
-
|
|
10
|
-
## Implementation Plan
|
|
11
|
-
|
|
12
|
-
- [x] Add the command context needed by `runBoard()` to know the current working directory, stdout TTY capability, environment, and platform without breaking existing command handlers.
|
|
13
|
-
- [x] Resolve the Savepoint project root from the command context and surface boundary errors through existing CLI exit-code conventions.
|
|
14
|
-
- [x] Load router state, config, and the active epic task set through existing readers instead of parsing workflow files inside the command.
|
|
15
|
-
- [x] Introduce a small board data model that groups tasks by the five canonical statuses and records the active release, epic, task, and reader errors.
|
|
16
|
-
- [x] Implement `src/tui/render/plain-table.ts` as the deterministic non-TTY fallback for columns, selected task marker, and empty states.
|
|
17
|
-
- [x] Update board command and runner tests to prove `savepoint board` no longer returns the not-implemented stub in an initialized project and still reports readable errors outside a Savepoint project.
|
|
18
|
-
|
|
19
|
-
## Context Log
|
|
20
|
-
|
|
21
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E06-tui-board/Design.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T001-board-command-data.md`; `.savepoint/metrics/context-bench.md`; `src/commands/board.ts`; `src/cli/run.ts`; `src/cli/environment.ts`; `src/domain/config.ts`; `src/domain/status.ts`; `src/domain/task.ts`; `src/fs/markdown.ts`; `src/fs/project.ts`; `src/readers/config.ts`; `src/readers/router.ts`; `src/readers/tasks.ts`; `src/validation/dependencies.ts`; `test/cli/run.test.ts`; `test/domain/status.test.ts`; `package.json`; `src/cli.ts`; `src/commands/audit.ts`; `src/commands/doctor.ts`; `src/commands/init.ts`; `test/init/validate-target.test.ts`; `test/readers/router.test.ts`; `test/domain/router.test.ts`; `test/cli/commands.test.ts`; `src/domain/router.ts`; `src/domain/ids.ts`; `src/cli/exit-codes.ts`; `src/commands/result.ts`
|
|
22
|
-
- Estimated input tokens: ~19,660
|
|
23
|
-
- Notes: Rehydrated from router, E06 Design, task file, and directly touched source/test files. Extended router schema with optional `task` field to match live `router.md` format. Board command now async with rich result shape matching `runInit` pattern.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-tui-board/T002-board-view-state
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Create pure board view-state reducers for column grouping, selected-task movement, refresh replacement, and keyboard-intent actions."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E06-tui-board/T001-board-command-data
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T002: board-view-state
|
|
10
|
-
|
|
11
|
-
## Implementation Plan
|
|
12
|
-
|
|
13
|
-
- [x] Add `src/tui/state/` modules that derive board columns and task indexes from the T001 board data model without storing duplicate workflow truth.
|
|
14
|
-
- [x] Model selection state so it survives same-task refreshes, falls back predictably when tasks disappear, and handles empty columns.
|
|
15
|
-
- [x] Implement reducer actions for left/right/up/down movement plus vim-style `h`, `j`, `k`, and `l` intents.
|
|
16
|
-
- [x] Add refresh replacement behavior that swaps in newly read task data while preserving selection and visible status columns.
|
|
17
|
-
- [x] Keep transition and filesystem write behavior out of this reducer task so the reducer remains pure.
|
|
18
|
-
- [x] Add focused reducer tests for initial selection, horizontal and vertical navigation, empty columns, and refresh after task reorder/removal.
|
|
19
|
-
|
|
20
|
-
## Context Log
|
|
21
|
-
|
|
22
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E06-tui-board/Design.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T002-board-view-state.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T001-board-command-data.md`; `src/tui/board-data.ts`; `src/tui/render/plain-table.ts`; `src/domain/status.ts`; `src/domain/task.ts`; `src/commands/board.ts`; `test/domain/status.test.ts`; `package.json`; `tsconfig.json`; `.savepoint/metrics/context-bench.md`
|
|
23
|
-
- Estimated input tokens: ~6,925
|
|
24
|
-
- Notes: Rehydrated from router, E06 Design, task file, and directly touched source/test files. Implemented pure reducer with deterministic selection fallbacks and refresh behavior.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-tui-board/T003-transition-gates-and-writes
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Add task transition gate evaluation and optimistic mtime-safe status writes for board actions."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E06-tui-board/T001-board-command-data
|
|
7
|
-
- E06-tui-board/T002-board-view-state
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# T003: transition-gates-and-writes
|
|
11
|
-
|
|
12
|
-
## Implementation Plan
|
|
13
|
-
|
|
14
|
-
- [x] Add pure gate evaluation that combines `validateTransition()` with dependency rules so tasks cannot advance when required dependencies are not `done`.
|
|
15
|
-
- [x] Return structured gate results that the TUI can display without duplicating workflow logic in rendering components.
|
|
16
|
-
- [x] Add `src/tui/io/` helpers that read a task file's mtime before action and verify it is unchanged immediately before writing.
|
|
17
|
-
- [x] Update only the task frontmatter `status` field while preserving the task body and unrelated frontmatter fields.
|
|
18
|
-
- [x] Surface stale mtime conflicts as non-destructive action results that require a manual refresh before retry.
|
|
19
|
-
- [x] Add tests for allowed transitions, blocked dependencies, disallowed status jumps, successful status write preservation, and stale mtime conflict handling without relying on real-time delays.
|
|
20
|
-
|
|
21
|
-
## Context Log
|
|
22
|
-
|
|
23
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E06-tui-board/Design.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T003-transition-gates-and-writes.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T001-board-command-data.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T002-board-view-state.md`; `.savepoint/metrics/context-bench.md`; `package.json`; `tsconfig.json`; `vitest.config.js`; `src/domain/status.ts`; `src/domain/task.ts`; `src/domain/ids.ts`; `src/validation/dependencies.ts`; `src/fs/markdown.ts`; `src/readers/tasks.ts`; `src/commands/board.ts`; `src/tui/board-data.ts`; `src/tui/state/reducer.ts`; `src/tui/state/view-state.ts`; `src/tui/render/plain-table.ts`; `test/tui/state/reducer.test.ts`; `test/tui/render/plain-table.test.ts`; `test/fs/markdown.test.ts`
|
|
24
|
-
- Estimated input tokens: ~19,630
|
|
25
|
-
- Notes: Implementation rehydrated from router, E06 Design, task file, and directly touched source/test files. Extended `MarkdownDoc` with `rawFrontmatter` to preserve extra frontmatter fields during status writes. Gate evaluator allows idempotent same-status transitions and blocks only forward moves with undone dependencies.
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-tui-board/T004-terminal-theme
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Load board theme tokens from config and map them into deterministic terminal color palettes for rich and fallback environments."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E06-tui-board/T001-board-command-data
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T004: terminal-theme
|
|
10
|
-
|
|
11
|
-
## Implementation Plan
|
|
12
|
-
|
|
13
|
-
- [x] Add `src/tui/theme/` modules that consume `SavepointConfig["theme"]` and expose board-specific semantic tokens for statuses, borders, text, focus, and blocked states.
|
|
14
|
-
- [x] Implement terminal color capability mapping for 24-bit, 256-color, 16-color, `NO_COLOR=1`, `FORCE_COLOR`, `TERM=dumb`, and non-TTY plain output.
|
|
15
|
-
- [x] Keep color fallback data deterministic and separate from Ink components so render tests can avoid full-screen snapshots.
|
|
16
|
-
- [x] Respect configured border style values while preserving readable defaults when config values are missing or colors are disabled.
|
|
17
|
-
- [x] Add tests for config defaults, custom accents, no-color mode, dumb terminals, and reduced palettes.
|
|
18
|
-
|
|
19
|
-
## Context Log
|
|
20
|
-
|
|
21
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E06-tui-board/Design.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T004-terminal-theme.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T003-transition-gates-and-writes.md`; `package.json`; `tsconfig.json`; `src/domain/config.ts`; `src/cli/environment.ts`; `src/commands/board.ts`; `src/domain/status.ts`; `src/tui/board-data.ts`; `src/tui/render/plain-table.ts`; `src/tui/state/view-state.ts`; `src/tui/state/reducer.ts`; `src/tui/io/gates.ts`; `src/tui/io/write-status.ts`; `test/tui/state/reducer.test.ts`; `test/tui/render/plain-table.test.ts`
|
|
22
|
-
- Estimated input tokens: ~14,752
|
|
23
|
-
- Notes: Implemented theme capability detection, 256/16 color approximation, and palette builder with semantic tokens. Rehydrated from router, E06 Design, T004 task, T003 task for dependency state, and directly touched source/test files.
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-tui-board/T005-ink-board-ui
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Build the Ink board UI shell with keyboard navigation, detail pane, manual refresh, and transition actions."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E06-tui-board/T002-board-view-state
|
|
7
|
-
- E06-tui-board/T003-transition-gates-and-writes
|
|
8
|
-
- E06-tui-board/T004-terminal-theme
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# T005: ink-board-ui
|
|
12
|
-
|
|
13
|
-
## Implementation Plan
|
|
14
|
-
|
|
15
|
-
- [x] Add the minimum Ink and React dependencies and TypeScript configuration needed for `src/tui/**/*.tsx` while keeping the CLI build ESM-compatible on Node 20.
|
|
16
|
-
- [x] Implement `src/tui/App.tsx` as the stateful app root that receives initial board data, theme, refresh/write callbacks, and terminal capability data.
|
|
17
|
-
- [x] Implement `src/tui/Board.tsx` with five compact status columns, selected-task focus treatment, empty-column states, and keyboard hints that do not dominate the screen.
|
|
18
|
-
- [x] Implement `src/tui/DetailPane.tsx` for selected task objective, status, dependencies, gate state, and last action/conflict messages.
|
|
19
|
-
- [x] Wire arrow keys, vim-style navigation, manual `r` refresh, and transition actions through the pure reducer and IO helpers.
|
|
20
|
-
- [x] Add focused tests around reducer-connected interaction behavior and component output where deterministic, avoiding brittle full-screen TUI snapshots.
|
|
21
|
-
|
|
22
|
-
## Context Log
|
|
23
|
-
|
|
24
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E06-tui-board/Design.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T005-ink-board-ui.md`; `.savepoint/visual-identity.md`; `.savepoint/metrics/context-bench.md`; `package.json`; `tsconfig.json`; `vitest.config.js`; `src/commands/board.ts`; `src/cli/run.ts`; `src/cli/environment.ts`; `src/domain/config.ts`; `src/domain/ids.ts`; `src/domain/status.ts`; `src/domain/task.ts`; `src/fs/project.ts`; `src/readers/tasks.ts`; `src/tui/board-data.ts`; `src/tui/state/reducer.ts`; `src/tui/state/view-state.ts`; `src/tui/theme/index.ts`; `src/tui/theme/palette.ts`; `src/tui/theme/capability.ts`; `src/tui/io/gates.ts`; `src/tui/io/write-status.ts`; `src/tui/render/plain-table.ts`; `test/tui/state/reducer.test.ts`; `test/tui/io/gates.test.ts`; `test/tui/io/write-status.test.ts`; `test/tui/render/plain-table.test.ts`; `test/tui/theme/capability.test.ts`; `test/tui/theme/palette.test.ts`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T002-board-view-state.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T003-transition-gates-and-writes.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T004-terminal-theme.md`
|
|
25
|
-
- Estimated input tokens: ~18,000
|
|
26
|
-
- Notes: Rehydrated from router, E06 Design, T005 task, prerequisite task files (T002-T004), visual-identity, and directly touched source/test files. Added Ink 7 + React 19 with JSX support, extended EnvMap with COLORTERM, and built App/Board/DetailPane components with keyboard-driven navigation and transition actions.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-tui-board/T006-board-integration-audit-entry
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Integrate the rich board command end to end and add the initial audit-review entry point when audit proposals are present."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E06-tui-board/T005-ink-board-ui
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T006: board-integration-audit-entry
|
|
10
|
-
|
|
11
|
-
## Implementation Plan
|
|
12
|
-
|
|
13
|
-
- [x] Update `runBoard()` so TTY sessions launch the Ink app and non-TTY sessions use the plain table fallback from T001.
|
|
14
|
-
- [x] Ensure command execution handles missing project files, task graph errors, config errors, refresh failures, write conflicts, and user exit with clear stdout/stderr behavior.
|
|
15
|
-
- [x] Add audit proposal discovery for the active epic and expose an initial board entry point when `.savepoint/audit/{epic}/proposals.md` exists.
|
|
16
|
-
- [x] Keep audit-review behavior limited to entry signaling and navigation handoff; leave full proposal diff review to `E07-audit-pipeline`.
|
|
17
|
-
- [x] Add integration tests for TTY vs non-TTY dispatch, fallback rendering, audit-entry detection, and unchanged help/unknown-flag behavior.
|
|
18
|
-
- [x] Run the focused TUI/CLI tests first, then run typecheck, lint, format check, build, and the smoke suite before moving the task to review.
|
|
19
|
-
|
|
20
|
-
## Context Log
|
|
21
|
-
|
|
22
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E06-tui-board/Design.md`; `.savepoint/releases/v1/epics/E06-tui-board/tasks/T006-board-integration-audit-entry.md`; `.savepoint/metrics/context-bench.md`; `package.json`; `vitest.config.js`; `src/commands/board.ts`; `src/cli/run.ts`; `src/cli/environment.ts`; `src/cli/help.ts`; `src/commands/audit.ts`; `src/tui/App.tsx`; `src/tui/board-data.ts`; `src/tui/Board.tsx`; `src/tui/DetailPane.tsx`; `src/tui/io/gates.ts`; `src/tui/io/write-status.ts`; `src/tui/render/plain-table.ts`; `src/tui/state/app-reducer.ts`; `src/tui/state/reducer.ts`; `src/tui/state/view-state.ts`; `src/tui/theme/capability.ts`; `src/tui/theme/palette.ts`; `src/fs/project.ts`; `test/cli/run.test.ts`; `test/commands/board.test.ts`; `test/commands/board-tty.test.ts`; `test/tui/state/app-reducer.test.ts`; `test/tui/render/plain-table.test.ts`; `test/tui/state/reducer.test.ts`
|
|
23
|
-
- Estimated input tokens: ~28,568
|
|
24
|
-
- Notes: Implemented audit proposal discovery, plain-table signal, Ink banner and key handler, and handoff message. Added board-tty integration tests with mocked ink. All quality gates passed.
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: audited
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E07: audit-pipeline
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Implement `savepoint audit`, the hard gate that reconciles built code with Savepoint documentation before the next epic can start. This epic ships the v0.1.0 audit loop without AI semantic review content.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- Quality gate runner for configured lint, typecheck, and test commands.
|
|
15
|
-
- Gitignore-respecting snapshot generation.
|
|
16
|
-
- Changed-files listing without embedding code contents in the snapshot.
|
|
17
|
-
- Router transition into audit-pending state.
|
|
18
|
-
- Audit prompt output for the user to give to an AI agent.
|
|
19
|
-
- Proposal directory creation.
|
|
20
|
-
- TUI review mode for approving, rejecting, or editing proposed documentation updates.
|
|
21
|
-
- Commit step that applies approved proposals to live files.
|
|
22
|
-
- Audit log entries, including skipped audits and reasons.
|
|
23
|
-
|
|
24
|
-
## Components and files
|
|
25
|
-
|
|
26
|
-
Expected files introduced or extended by this epic:
|
|
27
|
-
|
|
28
|
-
| Path | Purpose |
|
|
29
|
-
| ------------------------------ | ----------------------------------------------- |
|
|
30
|
-
| `src/commands/audit.ts` | Audit command entrypoint. |
|
|
31
|
-
| `src/audit/quality-gates.ts` | Configured command runner. |
|
|
32
|
-
| `src/audit/snapshot.ts` | File tree and changed-file snapshot generation. |
|
|
33
|
-
| `src/audit/router-state.ts` | Audit-pending state updates. |
|
|
34
|
-
| `src/audit/prompts.ts` | Audit handoff prompt generation. |
|
|
35
|
-
| `src/audit/proposals.ts` | Proposal discovery and validation. |
|
|
36
|
-
| `src/audit/apply-proposals.ts` | Approved proposal application. |
|
|
37
|
-
| `src/audit/log.ts` | Audit log writes. |
|
|
38
|
-
| `src/tui/audit-review/*.tsx` | Proposal review UI. |
|
|
39
|
-
| `test/audit/**/*.test.ts` | Audit pipeline tests. |
|
|
40
|
-
|
|
41
|
-
## Implemented as
|
|
42
|
-
|
|
43
|
-
- `src/commands/audit.ts` resolves the target epic from `--epic` or router state, supports `--skip --reason`, runs configured quality gates, writes bounded audit artifacts, transitions the router into `audit-pending`, logs audit events, and prints the audit handoff prompt.
|
|
44
|
-
- `src/audit/quality-gates.ts`, `snapshot.ts`, `router-state.ts`, `prompts.ts`, `proposals.ts`, `apply-proposals.ts`, and `log.ts` keep audit gates, snapshot generation, router updates, prompt text, proposal parsing, proposal application, and audit logging separately testable.
|
|
45
|
-
- `src/commands/board.ts` detects proposal availability and launches `src/tui/audit-review/AuditReviewApp.tsx` after the board exits through the audit-review entry path.
|
|
46
|
-
- `src/tui/audit-review/state.ts`, `summary.ts`, `ProposalList.tsx`, `OperationDetail.tsx`, and `AuditReviewApp.tsx` model and render proposal review decisions, replacement edits, apply status, high-divergence acknowledgement, and audit review outcomes.
|
|
47
|
-
- `test/audit/`, `test/commands/audit.test.ts`, `test/cli/{args,run}.test.ts`, and `test/tui/audit-review/` cover the audit command contract, quality gates, snapshots, prompt generation, proposal validation/application, review state, Ink interactions, and end-to-end lifecycle behavior.
|
|
48
|
-
|
|
49
|
-
Implementation deltas from the original plan:
|
|
50
|
-
|
|
51
|
-
- Proposal review is launched from the board audit-entry path rather than a separate `savepoint audit review` command.
|
|
52
|
-
- The audit command creates `.savepoint/audit/{epic}/proposals/`; reconciliation writes one `proposals/proposals.md` bundle, and the loader rejects multiple bundles to keep review state aligned with the workflow.
|
|
53
|
-
- AI semantic review remains manual and advisory through the handoff prompt, matching the epic's out-of-scope boundary for API calls and automatic semantic findings.
|
|
54
|
-
|
|
55
|
-
## Architectural delta
|
|
56
|
-
|
|
57
|
-
Before this epic, Savepoint can manage workflow state but cannot enforce the documentation audit gate. After this epic, completing an epic can produce a bounded audit context and block progress until documentation proposals are reviewed.
|
|
58
|
-
|
|
59
|
-
The audit pipeline bridges CLI, filesystem, config, templates, and TUI review mode, but each step should remain separately testable.
|
|
60
|
-
|
|
61
|
-
## Boundaries
|
|
62
|
-
|
|
63
|
-
In scope:
|
|
64
|
-
|
|
65
|
-
- Implement the six-step audit pipeline except AI semantic review generation.
|
|
66
|
-
- Support `--skip --reason`.
|
|
67
|
-
- Support `--epic` when an explicit epic is needed.
|
|
68
|
-
- Generate `.savepoint/audit/{epic}/snapshot.md`.
|
|
69
|
-
- Generate `.savepoint/audit/{epic}/proposals/`.
|
|
70
|
-
|
|
71
|
-
Out of scope:
|
|
72
|
-
|
|
73
|
-
- Writing semantic-review findings automatically.
|
|
74
|
-
- Calling AI APIs.
|
|
75
|
-
- Inferring code quality beyond configured mechanical gates.
|
|
76
|
-
- Complex merge conflict resolution for proposal application.
|
|
77
|
-
|
|
78
|
-
## Quality gates
|
|
79
|
-
|
|
80
|
-
- Tests should cover passing/failing quality gates, snapshot generation, skip logging, proposal validation, and approved proposal application.
|
|
81
|
-
- Snapshot generation must not include source code contents.
|
|
82
|
-
- Failed blocking quality gates must stop the audit before snapshot generation.
|
|
83
|
-
|
|
84
|
-
## Design constraints
|
|
85
|
-
|
|
86
|
-
- Keep audit context bounded to protect token budgets.
|
|
87
|
-
- Treat proposal application as a filesystem boundary with explicit failure states.
|
|
88
|
-
- Preserve user edits and require confirmation for high-divergence proposal application through the TUI.
|
package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T001-audit-cli-contract.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E07-audit-pipeline/T001-audit-cli-contract
|
|
3
|
-
status: done
|
|
4
|
-
objective: Define the audit command contract, explicit epic selection, and skip-with-reason logging path without running the full audit pipeline.
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: audit-cli-contract
|
|
9
|
-
|
|
10
|
-
## Implementation Plan
|
|
11
|
-
|
|
12
|
-
- [x] Extend CLI parsing and help text for `savepoint audit --epic <epic>`, `--skip`, and `--reason <text>` while rejecting invalid flag combinations.
|
|
13
|
-
- [x] Replace the audit stub with a boundary-safe command handler that resolves the Savepoint project root and active epic from `--epic` or the router state.
|
|
14
|
-
- [x] Add audit path and log helpers that can create `.savepoint/audit/{epic}/` and record skipped audits with timestamp, epic, and reason.
|
|
15
|
-
- [x] Keep the non-skip path explicit and non-destructive until the pipeline tasks are available.
|
|
16
|
-
- [x] Add focused CLI tests for help output, option parsing, explicit epic selection, skip success, missing reason, and invalid reason usage.
|
|
17
|
-
- [x] Run the focused audit CLI tests before handing off the task.
|
|
18
|
-
|
|
19
|
-
## Context Log
|
|
20
|
-
|
|
21
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/tasks/T001-audit-cli-contract.md`; `src/cli/args.ts`; `src/cli/help.ts`; `src/cli/run.ts`; `src/cli/exit-codes.ts`; `src/commands/audit.ts`; `src/commands/board.ts`; `src/commands/result.ts`; `src/domain/router.ts`; `src/fs/project.ts`; `src/fs/markdown.ts`; `src/readers/router.ts`; `test/cli/args.test.ts`; `test/cli/run.test.ts`; `test/cli/commands.test.ts`; `test/commands/board.test.ts`
|
|
22
|
-
- Estimated input tokens: ~18,000
|
|
23
|
-
- Notes: Added `AuditOptions` interface and `parseAuditArgs()` to `src/cli/args.ts`; audit now has its own `"audit-command"` and `"audit-invalid-options"` ParseResult kinds. Created `src/audit/log.ts` for skip logging. Replaced audit stub in `src/commands/audit.ts` with async `runAudit(ctx: AuditContext)`. Updated `run.ts` to dispatch audit-command and audit-invalid-options. 500 tests passing, 0 failures.
|
package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T002-quality-gate-runner.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E07-audit-pipeline/T002-quality-gate-runner
|
|
3
|
-
status: done
|
|
4
|
-
objective: Run configured audit quality gates with deterministic pass/fail results and no snapshot side effects.
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T002: quality-gate-runner
|
|
9
|
-
|
|
10
|
-
## Implementation Plan
|
|
11
|
-
|
|
12
|
-
- [x] Introduce `src/audit/quality-gates.ts` with a small typed model for configured lint, typecheck, test, and future gate commands.
|
|
13
|
-
- [x] Implement an injectable command runner that executes gates in project-root context and captures exit code, stdout, stderr, duration, and spawn failures.
|
|
14
|
-
- [x] Normalize empty or missing gate configuration into the project defaults without hard-coding command execution inside the CLI command.
|
|
15
|
-
- [x] Return an aggregate result that clearly distinguishes pass, blocking failure, and runner error so orchestration can stop before snapshot generation.
|
|
16
|
-
- [x] Add unit tests for all-pass gates, nonzero failures, spawn errors, empty gate lists, output capture, and deterministic execution order.
|
|
17
|
-
- [x] Run the focused audit quality-gate tests before handing off the task.
|
|
18
|
-
|
|
19
|
-
## Context Log
|
|
20
|
-
|
|
21
|
-
- Files read: `.savepoint/router.md` (via AGENTS.md routing); `AGENTS.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `T001-audit-cli-contract.md`; `T002-quality-gate-runner.md`; `src/commands/audit.ts`; `src/audit/log.ts`; `src/domain/config.ts`; `src/readers/config.ts`; `src/fs/project.ts`; `src/cli/args.ts`; `test/commands/audit.test.ts`
|
|
22
|
-
- Estimated input tokens: ~8,500
|
|
23
|
-
- Notes: Created `src/audit/quality-gates.ts` with `Gate`, `GateResult`, `QualityGateOutcome`, `CommandRunner` types, `normalizeGates()`, `defaultRunner()`, and `runQualityGates()`. Created `test/audit/quality-gates.test.ts` with 13 tests covering all-pass, blocking failure, non-blocking failure, spawn errors, empty gates, output capture, duration recording, and deterministic order. All 13 tests pass.
|
package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T003-snapshot-and-prompt.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E07-audit-pipeline/T003-snapshot-and-prompt
|
|
3
|
-
status: done
|
|
4
|
-
objective: Generate a bounded audit snapshot and AI handoff prompt for an epic without embedding source contents.
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T003: snapshot-and-prompt
|
|
9
|
-
|
|
10
|
-
## Implementation Plan
|
|
11
|
-
|
|
12
|
-
- [x] Add `src/audit/snapshot.ts` to generate `.savepoint/audit/{epic}/snapshot.md` from router state, epic/task metadata, gitignore-respecting file listings, and changed-file paths.
|
|
13
|
-
- [x] Ensure changed-file output records path and status only, never source or test file contents.
|
|
14
|
-
- [x] Create `.savepoint/audit/{epic}/proposals/` alongside the snapshot so later proposal review has a stable artifact location.
|
|
15
|
-
- [x] Add `src/audit/prompts.ts` to render the bounded handoff prompt that points an AI agent at the snapshot and proposal directory.
|
|
16
|
-
- [x] Add tests for gitignore exclusions, snapshot bounds, changed-file metadata, proposal directory creation, and prompt content.
|
|
17
|
-
- [x] Run the focused audit snapshot and prompt tests before handing off the task.
|
|
18
|
-
|
|
19
|
-
## Context Log
|
|
20
|
-
|
|
21
|
-
- Files read: `AGENTS.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `T003-snapshot-and-prompt.md`; `src/audit/quality-gates.ts`; `src/audit/log.ts`; `src/fs/project.ts`; `src/fs/markdown.ts`; `src/readers/router.ts`; `src/readers/epic.ts`; `src/readers/tasks.ts`; `src/domain/router.ts`; `src/domain/task.ts`; `src/domain/ids.ts`; `src/domain/status.ts`; `src/domain/config.ts`; `templates/prompts/audit-reconciliation.prompt.md`; `test/audit/quality-gates.test.ts`; `test/init/write-scaffold.test.ts`; `package.json`
|
|
22
|
-
- Estimated input tokens: ~12,500
|
|
23
|
-
- Notes: Implemented `buildSnapshotMarkdown` (pure), `generateSnapshot` (filesystem + injected GitReader), `defaultGitReader` (spawn-based), and `buildAuditPrompt` (pure). 31 tests, 555 total passing. Typecheck and lint clean.
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E07-audit-pipeline/T004-audit-orchestration-router
|
|
3
|
-
status: done
|
|
4
|
-
objective: Wire `savepoint audit` to run gates, write audit artifacts, and move the router into audit-pending only after blocking gates pass.
|
|
5
|
-
depends_on:
|
|
6
|
-
- E07-audit-pipeline/T001-audit-cli-contract
|
|
7
|
-
- E07-audit-pipeline/T002-quality-gate-runner
|
|
8
|
-
- E07-audit-pipeline/T003-snapshot-and-prompt
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# T004: audit-orchestration-router
|
|
12
|
-
|
|
13
|
-
## Implementation Plan
|
|
14
|
-
|
|
15
|
-
- [x] Replace the non-skip audit placeholder with orchestration that resolves the target epic, reads config, runs quality gates, and reports gate results.
|
|
16
|
-
- [x] Stop before snapshot generation when any blocking quality gate fails, preserving clear stdout/stderr and exit-code behavior.
|
|
17
|
-
- [x] Generate the snapshot, proposal directory, and handoff prompt after gates pass.
|
|
18
|
-
- [x] Add `src/audit/router-state.ts` to transition `.savepoint/router.md` into `audit-pending` for the audited epic without disturbing unrelated router content.
|
|
19
|
-
- [x] Write audit log entries for started, failed-gate, and snapshot-created outcomes.
|
|
20
|
-
- [x] Add integration tests for happy path, failed gates stopping snapshots, explicit `--epic`, active-router epic fallback, and router transition.
|
|
21
|
-
- [x] Run the focused audit command integration tests before handing off the task.
|
|
22
|
-
|
|
23
|
-
## Context Log
|
|
24
|
-
|
|
25
|
-
- Files read: `.savepoint/router.md`; `E07/Design.md`; `T004`; `T001`; `T002`; `T003`; `src/commands/audit.ts`; `src/audit/log.ts`; `src/audit/quality-gates.ts`; `src/audit/snapshot.ts`; `src/audit/prompts.ts`; `src/domain/config.ts`; `src/readers/config.ts`; `src/readers/tasks.ts`; `src/domain/router.ts`; `src/readers/router.ts`; `src/fs/project.ts`; `src/cli/exit-codes.ts`; `test/audit/quality-gates.test.ts`; `test/audit/snapshot.test.ts` (partial); `test/commands/audit.test.ts`; `.savepoint/metrics/context-bench.md`
|
|
26
|
-
- Estimated input tokens: ~15,300
|
|
27
|
-
- Notes: Created `src/audit/router-state.ts` with `transitionToAuditPending`. Added `logAuditEntry` to `src/audit/log.ts`. Replaced placeholder in `src/commands/audit.ts` with full orchestration (gates → snapshot → router transition → prompt). Added injectable `commandRunner` and `gitReader` to `AuditContext` for testing. 20 audit command tests, 564 total passing. Typecheck and lint clean.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E07-audit-pipeline/T005-proposal-validation-apply
|
|
3
|
-
status: done
|
|
4
|
-
objective: Validate audit proposal files and apply approved patch-shaped documentation updates with explicit divergence failures.
|
|
5
|
-
depends_on:
|
|
6
|
-
- E07-audit-pipeline/T003-snapshot-and-prompt
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T005: proposal-validation-apply
|
|
10
|
-
|
|
11
|
-
## Implementation Plan
|
|
12
|
-
|
|
13
|
-
- [x] Add `src/audit/proposals.ts` to discover proposal files in `.savepoint/audit/{epic}/proposals/` and parse patch-shaped operations for documentation targets.
|
|
14
|
-
- [x] Validate proposal target paths, required sections, duplicate operations, empty replacements, and malformed proposal documents with path-aware errors.
|
|
15
|
-
- [x] Add `src/audit/apply-proposals.ts` to apply approved replace, insert, and delete operations only when anchors still match the live file.
|
|
16
|
-
- [x] Fail with explicit divergence errors instead of overwriting user edits when a proposal no longer matches the target document.
|
|
17
|
-
- [x] Preserve compatibility with any existing board handoff signal until the review UI moves fully to the proposal directory.
|
|
18
|
-
- [x] Add tests for discovery, validation failures, successful apply, partial approval, divergence, and scoped path protection.
|
|
19
|
-
- [x] Run the focused proposal validation and apply tests before handing off the task.
|
|
20
|
-
|
|
21
|
-
## Context Log
|
|
22
|
-
|
|
23
|
-
- Files read: `AGENTS.md`; `.savepoint/router.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/tasks/T005-proposal-validation-apply.md`; `src/audit/snapshot.ts`; `src/audit/prompts.ts`; `src/audit/router-state.ts`; `src/audit/log.ts`; `src/fs/project.ts`; `test/audit/snapshot.test.ts`; `test/audit/quality-gates.test.ts`; `templates/prompts/audit-reconciliation.prompt.md`; `.savepoint/audit/E06-tui-board/proposals.md`; `.savepoint/audit/E05-init-command/proposals.md`
|
|
24
|
-
- Estimated input tokens: ~18,500
|
|
25
|
-
- Notes: Implemented `proposals.ts` (discovery, parse, validate) and `apply-proposals.ts` (applyOperation, applyApprovedOperations). All 46 focused tests pass. Proposal format supports Replace/Insert After/Delete with fenced or plain-text anchors; scoped path protection rejects non-.md/.yml/.yaml and path traversal targets; divergence detection skips writing any operation to a file if any op on it diverges.
|
package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T006-audit-review-state.md
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E07-audit-pipeline/T006-audit-review-state
|
|
3
|
-
status: done
|
|
4
|
-
objective: Model audit proposal review decisions so approve, reject, edit, and apply flows are testable before the Ink UI.
|
|
5
|
-
depends_on:
|
|
6
|
-
- E07-audit-pipeline/T005-proposal-validation-apply
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T006: audit-review-state
|
|
10
|
-
|
|
11
|
-
## Implementation Plan
|
|
12
|
-
|
|
13
|
-
- [x] Add non-rendering audit review state under `src/tui/audit-review/` for loaded proposals, selected operation, review decision, edited replacement text, warnings, and apply readiness.
|
|
14
|
-
- [x] Implement reducer actions for navigation, approve, reject, edit, reset edit, show divergence warning, and mark apply result.
|
|
15
|
-
- [x] Derive concise review summaries that the UI can render without reparsing proposal documents.
|
|
16
|
-
- [x] Keep all filesystem writes out of the state layer; call proposal/apply services through injected callbacks only in later integration.
|
|
17
|
-
- [x] Add deterministic reducer tests for navigation bounds, decision changes, edit preservation, ready-to-apply calculation, and warning state.
|
|
18
|
-
- [x] Run the focused audit review state tests before handing off the task.
|
|
19
|
-
|
|
20
|
-
## Context Log
|
|
21
|
-
|
|
22
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/tasks/T006-audit-review-state.md`; `src/tui/state/reducer.ts`; `src/tui/state/app-reducer.ts`; `src/tui/state/view-state.ts`; `test/tui/state/reducer.test.ts`; `test/tui/state/app-reducer.test.ts`; `src/audit/proposals.ts`; `src/audit/apply-proposals.ts`; `.savepoint/metrics/context-bench.md`
|
|
23
|
-
- Estimated input tokens: ~11,975
|
|
24
|
-
- Notes: E06 state/test conventions for reducer shape and deterministic testing; E07 audit proposal/apply types for state model alignment.
|
package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T007-audit-review-ui.md
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E07-audit-pipeline/T007-audit-review-ui
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Add the Ink audit review mode that lets users inspect proposals, approve or reject them, edit replacements, and apply approved changes."
|
|
5
|
-
depends_on:
|
|
6
|
-
- E07-audit-pipeline/T004-audit-orchestration-router
|
|
7
|
-
- E07-audit-pipeline/T006-audit-review-state
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# T007: audit-review-ui
|
|
11
|
-
|
|
12
|
-
## Implementation Plan
|
|
13
|
-
|
|
14
|
-
- [x] Create `src/tui/audit-review/*.tsx` components that follow the existing terminal palette and the Atari-Noir visual identity within terminal constraints.
|
|
15
|
-
- [x] Update the board audit entry point so proposal directories produced by E07 open the review mode for the active epic.
|
|
16
|
-
- [x] Render proposal targets, operation summaries, selected diffs, approval state, edit mode, and divergence warnings without dumping full unrelated file contents.
|
|
17
|
-
- [x] Wire apply actions through `src/audit/apply-proposals.ts`, require confirmation for high-divergence cases, and surface apply errors without losing review decisions.
|
|
18
|
-
- [x] Write audit log entries for applied, rejected-only, and user-aborted review outcomes.
|
|
19
|
-
- [x] Add TUI tests with mocked Ink rendering and service callbacks for navigation, approve/reject/edit, apply success, and apply failure.
|
|
20
|
-
- [x] Run the focused audit review UI and board integration tests before handing off the task.
|
|
21
|
-
|
|
22
|
-
## Context Log
|
|
23
|
-
|
|
24
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `.savepoint/visual-identity.md`; `.savepoint/metrics/context-bench.md`; `src/tui/App.tsx`; `src/tui/Board.tsx`; `src/commands/board.ts`; `src/tui/theme/palette.ts`; `src/tui/DetailPane.tsx`; `src/audit/apply-proposals.ts`; `src/audit/proposals.ts`; `src/audit/log.ts`; `src/domain/config.ts`; `src/tui/state/app-reducer.ts`; `src/tui/board-data.ts`; `test/commands/board.test.ts`; `test/commands/board-tty.test.ts`; `test/tui/components/App.test.tsx`; `src/tui/state/reducer.ts`; `src/tui/audit-review/state.ts`; `src/tui/audit-review/summary.ts`; `test/tui/audit-review/state.test.ts`; `vitest.config.ts`; `vitest.config.js`
|
|
25
|
-
- Estimated input tokens: ~16,000
|
|
26
|
-
- Notes: Implementation required understanding E06 TUI patterns for reducer shape, keyboard input, Ink testing, and board integration; extended T006 state model with confirm-divergence and edit helpers; wired apply through existing E07 audit services.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E07-audit-pipeline/T008-audit-pipeline-integration
|
|
3
|
-
status: done
|
|
4
|
-
objective: Verify the complete audit lifecycle from command execution through review application with end-to-end coverage and full quality gates.
|
|
5
|
-
depends_on:
|
|
6
|
-
- E07-audit-pipeline/T007-audit-review-ui
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T008: audit-pipeline-integration
|
|
10
|
-
|
|
11
|
-
## Implementation Plan
|
|
12
|
-
|
|
13
|
-
- [x] Add end-to-end tests that cover audit skip logging, gate failure short-circuiting, successful snapshot/prompt generation, router `audit-pending` transition, proposal review, and approved proposal application.
|
|
14
|
-
- [x] Verify audit artifacts remain bounded by asserting snapshots contain metadata and paths but not source/test code bodies.
|
|
15
|
-
- [x] Confirm explicit `--epic` and active-router epic selection work consistently across command, snapshot, proposal, and review paths.
|
|
16
|
-
- [x] Tighten command help, error messages, and fixture cleanup discovered by the integration tests.
|
|
17
|
-
- [x] Run focused audit integration tests first, then run `npm run typecheck`, `npm run lint`, `npm run format:check`, `npm run build`, and `npm test`.
|
|
18
|
-
- [x] Update this task's context log with implementation files read before moving it to review.
|
|
19
|
-
|
|
20
|
-
## Context Log
|
|
21
|
-
|
|
22
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/Design.md`; `.savepoint/releases/v1/epics/E07-audit-pipeline/tasks/T008-audit-pipeline-integration.md`; `src/commands/audit.ts`; `src/audit/quality-gates.ts`; `src/audit/snapshot.ts`; `src/audit/router-state.ts`; `src/audit/prompts.ts`; `src/audit/proposals.ts`; `src/audit/apply-proposals.ts`; `src/audit/log.ts`; `test/commands/audit.test.ts`; `test/cli/run.test.ts`; `test/audit/quality-gates.test.ts`; `test/audit/snapshot.test.ts`; `test/audit/proposals.test.ts`; `test/audit/apply-proposals.test.ts`; `test/audit/prompts.test.ts`; `src/tui/audit-review/state.ts`; `src/tui/audit-review/AuditReviewApp.tsx`; `src/tui/audit-review/summary.ts`; `test/tui/audit-review/state.test.ts`; `test/tui/audit-review/AuditReviewApp.test.tsx`; `test/commands/board.test.ts`; `src/cli/args.ts`; `src/cli/run.ts`; `src/cli/help.ts`; `src/readers/router.ts`; `.savepoint/metrics/context-bench.md`
|
|
23
|
-
- Estimated input tokens: ~45,844
|
|
24
|
-
- Notes: Full integration context: all E07 audit source and test files, CLI dispatch layer, TUI audit-review state/components, board test patterns for fixture setup, and context bench. Prettier formatting applied to all E07-scoped files with existing warnings.
|