savepoint 1.0.4 → 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.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,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-data-readers/T001-task-struct
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Define Task struct with phase support"
|
|
5
|
-
depends_on: [E01-go-setup/T003-directory-structure]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: Task Struct
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `internal/data/task.go` defines Task, ColumnType, ProgressStage structs.
|
|
13
|
-
- Task includes: ID, Title, Description, Epic, Release, Column, Stage, Priority, Points, Tags, Acceptance, Notes.
|
|
14
|
-
- ColumnType enum: planned, in_progress, done.
|
|
15
|
-
- ProgressStage enum: build, test, audit.
|
|
16
|
-
- Tests verify struct creation.
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [x] Create `internal/data/task.go`.
|
|
21
|
-
- [x] Define types and structs.
|
|
22
|
-
- [x] Write `internal/data/task_test.go`.
|
|
23
|
-
- [x] Run `go test ./internal/data/`.
|
|
24
|
-
|
|
25
|
-
## Context Log
|
|
26
|
-
|
|
27
|
-
Files read: `internal/data/task.go`, `internal/data/task_test.go`
|
|
28
|
-
Estimated input tokens: ~700
|
|
29
|
-
Notes: Verified during E02 audit closeout. `go test ./internal/data/...`, `go test ./...`, and `go build ./...` passed.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-data-readers/T002-frontmatter-parser
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Parse YAML frontmatter from markdown task files"
|
|
5
|
-
depends_on: [E02-data-readers/T001-task-struct]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T002: Frontmatter Parser
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Can parse `---\nyaml\n---\nbody` format from any `.md` file.
|
|
13
|
-
- Extracts id, status, phase, objective, depends_on from frontmatter.
|
|
14
|
-
- Returns structured Task or error for malformed files.
|
|
15
|
-
- Tests cover valid, missing frontmatter, malformed yaml cases.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Create `internal/data/parser.go`.
|
|
20
|
-
- [x] Implement frontmatter regex extraction.
|
|
21
|
-
- [x] Parse YAML with `gopkg.in/yaml.v3`.
|
|
22
|
-
- [x] Map parsed fields to Task struct.
|
|
23
|
-
- [x] Write `internal/data/parser_test.go`.
|
|
24
|
-
- [x] Run `go test`.
|
|
25
|
-
|
|
26
|
-
## Context Log
|
|
27
|
-
|
|
28
|
-
Files read: `internal/data/parser.go`, `internal/data/parser_test.go`, `internal/data/task.go`
|
|
29
|
-
Estimated input tokens: ~1,500
|
|
30
|
-
Notes: Audit closeout replaced regex extraction with delimiter-based extraction, mapped task metadata fields including `status`, `phase`, and `depends_on`, and added malformed YAML coverage. `go test ./internal/data/...`, `go test ./...`, and `go build ./...` passed.
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-data-readers/T003-router-reader
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Read and parse router.md Current state block"
|
|
5
|
-
depends_on: [E02-data-readers/T002-frontmatter-parser]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T003: Router Reader
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Reads `router.md` and extracts the `## Current state` yaml block.
|
|
13
|
-
- Parses state, release, epic, task, next_action fields.
|
|
14
|
-
- Returns error if router.md missing or block not found.
|
|
15
|
-
- Tests cover valid and missing router cases.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Create `internal/data/router.go`.
|
|
20
|
-
- [x] Implement `## Current state` block regex extraction.
|
|
21
|
-
- [x] Parse yaml block into RouterState struct.
|
|
22
|
-
- [x] Write `internal/data/router_test.go`.
|
|
23
|
-
- [x] Run `go test`.
|
|
24
|
-
|
|
25
|
-
## Context Log
|
|
26
|
-
|
|
27
|
-
Files read: `internal/data/router.go`, `internal/data/router_test.go`
|
|
28
|
-
Estimated input tokens: ~700
|
|
29
|
-
Notes: Verified during E02 audit closeout. `go test ./internal/data/...`, `go test ./...`, and `go build ./...` passed.
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-data-readers/T004-config-reader
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Read config.yml and parse theme colors"
|
|
5
|
-
depends_on: [E02-data-readers/T003-router-reader]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T004: Config Reader
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Reads `.savepoint/config.yml`.
|
|
13
|
-
- Parses theme colors (bg, surface, surface_2, border, text, accents).
|
|
14
|
-
- Returns default theme if config.yml missing.
|
|
15
|
-
- Tests cover valid config and missing file.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Create `internal/data/config.go`.
|
|
20
|
-
- [x] Define Config and Theme structs.
|
|
21
|
-
- [x] Parse YAML with defaults.
|
|
22
|
-
- [x] Write `internal/data/config_test.go`.
|
|
23
|
-
- [x] Run `go test`.
|
|
24
|
-
|
|
25
|
-
## Context Log
|
|
26
|
-
|
|
27
|
-
Files read: `internal/data/config.go`, `internal/data/config_test.go`
|
|
28
|
-
Estimated input tokens: ~900
|
|
29
|
-
Notes: Audit closeout limited default fallback to missing config files, returned malformed YAML/read errors, and added partial-default and malformed YAML coverage. `go test ./internal/data/...`, `go test ./...`, and `go build ./...` passed.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E02-data-readers/T005-discovery
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Walk .savepoint directory to discover releases, epics, and tasks"
|
|
5
|
-
depends_on: [E02-data-readers/T004-config-reader]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T005: Discovery
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Can list all releases under `.savepoint/releases/`.
|
|
13
|
-
- Can list all epics within a release.
|
|
14
|
-
- Can list all tasks within an epic.
|
|
15
|
-
- Can find `.savepoint` root by walking up from cwd.
|
|
16
|
-
- Tests cover discovery logic.
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [x] Create `internal/data/discover.go`.
|
|
21
|
-
- [x] Implement `FindSavepointRoot(start string)`.
|
|
22
|
-
- [x] Implement `ListReleases(root)`, `ListEpics(root, release)`, `ListTasks(root, release, epic)`.
|
|
23
|
-
- [x] Write `internal/data/discover_test.go`.
|
|
24
|
-
- [x] Run `go test`.
|
|
25
|
-
|
|
26
|
-
## Context Log
|
|
27
|
-
|
|
28
|
-
Files read: `internal/data/discover.go`, `internal/data/discover_test.go`, `internal/data/errors.go`
|
|
29
|
-
Estimated input tokens: ~800
|
|
30
|
-
Notes: discover_test.go had unused `os`/`path/filepath` imports causing build failure — removed. Audit closeout moved discovery coverage to deterministic temp-directory fixtures and added a shared missing-root error sentinel. All 4 discovery tests pass. `go test ./internal/data/...`, `go test ./...`, and `go build ./...` passed.
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: planned
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E03: Board TUI Core
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Build the core Bubble Tea model, update loop, view rendering, styles, and layout system. This is the engine — no components yet, just the skeleton that renders a responsive grid.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- `Model` struct with tasks, focus state, selected epic/release, overlay mode, dimensions.
|
|
15
|
-
- `Init()`, `Update(msg)`, `View()` methods.
|
|
16
|
-
- Atari-Noir color palette in `internal/styles/`.
|
|
17
|
-
- Manual layout calculation: column widths, epic panel width, responsive breakpoints.
|
|
18
|
-
- `tea.WindowSizeMsg` handling for terminal resize.
|
|
19
|
-
|
|
20
|
-
## Definition of Done
|
|
21
|
-
|
|
22
|
-
- `go run main.go` launches and shows a bordered 3-column grid.
|
|
23
|
-
- Columns resize correctly on terminal resize.
|
|
24
|
-
- At 3 breakpoints: >=120 cols shows epic panel + 3 columns; 80-119 shows 3 columns; <80 shows 1 column.
|
|
25
|
-
- Colors match Atari-Noir palette in truecolor; degrade gracefully in 256/16-color modes.
|
|
26
|
-
- `q` quits cleanly.
|
|
27
|
-
- No layout break at any width.
|
|
28
|
-
|
|
29
|
-
## Components and files
|
|
30
|
-
|
|
31
|
-
| Path | Purpose |
|
|
32
|
-
|------|---------|
|
|
33
|
-
| `internal/board/model.go` | Model struct and Init |
|
|
34
|
-
| `internal/board/update.go` | Update loop, message handling |
|
|
35
|
-
| `internal/board/view.go` | View composition |
|
|
36
|
-
| `internal/styles/palette.go` | Atari-Noir hex colors |
|
|
37
|
-
| `internal/styles/styles.go` | Lip Gloss style definitions |
|
|
38
|
-
| `internal/board/layout.go` | Width/height calculations |
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E03-board-tui-core/T001-model
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Define Model struct with all state fields"
|
|
5
|
-
depends_on: [E02-data-readers/T005-discovery]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: Model Struct
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `internal/board/model.go` defines Model with all state.
|
|
13
|
-
- Fields: Tasks, FocusedColumn, FocusedTask, SelectedEpic, SelectedRelease, Overlay, Width, Height.
|
|
14
|
-
- `Init()` returns `tea.Batch()` with initial commands.
|
|
15
|
-
- `NewModel()` accepts loaded data and returns initialized Model.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Create `internal/board/model.go`.
|
|
20
|
-
- [x] Define Model struct and constructor.
|
|
21
|
-
- [x] Implement `Init()` method.
|
|
22
|
-
- [x] Write tests.
|
|
23
|
-
- [x] Run `go test`.
|
|
24
|
-
|
|
25
|
-
## Context Log
|
|
26
|
-
|
|
27
|
-
Files read: `internal/data/task.go`, `internal/board/board.go`, `go.mod`, `E03-board-tui-core/Design.md`
|
|
28
|
-
Estimated input tokens: ~900
|
|
29
|
-
Notes: `go test ./internal/board/ -v` — 4 tests pass. `go build ./...` clean. Model groups tasks by column on construction; empty column defaults to planned.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E03-board-tui-core/T002-update-loop
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Implement Update(msg) with key and window size handling"
|
|
5
|
-
depends_on: [E03-board-tui-core/T001-model]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T002: Update Loop
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `Update(msg)` handles `tea.KeyMsg` for `q`, `ctrl+c`.
|
|
13
|
-
- `Update(msg)` handles `tea.WindowSizeMsg` for terminal resize.
|
|
14
|
-
- Returns `tea.Quit` on `q`.
|
|
15
|
-
- Tests verify update behavior.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Create `internal/board/update.go`.
|
|
20
|
-
- [x] Implement `Update(msg tea.Msg)` with type switch.
|
|
21
|
-
- [x] Add key handling.
|
|
22
|
-
- [x] Add window size handling.
|
|
23
|
-
- [x] Write tests.
|
|
24
|
-
- [x] Run `go test`.
|
|
25
|
-
|
|
26
|
-
## Context Log
|
|
27
|
-
|
|
28
|
-
Files read: `internal/board/model.go`, `T001-model.md`, `E03-board-tui-core/Design.md`
|
|
29
|
-
Estimated input tokens: ~600
|
|
30
|
-
Notes: `go test ./internal/board/ -v` — 8 pass. `go build ./...` clean. Update returns `(Model, tea.Cmd)` not `(tea.Model, tea.Cmd)` — keeps type concrete for T003 View composition.
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E03-board-tui-core/T003-view
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Render a bordered 3-column grid via View()"
|
|
5
|
-
depends_on: [E03-board-tui-core/T002-update-loop]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T003: View Rendering
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `View()` renders a header, 3-column board, and status bar.
|
|
13
|
-
- Columns have borders using Lip Gloss.
|
|
14
|
-
- Board fills terminal width.
|
|
15
|
-
- No wrapping or layout breaks.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Create `internal/board/view.go`.
|
|
20
|
-
- [x] Implement `View()` composing header, board, footer.
|
|
21
|
-
- [x] Use `lipgloss.JoinHorizontal` and `JoinVertical`.
|
|
22
|
-
- [x] Verify rendering at multiple terminal sizes.
|
|
23
|
-
|
|
24
|
-
## Context Log
|
|
25
|
-
|
|
26
|
-
Files read: `internal/board/model.go`, `internal/board/update.go`, `.savepoint/visual-identity.md`, `internal/data/task.go`, `E03-board-tui-core/Design.md`, `T003-view.md`
|
|
27
|
-
Estimated input tokens: ~2000
|
|
28
|
-
Notes: `go test ./internal/board/ ./internal/styles/ -v` — 17 pass. `go build ./...` clean. Created `internal/styles/palette.go` (Atari-Noir hex constants) and `internal/styles/styles.go` (Lip Gloss style vars). `view.go` uses `lipgloss.JoinHorizontal` for 3 columns, `JoinVertical` for header+board+status. Column content width = (termW - 12) / 3; fallback default=80 when Width=0. Focused column gets orange border; focused task gets orange text.
|
|
29
|
-
|
|
30
|
-
## Drift Notes
|
|
31
|
-
|
|
32
|
-
- Drift: `internal/styles/palette.go` added, not yet in Codebase Map.
|
|
33
|
-
- Drift: `internal/styles/styles.go` added, not yet in Codebase Map.
|
|
34
|
-
- Drift: `internal/board/view.go` added, not yet in Codebase Map.
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E03-board-tui-core/T004-styles
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Define Atari-Noir palette and Lip Gloss styles"
|
|
5
|
-
depends_on: [E03-board-tui-core/T003-view]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T004: Styles
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `internal/styles/palette.go` defines all Atari-Noir hex colors.
|
|
13
|
-
- `internal/styles/styles.go` defines Lip Gloss styles for columns, cards, borders, text.
|
|
14
|
-
- Styles adapt to terminal color capability (truecolor/256/16/none).
|
|
15
|
-
|
|
16
|
-
## Implementation Plan
|
|
17
|
-
|
|
18
|
-
- [x] Create `internal/styles/palette.go` with hex constants.
|
|
19
|
-
- [x] Create `internal/styles/styles.go` with `lipgloss.NewStyle()` definitions.
|
|
20
|
-
- [x] Add adaptive color logic for 256/16/none modes.
|
|
21
|
-
- [x] Verify styles render correctly.
|
|
22
|
-
|
|
23
|
-
## Context Log
|
|
24
|
-
|
|
25
|
-
Files read: `internal/styles/palette.go`, `internal/styles/styles.go`, `.savepoint/visual-identity.md`, `E03-board-tui-core/Design.md`, `T003-view.md`
|
|
26
|
-
Estimated input tokens: ~1800
|
|
27
|
-
Notes: Files were seeded by T003. T004 added 256-color and 16-color fallback constants to palette.go and updated styles.go to use `lipgloss.CompleteColor{TrueColor, ANSI256, ANSI}` for all color references. Added `TagDone` (green) and `TagAI` (purple) styles for semantic encoding per visual-identity. `go build ./...` clean. 17 board tests pass.
|
|
28
|
-
|
|
29
|
-
Quality gates: `go build ./...` ✓ | `go test ./internal/board/ ./internal/styles/ -v` 17/17 ✓
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E03-board-tui-core/T005-layout
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Implement responsive layout with 3 breakpoints"
|
|
5
|
-
depends_on: [E03-board-tui-core/T004-styles]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T005: Layout
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- >=120 cols: epic panel (28w) + 3 columns. ✓ (CalculateLayout, renderEpicPanel)
|
|
13
|
-
- 80-119 cols: 3 columns only. ✓
|
|
14
|
-
- <80 cols: 1 column, left/right switches columns. ✓ (renderColumns + update.go left/right/h/l keys)
|
|
15
|
-
- Column widths calculated from available width. ✓
|
|
16
|
-
- No hardcoded widths that break at small sizes. ✓ (minColWidth floor in CalculateLayout)
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [x] Create `internal/board/layout.go`.
|
|
21
|
-
- [x] Implement `CalculateLayout(width, height)`.
|
|
22
|
-
- [x] Return column count, widths, epic panel visibility.
|
|
23
|
-
- [x] Wire into `View()`.
|
|
24
|
-
- [x] Test at multiple widths.
|
|
25
|
-
|
|
26
|
-
## Context Log
|
|
27
|
-
|
|
28
|
-
Files read: internal/board/model.go, view.go, update.go, board.go, view_test.go, update_test.go, model_test.go, internal/styles/styles.go, go.mod, .savepoint/releases/v1/epics/E03-board-tui-core/E03-Detail.md
|
|
29
|
-
|
|
30
|
-
Estimated input tokens: ~6 000
|
|
31
|
-
|
|
32
|
-
Notes:
|
|
33
|
-
- Moved colOverhead/minColWidth constants from view.go to layout.go (logical home).
|
|
34
|
-
- Audit closeout removed dead columnContentWidth() from view.go; layout width coverage lives in layout_test.go.
|
|
35
|
-
- Added left/right (and h/l) column navigation to update.go to satisfy the <80-col acceptance criterion.
|
|
36
|
-
- Added EpicPanel lipgloss style to internal/styles/styles.go (purple border, rounded).
|
|
37
|
-
- Quality gates: go build ./... ✓ · go vet ./... ✓ · go test ./... ✓ (all 3 packages)
|
|
38
|
-
- Audit closeout gates: go test ./internal/board ✓ · go test ./... ✓ · go build ./... ✓
|
|
39
|
-
|
|
40
|
-
## Drift Notes
|
|
41
|
-
|
|
42
|
-
- Drift: `internal/board/layout.go` added, not yet in Codebase Map.
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: epic-design
|
|
3
|
-
status: planned
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Epic E04: Board Components
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Build all visual components: columns, task cards with phase glyphs, epic panel, detail overlay, epic/release dropdowns, and help overlay.
|
|
11
|
-
|
|
12
|
-
## What this epic adds
|
|
13
|
-
|
|
14
|
-
- Column component: header with status label + count, bordered container.
|
|
15
|
-
- Task card component: fixed width, truncated title, dimmed metadata, phase glyphs (▣/◇/◆), accent border on focus.
|
|
16
|
-
- Epic panel component: left sidebar with epic list, active/selected indicators.
|
|
17
|
-
- Detail overlay: centered modal showing full task info, board visible behind.
|
|
18
|
-
- Epic selector dropdown: overlay list of epics.
|
|
19
|
-
- Release selector dropdown: overlay list of releases.
|
|
20
|
-
- Help overlay: keyboard shortcuts reference.
|
|
21
|
-
|
|
22
|
-
## Definition of Done
|
|
23
|
-
|
|
24
|
-
- Cards render with correct phase glyphs and colors.
|
|
25
|
-
- Focused card has orange accent border.
|
|
26
|
-
- Epic panel renders on wide screens; dropdown on narrow.
|
|
27
|
-
- Detail overlay opens with Enter, closes with Esc.
|
|
28
|
-
- Epic dropdown opens with `e`, release with `r`.
|
|
29
|
-
- Help overlay opens with `?`.
|
|
30
|
-
- All components render without wrapping or layout breaks.
|
|
31
|
-
- Component tests pass.
|
|
32
|
-
|
|
33
|
-
## Components and files
|
|
34
|
-
|
|
35
|
-
| Path | Purpose |
|
|
36
|
-
|------|---------|
|
|
37
|
-
| `internal/board/column.go` | Column rendering |
|
|
38
|
-
| `internal/board/card.go` | Task card rendering |
|
|
39
|
-
| `internal/board/epic_panel.go` | Epic sidebar / dropdown |
|
|
40
|
-
| `internal/board/detail.go` | Task detail overlay |
|
|
41
|
-
| `internal/board/dropdown.go` | Generic dropdown component |
|
|
42
|
-
| `internal/board/help.go` | Help overlay |
|
|
43
|
-
| `internal/board/card_test.go` | Card rendering tests |
|
|
44
|
-
| `internal/board/column_test.go` | Column rendering tests |
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E04-board-components/T001-column
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Render column with header, count, and task list"
|
|
5
|
-
depends_on: [E03-board-tui-core/T005-layout]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T001: Column Component
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Column renders header with status label (PLANNED / IN PROGRESS / DONE).
|
|
13
|
-
- Header shows task count.
|
|
14
|
-
- Column has bordered container.
|
|
15
|
-
- Focused column has accent border.
|
|
16
|
-
- Empty columns show "(empty)".
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [x] Create `internal/board/column.go`.
|
|
21
|
-
- [x] Implement `RenderColumn(tasks, col, width, focusedTask, focused)`.
|
|
22
|
-
- [x] Style header and border.
|
|
23
|
-
- [x] Write tests.
|
|
24
|
-
- [x] Run `go test`.
|
|
25
|
-
|
|
26
|
-
## Context Log
|
|
27
|
-
|
|
28
|
-
**Files read:** `internal/board/view.go`, `internal/board/model.go`, `internal/styles/styles.go`, `internal/styles/palette.go`, `internal/data/task.go`, `internal/board/view_test.go`
|
|
29
|
-
|
|
30
|
-
**Estimated input tokens:** ~4 000
|
|
31
|
-
|
|
32
|
-
**Notes:** Extracted `columnTitle` and `taskLabel` from `view.go` into `column.go`. `renderColumn` method in `view.go` now delegates to `RenderColumn`. Added task count to header format `LABEL (N)` and `(empty)` placeholder for empty columns. All 7 column tests + prior view/board tests pass. `go build` and `go vet` clean.
|
|
33
|
-
|
|
34
|
-
**Quality gates:** `go build ./...` ✅ | `go vet ./...` ✅ | `go test ./...` ✅
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E04-board-components/T002-card
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Render task card with phase glyphs, truncation, and focus styling"
|
|
5
|
-
depends_on: [E04-board-components/T001-column]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T002: Card Component
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- Card shows: task ID (truncated), title (truncated), phase glyphs (▣/◇/◆).
|
|
13
|
-
- Fixed width, never wraps.
|
|
14
|
-
- Metadata dimmed.
|
|
15
|
-
- Focused card has orange accent border and background tint.
|
|
16
|
-
- Phase glyph uses phase accent color.
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [x] Create `internal/board/card.go`.
|
|
21
|
-
- [x] Implement `RenderCard(task, width, focused)`.
|
|
22
|
-
- [x] Add truncation helper.
|
|
23
|
-
- [x] Apply focus and phase styling.
|
|
24
|
-
- [x] Write tests.
|
|
25
|
-
- [x] Run `go test`.
|
|
26
|
-
|
|
27
|
-
## Context Log
|
|
28
|
-
|
|
29
|
-
Files read: `internal/board/column.go`, `internal/board/column_test.go`, `internal/styles/styles.go`, `internal/styles/palette.go`, `internal/data/task.go`, `.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md`, `AGENTS.md`, `.savepoint/router.md`
|
|
30
|
-
|
|
31
|
-
Estimated input tokens: ~4 000
|
|
32
|
-
|
|
33
|
-
Notes: Added `Dim`/`Dim256`/`Dim16` palette constants and `Card`, `CardFocused`, `CardMeta`, `GlyphBuild`, `GlyphTest`, `GlyphAudit` styles. `truncate` helper is package-private in `board`. All 13 tests pass. `go build ./...`, `go vet ./...`, `go test ./...` green.
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E04-board-components/T003-epic-panel
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Render epic sidebar on wide screens, dropdown on narrow"
|
|
5
|
-
depends_on: [E04-board-components/T002-card]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T003: Epic Panel
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- >=120 cols: left sidebar with epic list, active indicator.
|
|
13
|
-
- <120 cols: `e` key opens epic dropdown overlay.
|
|
14
|
-
- Active epic marked with indicator.
|
|
15
|
-
- Selecting an epic updates board tasks.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Create `internal/board/epic_panel.go`.
|
|
20
|
-
- [x] Implement sidebar rendering (`RenderEpicSidebar`).
|
|
21
|
-
- [x] Implement dropdown overlay (`RenderEpicDropdown`).
|
|
22
|
-
- [x] Wire into Update loop (`e` key, overlay nav, enter/esc).
|
|
23
|
-
- [x] Write tests (`epic_panel_test.go`, 25 tests).
|
|
24
|
-
- [x] Run `go test`.
|
|
25
|
-
|
|
26
|
-
## Context Log
|
|
27
|
-
|
|
28
|
-
**Files read:** model.go, view.go, update.go, layout.go, card.go, column.go, board.go, styles/styles.go, styles/palette.go, card_test.go, view_test.go, update_test.go, model_test.go
|
|
29
|
-
|
|
30
|
-
**Estimated input tokens:** ~6000
|
|
31
|
-
|
|
32
|
-
**Notes:**
|
|
33
|
-
- Added `OverlayEpic` to `OverlayType` constants in model.go.
|
|
34
|
-
- Added `Epics []string` and `EpicCursor int` to Model struct; `NewModel` signature unchanged — callers set Epics directly.
|
|
35
|
-
- `RenderEpicSidebar` falls back to showing `selected` as sole entry when `Epics` is nil; shows `(none)` if both empty.
|
|
36
|
-
- `e` key only opens dropdown when `m.Width < breakpointWide` (120); sidebar is always visible on wide screens.
|
|
37
|
-
- Overlay blocks column nav (`l`/`h`) while open; `esc`/`q` both close it.
|
|
38
|
-
- `lipgloss.Place` centers dropdown on full terminal; board not visible behind (limitation of lipgloss — noted as drift).
|
|
39
|
-
- `defaultTermH = 24` added to view.go for zero-Height fallback.
|
|
40
|
-
- `renderEpicPanel` stub in view.go replaced with `RenderEpicSidebar` call.
|
|
41
|
-
- `fmt` import in view.go retained (still used by `renderStatus`).
|
|
42
|
-
|
|
43
|
-
**Quality gates:** `go build ./...` ✓ `go vet ./...` ✓ `go test ./...` ✓ (all pass)
|
|
44
|
-
|
|
45
|
-
## Drift Notes
|
|
46
|
-
|
|
47
|
-
- Drift: `internal/board/epic_panel.go` added, not yet in Codebase Map.
|
|
48
|
-
- Drift: Model.Epics and Model.EpicCursor fields added — Design.md data model section may need update.
|
|
49
|
-
- Drift: Board-visible-behind overlay not implemented (lipgloss limitation); Design.md "board visible behind" note is aspirational.
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E04-board-components/T004-detail-overlay
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Render task detail as centered overlay with board behind"
|
|
5
|
-
depends_on: [E04-board-components/T003-epic-panel]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T004: Detail Overlay
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `Enter` opens detail overlay for focused task.
|
|
13
|
-
- `Esc` closes overlay.
|
|
14
|
-
- Overlay shows: ID, title, epic, release, status, phase, description, acceptance criteria.
|
|
15
|
-
- Board visible and dimmed behind overlay.
|
|
16
|
-
- Overlay width = min(terminal width - 4, 80).
|
|
17
|
-
|
|
18
|
-
## Implementation Plan
|
|
19
|
-
|
|
20
|
-
- [x] Create `internal/board/detail.go`.
|
|
21
|
-
- [x] Implement `RenderDetail(task, overlayW)`.
|
|
22
|
-
- [x] Add board dimming (`dimLines` + `overlayOnBase` in `view.go`).
|
|
23
|
-
- [x] Wire Enter/Esc into Update loop.
|
|
24
|
-
- [x] Write tests.
|
|
25
|
-
- [x] Run `go test`.
|
|
26
|
-
|
|
27
|
-
## Context Log
|
|
28
|
-
|
|
29
|
-
**Files read:** model.go, update.go, view.go, epic_panel.go, card.go, layout.go, update_test.go, view_test.go, epic_panel_test.go, internal/data/task.go, internal/styles/styles.go, internal/styles/palette.go, go.mod
|
|
30
|
-
|
|
31
|
-
**Estimated input tokens:** ~8 000
|
|
32
|
-
|
|
33
|
-
**Notes:**
|
|
34
|
-
- `overlayOnBase` uses `charmbracelet/x/ansi.Truncate` for ANSI-aware left truncation; each base line is independently faint-wrapped so truncation doesn't inherit prior escape states.
|
|
35
|
-
- `overlayWidth` clamps to `min(termW-4, 80)` with a floor of 20.
|
|
36
|
-
- `phaseLabel` lives in `detail.go`; `focusedTask`, `overlayWidth`, `dimLines`, `overlayOnBase` live in `view.go`.
|
|
37
|
-
- `OverlayDetail` constant added to `model.go`; `styles.DetailOverlay` added to `styles.go`.
|
|
38
|
-
- No drift: all new files/exports match the Codebase Map entry for `internal/board/detail.go`.
|
|
39
|
-
|
|
40
|
-
**Quality gates:** `go build ./...` ✓ · `go vet ./...` ✓ · `go test ./...` ✓ (board: 32 tests pass)
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E04-board-components/T005-release-dropdown
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Render release selector dropdown"
|
|
5
|
-
depends_on: [E04-board-components/T004-detail-overlay]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T005: Release Dropdown
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `r` opens release dropdown.
|
|
13
|
-
- Shows list of releases with current one marked.
|
|
14
|
-
- Selecting a release updates board.
|
|
15
|
-
- `Esc` closes without selecting.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Add `OverlayRelease` to `model.go` overlay type constants.
|
|
20
|
-
- [x] Add `Releases []string` and `ReleaseCursor int` fields to `Model`.
|
|
21
|
-
- [x] Create `internal/board/release.go` with `RenderReleaseDropdown` and `releaseIndex`.
|
|
22
|
-
- [x] Wire `r` key in `update.go` to open `OverlayRelease` and set cursor.
|
|
23
|
-
- [x] Handle `up`/`down`/`enter`/`esc` for release overlay in `updateOverlay`.
|
|
24
|
-
- [x] Render `OverlayRelease` in `view.go`.
|
|
25
|
-
- [x] Write `release_test.go` covering render, nav, select, and esc.
|
|
26
|
-
- [x] Run `go test ./internal/board/...` — all pass.
|
|
27
|
-
- [x] Run `go build ./... && go vet ./... && go test ./...` — all pass.
|
|
28
|
-
|
|
29
|
-
## Context Log
|
|
30
|
-
|
|
31
|
-
Files read: model.go, update.go, view.go, epic_panel.go, board.go, update_test.go, model_test.go
|
|
32
|
-
Estimated input tokens: ~2500
|
|
33
|
-
Notes: Mirrored epic dropdown pattern exactly. `r` always opens regardless of screen width (unlike `e` which is narrow-only). Quality gates: build OK, vet OK, all tests pass.
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: E04-board-components/T006-help-overlay
|
|
3
|
-
status: done
|
|
4
|
-
objective: "Render help overlay with keyboard shortcuts"
|
|
5
|
-
depends_on: [E04-board-components/T005-release-dropdown]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# T006: Help Overlay
|
|
9
|
-
|
|
10
|
-
## Acceptance Criteria
|
|
11
|
-
|
|
12
|
-
- `?` opens help overlay.
|
|
13
|
-
- Shows all keyboard shortcuts.
|
|
14
|
-
- `Esc` or `q` closes help.
|
|
15
|
-
- Overlay renders centered.
|
|
16
|
-
|
|
17
|
-
## Implementation Plan
|
|
18
|
-
|
|
19
|
-
- [x] Create `internal/board/help.go`.
|
|
20
|
-
- [x] Implement help content.
|
|
21
|
-
- [x] Wire `?` key into Update loop.
|
|
22
|
-
- [x] Write tests.
|
|
23
|
-
- [x] Run `go test`.
|
|
24
|
-
|
|
25
|
-
## Context Log
|
|
26
|
-
|
|
27
|
-
Files read: `.savepoint/router.md`, `.savepoint/releases/v1/epics/E04-board-components/E04-Detail.md`, this task file, `agent-skills/ink-tui-design/SKILL.md`, `.savepoint/visual-identity.md`, `internal/board/model.go`, `internal/board/update.go`, `internal/board/view.go`, `internal/board/detail.go`, `internal/board/epic_panel.go`, `internal/board/release.go`, `internal/board/update_test.go`, `internal/board/view_test.go`, `internal/board/detail_test.go`, `internal/board/release_test.go`, `internal/styles/styles.go`, `go.mod`, `Makefile`
|
|
28
|
-
Estimated input tokens: ~8500
|
|
29
|
-
Notes: Added help overlay renderer, `?` key handling, centered overlay rendering over dimmed board, and focused render/update/view tests. Focused test `go test ./internal/board/...` initially failed in the sandbox because Go could not access the external build cache; rerun with approved cache access passed. Quality gates: `go build ./...` pass, `go vet ./...` pass, `go test ./...` pass.
|
|
30
|
-
|
|
31
|
-
## Drift Notes
|
|
32
|
-
|
|
33
|
-
- Drift: `internal/board/help.go` added, not yet in Codebase Map.
|
|
34
|
-
- Drift: `internal/board/help_test.go` added, not yet in Codebase Map.
|