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,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E08-board-workflow-cleanup/T003-board-data-and-plain-output
|
|
3
|
-
status: done
|
|
4
|
-
objective: Build release-level board data and update non-TTY board output so epics and readable task labels are visible without changing router state.
|
|
5
|
-
depends_on:
|
|
6
|
-
- E08-board-workflow-cleanup/T002-release-task-set-reader
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T003: board-data-and-plain-output
|
|
10
|
-
|
|
11
|
-
## Acceptance Criteria
|
|
12
|
-
|
|
13
|
-
- `BoardData` includes release epic metadata (including status mapped to `✓`, `▶`, `○` markers), active router epic/task, selected epic, selected epic columns, readable task labels, full task IDs, acceptance criteria summaries, and per-epic warnings.
|
|
14
|
-
- `runBoard` loads release-level board data for refresh and non-TTY rendering while keeping router state read-only.
|
|
15
|
-
- Status writes derive the target task path from the selected task ID's epic segment, not only from the router's active epic.
|
|
16
|
-
- Non-TTY output separates epic navigation from task status output and uses readable task labels before full IDs.
|
|
17
|
-
- Tests cover release-level board data, readable labels, acceptance criteria summaries, selected-vs-active epic metadata, and non-TTY output.
|
|
18
|
-
|
|
19
|
-
## Implementation Plan
|
|
20
|
-
|
|
21
|
-
- [x] Extend `src/tui/board-data.ts` types to represent release epics, selected epic metadata, readable task labels, full IDs, and acceptance criteria summaries.
|
|
22
|
-
- [x] Update board-data construction to consume the release-level reader from T002 while preserving current single-epic behavior through compatible defaults.
|
|
23
|
-
- [x] Update `src/commands/board.ts` loading and refresh callbacks to use release-level data without mutating `.savepoint/router.md`.
|
|
24
|
-
- [x] Update status-write path resolution to derive `release`, `epic`, and task filename from the selected task ID and current release.
|
|
25
|
-
- [x] Update `src/tui/render/plain-table.ts` so plain output shows an epic section, selected/active markers, readable task lines, and full IDs as metadata.
|
|
26
|
-
- [x] Add or update focused tests in `test/commands/board.test.ts`, `test/tui/render/plain-table.test.ts`, and board-data tests for the new release-level contract.
|
|
27
|
-
- [x] Run focused board-data, command, and plain-render tests before handing off.
|
|
28
|
-
- [x] Update this task's context log with implementation files read before moving it to review.
|
|
29
|
-
|
|
30
|
-
## Context Log
|
|
31
|
-
|
|
32
|
-
- Files read: `src/tui/board-data.ts`; `src/commands/board.ts`; `src/tui/render/plain-table.ts`; `src/readers/tasks.ts`; `src/domain/task.ts`; `src/domain/ids.ts`; `src/fs/markdown.ts`; `src/domain/router.ts`; `src/tui/state/view-state.ts`; `test/tui/render/plain-table.test.ts`; `test/commands/board.test.ts`; `test/tui/state/reducer.test.ts`; `test/tui/state/app-reducer.test.ts`; `test/tui/components/Board.test.tsx`; `.savepoint/releases/v1/epics/E08-board-workflow-cleanup/Design.md`; `tsconfig.json`.
|
|
33
|
-
- Also fixed pre-existing bug: `src/readers/tasks.ts` was not calling `parseTaskDocument` after parsing markdown, so `acceptanceCriteria` was always undefined at runtime.
|
|
34
|
-
- 727 tests pass (54 test files). New tests: `test/tui/board-data.test.ts` (14), `test/tui/render/plain-table.test.ts` +7 cases, `test/commands/board.test.ts` +4 cases.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E08-board-workflow-cleanup/T004-board-selection-state
|
|
3
|
-
status: done
|
|
4
|
-
objective: Model board selection state for epic browsing, task focus, refresh preservation, and task detail popup visibility.
|
|
5
|
-
depends_on:
|
|
6
|
-
- E08-board-workflow-cleanup/T003-board-data-and-plain-output
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T004: board-selection-state
|
|
10
|
-
|
|
11
|
-
## Acceptance Criteria
|
|
12
|
-
|
|
13
|
-
- Board state distinguishes epic focus, task focus, selected epic, selected task, and detail-popup visibility.
|
|
14
|
-
- Browsing another epic never changes the active router epic/task in state. Advancing (`Space`) or retreating (`Backspace`) task status is blocked unless the browsed epic matches the active router epic.
|
|
15
|
-
- Refresh preserves the selected epic and task when they still exist, and falls back predictably when an epic or task disappears.
|
|
16
|
-
- Navigation clamps at list boundaries where wrapping would make the screen feel unstable.
|
|
17
|
-
- Reducer tests cover epic switching, task movement within an epic, detail open/close, refresh preservation, and fallback behavior.
|
|
18
|
-
|
|
19
|
-
## Implementation Plan
|
|
20
|
-
|
|
21
|
-
- [x] Extend `src/tui/state/view-state.ts` with selected-epic, selected-task, focus-area, and detail-popup state derived from the new `BoardData`.
|
|
22
|
-
- [x] Update `src/tui/state/reducer.ts` actions for moving across epics, moving across tasks/status groups, switching focus, opening detail, closing detail, and refreshing release-level data.
|
|
23
|
-
- [x] Update `src/tui/state/app-reducer.ts` to preserve warning/message/loading behavior while carrying the expanded view state.
|
|
24
|
-
- [x] Replace wraparound movement with explicit clamp behavior where needed to avoid disorienting jumps and layout fragmentation.
|
|
25
|
-
- [x] Update state tests for the new release-level board shape and add coverage for detail visibility and selected-vs-active router metadata.
|
|
26
|
-
- [x] Run focused TUI state tests before handing off.
|
|
27
|
-
- [x] Update this task's context log with implementation files read before moving it to review.
|
|
28
|
-
|
|
29
|
-
## Context Log
|
|
30
|
-
|
|
31
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E08-board-workflow-cleanup/Design.md`; this task file; `src/tui/state/view-state.ts`; `src/tui/state/reducer.ts`; `src/tui/state/app-reducer.ts`; `src/tui/board-data.ts`; `test/tui/state/reducer.test.ts`; `test/tui/state/app-reducer.test.ts`.
|
|
32
|
-
- Estimated input tokens: ~14,000
|
|
33
|
-
- Notes: Added `FocusArea`, `epicIndex`, `selectedEpicRaw`, `focusArea`, `detailVisible` to `BoardViewState`. New actions: `move-epic`, `switch-focus`, `open-detail`, `close-detail`. Vertical task nav changed from wrap to clamp. 174 TUI tests pass.
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E08-board-workflow-cleanup/T005-ink-board-layout-cleanup
|
|
3
|
-
status: done
|
|
4
|
-
objective: Rework the Ink board into a stable release-level screen with an epic selector, readable task cards, and bounded terminal layout.
|
|
5
|
-
depends_on:
|
|
6
|
-
- E08-board-workflow-cleanup/T004-board-selection-state
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T005: ink-board-layout-cleanup
|
|
10
|
-
|
|
11
|
-
## Acceptance Criteria
|
|
12
|
-
|
|
13
|
-
- The TTY board renders as an immersive full-screen application using the alternate screen buffer (`\x1b[?1049h`), with a header, epic selector (fixed left rail, min 25 columns), task surface, warning area, and footer.
|
|
14
|
-
- Epic items are visually distinct from task cards and explicitly show status (`✓`, `▶`, `○`) and active-router state separately from selected/browsed state. Focus switches between panes via `Tab`/`Shift+Tab`.
|
|
15
|
-
- Task cards prioritize readable labels from slug/objective/title-style text while keeping full IDs visible as dim metadata.
|
|
16
|
-
- The backlog status remains represented but no longer consumes one fifth of the horizontal screen when that space is better used for epic selection.
|
|
17
|
-
- Layout uses terminal-safe widths, truncation, and fixed regions so arrow-key navigation does not fragment or wrap the board.
|
|
18
|
-
- Component tests cover epic selector rendering, readable labels, active-vs-selected markers, no-color output, and empty states.
|
|
19
|
-
|
|
20
|
-
## Implementation Plan
|
|
21
|
-
|
|
22
|
-
- [x] Refactor `src/tui/Board.tsx` into smaller render parts if needed so epic selection, task grouping, and task cards each have one job.
|
|
23
|
-
- [x] Implement alternate screen buffer entry/exit in `src/commands/board.ts` for full-screen takeover.
|
|
24
|
-
- [x] Add a release-level header and a fixed-width left rail epic selector that follow Atari-Noir terminal constraints and the Ink guide's screen/part split.
|
|
25
|
-
- [x] Replace full-ID-first task rendering with readable card labels, status/count metadata, and full IDs as secondary detail.
|
|
26
|
-
- [x] Rebalance the task surface so backlog is still visible but does not monopolize equal-width Kanban space when an epic rail is present.
|
|
27
|
-
- [x] Add terminal-width truncation and safe margins for long task labels, objectives, criteria, and epic names.
|
|
28
|
-
- [x] Update `src/tui/App.tsx` footer/help text for the new focus and navigation model without adding long in-app instructions.
|
|
29
|
-
- [x] Read and adhere to `agent-skills/ink-tui-design/SKILL.md` for component structure and visual constraints.
|
|
30
|
-
- [x] Update Ink component tests for the new layout and readable labels.
|
|
31
|
-
- [x] Run focused board component tests before handing off.
|
|
32
|
-
- [x] Update this task's context log with implementation files read before moving it to review.
|
|
33
|
-
|
|
34
|
-
## Context Log
|
|
35
|
-
|
|
36
|
-
- Files read: this task; E08 Design; T003/T004 context logs; `src/tui/Board.tsx`; `src/tui/App.tsx`; `src/tui/board-data.ts`; `src/tui/state/view-state.ts`; `src/tui/state/reducer.ts`; `src/tui/state/app-reducer.ts`; `src/commands/board.ts`; `src/tui/theme/palette.ts`; `agent-skills/ink-tui-design/SKILL.md`; `.savepoint/visual-identity.md`; `test/tui/components/Board.test.tsx`; `test/tui/components/App.test.tsx`.
|
|
37
|
-
- Implementation: refactored `Board.tsx` into `EpicRail` (React.memo, fixed 25-col left rail, glyph status + browsed cursor `›`) + `TaskCard` (React.memo, label primary, dim full ID secondary) + flex task surface. `App.tsx` gains header, Tab→switch-focus, rail up/down→move-epic, board left/right guard, mutation guard when browsedEpic≠activeEpic. `board.ts` wraps render in `\x1b[?1049h`/`\x1b[?1049l` alt screen buffer with cleanup on process exit. 755 tests pass, typecheck clean.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E08-board-workflow-cleanup/T006-task-detail-popup
|
|
3
|
-
status: done
|
|
4
|
-
objective: Add a keyboard-driven task detail popup that shows acceptance criteria, implementation checklist state, dependencies, status, and transition affordances.
|
|
5
|
-
depends_on:
|
|
6
|
-
- E08-board-workflow-cleanup/T005-ink-board-layout-cleanup
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T006: task-detail-popup
|
|
10
|
-
|
|
11
|
-
## Acceptance Criteria
|
|
12
|
-
|
|
13
|
-
- A selected task can open a full-screen detail modal using `Enter` (when focused on the board); `Escape` closes the modal. The implementation checklist remains read-only for v0.1.0.
|
|
14
|
-
- While the popup is open, underlying board key handlers are disabled so input is handled once.
|
|
15
|
-
- The popup shows objective, full ID, status, dependencies, acceptance criteria, implementation checklist progress, transition gate preview, and current warning/message text.
|
|
16
|
-
- Enter/backspace status transitions remain predictable and refresh board data after successful writes.
|
|
17
|
-
- Detail rendering is compact, no-color compatible, and safe for narrow terminals.
|
|
18
|
-
- Ink tests cover open/close, disabled underlying navigation, content sections, transition affordances, loading/error messages, and long text truncation.
|
|
19
|
-
|
|
20
|
-
## Implementation Plan
|
|
21
|
-
|
|
22
|
-
- [x] Extend board task data with implementation checklist summary parsed from the task body.
|
|
23
|
-
- [x] Add a focused detail popup component or refactor `src/tui/DetailPane.tsx` into popup-oriented parts while preserving one job per file.
|
|
24
|
-
- [x] Wire `src/tui/App.tsx` input handling so `Enter` opens detail, `Escape` closes it, and board-level movement/transition keys are disabled in popup mode.
|
|
25
|
-
- [x] Render criteria, checklist progress, dependency status, full ID, and transition gate previews with no hidden database state.
|
|
26
|
-
- [x] Ensure status transitions across selected epics refresh release-level data and surface mtime conflicts without closing or corrupting detail state.
|
|
27
|
-
- [x] Read and adhere to `agent-skills/ink-tui-design/SKILL.md` for modal component structure and visual constraints.
|
|
28
|
-
- [x] Update Ink tests for popup keyboard flow and rendered sections.
|
|
29
|
-
- [x] Run focused App and detail component tests before handing off.
|
|
30
|
-
- [x] Update this task's context log with implementation files read before moving it to review.
|
|
31
|
-
|
|
32
|
-
## Context Log
|
|
33
|
-
|
|
34
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E08-board-workflow-cleanup/Design.md`; `.savepoint/releases/v1/epics/E08-board-workflow-cleanup/tasks/T006-task-detail-popup.md`; `.savepoint/visual-identity.md`; `agent-skills/ink-tui-design/SKILL.md`; `agent-skills/ink-tui-design/references/component-patterns.md`; `agent-skills/ink-tui-design/references/ink-gotchas.md`; `agent-skills/ink-tui-design/references/testing-patterns.md`; `src/domain/task.ts`; `src/tui/App.tsx`; `src/tui/Board.tsx`; `src/tui/DetailPane.tsx`; `src/tui/board-data.ts`; `src/tui/state/app-reducer.ts`; `src/tui/state/view-state.ts`; `src/tui/state/reducer.ts`; `test/domain/task.test.ts`; `test/tui/board-data.test.ts`; `test/tui/components/App.test.tsx`; `test/tui/components/Board.test.tsx`; `test/tui/components/DetailPane.test.tsx`; `test/tui/state/app-reducer.test.ts`; `.savepoint/metrics/context-bench.md`.
|
|
35
|
-
- Estimated input tokens: ~41,158
|
|
36
|
-
- Notes: Implemented Enter/Escape modal flow per acceptance criteria and retained Space/backspace status transitions. Focused tests, typecheck, and lint pass; full format check is still blocked by unrelated pre-existing unformatted files outside this task's edit set.
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E08-board-workflow-cleanup/T007-templates-acceptance-criteria
|
|
3
|
-
status: done
|
|
4
|
-
objective: Update workflow templates and prompts so new task files require acceptance criteria before implementation planning.
|
|
5
|
-
depends_on:
|
|
6
|
-
- E08-board-workflow-cleanup/T001-acceptance-criteria-model
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# T007: templates-acceptance-criteria
|
|
10
|
-
|
|
11
|
-
## Acceptance Criteria
|
|
12
|
-
|
|
13
|
-
- Live workflow docs and scaffold templates describe acceptance criteria as required task content before `## Implementation Plan`.
|
|
14
|
-
- Task-breakdown and task-planning prompts require acceptance criteria and distinguish observable outcomes from implementation checklist steps.
|
|
15
|
-
- Task-building prompts tell agents to satisfy acceptance criteria by completing the implementation checklist.
|
|
16
|
-
- Router and agent templates preserve token-discipline rules and include the Ink guide conditional read where TUI implementation requires it.
|
|
17
|
-
- Template tests prove generated task examples contain `## Acceptance Criteria` before `## Implementation Plan`.
|
|
18
|
-
- Historical task files are not bulk edited; compatibility behavior from T001 remains the migration path.
|
|
19
|
-
|
|
20
|
-
## Implementation Plan
|
|
21
|
-
|
|
22
|
-
- [x] Update live `.savepoint/router.md` workflow instructions only as needed for acceptance criteria and task detail navigation wording, without advancing router state while E07 remains active.
|
|
23
|
-
- [x] Update `templates/project/AGENTS.md` and `templates/project/.savepoint/router.md` so generated projects inherit acceptance-criteria and Ink-guide conditional-read guidance.
|
|
24
|
-
- [x] Update `templates/prompts/task-breakdown.prompt.md`, `templates/prompts/task-planning.prompt.md`, and `templates/prompts/task-building.prompt.md` to require acceptance criteria and clarify the implementation-plan relationship.
|
|
25
|
-
- [x] Update template tests for prompt shape, generated task examples, and router/agent workflow wording.
|
|
26
|
-
- [x] Confirm no historical task-file migration is required for tests or templates beyond fixtures that intentionally represent new tasks.
|
|
27
|
-
- [x] Run focused template tests before handing off.
|
|
28
|
-
- [x] Update this task's context log with implementation files read before moving it to review.
|
|
29
|
-
|
|
30
|
-
## Context Log
|
|
31
|
-
|
|
32
|
-
- Files read: `.savepoint/router.md`; `templates/project/AGENTS.md`; `templates/project/.savepoint/router.md`; `templates/prompts/task-breakdown.prompt.md`; `templates/prompts/task-planning.prompt.md`; `templates/prompts/task-building.prompt.md`; `test/templates/prompt-templates.test.ts`; `test/templates/project-templates.test.ts`; `test/templates/router-template.test.ts`; `test/templates/render-integrity.test.ts`; `test/templates/template-registry.test.ts`; `.savepoint/releases/v1/epics/E08-board-workflow-cleanup/Design.md`; `.savepoint/releases/v1/epics/E08-board-workflow-cleanup/tasks/T007-templates-acceptance-criteria.md`; `.savepoint/releases/v1/epics/E08-board-workflow-cleanup/tasks/T001-acceptance-criteria-model.md`; `src/domain/task.ts`; `.savepoint/metrics/context-bench.md`; `templates/prompts/magic-prompt.prompt.md`; `templates/prompts/audit-reconciliation.prompt.md`; `templates/prompts/epic-design.prompt.md`.
|
|
33
|
-
- Estimated input tokens: ~19,360
|
|
34
|
-
- Notes: Updated live router, template AGENTS.md/router.md, task prompts, and template tests. No historical task-file migration needed. All 48 template tests pass.
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E08-board-workflow-cleanup/T008-board-workflow-integration
|
|
3
|
-
status: done
|
|
4
|
-
objective: Close out the board workflow cleanup by reconciling E06/E07 board rework, updating integration coverage, and running the full quality gates.
|
|
5
|
-
depends_on:
|
|
6
|
-
- E08-board-workflow-cleanup/T006-task-detail-popup
|
|
7
|
-
- E08-board-workflow-cleanup/T007-templates-acceptance-criteria
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# T008: board-workflow-integration
|
|
11
|
-
|
|
12
|
-
## Acceptance Criteria
|
|
13
|
-
|
|
14
|
-
- E06 board command behavior still works after release-level browsing, including full-screen alternate buffer setup/teardown (restoring shell history cleanly), non-TTY fallback, TTY launch, refresh, transition gates, and mtime conflict handling.
|
|
15
|
-
- E07 audit review entry still works for the router's active epic and is not confused with a merely browsed epic.
|
|
16
|
-
- Existing E07 T008 audit-pipeline integration scope is respected; this task does not change E07 task status or audit lifecycle semantics.
|
|
17
|
-
- Focused tests cover cross-epic board browsing through command/state/component layers.
|
|
18
|
-
- Full quality gates pass or any blocker is documented in this task before handoff.
|
|
19
|
-
- The E08 task set remains independently buildable and ready for normal implementation after E07 audit closeout.
|
|
20
|
-
|
|
21
|
-
## Implementation Plan
|
|
22
|
-
|
|
23
|
-
- [x] Review the E06 and E07 tests affected by board data shape, App keybindings, audit entry, and non-TTY output, then update only assertions that reflect intentional E08 behavior.
|
|
24
|
-
- [x] Add integration coverage for browsing a non-active epic, refreshing after underlying task-file changes, transitioning a selected task by ID-derived path, and preserving active-router audit review behavior.
|
|
25
|
-
- [x] Run focused command, state, component, reader, template, and audit-review tests that cover E08 changes.
|
|
26
|
-
- [x] Run `npm run typecheck`, `npm run lint`, `npm run format:check`, `npm run build`, and `npm test`.
|
|
27
|
-
- [x] Update E08 task context logs and `.savepoint/metrics/context-bench.md` with measured implementation context before moving this task to review.
|
|
28
|
-
- [x] Leave router advancement to the normal post-E07 workflow; do not mark E08 implementation active while E07 is still incomplete or unaudited.
|
|
29
|
-
- [x] Simplify the canonical task workflow to `planned`, `in_progress`, and `done`, while preserving read-time compatibility for historical `backlog` and `review` task files.
|
|
30
|
-
|
|
31
|
-
## Rework Notes
|
|
32
|
-
|
|
33
|
-
- E06 rework expected: board data moves from active-epic-only to release-level, reducers gain epic focus, the board collapses to a calmer three-lane workflow plus the epic rail, and plain output changes from ID-first rows to readable task lines.
|
|
34
|
-
- E07 rework expected: audit proposal entry remains tied to the router active epic, and audit-review TUI patterns should be reused for mode-gated input and two-pane detail behavior where helpful.
|
|
35
|
-
- E04/E05 rework expected: scaffolded workflow docs and prompts must learn acceptance criteria; historical task files should remain compatible rather than being hand-migrated.
|
|
36
|
-
|
|
37
|
-
## Context Log
|
|
38
|
-
|
|
39
|
-
- Files read: `.savepoint/router.md`; `.savepoint/releases/v1/epics/E08-board-workflow-cleanup/Design.md`; `.savepoint/releases/v1/epics/E08-board-workflow-cleanup/tasks/T008-board-workflow-integration.md`; `agent-skills/ink-tui-design/SKILL.md`; `.savepoint/visual-identity.md`; `src/commands/board.ts`; `src/tui/App.tsx`; `src/tui/board-data.ts`; `src/tui/state/app-reducer.ts`; `src/tui/state/view-state.ts`; `src/tui/state/reducer.ts`; `src/tui/Board.tsx`; `src/tui/DetailPane.tsx`; `src/tui/io/write-active-router-epic.ts`; `src/tui/io/write-active-router-release.ts`; `src/tui/render/plain-table.ts`; `src/tui/theme/palette.ts`; `src/domain/config.ts`; `.savepoint/config.yml`; `test/commands/board.test.ts`; `test/commands/board-tty.test.ts`; `test/tui/components/App.test.tsx`; `test/tui/components/Board.test.tsx`; `test/tui/components/DetailPane.test.tsx`; `test/tui/state/reducer.test.ts`; `test/tui/state/app-reducer.test.ts`; `test/tui/board-data.test.ts`; `test/tui/render/plain-table.test.ts`; `.savepoint/metrics/context-bench.md`.
|
|
40
|
-
- Estimated input tokens: ~43,206
|
|
41
|
-
- Notes: Integration closeout for E08. Fixed the release-workflow gaps found in the manual audit: rail browsing now previews the selected epic immediately, `Enter` on the rail activates that epic in the router, transition gates evaluate against release-level task data so cross-epic dependencies still block invalid moves, and horizontal board navigation clamps instead of wrapping. Added explicit release navigation with `[` and `]`, backed by router release rewrites and reload of the first available epic/task in the selected release. Reworked the board layout to a calmer four-surface workflow (`Epics`, `Planned`, `In Progress`, `Done`) with deterministic terminal-width sizing, stronger panel outlines, and detail sections that better match `.savepoint/visual-identity.md` through dark panel surfaces, warm text, orange focus treatment, purple epic accents, and retro iconography. Simplified the canonical task status model to `planned`, `in_progress`, and `done`, while preserving read-time compatibility for historical `backlog` and `review` task files and updating write paths to persist only canonical values. Tightened the workflow docs and templates so any explicit user-requested audit must persist `.savepoint/audit/{E##-epic}/snapshot.md` and `.savepoint/audit/{E##-epic}/proposals.md` before replying, and so task-building closes at `done` instead of `review`. Focused verification for this pass: targeted board/status/theme/template tests now pass after the simplification. `.savepoint/metrics/context-bench.md` could not be updated in this pass because the file is currently deleted in the workspace.
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: active
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E09: doctor-command
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Implement `savepoint doctor`, the diagnostic command for corrupted or inconsistent Savepoint projects. Doctor reports problems and suggested repairs, but does not make destructive changes automatically.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- Integrity checks for config, router state, release/epic/task structure, YAML/frontmatter, task acceptance criteria, dependency references, cycles, duplicate task IDs, audit state, and orphaned tasks.
|
|
15
|
-
- Ad-hoc quality gate runner.
|
|
16
|
-
- Human-readable diagnostic output.
|
|
17
|
-
- Machine-testable diagnostic objects.
|
|
18
|
-
- Suggested repair messages for common failure modes.
|
|
19
|
-
- Layer-2 AI review prompt printing hook for future expansion, without implementing v0.2 semantic review.
|
|
20
|
-
|
|
21
|
-
## Components and files
|
|
22
|
-
|
|
23
|
-
Expected files introduced or extended by this epic:
|
|
24
|
-
|
|
25
|
-
| Path | Purpose |
|
|
26
|
-
| ----------------------------- | ----------------------------- |
|
|
27
|
-
| `src/commands/doctor.ts` | Doctor command entrypoint. |
|
|
28
|
-
| `src/doctor/checks/*.ts` | Individual integrity checks. |
|
|
29
|
-
| `src/doctor/report.ts` | Diagnostic report formatting. |
|
|
30
|
-
| `src/doctor/repairs.ts` | Suggested repair text. |
|
|
31
|
-
| `src/doctor/quality-gates.ts` | Ad-hoc quality gate reuse. |
|
|
32
|
-
| `test/doctor/**/*.test.ts` | Diagnostic behavior tests. |
|
|
33
|
-
|
|
34
|
-
## Architectural delta
|
|
35
|
-
|
|
36
|
-
Before this epic, validation exists inside specific workflows. After this epic, users have a central command for diagnosing project health outside normal board/audit flows.
|
|
37
|
-
|
|
38
|
-
Doctor should reuse the data model and audit quality-gate runner instead of introducing parallel logic.
|
|
39
|
-
|
|
40
|
-
## Boundaries
|
|
41
|
-
|
|
42
|
-
In scope:
|
|
43
|
-
|
|
44
|
-
- Detect corrupt YAML/frontmatter.
|
|
45
|
-
- Detect missing config.
|
|
46
|
-
- Detect missing dependencies and dependency cycles.
|
|
47
|
-
- Detect duplicate task IDs.
|
|
48
|
-
- Detect missing or malformed task acceptance criteria after the board workflow cleanup makes them required.
|
|
49
|
-
- Detect tasks in nonexistent epics.
|
|
50
|
-
- Detect audit proposals without matching audit-pending state.
|
|
51
|
-
- Run configured quality gates on demand.
|
|
52
|
-
|
|
53
|
-
Out of scope:
|
|
54
|
-
|
|
55
|
-
- Auto-moving orphaned tasks without user action.
|
|
56
|
-
- Repairing files destructively.
|
|
57
|
-
- Launching the TUI.
|
|
58
|
-
- Calling AI APIs.
|
|
59
|
-
|
|
60
|
-
## Quality gates
|
|
61
|
-
|
|
62
|
-
- Each failure mode listed in the project Design should have at least one test.
|
|
63
|
-
- Reports should include file paths and actionable messages.
|
|
64
|
-
- Exit codes should distinguish clean, diagnosed problems, and internal command failure.
|
|
65
|
-
|
|
66
|
-
## Design constraints
|
|
67
|
-
|
|
68
|
-
- Doctor diagnoses and proposes; it does not silently mutate.
|
|
69
|
-
- Keep diagnostics deterministic and suitable for CI output.
|
|
70
|
-
- Reuse existing validation functions wherever possible.
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: active
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E10: docs-and-packaging
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Prepare Savepoint as a public npm package with clear user-facing documentation, correct package metadata, and validated publish contents.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- Public README suitable for npm and GitHub.
|
|
15
|
-
- MIT license finalized.
|
|
16
|
-
- Package metadata review for repository, keywords, files, bin, engines, and exports.
|
|
17
|
-
- `npm pack` validation.
|
|
18
|
-
- Local install smoke tests from the packed tarball.
|
|
19
|
-
- Documentation for install, init, board, audit, doctor, and the audit loop.
|
|
20
|
-
- Release checklist draft for `0.1.0`.
|
|
21
|
-
|
|
22
|
-
## Components and files
|
|
23
|
-
|
|
24
|
-
Expected files introduced or extended by this epic:
|
|
25
|
-
|
|
26
|
-
| Path | Purpose |
|
|
27
|
-
| -------------------------------- | -------------------------------------------------- |
|
|
28
|
-
| `README.md` | Public product and usage documentation. |
|
|
29
|
-
| `LICENSE` | Final MIT license text. |
|
|
30
|
-
| `package.json` | Publish metadata and package allowlist. |
|
|
31
|
-
| `.npmignore` or `files` field | Publish contents control. |
|
|
32
|
-
| `docs/*.md` | Optional focused docs if README becomes too large. |
|
|
33
|
-
| `scripts/*.ts` or `scripts/*.js` | Optional pack/install smoke helpers. |
|
|
34
|
-
| `test/packaging/**/*.test.ts` | Packaging validation tests if scriptable. |
|
|
35
|
-
|
|
36
|
-
## Architectural delta
|
|
37
|
-
|
|
38
|
-
Before this epic, the package can function locally. After this epic, the package is shaped for public consumption and can be validated as a packed npm artifact.
|
|
39
|
-
|
|
40
|
-
This epic does not publish the package; it makes publishing boring and inspectable.
|
|
41
|
-
|
|
42
|
-
## Boundaries
|
|
43
|
-
|
|
44
|
-
In scope:
|
|
45
|
-
|
|
46
|
-
- Public docs and package metadata.
|
|
47
|
-
- Packed artifact validation.
|
|
48
|
-
- Local install smoke tests.
|
|
49
|
-
- Ensure generated `dist/cli.js` is the published binary.
|
|
50
|
-
|
|
51
|
-
Out of scope:
|
|
52
|
-
|
|
53
|
-
- Actual npm publish.
|
|
54
|
-
- Manual agent matrix.
|
|
55
|
-
- Broad marketing site work.
|
|
56
|
-
- Major feature changes discovered during docs writing unless they block package correctness.
|
|
57
|
-
|
|
58
|
-
## Quality gates
|
|
59
|
-
|
|
60
|
-
- `npm pack --dry-run` or equivalent should show only intended files.
|
|
61
|
-
- Packed install smoke should verify `savepoint --help` and `savepoint --version`.
|
|
62
|
-
- README examples should match implemented command behavior.
|
|
63
|
-
|
|
64
|
-
## Design constraints
|
|
65
|
-
|
|
66
|
-
- Keep docs plain and practical for vibe coders.
|
|
67
|
-
- Do not over-document deferred features.
|
|
68
|
-
- Treat package contents as a release contract.
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: active
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E11: release-validation
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Run the final validation matrix for `0.1.0`, resolve release-blocking issues, and prepare the public release cut.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- Manual e2e test matrix across Claude, Cursor, Gemini, and Aider where available.
|
|
15
|
-
- Cross-platform checks for macOS, Linux, and Windows Terminal where available.
|
|
16
|
-
- Fresh-project `npx savepoint init` validation.
|
|
17
|
-
- Full command walkthrough: init, board, audit, and doctor.
|
|
18
|
-
- Final version check for `0.1.0`.
|
|
19
|
-
- Release notes.
|
|
20
|
-
- Publish-readiness checklist.
|
|
21
|
-
|
|
22
|
-
## Components and files
|
|
23
|
-
|
|
24
|
-
Expected files introduced or extended by this epic:
|
|
25
|
-
|
|
26
|
-
| Path | Purpose |
|
|
27
|
-
| --------------------------- | ------------------------------------------------- |
|
|
28
|
-
| `docs/release-checklist.md` | Final release checklist and results. |
|
|
29
|
-
| `docs/e2e-matrix.md` | Manual agent/platform matrix results. |
|
|
30
|
-
| `CHANGELOG.md` | Initial release notes. |
|
|
31
|
-
| `package.json` | Final version metadata if needed. |
|
|
32
|
-
| `.savepoint/audit-log.md` | Audit history if audits were skipped or recorded. |
|
|
33
|
-
|
|
34
|
-
## Architectural delta
|
|
35
|
-
|
|
36
|
-
Before this epic, the package should be feature-complete for v0.1.0. After this epic, the release has documented validation evidence and can be published with known residual risks.
|
|
37
|
-
|
|
38
|
-
This epic should prefer fixing release blockers in the smallest responsible place over broad refactors.
|
|
39
|
-
|
|
40
|
-
## Boundaries
|
|
41
|
-
|
|
42
|
-
In scope:
|
|
43
|
-
|
|
44
|
-
- Manual matrix execution and recording.
|
|
45
|
-
- Cross-platform smoke validation.
|
|
46
|
-
- Final bug fixes required to pass release criteria.
|
|
47
|
-
- Release notes and version confirmation.
|
|
48
|
-
|
|
49
|
-
Out of scope:
|
|
50
|
-
|
|
51
|
-
- New features.
|
|
52
|
-
- v0.2.0 semantic review.
|
|
53
|
-
- File watching.
|
|
54
|
-
- Search.
|
|
55
|
-
- MCP server work.
|
|
56
|
-
|
|
57
|
-
## Quality gates
|
|
58
|
-
|
|
59
|
-
- All automated tests pass.
|
|
60
|
-
- Packed install smoke passes.
|
|
61
|
-
- Manual e2e matrix passes against at least three of four target agents.
|
|
62
|
-
- Known limitations are documented.
|
|
63
|
-
|
|
64
|
-
## Design constraints
|
|
65
|
-
|
|
66
|
-
- Keep late fixes narrow and auditable.
|
|
67
|
-
- Do not relax quality gates to ship.
|
|
68
|
-
- Record evidence, not vibes.
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
version: 1
|
|
3
|
-
name: "Simplified Board"
|
|
4
|
-
status: in_progress
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Release v1 — Simplified Board
|
|
8
|
-
|
|
9
|
-
## Simplification Objective
|
|
10
|
-
|
|
11
|
-
The original v1 scope (11 epics, 5 CLI commands, full audit pipeline) proved over-engineered. This release strips savepoint back to its essential value: a board for tracking AI-driven development work through phases.
|
|
12
|
-
|
|
13
|
-
**Stack change:** Ink/TypeScript → Bubble Tea/Go. Full rewrite.
|
|
14
|
-
|
|
15
|
-
**What stays:**
|
|
16
|
-
- `savepoint board` — Bubble Tea TUI for viewing and moving tasks
|
|
17
|
-
- The `.savepoint/` data structure: router → release → epic → task
|
|
18
|
-
- AGENTS.md as the agent bootstrap file
|
|
19
|
-
|
|
20
|
-
**What goes:**
|
|
21
|
-
- `init`, `audit`, `doctor` commands
|
|
22
|
-
- Full 6-step audit pipeline
|
|
23
|
-
- Template scaffolding and prompt generation
|
|
24
|
-
- Quality gates, divergence thresholds, snapshot generation
|
|
25
|
-
- Complex router state machine (6 states → 3 states)
|
|
26
|
-
- TypeScript, React, Ink, npm, tsup, vitest
|
|
27
|
-
|
|
28
|
-
**What replaces the audit pipeline:**
|
|
29
|
-
- Tasks in `in_progress` now carry a `phase`: `build → test → audit → done`
|
|
30
|
-
- The board itself enforces phase progression
|
|
31
|
-
- Space advances phase, backspace retreats
|
|
32
|
-
- Must reach `audit` phase before advancing to `done`
|
|
33
|
-
|
|
34
|
-
## What ships in v0.2.0
|
|
35
|
-
|
|
36
|
-
- `savepoint board` — the only CLI command (Go binary)
|
|
37
|
-
- Phase-aware Kanban board: planned / in_progress (build/test/audit) / done
|
|
38
|
-
- Task status transitions with phase gating
|
|
39
|
-
- Non-TTY plain table fallback
|
|
40
|
-
- Atari-Noir theme, fully overridable via `config.yml`
|
|
41
|
-
- Go 1.23+, single binary, `go build`
|
|
42
|
-
|
|
43
|
-
## Epic breakdown
|
|
44
|
-
|
|
45
|
-
| # | Epic name | Purpose |
|
|
46
|
-
| --- | ---------------------------- | ------- |
|
|
47
|
-
| 01 | `E01-go-setup` | Initialize Go module, project structure, dependencies, build loop |
|
|
48
|
-
| 02 | `E02-data-readers` | Parse markdown/yaml, read .savepoint data (router, config, tasks) |
|
|
49
|
-
| 03 | `E03-board-tui-core` | Bubble Tea model, update loop, view, styles, responsive layout |
|
|
50
|
-
| 04 | `E04-board-components` | Columns, cards with phase glyphs, epic panel, detail overlay, dropdowns, help |
|
|
51
|
-
| 05 | `E05-phase-transitions` | Phase stepping, gates, task frontmatter write-back, router state write-back |
|
|
52
|
-
|
|
53
|
-
## Success criteria
|
|
54
|
-
|
|
55
|
-
- `savepoint board` launches and renders the phase-aware Kanban board.
|
|
56
|
-
- Space/backspace correctly advances/retreats task phases.
|
|
57
|
-
- Cannot advance to `done` without passing through `audit` phase.
|
|
58
|
-
- `go build` produces a working binary.
|
|
59
|
-
- `go test ./...` passes.
|
|
60
|
-
- No dead code, no unused dependencies, no references to deleted commands.
|
|
61
|
-
|
|
62
|
-
## Risks
|
|
63
|
-
|
|
64
|
-
- **Agent compliance.** Simpler structure should improve compliance. AGENTS.md must be crystal clear.
|
|
65
|
-
- **Phase model clarity.** Users must understand build/test/audit as sub-states of in_progress. Board rendering must make this obvious.
|
|
66
|
-
- **Go ecosystem.** New stack requires different testing patterns, dependency management, build tooling.
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: audited
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E01: TUI Optimisation
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Performance, layout robustness, and structural improvements for the board TUI. Focused on fixing rendering edge-cases (resize clipping, wasted space) and improving the codebase's architectural hygiene around file watching and data refresh.
|
|
11
|
-
|
|
12
|
-
## Definition of Done
|
|
13
|
-
|
|
14
|
-
- Right-border clipping is eliminated at all terminal widths ≥ 40
|
|
15
|
-
- Resize handling is robust — no corruption, no artifacts when growing/shrinking
|
|
16
|
-
- The board auto-refreshes when task files change on disk via fsnotify
|
|
17
|
-
- Board columns use virtual viewport scrolling — 4-5 cards visible with `↑/↓` indicators
|
|
18
|
-
- Detail overlay is height-capped (~70%) with scroll indicators for overflow content
|
|
19
|
-
- All scroll indicators use dim/subtle styling consistent with Atari Noir aesthetic
|
|
20
|
-
|
|
21
|
-
## Implemented As
|
|
22
|
-
|
|
23
|
-
- Header Next Activity rendering is implemented in `internal/board/view.go` using `FormatNextActivity` and `styles.HeaderRight`.
|
|
24
|
-
- Column and detail scrolling are implemented through `ColumnOffsets`, `DetailOffset`, height-aware layout, viewport slicing, and subtle scroll indicators in `internal/board/model.go`, `internal/board/layout.go`, `internal/board/update.go`, `internal/board/column.go`, and `internal/board/detail.go`.
|
|
25
|
-
- Focus border stability is implemented by rendering unfocused columns with `styles.ColumnUnfocused`, matching focused column border dimensions while using the subtle border color.
|
|
26
|
-
- Naming conventions were reconciled across workflow docs: per-epic `Design.md` files became `E##-Detail.md`, and release `PRD.md` became `{release}-PRD.md`.
|
|
27
|
-
- The originally listed fsnotify watcher scope was already present from the prior TUI epic and was reviewed as existing behavior rather than newly introduced in this epic.
|
|
28
|
-
|
|
29
|
-
## Components and files
|
|
30
|
-
|
|
31
|
-
| Path | Purpose |
|
|
32
|
-
|------|---------|
|
|
33
|
-
| `internal/board/layout.go` | Layout arithmetic and resize guards, height-aware ContentHeight |
|
|
34
|
-
| `internal/board/view.go` | Minimum width clamping, height passthrough to renderers |
|
|
35
|
-
| `internal/board/watch.go` | File watcher and reload commands |
|
|
36
|
-
| `internal/board/model.go` | Watcher lifecycle, ColumnOffsets, DetailOffset state |
|
|
37
|
-
| `internal/board/update.go` | Reload message handling, auto-scroll offsets, PageUp/PageDown |
|
|
38
|
-
| `internal/board/column.go` | Virtual viewport slicing, scroll indicator rendering |
|
|
39
|
-
| `internal/board/detail.go` | Height-capped overlay, detail scroll indicators |
|
|
40
|
-
| `internal/styles/styles.go` | ScrollIndicator style (dim/subtle) |
|
package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T001-next-activity-header.md
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-tui-optimisation/T001-next-activity-header
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Show Next Activity indicator in the TUI header bar, right-aligned, displaying the current router state"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: Next Activity Header Display
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- The header bar displays "Next Activity:" followed by a formatted state string on the right side
|
|
13
|
-
- When router state is `task-building`, displays "Build T{NNN} (E{NN}) v{N}" format (e.g., "Build T010 (E06) v1")
|
|
14
|
-
- When router state is `audit-pending`, displays "Audit E{NN}" format (e.g., "Audit E06")
|
|
15
|
-
- For `epic-design` state, displays "Design E{NN}" format
|
|
16
|
-
- For `epic-task-breakdown` state, displays "Plan E{NN}" format
|
|
17
|
-
- For `pre-implementation` state, displays "Planning v{N}" format
|
|
18
|
-
- The Next Activity text (excluding "Next Activity:" label) is capped at 20 characters maximum, with ellipsis truncation if exceeded
|
|
19
|
-
- The display gracefully degrades at narrow terminal widths (header text remains intact, Next Activity truncates but doesn't break layout)
|
|
20
|
-
- All existing tests pass
|
|
21
|
-
|
|
22
|
-
## Implementation Plan
|
|
23
|
-
|
|
24
|
-
- [x] Add `HeaderRight` style to `internal/styles/styles.go` (dim foreground, right-aligned)
|
|
25
|
-
- [x] Create `FormatNextActivity(state *data.RouterState) string` helper in `internal/board/view.go` that:
|
|
26
|
-
- Parses router state and formats compact string based on state type
|
|
27
|
-
- Truncates to max 20 chars using `xansi.Truncate` with ellipsis
|
|
28
|
-
- [x] Update `view.go` `View()` method — modify header rendering:
|
|
29
|
-
- Split header into left (icon + "SAVEPOINT") and right sections
|
|
30
|
-
- Use `lipgloss.PlaceHorizontal` or manual string construction to position Next Activity on right
|
|
31
|
-
- Maintain existing `HeaderFrame` width and padding
|
|
32
|
-
- [x] Update `main.go` or board initialization to read router state and populate `Model` with parsed state
|
|
33
|
-
- [x] Add test in `internal/board/view_test.go` for Next Activity rendering at various widths
|
|
34
|
-
- [x] Add test for `FormatNextActivity` covering all router states and truncation behavior
|
|
35
|
-
- [x] Run quality gates — `make build && make test` unavailable in this shell; equivalent `go build ./...` and `go test ./...` pass
|
|
36
|
-
|
|
37
|
-
## Context Log
|
|
38
|
-
|
|
39
|
-
Files read:
|
|
40
|
-
- `internal/board/view.go`
|
|
41
|
-
- `internal/board/model.go`
|
|
42
|
-
- `internal/styles/styles.go`
|
|
43
|
-
- `internal/data/router.go`
|
|
44
|
-
- `internal/board/view_test.go`
|
|
45
|
-
- `.savepoint/router.md`
|
|
46
|
-
- `.savepoint/releases/v1.1/epics/E03-header-activity/E03-Detail.md`
|
|
47
|
-
|
|
48
|
-
Estimated input tokens: 2800
|
|
49
|
-
|
|
50
|
-
Notes:
|
|
51
|
-
- Uses existing `data.RouterState` model — no new data parsing needed
|
|
52
|
-
- Router state already available via `m.RouterTask` in Model — may need to add `*data.RouterState` field or parse separately
|
|
53
|
-
- Truncation uses same `xansi` package already imported in view.go
|
|
54
|
-
- Max 20 char constraint keeps header clean at all terminal widths
|
|
55
|
-
- Audit must-fix applied: stale implementation checklist items were ticked after verifying the implemented source and tests.
|
|
56
|
-
- Quality gates verified during audit: `go build ./...` passed; `go test ./...` passed.
|
package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T002-rename-epic-design-files.md
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E01-tui-optimisation/T002-rename-epic-design-files
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Rename all epic Design.md files to E##-Detail.md convention"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T002: Rename Epic Design Files
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- All 8 active epic `Design.md` files renamed to `E##-Detail.md` pattern
|
|
13
|
-
- Archived epics under `_archived/` left unchanged
|
|
14
|
-
- Root `.savepoint/Design.md` left unchanged
|
|
15
|
-
- No content changes in renamed files
|
|
16
|
-
- All renamed files remain valid markdown with intact frontmatter
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [x] Rename `.savepoint/releases/v1/epics/E01-go-setup/Design.md` → `E01-Detail.md`
|
|
21
|
-
- [x] Rename `.savepoint/releases/v1/epics/E02-data-readers/Design.md` → `E02-Detail.md`
|
|
22
|
-
- [x] Rename `.savepoint/releases/v1/epics/E03-board-tui-core/Design.md` → `E03-Detail.md`
|
|
23
|
-
- [x] Rename `.savepoint/releases/v1/epics/E04-board-components/Design.md` → `E04-Detail.md`
|
|
24
|
-
- [x] Rename `.savepoint/releases/v1/epics/E05-phase-transitions/Design.md` → `E05-Detail.md`
|
|
25
|
-
- [x] Rename `.savepoint/releases/v1/epics/E06-atari-noir-layout/Design.md` → `E06-Detail.md`
|
|
26
|
-
- [x] Rename `.savepoint/releases/v1.1/epics/E01-tui-optimisation/Design.md` → `E01-Detail.md`
|
|
27
|
-
- [x] Rename `.savepoint/releases/v1.1/epics/E02-cross-platform-compatibility/Design.md` → `E02-Detail.md`
|
|
28
|
-
|
|
29
|
-
## Context Log
|
|
30
|
-
|
|
31
|
-
Files read:
|
|
32
|
-
- None (file renames only)
|
|
33
|
-
|
|
34
|
-
Estimated input tokens: 300
|
|
35
|
-
|
|
36
|
-
Notes:
|
|
37
|
-
- Content is not modified, only file paths change
|
|
38
|
-
- Archived epics explicitly excluded per user request
|