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,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: planned
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E05: Phase Transitions
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Enable task status and phase mutations from the board. Space advances, backspace retreats. Gates enforce phase order. Writes update task frontmatter and router state.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- `Space` advances task through phases: planned → build → test → audit → done.
|
|
15
|
-
- `Backspace` retreats: done → audit → test → build → planned.
|
|
16
|
-
- Gate enforcement: cannot skip phases; cannot reach done without audit.
|
|
17
|
-
- Task frontmatter write-back: update `status` and `phase` fields in the `.md` file.
|
|
18
|
-
- Optimistic mtime conflict detection before writes.
|
|
19
|
-
- Router write-back: update `router.md` Current state when epic/release changes.
|
|
20
|
-
|
|
21
|
-
## Definition of Done
|
|
22
|
-
|
|
23
|
-
- Space/backspace correctly walk the phase chain.
|
|
24
|
-
- Gate blocks illegal transitions with a visible message.
|
|
25
|
-
- Task `.md` files are updated with new status/phase.
|
|
26
|
-
- Mtime conflicts are detected and reported (no silent overwrites).
|
|
27
|
-
- Router state updates when switching epic or release.
|
|
28
|
-
- All transition tests pass.
|
|
29
|
-
- `go test ./...` passes.
|
|
30
|
-
|
|
31
|
-
## Components and files
|
|
32
|
-
|
|
33
|
-
| Path | Purpose |
|
|
34
|
-
|------|---------|
|
|
35
|
-
| `internal/board/transitions.go` | Phase transition logic, gates |
|
|
36
|
-
| `internal/data/write.go` | Task frontmatter write-back |
|
|
37
|
-
| `internal/data/write_test.go` | Write tests |
|
|
38
|
-
| `internal/board/transitions_test.go` | Gate and transition tests |
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-phase-transitions/T001-phase-stepping
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Space advances, Backspace retreats through phases"
|
|
5
|
-
depends_on: [E04-board-components/T006-help-overlay]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: Phase Stepping
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `Space` on planned task moves to in_progress/build.
|
|
13
|
-
- `Space` on in_progress advances phase: build → test → audit → done.
|
|
14
|
-
- `Backspace` retreats: done → audit → test → build → planned.
|
|
15
|
-
- Illegal transitions are blocked (governed by gates).
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Create `internal/board/transitions.go`.
|
|
20
|
-
- [x] Implement `Advance(task)` and `Retreat(task)`.
|
|
21
|
-
- [x] Wire Space/Backspace into Update loop.
|
|
22
|
-
- [x] Write tests.
|
|
23
|
-
- [x] Run `go test`.
|
|
24
|
-
|
|
25
|
-
## Context Log
|
|
26
|
-
|
|
27
|
-
- Files read: AGENTS.md, internal/data/task.go, internal/board/update.go
|
|
28
|
-
- Quality gates: `go test ./...` passed.
|
|
29
|
-
- Notes: Implemented Advance and Retreat logic. Mapped space and backspace keys to trigger transitions. Tests written and passing.
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-phase-transitions/T002-gates
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Enforce phase order: cannot skip, must reach audit before done"
|
|
5
|
-
depends_on: [E05-phase-transitions/T001-phase-stepping]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T002: Gates
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Cannot advance build → audit (must pass test).
|
|
13
|
-
- Cannot advance audit → done if dependencies not done.
|
|
14
|
-
- Retreat transitions are always allowed.
|
|
15
|
-
- Blocked transitions show a message in the status bar.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Add `CanAdvance(task, allTasks)` to transitions.go.
|
|
20
|
-
- [x] Add dependency check.
|
|
21
|
-
- [x] Add phase adjacency check.
|
|
22
|
-
- [x] Return reason string on block.
|
|
23
|
-
- [x] Write tests.
|
|
24
|
-
- [x] Run `go test`.
|
|
25
|
-
|
|
26
|
-
## Context Log
|
|
27
|
-
|
|
28
|
-
- **Files read:** transitions.go, transitions_test.go, update.go, model.go, view.go, task.go, model_test.go, update_test.go
|
|
29
|
-
- **Input tokens (estimate):** ~3,200
|
|
30
|
-
- **Quality gates:** `go build ./...` ok, `go vet ./...` ok, `go test ./internal/board/...` 107/107 pass
|
|
31
|
-
- **Notes:** No drift — all changes in existing files within `internal/board/`.
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-phase-transitions/T003-write-task
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Write updated status/phase back to task markdown files"
|
|
5
|
-
depends_on: [E05-phase-transitions/T002-gates]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T003: Write Task
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Task `.md` file is updated with new `status` and `phase`.
|
|
13
|
-
- Mtime is checked before write; conflict reported if changed.
|
|
14
|
-
- Phase field removed when status is planned or done.
|
|
15
|
-
- Backup not required (git handles history).
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Create `internal/data/write.go`.
|
|
20
|
-
- [x] Implement `WriteTaskStatus(path, task, expectedMtime)`.
|
|
21
|
-
- [x] Read file, parse frontmatter, update fields.
|
|
22
|
-
- [x] Check mtime, write back.
|
|
23
|
-
- [x] Write tests.
|
|
24
|
-
- [x] Run `go test`.
|
|
25
|
-
|
|
26
|
-
## Context Log
|
|
27
|
-
|
|
28
|
-
- **Files read:** internal/data/task.go, internal/data/parser.go, internal/data/errors.go, internal/data/write.go, internal/data/write_test.go, internal/board/transitions.go, internal/board/update.go, internal/board/model.go, internal/data/router.go, internal/data/config.go
|
|
29
|
-
- **Estimated input tokens:** ~4,500
|
|
30
|
-
- **Quality gates:** `go build ./...` ok, `go vet ./...` ok, `go test ./...` — 7/7 new tests pass, all existing tests pass
|
|
31
|
-
- **Notes:** Drift: `internal/data/write.go` and `internal/data/write_test.go` added, mapped under E02-data-readers umbrella in Codebase Map but belong to E05-phase-transitions — next audit should reconcile.
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E05-phase-transitions/T004-write-router
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Write router.md Current state when epic or release changes"
|
|
5
|
-
depends_on: [E05-phase-transitions/T003-write-task]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T004: Write Router
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Selecting a new epic updates `router.md` epic field.
|
|
13
|
-
- Selecting a new release updates `router.md` release field.
|
|
14
|
-
- Mtime check before write.
|
|
15
|
-
- Next action string preserved.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Add `WriteRouterState(root, state)` to `internal/data/write.go`.
|
|
20
|
-
- [x] Read router.md, replace yaml block.
|
|
21
|
-
- [x] Check mtime, write back.
|
|
22
|
-
- [x] Wire into epic/release selection in Update loop.
|
|
23
|
-
- [x] Write tests.
|
|
24
|
-
- [x] Run `go test`.
|
|
25
|
-
|
|
26
|
-
## Context Log
|
|
27
|
-
|
|
28
|
-
- **Files read:** internal/data/router.go, internal/data/write.go, internal/data/write_test.go, internal/data/parser.go, internal/data/task.go, internal/data/discover.go, internal/data/config.go, internal/data/errors.go, internal/board/model.go, internal/board/update.go, internal/board/board.go, internal/board/update_test.go, internal/board/model_test.go, internal/board/transitions.go, internal/board/transitions_test.go
|
|
29
|
-
- **Estimated input tokens:** ~7,200
|
|
30
|
-
- **Quality gates:** `go build ./...` ok, `go vet ./...` ok, `go test ./...` — 17/17 new tests pass (4 WriteRouterState tests + 13 existing), all packages pass, board tests pass, data tests pass
|
|
31
|
-
- **Notes:** Drift: `Model.Root` field added to board, not yet in Codebase Map. Next audit should reconcile.
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: audited
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E06: Atari-Noir Layout Uplift
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Update the existing TUI to align with the **Atari-Noir SavePoint design system**. This is a visual and layout uplift focused on restraint, clarity, and control, preserving existing functionality while eliminating visual noise and strictly adhering to the new color and layout rules.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- Centralized Atari-Noir color system in `palette.go`.
|
|
15
|
-
- Restructured `styles.go` mapped to exact usage rules.
|
|
16
|
-
- Static header component: `▣ S A V E P O I N T`.
|
|
17
|
-
- Static footer component: `PLAN │ BUILD │ AUDIT`.
|
|
18
|
-
- Full-width subtle horizontal dividers.
|
|
19
|
-
- Refined component styling (columns, cards, epic panel) to remove unnecessary borders and improve spacing.
|
|
20
|
-
|
|
21
|
-
## Definition of Done
|
|
22
|
-
|
|
23
|
-
- All colors match the Atari-Noir strict specification.
|
|
24
|
-
- Header renders correctly with no wrapping.
|
|
25
|
-
- Footer displays PLAN / BUILD / AUDIT cleanly without dynamic status text.
|
|
26
|
-
- Full-width dividers frame the content.
|
|
27
|
-
- Cards/panels feel like surfaces, not text blocks.
|
|
28
|
-
- Spacing is consistent and components breathe.
|
|
29
|
-
- Focus/selection is obvious through position and Atari Orange borders, not relying solely on color text changes.
|
|
30
|
-
- Existing functionality remains 100% intact.
|
|
31
|
-
|
|
32
|
-
## Components and files
|
|
33
|
-
|
|
34
|
-
| Path | Purpose |
|
|
35
|
-
|------|---------|
|
|
36
|
-
| `internal/styles/palette.go` | Define strict hex values |
|
|
37
|
-
| `internal/styles/styles.go` | Map styles to new usage rules |
|
|
38
|
-
| `internal/board/view.go` | Implement header, footer, dividers |
|
|
39
|
-
| `internal/board/layout.go` | Adjust layout height calculations |
|
|
40
|
-
| `internal/board/column.go` | Refine column styling and spacing |
|
|
41
|
-
| `internal/board/card.go` | Refine card surface and focus state |
|
|
42
|
-
| `internal/board/epic_panel.go` | Refine epic panel layout |
|
|
43
|
-
|
|
44
|
-
## Implemented As
|
|
45
|
-
|
|
46
|
-
- `internal/styles/palette.go` defines the Atari-Noir hex palette plus ANSI256/ANSI16 fallbacks.
|
|
47
|
-
- `internal/styles/styles.go` centralizes header, divider, footer, column, card, detail, glyph, and semantic tag styles.
|
|
48
|
-
- `internal/board/view.go` renders the static SavePoint header, explicit full-width top/bottom dividers, the static `PLAN │ BUILD │ AUDIT` footer, subdued navigation hints, and overlay composition.
|
|
49
|
-
- `internal/board/card.go` wraps long task titles instead of truncating them, uses a green `▣` marker only for the release/epic/task-scoped router-priority task, and keeps all done cards on the orange build glyph.
|
|
50
|
-
- `internal/board/detail.go` adds spacing below Acceptance Criteria and Implementation Plan headings, renders checklist state with `☑`/`□`, and labels only the release/epic/task-scoped router-priority task.
|
|
51
|
-
- `internal/data/task.go` and `internal/data/parser.go` represent Implementation Plan items as `CheckItem{Text, Done}` and parse `- [x]`, `- [ ]`, and legacy `- ` items.
|
|
52
|
-
- `internal/data/write.go` persists task status and phase changes with mtime conflict protection.
|
|
53
|
-
- `internal/board/watch.go` adds fsnotify-based recursive release directory watching from the `.savepoint/releases/` root, dynamically adds watches for newly-created subdirectories, applies a 100ms debounce, and sends reload messages used by `internal/board/update.go`.
|
|
54
|
-
|
|
55
|
-
## Implementation Deltas
|
|
56
|
-
|
|
57
|
-
- The original visual-only scope expanded to include board usability fixes requested during E06: footer navigation hints, detail overlay spacing, card title word-wrap, checklist state rendering, router priority markers, and auto-refresh on task file changes.
|
|
58
|
-
- Audit closeout removed unnecessary borders from unfocused header, board, column, card, and epic-panel surfaces while preserving Atari Orange borders for focused cards/columns and detail overlays.
|
|
59
|
-
- User-approved visual guardrail: Background, Surface, and Surface 2 are intentionally the same black value in the terminal TUI. Do not reintroduce subtly different background fills for panels/cards.
|
|
60
|
-
- The main view now renders explicit full-width divider lines with `styles.Divider` rather than relying on component frames as separators.
|
|
61
|
-
- Auto-refresh reload now refreshes both task data and release/epic indexes so newly-added task files and newly-added epic directories can appear without restarting the board.
|
|
62
|
-
- Router-priority matching is intentionally scoped by release and epic before task number; a router task of `T001` must not mark every epic's `T001` as priority.
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-atari-noir-layout/T001-color-system
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Implement Atari-Noir Color System in palette and styles"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: Implement Atari-Noir Color System
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `internal/styles/palette.go` updated with exact hex values for Background, Surface, Surface 2, Border, Border Subtle, Primary Text, Atari Orange, NPP Green, Vibe Purple.
|
|
13
|
-
- Legacy colors or gradients removed from `palette.go`.
|
|
14
|
-
- `internal/styles/styles.go` maps styles according to usage rules (e.g., Background is dark `#121212`, Primary text is `#F0E6DA`, Atari Orange `#FC6323` for active/focus, Vibe Purple `#B1A1DF` for metadata, NPP Green `#A4C639` for success).
|
|
15
|
-
- No large bright background fills or mixed accent colors in a single element exist in the style definitions.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Update `internal/styles/palette.go` with Atari-Noir hex, ANSI256, and ANSI16 values.
|
|
20
|
-
- [x] Refactor `internal/styles/styles.go` variables to use the updated palette constants strictly.
|
|
21
|
-
- [x] Remove unused or conflicting colors.
|
|
22
|
-
|
|
23
|
-
## Context Log
|
|
24
|
-
|
|
25
|
-
Files read:
|
|
26
|
-
- `internal/styles/palette.go`
|
|
27
|
-
- `internal/styles/styles.go`
|
|
28
|
-
- `.savepoint/visual-identity.md`
|
|
29
|
-
- `.savepoint/router.md`
|
|
30
|
-
- `E06-atari-noir-layout/Design.md`
|
|
31
|
-
|
|
32
|
-
Estimated input tokens: 2400
|
|
33
|
-
|
|
34
|
-
Notes:
|
|
35
|
-
- palette.go already contained correct Atari-Noir hex/256/16 values matching the visual identity spec — no changes needed.
|
|
36
|
-
- styles.go already referenced palette constants strictly — no circular refs or string literals.
|
|
37
|
-
- No legacy colors or gradients found in palette.go.
|
|
38
|
-
- No large bright background fills or mixed accent colors found in styles.go.
|
|
39
|
-
- Quality gates: `go build ./...` pass, `go test ./...` pass (all cached), `go vet` pass.
|
package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T002-header-and-dividers.md
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-atari-noir-layout/T002-header-and-dividers
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Build the SavePoint Header and horizontal dividers"
|
|
5
|
-
depends_on: ["E06-atari-noir-layout/T001-color-system"]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T002: Build SavePoint Header and Dividers
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Header renders exactly `▣ S A V E P O I N T` at the top of the TUI.
|
|
13
|
-
- Icon `▣` is styled with Atari Orange.
|
|
14
|
-
- Text `S A V E P O I N T` is Primary Text, uppercase, with spacing between letters.
|
|
15
|
-
- Horizontal dividers `────────────────────────────────────────────────────────` are added below the header.
|
|
16
|
-
- Divider color is strictly Border Subtle.
|
|
17
|
-
- The header renders cleanly without wrapping, even in narrow terminals.
|
|
18
|
-
- No additional icons or animations are present in the header.
|
|
19
|
-
|
|
20
|
-
## Implementation Plan
|
|
21
|
-
|
|
22
|
-
- [x] Update `internal/board/view.go` to render the specific header string.
|
|
23
|
-
- [x] Add logic in `internal/board/view.go` to insert the top horizontal divider.
|
|
24
|
-
- [x] Adjust `internal/board/layout.go` / `internal/board/view.go` calculations if needed so the board fits below the header+divider.
|
|
25
|
-
|
|
26
|
-
## Context Log
|
|
27
|
-
|
|
28
|
-
Files read:
|
|
29
|
-
- `.savepoint/router.md`
|
|
30
|
-
- `.savepoint/releases/v1/epics/E06-atari-noir-layout/E06-Detail.md`
|
|
31
|
-
- `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T002-header-and-dividers.md`
|
|
32
|
-
- `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T001-color-system.md`
|
|
33
|
-
- `.savepoint/visual-identity.md`
|
|
34
|
-
- `internal/styles/palette.go`
|
|
35
|
-
- `internal/styles/styles.go`
|
|
36
|
-
- `internal/board/view.go`
|
|
37
|
-
- `internal/board/view_test.go`
|
|
38
|
-
- `internal/board/layout.go`
|
|
39
|
-
- `internal/board/epic_panel_test.go`
|
|
40
|
-
- `internal/board/release_test.go`
|
|
41
|
-
|
|
42
|
-
Estimated input tokens: ~4500
|
|
43
|
-
|
|
44
|
-
Notes:
|
|
45
|
-
- `layout.go` needed no changes — `lipgloss.JoinVertical` naturally accommodates the extra divider line without explicit height accounting.
|
|
46
|
-
- The old `Header` style (orange, bold, padding) was replaced with `HeaderIcon` (orange, bold) and `HeaderText` (primary text) to support two-tone header rendering.
|
|
47
|
-
- `Divider` style added with `BorderSubtle` foreground for quiet full-width separators.
|
|
48
|
-
- Quality gates: `go build ./...` pass, `go test ./...` pass, `go vet ./...` pass.
|
|
49
|
-
|
|
50
|
-
## Drift Notes
|
|
51
|
-
|
|
52
|
-
- Drift: `internal/styles/palette.go` and `internal/styles/styles.go` not yet in Codebase Map — pre-existing omission. These are the Atari-Noir color/style modules active across all board rendering.
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-atari-noir-layout/T003-footer-status-bar
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Implement the static Footer Status Bar and bottom divider"
|
|
5
|
-
depends_on: ["E06-atari-noir-layout/T002-header-and-dividers"]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T003: Implement Footer Status Bar
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Footer replaces the dynamic status string with exactly: `PLAN │ BUILD │ AUDIT`.
|
|
13
|
-
- PLAN is colored Vibe Purple.
|
|
14
|
-
- BUILD is colored Atari Orange.
|
|
15
|
-
- AUDIT is colored NPP Green.
|
|
16
|
-
- The divider `│` is colored Border Subtle.
|
|
17
|
-
- The text is bold or slightly emphasized, with even spacing between sections.
|
|
18
|
-
- A full-width horizontal divider is rendered above the footer.
|
|
19
|
-
- The footer contains no icons, no repetition of the logo, and no extra labels/metrics.
|
|
20
|
-
- The main application content sits cleanly between the top and bottom dividers without overlapping.
|
|
21
|
-
|
|
22
|
-
## Implementation Plan
|
|
23
|
-
|
|
24
|
-
- [x] Update `renderStatus` in `internal/board/view.go` to render the new static phase footer.
|
|
25
|
-
- [x] Style the footer segments according to the color rules.
|
|
26
|
-
- [x] Add the bottom horizontal divider above the footer.
|
|
27
|
-
- [x] Adjust height calculations so the board area fits exactly between the top and bottom dividers. (No height calculation changes needed — `lipgloss.JoinVertical` naturally accommodates the extra divider line.)
|
|
28
|
-
|
|
29
|
-
## Context Log
|
|
30
|
-
|
|
31
|
-
Files read:
|
|
32
|
-
- `.savepoint/router.md`
|
|
33
|
-
- `.savepoint/releases/v1/epics/E06-atari-noir-layout/E06-Detail.md`
|
|
34
|
-
- `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T003-footer-status-bar.md`
|
|
35
|
-
- `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T002-header-and-dividers.md`
|
|
36
|
-
- `.savepoint/visual-identity.md`
|
|
37
|
-
- `internal/board/view.go`
|
|
38
|
-
- `internal/board/view_test.go`
|
|
39
|
-
- `internal/board/layout.go`
|
|
40
|
-
- `internal/board/model.go`
|
|
41
|
-
- `internal/styles/palette.go`
|
|
42
|
-
- `internal/styles/styles.go`
|
|
43
|
-
|
|
44
|
-
Estimated input tokens: ~5500
|
|
45
|
-
|
|
46
|
-
Notes:
|
|
47
|
-
- Replaced `renderStatus` (dynamic status bar with release/epic/column info) with `renderFooter` (static phase footer: PLAN │ BUILD │ AUDIT).
|
|
48
|
-
- Added `FooterPhasePlan` (purple, bold), `FooterPhaseBuild` (orange, bold), `FooterPhaseAudit` (green, bold), and `FooterDivider` (border subtle) styles.
|
|
49
|
-
- Added full-width bottom divider above the footer matching the top divider style.
|
|
50
|
-
- Removed unused `fmt` import from `view.go` after `renderStatus` deletion.
|
|
51
|
-
- `StatusBar` style and `StatusMessage` model field remain unused but harmless; left for future cleanup.
|
|
52
|
-
- Quality gates: `go build ./...` pass, `go test ./...` pass, `go vet ./...` pass.
|
package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T004-component-refinement.md
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-atari-noir-layout/T004-component-refinement
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Refine columns, cards, and epic panels to match rhythm and interaction requirements"
|
|
5
|
-
depends_on: ["E06-atari-noir-layout/T001-color-system"]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T004: Component Refinement & Spacing Rhythm
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Columns, cards, and epic panels use Surface (`#0D0D0D`) or Surface 2 (`#0F0F0F`) colors rather than text blocks.
|
|
13
|
-
- Unnecessary borders are removed. Focus states use structure, position, and minimal accents (e.g., Atari Orange for focused borders).
|
|
14
|
-
- Spacing is consistent and components "breathe". No dense, edge-to-edge clutter exists.
|
|
15
|
-
- Line wrapping in standard data views is prevented where possible (treated as a bug).
|
|
16
|
-
- The existing functional data structures and keyboard interactions remain completely intact.
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [x] Refine `internal/board/column.go` to remove unnecessary borders and improve padding.
|
|
21
|
-
- [x] Update `internal/board/card.go` to behave as a distinct surface with clear focus states.
|
|
22
|
-
- [x] Update `internal/board/epic_panel.go` spacing and styles.
|
|
23
|
-
- [x] Verify there is no unintentional wrapping on resizing, fixing any remaining flex/width issues in Lip Gloss setup.
|
|
24
|
-
|
|
25
|
-
## Context Log
|
|
26
|
-
|
|
27
|
-
Files read:
|
|
28
|
-
- `.savepoint/router.md`
|
|
29
|
-
- `.savepoint/releases/v1/epics/E06-atari-noir-layout/E06-Detail.md`
|
|
30
|
-
- `.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T004-component-refinement.md`
|
|
31
|
-
- `internal/styles/palette.go`
|
|
32
|
-
- `internal/styles/styles.go`
|
|
33
|
-
- `internal/board/column.go`
|
|
34
|
-
- `internal/board/card.go`
|
|
35
|
-
- `internal/board/epic_panel.go`
|
|
36
|
-
- `internal/board/layout.go`
|
|
37
|
-
- `internal/board/view.go`
|
|
38
|
-
- `internal/board/column_test.go`
|
|
39
|
-
- `internal/board/card_test.go`
|
|
40
|
-
- `internal/board/epic_panel_test.go`
|
|
41
|
-
- `internal/board/layout_test.go`
|
|
42
|
-
- `internal/board/board_test.go`
|
|
43
|
-
|
|
44
|
-
Estimated input tokens: ~15k
|
|
45
|
-
|
|
46
|
-
Notes:
|
|
47
|
-
- Only `internal/styles/styles.go` was modified; no source code logic changes were needed since column.go, card.go, and epic_panel.go all reference the centralized styles.
|
|
48
|
-
- Column (unfocused): removed `RoundedBorder()`, added `Background(clrSurfaceDark #0D0D0D)`.
|
|
49
|
-
- ColumnFocused: added `Background(clrSurfaceDark)`, kept orange rounded border for focus.
|
|
50
|
-
- Card (unfocused): added `Background(clrSurface #0F0F0F)` for surface feel.
|
|
51
|
-
- EpicPanel: removed `RoundedBorder()`, added `Background(clrSurface #0F0F0F)`.
|
|
52
|
-
- New color var `clrSurfaceDark` added for Surface (#0D0D0D) palette usage.
|
|
53
|
-
- Quality gates: `go build ./...` (pass), `go vet ./...` (pass), `go test ./...` (all 113 tests pass).
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-atari-noir-layout/T005-restore-nav-hints
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Restore persistent navigation keybinding hints to the main board footer"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T005: Restore Navigation Hints in Footer
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- The footer shows a second line below the phase labels with keybinding hints: `←/→:nav E:epic R:release ?:help q:quit`
|
|
13
|
-
- Hints are styled in a subdued color to not overwhelm the phase labels
|
|
14
|
-
- The footer still fits within a single terminal width without wrapping
|
|
15
|
-
- All existing footer behavior (centered phase labels, alignment) remains intact
|
|
16
|
-
- Hints refresh correctly on terminal resize
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [x] Edit `internal/board/view.go` — update `renderFooter()` to append a second line of keybinding hints below the phase labels.
|
|
21
|
-
- [x] Add a new `FooterHints` style in `internal/styles/styles.go` using `clrDim` (dim/subdued appearance).
|
|
22
|
-
- [x] Run `make build && make test` to verify no regressions.
|
|
23
|
-
|
|
24
|
-
## Context Log
|
|
25
|
-
|
|
26
|
-
Files read:
|
|
27
|
-
- `internal/board/view.go`
|
|
28
|
-
- `internal/board/update.go`
|
|
29
|
-
- `internal/styles/styles.go`
|
|
30
|
-
- `internal/board/view_test.go`
|
|
31
|
-
- `internal/board/layout.go`
|
|
32
|
-
- `internal/board/model.go`
|
|
33
|
-
|
|
34
|
-
Estimated input tokens: 1400
|
|
35
|
-
|
|
36
|
-
Notes:
|
|
37
|
-
- `make build` could not run because `make` is not installed on PATH in this environment.
|
|
38
|
-
- Verified the task with `go build ./...`, `go test ./...`, and focused `go test ./internal/board`.
|
|
39
|
-
- Footer render now uses a width-guarded centered phase line, a blank spacer line, and a second subdued hint line.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-atari-noir-layout/T007-detail-card-fixes
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Add line breaks under Acceptance Criteria and Implementation Plan headings in task detail, and word-wrap card titles instead of truncating"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T007: Detail Overlay Spacing and Card Word-Wrap
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Task detail overlay shows a blank line between `"Acceptance Criteria:"` heading and the first bullet item
|
|
13
|
-
- Task detail overlay shows a blank line between `"Implementation Plan:"` heading and the first checklist item
|
|
14
|
-
- Card titles word-wrap to multiple lines when too long for the available card width, instead of being truncated with `…`
|
|
15
|
-
- Cards grow vertically to accommodate wrapped titles
|
|
16
|
-
- Short titles remain single-line (no visual change for titles that fit)
|
|
17
|
-
- All existing card visual structure (phase glyph, ID line, focus border) is preserved
|
|
18
|
-
|
|
19
|
-
## Implementation Plan
|
|
20
|
-
|
|
21
|
-
- [x] Edit `internal/board/detail.go` — add `""` entry after the `Acceptance Criteria:` heading line and after the `Implementation Plan:` heading line.
|
|
22
|
-
- [x] Edit `internal/board/detail.go` — make `wrapText` and `splitLongWord` exported (capitalize) so they can be reused from `card.go`.
|
|
23
|
-
- [x] Edit `internal/board/card.go` — replace `truncate(t.Title, inner)` with a multi-line approach that word-wraps the title across available width.
|
|
24
|
-
- [x] Edit `internal/board/card.go` — combine wrapped title lines with newlines in the card content (joining with `\n`).
|
|
25
|
-
- [x] Run `make build && make test` to verify no regressions.
|
|
26
|
-
|
|
27
|
-
## Context Log
|
|
28
|
-
|
|
29
|
-
Files read:
|
|
30
|
-
- `internal/board/detail.go`
|
|
31
|
-
- `internal/board/card.go`
|
|
32
|
-
- `internal/board/column.go`
|
|
33
|
-
|
|
34
|
-
Estimated input tokens: 600
|
|
35
|
-
|
|
36
|
-
Notes: Exported WrapText/SplitLongWord from detail.go; updated card_test.go TestRenderCard_titleTruncated → TestRenderCard_titleWraps. Build and tests pass.
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-atari-noir-layout/T008-checkbox-states
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Parse and render checked/unchecked state for Implementation Plan checklist items"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T008: Parse and Render Checkbox States in Task Detail
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `Task.Checklist` stores the checked state of each item (not just the text)
|
|
13
|
-
- `- [x]` markers in the markdown source are parsed as "done" items
|
|
14
|
-
- `- [ ]` markers in the markdown source are parsed as "undone" items
|
|
15
|
-
- Legacy `- ` (no checkbox prefix) items are treated as undone
|
|
16
|
-
- The task detail overlay renders done items with a `☑` (checked box) glyph and undone items with `□` (empty box)
|
|
17
|
-
- Done items render in the `TagDone` (green) style; undone items render in `CardMeta` (dim) style
|
|
18
|
-
- All existing `make test` tests pass, with updates to any tests that construct `Checklist` values
|
|
19
|
-
|
|
20
|
-
## Implementation Plan
|
|
21
|
-
|
|
22
|
-
- [x] Edit `internal/data/task.go` — add `CheckItem` struct with `Text string` and `Done bool` fields; change `Checklist []string` to `Checklist []CheckItem`.
|
|
23
|
-
- [x] Edit `internal/data/parser.go` — update `extractChecklistSection()` to detect `- [x] ` vs `- [ ] ` vs `- ` prefixes and set `Done` accordingly; strip prefix from `Text`.
|
|
24
|
-
- [x] Update all usages of `Checklist` across the codebase (likely only `board/detail.go` and tests).
|
|
25
|
-
- [x] Edit `internal/board/detail.go` — in the Implementation Plan section, render done items with `☑ ` + green `TagDone` styling and undone items with `□ ` + dim `CardMeta` styling.
|
|
26
|
-
- [x] Run `make build && make test` to verify no regressions.
|
|
27
|
-
|
|
28
|
-
## Context Log
|
|
29
|
-
|
|
30
|
-
Files read:
|
|
31
|
-
- `internal/data/task.go`
|
|
32
|
-
- `internal/data/parser.go`
|
|
33
|
-
- `internal/board/detail.go`
|
|
34
|
-
- `internal/styles/styles.go`
|
|
35
|
-
- `internal/data/parser_test.go`
|
|
36
|
-
- `internal/board/detail_test.go`
|
|
37
|
-
|
|
38
|
-
Estimated input tokens: 1200
|
|
39
|
-
|
|
40
|
-
Notes: Added `extractChecklistItems` alongside existing `extractChecklistSection` (kept for `[]string` Acceptance path). Build and all tests pass.
|
package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T009-router-priority-marker.md
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E06-atari-noir-layout/T009-router-priority-marker
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Highlight the router priority task with a green marker on the card and optional text highlight"
|
|
5
|
-
depends_on: []
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T009: Highlight Router Priority Task on Board
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- The model reads `RouterState.Task` (the `task:` field from `router.md`) and stores it as `Model.RouterTask`
|
|
13
|
-
- In the board view, the task card whose ID matches `RouterTask` shows a green `▣` glyph (using `TagDone`/green style) instead of the normal phase-colored glyph
|
|
14
|
-
- Non-priority tasks keep their existing phase-colored glyphs unchanged
|
|
15
|
-
- Board always default view to current state release and epic
|
|
16
|
-
- The task detail overlay shows a `"(router priority)"` label or marker when the displayed task matches `RouterTask`
|
|
17
|
-
- All existing keyboard interactions, column rendering, and card behavior remain intact
|
|
18
|
-
|
|
19
|
-
## Implementation Plan
|
|
20
|
-
|
|
21
|
-
- [x] Edit `internal/board/model.go` — add `RouterTask string` field to `Model`.
|
|
22
|
-
- [x] Edit `internal/board/board.go` — in `newProjectModel()`, read `routerState.Task` into `model.RouterTask`.
|
|
23
|
-
- [x] Edit `internal/board/card.go` — update `RenderCard` to accept a `routerTaskID string` parameter; when `t.ID == routerTaskID`, replace the phase glyph with a green `▣` using `TagDone` style.
|
|
24
|
-
- [x] Edit `internal/board/card.go` — update `RenderCard` signature and callsites (`column.go`, `view.go`).
|
|
25
|
-
- [x] Edit `internal/board/detail.go` — update `RenderDetail` to accept a `routerTaskID string`; when matching, append a `"(router priority)"` green label line.
|
|
26
|
-
- [x] Update all callsites of `RenderCard` and `RenderDetail` to pass `m.RouterTask`.
|
|
27
|
-
- [x] Run `make build && make test` to verify no regressions.
|
|
28
|
-
|
|
29
|
-
## Context Log
|
|
30
|
-
|
|
31
|
-
Files read:
|
|
32
|
-
- `internal/board/model.go`
|
|
33
|
-
- `internal/board/board.go`
|
|
34
|
-
- `internal/board/card.go`
|
|
35
|
-
- `internal/board/column.go`
|
|
36
|
-
- `internal/board/detail.go`
|
|
37
|
-
- `internal/data/router.go`
|
|
38
|
-
- `internal/board/view.go`
|
|
39
|
-
- `internal/board/card_test.go`
|
|
40
|
-
- `internal/board/detail_test.go`
|
|
41
|
-
- `internal/board/column_test.go`
|
|
42
|
-
|
|
43
|
-
Estimated input tokens: 1800
|
|
44
|
-
|
|
45
|
-
Notes:
|
|
46
|
-
- `go build && go test ./...` — PASS (all board tests green)
|
|
47
|
-
- `RenderColumn` signature extended with `routerTaskID string`; all 7 test callsites updated
|
|
48
|
-
- New tests: `TestRenderCard_routerPriorityUsesGreenGlyph`, `TestRenderDetail_routerPriorityLabel`, `TestRenderDetail_noRouterPriorityLabelWhenNoMatch`
|