savepoint 1.0.0
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/.claude/settings.local.json +20 -0
- package/.prettierignore +4 -0
- package/.savepoint/Design.md +196 -0
- package/.savepoint/PRD.md +58 -0
- package/.savepoint/audit/E01-go-setup/proposals.md +166 -0
- package/.savepoint/audit/E01-go-setup/snapshot.md +71 -0
- package/.savepoint/audit/E01-scaffolding/proposals/AGENTS.md +66 -0
- package/.savepoint/audit/E01-scaffolding/proposals/Design.md +210 -0
- package/.savepoint/audit/E01-scaffolding/proposals/epic-Design.md +117 -0
- package/.savepoint/audit/E01-scaffolding/proposals/quality-review.md +101 -0
- package/.savepoint/audit/E01-scaffolding/snapshot.md +54 -0
- package/.savepoint/audit/E02-data-model/snapshot.md +128 -0
- package/.savepoint/audit/E02-data-readers/proposals.md +123 -0
- package/.savepoint/audit/E02-data-readers/snapshot.md +54 -0
- package/.savepoint/audit/E03-board-tui-core/proposals.md +146 -0
- package/.savepoint/audit/E03-board-tui-core/snapshot.md +57 -0
- package/.savepoint/audit/E03-cli-foundation/snapshot.md +106 -0
- package/.savepoint/audit/E04-board-components/proposals.md +118 -0
- package/.savepoint/audit/E04-board-components/snapshot.md +77 -0
- package/.savepoint/audit/E04-templates-and-prompts/snapshot.md +115 -0
- package/.savepoint/audit/E05-init-command/snapshot.md +125 -0
- package/.savepoint/audit/E05-phase-transitions/proposals.md +83 -0
- package/.savepoint/audit/E05-phase-transitions/snapshot.md +36 -0
- package/.savepoint/audit/E06-tui-board/snapshot.md +64 -0
- package/.savepoint/audit/E07-audit-pipeline/snapshot.md +165 -0
- package/.savepoint/audit/E08-board-workflow-cleanup/snapshot.md +65 -0
- package/.savepoint/config.yml +27 -0
- package/.savepoint/releases/v1/PRD.md +66 -0
- package/.savepoint/releases/v1/epics/E01-go-setup/Design.md +39 -0
- package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T001-init-module.md +42 -0
- package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T002-entrypoint.md +23 -0
- package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T003-directory-structure.md +24 -0
- package/.savepoint/releases/v1/epics/E01-go-setup/tasks/T004-makefile.md +23 -0
- package/.savepoint/releases/v1/epics/E02-data-readers/Design.md +61 -0
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T001-task-struct.md +29 -0
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T002-frontmatter-parser.md +30 -0
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T003-router-reader.md +29 -0
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T004-config-reader.md +29 -0
- package/.savepoint/releases/v1/epics/E02-data-readers/tasks/T005-discovery.md +30 -0
- package/.savepoint/releases/v1/epics/E03-board-tui-core/Design.md +38 -0
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T001-model.md +29 -0
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T002-update-loop.md +30 -0
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T003-view.md +34 -0
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T004-styles.md +29 -0
- package/.savepoint/releases/v1/epics/E03-board-tui-core/tasks/T005-layout.md +42 -0
- package/.savepoint/releases/v1/epics/E04-board-components/Design.md +44 -0
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T001-column.md +34 -0
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T002-card.md +33 -0
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T003-epic-panel.md +49 -0
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T004-detail-overlay.md +40 -0
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T005-release-dropdown.md +33 -0
- package/.savepoint/releases/v1/epics/E04-board-components/tasks/T006-help-overlay.md +34 -0
- package/.savepoint/releases/v1/epics/E05-phase-transitions/Design.md +38 -0
- package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T001-phase-stepping.md +29 -0
- package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T002-gates.md +31 -0
- package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T003-write-task.md +31 -0
- package/.savepoint/releases/v1/epics/E05-phase-transitions/tasks/T004-write-router.md +31 -0
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/Design.md +42 -0
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T001-color-system.md +39 -0
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T002-header-and-dividers.md +52 -0
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T003-footer-status-bar.md +52 -0
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T004-component-refinement.md +53 -0
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T005-restore-nav-hints.md +39 -0
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T007-detail-card-fixes.md +36 -0
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T008-checkbox-states.md +38 -0
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T009-router-priority-marker.md +41 -0
- package/.savepoint/releases/v1/epics/E06-atari-noir-layout/tasks/T010-auto-refresh-watcher.md +61 -0
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/Design.md +39 -0
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T001-archive-epics.md +20 -0
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T002-rewrite-prd.md +22 -0
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T003-create-epic-stubs.md +24 -0
- package/.savepoint/releases/v1/epics/_archived/E01-archive-and-reset/tasks/T004-update-router.md +22 -0
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/Design.md +118 -0
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/handoff.md +9 -0
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T001-package-baseline.md +45 -0
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T002-typescript-build.md +48 -0
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T003-vitest-smoke.md +43 -0
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T004-lint-format-gates.md +45 -0
- package/.savepoint/releases/v1/epics/_archived/E01-scaffolding/tasks/T005-scaffold-verification.md +40 -0
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/Design.md +142 -0
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T001-domain-ids-status.md +27 -0
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T002-markdown-frontmatter-boundary.md +28 -0
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T003-task-documents.md +29 -0
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T004-release-epic-router-config-readers.md +30 -0
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T005-dependency-validation.md +29 -0
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T006-epic-task-set-reader.md +29 -0
- package/.savepoint/releases/v1/epics/_archived/E02-data-model/tasks/T007-quality-gates.md +31 -0
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/Design.md +40 -0
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T001-phase-types.md +27 -0
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T002-phase-frontmatter.md +25 -0
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T003-simplify-config.md +26 -0
- package/.savepoint/releases/v1/epics/_archived/E02-domain-phase-model/tasks/T004-simplify-router-domain.md +24 -0
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/Design.md +122 -0
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T001-argument-parser-contract.md +28 -0
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T002-help-text-generation.md +28 -0
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T003-terminal-environment-detection.md +27 -0
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T004-command-stub-modules.md +29 -0
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T005-cli-runner-dispatch.md +34 -0
- package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T006-entrypoint-quality-gates.md +32 -0
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/Design.md +43 -0
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T001-strip-args.md +26 -0
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T002-strip-help.md +23 -0
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T003-strip-run.md +23 -0
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T004-delete-commands.md +24 -0
- package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T005-update-cli-tests.md +22 -0
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/Design.md +48 -0
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T001-board-data-phases.md +26 -0
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T002-phase-rendering.md +28 -0
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T003-detail-pane-phases.md +27 -0
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T004-phase-transitions.md +42 -0
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T005-phase-gates.md +24 -0
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T006-phase-write-back.md +24 -0
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T007-remove-audit-flow.md +27 -0
- package/.savepoint/releases/v1/epics/_archived/E04-board-phase-integration/tasks/T008-board-tests.md +25 -0
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/Design.md +85 -0
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T001-project-template-assets.md +17 -0
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T002-release-and-prompt-assets.md +20 -0
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T003-template-registry-renderer.md +22 -0
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T004-template-integrity-tests.md +17 -0
- package/.savepoint/releases/v1/epics/_archived/E04-templates-and-prompts/tasks/T005-template-closeout-quality-gates.md +16 -0
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/Design.md +88 -0
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T001-init-cli-contract.md +22 -0
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T002-target-validation.md +23 -0
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T003-scaffold-writer.md +24 -0
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T004-magic-prompt-and-clipboard.md +23 -0
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T005-dev-deps-install-option.md +24 -0
- package/.savepoint/releases/v1/epics/_archived/E05-init-command/tasks/T006-init-command-integration.md +28 -0
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/Design.md +53 -0
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T001-delete-dead-src.md +23 -0
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T002-delete-dead-tests.md +26 -0
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T003-delete-assets.md +25 -0
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T004-clean-savepoint.md +28 -0
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T005-rewrite-agents-md.md +28 -0
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T006-clean-package-json.md +23 -0
- package/.savepoint/releases/v1/epics/_archived/E05-project-cleanup/tasks/T007-verify.md +25 -0
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/Design.md +104 -0
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T001-board-command-data.md +23 -0
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T002-board-view-state.md +24 -0
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T003-transition-gates-and-writes.md +25 -0
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T004-terminal-theme.md +23 -0
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T005-ink-board-ui.md +26 -0
- package/.savepoint/releases/v1/epics/_archived/E06-tui-board/tasks/T006-board-integration-audit-entry.md +24 -0
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/Design.md +88 -0
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T001-audit-cli-contract.md +23 -0
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T002-quality-gate-runner.md +23 -0
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T003-snapshot-and-prompt.md +23 -0
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T004-audit-orchestration-router.md +27 -0
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T005-proposal-validation-apply.md +25 -0
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T006-audit-review-state.md +24 -0
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T007-audit-review-ui.md +26 -0
- package/.savepoint/releases/v1/epics/_archived/E07-audit-pipeline/tasks/T008-audit-pipeline-integration.md +24 -0
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/Design.md +103 -0
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T001-acceptance-criteria-model.md +30 -0
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T002-release-task-set-reader.md +33 -0
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T003-board-data-and-plain-output.md +34 -0
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T004-board-selection-state.md +33 -0
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T005-ink-board-layout-cleanup.md +37 -0
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T006-task-detail-popup.md +36 -0
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T007-templates-acceptance-criteria.md +34 -0
- package/.savepoint/releases/v1/epics/_archived/E08-board-workflow-cleanup/tasks/T008-board-workflow-integration.md +41 -0
- package/.savepoint/releases/v1/epics/_archived/E09-doctor-command/Design.md +70 -0
- package/.savepoint/releases/v1/epics/_archived/E10-docs-and-packaging/Design.md +68 -0
- package/.savepoint/releases/v1/epics/_archived/E11-release-validation/Design.md +68 -0
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/Design.md +26 -0
- package/.savepoint/releases/v1.1/epics/E01-tui-optimisation/tasks/T001-border-resize-fix.md +35 -0
- package/.savepoint/router.md +136 -0
- package/.savepoint/visual-identity.md +124 -0
- package/AGENTS.md +141 -0
- package/CLAUDE.md +1 -0
- package/GEMINI.md +1 -0
- package/LICENSE +21 -0
- package/Makefile +13 -0
- package/README.md +78 -0
- package/agent-skills/ink-tui-design/SKILL.md +309 -0
- package/agent-skills/ink-tui-design/references/component-patterns.md +371 -0
- package/agent-skills/ink-tui-design/references/hooks-guide.md +436 -0
- package/agent-skills/ink-tui-design/references/ink-gotchas.md +330 -0
- package/agent-skills/ink-tui-design/references/testing-patterns.md +384 -0
- package/agent-skills/savepoint-audit/SKILL.md +35 -0
- package/agent-skills/savepoint-build-task/SKILL.md +39 -0
- package/agent-skills/savepoint-create-plan/SKILL.md +28 -0
- package/agent-skills/savepoint-create-task/SKILL.md +31 -0
- package/agent-skills/savepoint-draft-prd/SKILL.md +32 -0
- package/agent-skills/savepoint-system-design/SKILL.md +33 -0
- package/agent-skills/superpowers/brainstorming/SKILL.md +165 -0
- package/agent-skills/superpowers/brainstorming/visual-companion.md +304 -0
- package/agent-skills/superpowers/dispatching-parallel-agents/SKILL.md +193 -0
- package/agent-skills/superpowers/executing-plans/SKILL.md +77 -0
- package/agent-skills/superpowers/finishing-a-development-branch/SKILL.md +213 -0
- package/agent-skills/superpowers/receiving-code-review/SKILL.md +226 -0
- package/agent-skills/superpowers/requesting-code-review/SKILL.md +115 -0
- package/agent-skills/superpowers/requesting-code-review/code-reviewer.md +160 -0
- package/agent-skills/superpowers/subagent-driven-development/SKILL.md +292 -0
- package/agent-skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +27 -0
- package/agent-skills/superpowers/subagent-driven-development/implementer-prompt.md +113 -0
- package/agent-skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/agent-skills/superpowers/systematic-debugging/SKILL.md +305 -0
- package/agent-skills/superpowers/systematic-debugging/condition-based-waiting.md +122 -0
- package/agent-skills/superpowers/systematic-debugging/defense-in-depth.md +130 -0
- package/agent-skills/superpowers/systematic-debugging/root-cause-tracing.md +183 -0
- package/agent-skills/superpowers/test-driven-development/SKILL.md +389 -0
- package/agent-skills/superpowers/test-driven-development/testing-anti-patterns.md +317 -0
- package/agent-skills/superpowers/verification-before-completion/SKILL.md +147 -0
- package/agent-skills/superpowers/writing-plans/SKILL.md +159 -0
- package/agent-skills/superpowers/writing-plans/plan-document-reviewer-prompt.md +49 -0
- package/assets/banner.png +0 -0
- package/assets/logo.png +0 -0
- package/assets/strawman.png +0 -0
- package/go.mod +33 -0
- package/go.sum +73 -0
- package/ink-cli-ui-design.zip +0 -0
- package/internal/board/board.go +121 -0
- package/internal/board/board_test.go +99 -0
- package/internal/board/card.go +72 -0
- package/internal/board/card_test.go +111 -0
- package/internal/board/column.go +61 -0
- package/internal/board/column_test.go +81 -0
- package/internal/board/detail.go +140 -0
- package/internal/board/detail_test.go +233 -0
- package/internal/board/epic_panel.go +69 -0
- package/internal/board/epic_panel_test.go +246 -0
- package/internal/board/help.go +40 -0
- package/internal/board/help_test.go +85 -0
- package/internal/board/layout.go +58 -0
- package/internal/board/layout_test.go +89 -0
- package/internal/board/model.go +151 -0
- package/internal/board/model_test.go +67 -0
- package/internal/board/release.go +42 -0
- package/internal/board/release_test.go +177 -0
- package/internal/board/transitions.go +88 -0
- package/internal/board/transitions_test.go +141 -0
- package/internal/board/update.go +155 -0
- package/internal/board/update_test.go +128 -0
- package/internal/board/view.go +190 -0
- package/internal/board/view_test.go +147 -0
- package/internal/data/config.go +87 -0
- package/internal/data/config_test.go +73 -0
- package/internal/data/discover.go +152 -0
- package/internal/data/discover_test.go +106 -0
- package/internal/data/errors.go +9 -0
- package/internal/data/lifecycle.go +37 -0
- package/internal/data/lifecycle_test.go +38 -0
- package/internal/data/parser.go +189 -0
- package/internal/data/parser_test.go +216 -0
- package/internal/data/router.go +52 -0
- package/internal/data/router_test.go +35 -0
- package/internal/data/task.go +46 -0
- package/internal/data/task_test.go +51 -0
- package/internal/data/write.go +144 -0
- package/internal/data/write_test.go +456 -0
- package/internal/styles/palette.go +47 -0
- package/internal/styles/styles.go +122 -0
- package/main.exe +0 -0
- package/main.go +11 -0
- package/package.json +25 -0
- package/savepoint +0 -0
- package/savepoint.exe +0 -0
- package/scripts/vitest-preload.cjs +95 -0
- package/templates/project/.savepoint/Design.md +47 -0
- package/templates/project/.savepoint/PRD.md +34 -0
- package/templates/project/.savepoint/config.yml +27 -0
- package/templates/project/.savepoint/router.md +152 -0
- package/templates/project/.savepoint/visual-identity.md +122 -0
- package/templates/project/AGENTS.md +130 -0
- package/templates/prompts/audit-reconciliation.prompt.md +67 -0
- package/templates/prompts/design.prompt.md +43 -0
- package/templates/prompts/epic-design.prompt.md +43 -0
- package/templates/prompts/magic-prompt.prompt.md +7 -0
- package/templates/prompts/prd.prompt.md +42 -0
- package/templates/prompts/task-breakdown.prompt.md +54 -0
- package/templates/prompts/task-building.prompt.md +38 -0
- package/templates/prompts/task-planning.prompt.md +53 -0
- package/templates/release/v1/PRD.md +37 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E02-domain-phase-model/T004-simplify-router-domain
|
|
3
|
+
status: planned
|
|
4
|
+
objective: "Collapse router states from 6 to 3 in router.ts"
|
|
5
|
+
depends_on: []
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# T004: Simplify Router Domain
|
|
9
|
+
|
|
10
|
+
## Acceptance Criteria
|
|
11
|
+
|
|
12
|
+
- `router.ts` defines 3 states: `planning`, `building`, `reviewing`.
|
|
13
|
+
- `isRouterStateValue` validates only the 3 states.
|
|
14
|
+
- `validateRouterState` accepts the 3-state model.
|
|
15
|
+
- `RouterState` interface unchanged (still has `state`, `release`, `epic`, `task`, `next_action`).
|
|
16
|
+
- All router tests pass.
|
|
17
|
+
|
|
18
|
+
## Implementation Plan
|
|
19
|
+
|
|
20
|
+
- [ ] Read existing `router.ts` and `test/domain/router.test.ts`.
|
|
21
|
+
- [ ] Replace `ROUTER_STATES` array with 3 states.
|
|
22
|
+
- [ ] Update `isRouterStateValue` and `validateRouterState`.
|
|
23
|
+
- [ ] Update `test/domain/router.test.ts` with 3-state cases.
|
|
24
|
+
- [ ] Run `npm test`.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: epic-design
|
|
3
|
+
status: audited
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Epic E03: cli-foundation
|
|
7
|
+
|
|
8
|
+
## Context Budget
|
|
9
|
+
|
|
10
|
+
For implementation tasks in this epic, read only:
|
|
11
|
+
|
|
12
|
+
- `.savepoint/router.md`
|
|
13
|
+
- this epic `Design.md`
|
|
14
|
+
- the active task file
|
|
15
|
+
- directly touched source/test files
|
|
16
|
+
|
|
17
|
+
Read `.savepoint/Design.md` only if the task changes architecture. Read `.savepoint/releases/v1/PRD.md`, prior epic docs, audit proposals, or `.savepoint/visual-identity.md` only when the active task explicitly requires them.
|
|
18
|
+
|
|
19
|
+
For E03 specifically, do not preload E02 source files, E02 audit proposals, `.savepoint/PRD.md`, or `.savepoint/releases/v1/PRD.md` during implementation. The CLI foundation should use the command contract in this file and the active task as its source of truth.
|
|
20
|
+
|
|
21
|
+
## Purpose
|
|
22
|
+
|
|
23
|
+
Introduce the real `savepoint` command shell: argument parsing, command dispatch, help/version output, exit codes, and terminal capability detection. This epic wires a command framework around stub command handlers so later epics can fill behavior without changing the CLI contract.
|
|
24
|
+
|
|
25
|
+
## What this epic adds
|
|
26
|
+
|
|
27
|
+
- Command dispatch for `init`, `board`, `audit`, and `doctor`.
|
|
28
|
+
- Top-level `--help` and `--version`.
|
|
29
|
+
- Command-level help text.
|
|
30
|
+
- Unknown command and unknown flag handling.
|
|
31
|
+
- Exit code conventions.
|
|
32
|
+
- TTY and color capability detection helpers.
|
|
33
|
+
- A testable CLI runner separated from process globals.
|
|
34
|
+
|
|
35
|
+
## Implementation strategy
|
|
36
|
+
|
|
37
|
+
- Use a small local parser instead of a CLI framework unless implementation proves it would reduce code.
|
|
38
|
+
- Treat the allowed commands as a closed set: `init`, `board`, `audit`, `doctor`.
|
|
39
|
+
- Treat allowed global flags as a closed set: `--help`, `-h`, `--version`, `-v`.
|
|
40
|
+
- Keep command stubs shallow. They should return deterministic "not implemented yet" results and exit codes without reading or writing project files.
|
|
41
|
+
- Keep process globals in `src/cli.ts`; tests should exercise `runCli()` with injected argv, streams, and environment.
|
|
42
|
+
|
|
43
|
+
## Components and files
|
|
44
|
+
|
|
45
|
+
Expected files introduced or extended by this epic:
|
|
46
|
+
|
|
47
|
+
| Path | Purpose |
|
|
48
|
+
| ------------------------ | --------------------------------------------------- |
|
|
49
|
+
| `src/cli.ts` | Process entrypoint that invokes the CLI runner. |
|
|
50
|
+
| `src/cli/run.ts` | Testable command runner. |
|
|
51
|
+
| `src/cli/args.ts` | Argument parsing and normalization. |
|
|
52
|
+
| `src/cli/help.ts` | Help text generation. |
|
|
53
|
+
| `src/cli/exit-codes.ts` | Shared exit code constants. |
|
|
54
|
+
| `src/cli/environment.ts` | TTY, color, and platform detection. |
|
|
55
|
+
| `src/commands/*.ts` | Stub command modules for the fixed command surface. |
|
|
56
|
+
| `test/cli/**/*.test.ts` | CLI parser and dispatch tests. |
|
|
57
|
+
|
|
58
|
+
## Architectural delta
|
|
59
|
+
|
|
60
|
+
Before this epic, the binary is a placeholder. After this epic, `savepoint` has a stable command boundary with stubbed behaviors behind it.
|
|
61
|
+
|
|
62
|
+
The command layer should not introduce data-model behavior. Commands that need project data stay as deterministic stubs until a later epic owns the data model.
|
|
63
|
+
|
|
64
|
+
## Implemented As
|
|
65
|
+
|
|
66
|
+
- `src/cli.ts` now isolates process globals and delegates to `runCli()`.
|
|
67
|
+
- `src/cli/args.ts` implements the closed parser contract for bare invocation, global help/version flags, known commands, unknown top-level commands, and unknown top-level flags.
|
|
68
|
+
- `src/cli/run.ts` wires parser output to help, version output, command-level help, command stubs, and usage errors.
|
|
69
|
+
- `src/cli/help.ts` provides deterministic top-level and command-level help text.
|
|
70
|
+
- `src/cli/environment.ts` provides injectable TTY, color, and platform detection.
|
|
71
|
+
- `src/cli/exit-codes.ts` centralizes success, usage-error, and not-implemented exit codes.
|
|
72
|
+
- `src/commands/init.ts`, `src/commands/board.ts`, `src/commands/audit.ts`, and `src/commands/doctor.ts` return deterministic not-yet-implemented results with no project filesystem side effects.
|
|
73
|
+
- `src/commands/result.ts` was added as the shared command-result type used by the command stubs.
|
|
74
|
+
- Focused tests were added under `test/cli/` for parsing, help text, terminal environment detection, command stubs, and runner dispatch.
|
|
75
|
+
- The audit snapshot was generated manually because `savepoint audit` is still a stub.
|
|
76
|
+
- During audit closeout, command-level unknown flags were fixed to return a usage error instead of dispatching command stubs.
|
|
77
|
+
- The audit workflow was updated for future epics to prefer a single delta-shaped proposal bundle over four separate proposal files.
|
|
78
|
+
|
|
79
|
+
Design delta notes:
|
|
80
|
+
|
|
81
|
+
- The planned `src/commands/*.ts` component was implemented as one module per command plus a small shared `result.ts`.
|
|
82
|
+
- The epic design table originally described command modules as the "five-command surface"; the implemented command surface has four commands plus top-level global help/version flags, matching the rest of the design.
|
|
83
|
+
- Command behavior remains stubbed by design. Later epics own real `init`, `board`, `audit`, and `doctor` behavior.
|
|
84
|
+
|
|
85
|
+
## Boundaries
|
|
86
|
+
|
|
87
|
+
In scope:
|
|
88
|
+
|
|
89
|
+
- Preserve the exact v1 CLI surface from the project Design.
|
|
90
|
+
- Make bare `savepoint` print help.
|
|
91
|
+
- Make command stubs return clear "not implemented yet" output where necessary.
|
|
92
|
+
- Keep command functions testable without spawning Node processes.
|
|
93
|
+
|
|
94
|
+
Out of scope:
|
|
95
|
+
|
|
96
|
+
- Implementing `init`, `board`, `audit`, or `doctor` behavior.
|
|
97
|
+
- Adding extra commands such as `task new`, `plan`, or `status`.
|
|
98
|
+
- TUI rendering.
|
|
99
|
+
- Project file writes.
|
|
100
|
+
|
|
101
|
+
## Quality gates
|
|
102
|
+
|
|
103
|
+
- Tests must cover bare invocation, help, version, unknown commands, unknown flags, and each command dispatch path.
|
|
104
|
+
- CLI behavior should be deterministic with injected `argv`, `stdin`, `stdout`, `stderr`, and environment data.
|
|
105
|
+
- Every branch in argument parsing and command dispatch must have a focused test.
|
|
106
|
+
- During individual implementation tasks, run the focused `test/cli/**/*.test.ts` files for touched behavior first. Run the full gate suite at task closeout when practical, and always in the final E03 quality-gates task.
|
|
107
|
+
|
|
108
|
+
## Design constraints
|
|
109
|
+
|
|
110
|
+
- Keep process I/O at the entrypoint boundary.
|
|
111
|
+
- Avoid a heavy CLI framework unless it materially reduces complexity.
|
|
112
|
+
- Command names are fixed: `init`, `board`, `audit`, `doctor`.
|
|
113
|
+
|
|
114
|
+
## Close Criteria
|
|
115
|
+
|
|
116
|
+
- All `E03-cli-foundation` tasks are `done`.
|
|
117
|
+
- `npm run build`, `npm run typecheck`, `npm run lint`, `npm run format:check`, and `npm test` pass.
|
|
118
|
+
- CLI branch tests cover bare invocation, help, version, unknown commands, unknown flags, and each command dispatch path.
|
|
119
|
+
- Audit snapshot exists at `.savepoint/audit/E03-cli-foundation/snapshot.md`.
|
|
120
|
+
- Audit proposals are accepted, rejected, or explicitly carried forward.
|
|
121
|
+
- This epic `Design.md` has `status: audited`.
|
|
122
|
+
- Router points to the next epic state.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E03-cli-foundation/T001-argument-parser-contract
|
|
3
|
+
status: done
|
|
4
|
+
objective: "Define the closed CLI argument parser and exit-code contract for the v1 command surface."
|
|
5
|
+
depends_on: []
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# T001: Argument Parser Contract
|
|
9
|
+
|
|
10
|
+
## Scope
|
|
11
|
+
|
|
12
|
+
Create the argument parsing foundation for `savepoint` without wiring command behavior yet. This task owns the closed set of global flags, command names, parser result shapes, and shared exit-code constants.
|
|
13
|
+
|
|
14
|
+
## Implementation Plan
|
|
15
|
+
|
|
16
|
+
- [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched CLI/test files.
|
|
17
|
+
- [x] Add `src/cli/exit-codes.ts` with named exit-code constants for success, usage errors, and not-yet-implemented command stubs.
|
|
18
|
+
- [x] Add `src/cli/args.ts` with typed parser results for bare invocation, global help/version flags, command invocation, unknown commands, and unknown flags.
|
|
19
|
+
- [x] Keep allowed commands closed to `init`, `board`, `audit`, and `doctor`.
|
|
20
|
+
- [x] Treat `--help`, `-h`, `--version`, and `-v` as the only allowed global flags.
|
|
21
|
+
- [x] Add focused parser tests covering bare invocation, each global flag alias, each known command, unknown command, and unknown flag branches.
|
|
22
|
+
- [x] Run the focused parser test file.
|
|
23
|
+
|
|
24
|
+
## Acceptance Criteria
|
|
25
|
+
|
|
26
|
+
- The parser is deterministic from an injected `argv` array.
|
|
27
|
+
- Unknown commands and unknown flags are represented as typed parser results, not thrown exceptions.
|
|
28
|
+
- Every parser branch introduced by this task has a focused test.
|
package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T002-help-text-generation.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E03-cli-foundation/T002-help-text-generation
|
|
3
|
+
status: done
|
|
4
|
+
objective: "Generate deterministic top-level and command-level help text for the fixed v1 CLI surface."
|
|
5
|
+
depends_on:
|
|
6
|
+
- E03-cli-foundation/T001-argument-parser-contract
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# T002: Help Text Generation
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
Introduce the help-text module used by the runner later. This task does not dispatch commands or touch process streams.
|
|
14
|
+
|
|
15
|
+
## Implementation Plan
|
|
16
|
+
|
|
17
|
+
- [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched CLI/test files.
|
|
18
|
+
- [x] Add `src/cli/help.ts` with deterministic top-level help output for bare `savepoint` and global `--help`/`-h`.
|
|
19
|
+
- [x] Add command-level help output for `init`, `board`, `audit`, and `doctor`.
|
|
20
|
+
- [x] Keep help content limited to the command contract from the epic Design and avoid promising unimplemented behavior.
|
|
21
|
+
- [x] Add focused help tests for top-level help and each command-level help branch.
|
|
22
|
+
- [x] Run the focused help test file.
|
|
23
|
+
|
|
24
|
+
## Acceptance Criteria
|
|
25
|
+
|
|
26
|
+
- Help text is generated by pure functions with no process I/O.
|
|
27
|
+
- Top-level help lists only the fixed v1 command and global flag surface.
|
|
28
|
+
- Each supported command has deterministic command-level help text.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E03-cli-foundation/T003-terminal-environment-detection
|
|
3
|
+
status: done
|
|
4
|
+
objective: "Provide injectable terminal capability detection for TTY, color, and platform behavior."
|
|
5
|
+
depends_on: []
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# T003: Terminal Environment Detection
|
|
9
|
+
|
|
10
|
+
## Scope
|
|
11
|
+
|
|
12
|
+
Add environment capability helpers that can be used by later CLI and TUI work. This task stays independent from command dispatch and does not read project files.
|
|
13
|
+
|
|
14
|
+
## Implementation Plan
|
|
15
|
+
|
|
16
|
+
- [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched CLI/test files.
|
|
17
|
+
- [x] Add `src/cli/environment.ts` with typed inputs for stdout/stderr TTY state, environment variables, and platform.
|
|
18
|
+
- [x] Detect whether stdout and stderr are TTY-capable from injected stream-like values.
|
|
19
|
+
- [x] Detect color support from injected environment/platform data using conservative rules for `NO_COLOR`, `FORCE_COLOR`, and common CI/non-TTY cases.
|
|
20
|
+
- [x] Add focused tests for TTY true/false branches, color disabled/enabled branches, and platform passthrough.
|
|
21
|
+
- [x] Run the focused environment test file.
|
|
22
|
+
|
|
23
|
+
## Acceptance Criteria
|
|
24
|
+
|
|
25
|
+
- Capability detection is deterministic with injected streams, environment, and platform.
|
|
26
|
+
- No helper reads directly from `process`.
|
|
27
|
+
- Branching behavior for TTY and color detection is covered by focused tests.
|
package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T004-command-stub-modules.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E03-cli-foundation/T004-command-stub-modules
|
|
3
|
+
status: done
|
|
4
|
+
objective: "Create deterministic stub handlers for the fixed command surface without project file side effects."
|
|
5
|
+
depends_on:
|
|
6
|
+
- E03-cli-foundation/T001-argument-parser-contract
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# T004: Command Stub Modules
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
Create command modules for the v1 surface so dispatch can call stable handler boundaries before the real command behavior exists.
|
|
14
|
+
|
|
15
|
+
## Implementation Plan
|
|
16
|
+
|
|
17
|
+
- [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched command/test files.
|
|
18
|
+
- [x] Add a small command result type if needed by the stub handlers and runner.
|
|
19
|
+
- [x] Add stub modules under `src/commands/` for `init`, `board`, `audit`, and `doctor`.
|
|
20
|
+
- [x] Make each stub return deterministic "not implemented yet" output and the shared not-implemented exit code.
|
|
21
|
+
- [x] Ensure stubs do not read, write, or discover project files.
|
|
22
|
+
- [x] Add focused tests for each command stub result.
|
|
23
|
+
- [x] Run the focused command-stub test file.
|
|
24
|
+
|
|
25
|
+
## Acceptance Criteria
|
|
26
|
+
|
|
27
|
+
- Each fixed command has a handler module with a testable function.
|
|
28
|
+
- Stub outputs are clear and deterministic.
|
|
29
|
+
- Command stubs have no project filesystem side effects.
|
package/.savepoint/releases/v1/epics/_archived/E03-cli-foundation/tasks/T005-cli-runner-dispatch.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E03-cli-foundation/T005-cli-runner-dispatch
|
|
3
|
+
status: done
|
|
4
|
+
objective: "Wire the parser, help text, environment helpers, and command stubs into a testable CLI runner."
|
|
5
|
+
depends_on:
|
|
6
|
+
- E03-cli-foundation/T001-argument-parser-contract
|
|
7
|
+
- E03-cli-foundation/T002-help-text-generation
|
|
8
|
+
- E03-cli-foundation/T003-terminal-environment-detection
|
|
9
|
+
- E03-cli-foundation/T004-command-stub-modules
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# T005: CLI Runner Dispatch
|
|
13
|
+
|
|
14
|
+
## Scope
|
|
15
|
+
|
|
16
|
+
Add the `runCli()` boundary that later command implementations will use. This task owns command dispatch behavior, injected streams/environment, and result-to-output handling, but not the process entrypoint.
|
|
17
|
+
|
|
18
|
+
## Implementation Plan
|
|
19
|
+
|
|
20
|
+
- [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched CLI/command/test files.
|
|
21
|
+
- [x] Add `src/cli/run.ts` with an injectable runner input for `argv`, `stdin`, `stdout`, `stderr`, environment, and platform data.
|
|
22
|
+
- [x] Route bare invocation and global help flags to top-level help output with a success exit code.
|
|
23
|
+
- [x] Route global version flags to the existing package version source with a success exit code.
|
|
24
|
+
- [x] Route command-level help requests to command help output with a success exit code.
|
|
25
|
+
- [x] Route known commands to their stub handlers.
|
|
26
|
+
- [x] Route unknown commands and unknown flags to stderr with the usage-error exit code.
|
|
27
|
+
- [x] Add focused runner tests for bare invocation, help, version, each command dispatch path, command-level help, unknown command, and unknown flag.
|
|
28
|
+
- [x] Run the focused runner test file.
|
|
29
|
+
|
|
30
|
+
## Acceptance Criteria
|
|
31
|
+
|
|
32
|
+
- `runCli()` is testable without spawning Node or reading process globals.
|
|
33
|
+
- Output routing between stdout and stderr is deterministic.
|
|
34
|
+
- Every command dispatch branch required by the epic quality gates has focused coverage.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E03-cli-foundation/T006-entrypoint-quality-gates
|
|
3
|
+
status: done
|
|
4
|
+
objective: "Connect the process entrypoint to the CLI runner and complete the E03 quality-gate closeout."
|
|
5
|
+
depends_on:
|
|
6
|
+
- E03-cli-foundation/T005-cli-runner-dispatch
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# T006: Entrypoint Quality Gates
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
Finish the CLI foundation by keeping process globals in `src/cli.ts`, running the required quality gates, and creating the E03 audit snapshot handoff.
|
|
14
|
+
|
|
15
|
+
## Implementation Plan
|
|
16
|
+
|
|
17
|
+
- [x] Read `.savepoint/router.md`, this epic `Design.md`, this task file, and the directly touched entrypoint/test files.
|
|
18
|
+
- [x] Update `src/cli.ts` so process argv, streams, environment, platform, and exit code handling stay at the entrypoint boundary.
|
|
19
|
+
- [x] Add or update entrypoint-level tests only if existing coverage does not prove the process boundary behavior.
|
|
20
|
+
- [x] Run the focused CLI test files for the touched behavior.
|
|
21
|
+
- [x] Run `npm run build`.
|
|
22
|
+
- [x] Run `npm run typecheck`.
|
|
23
|
+
- [x] Run `npm run lint`.
|
|
24
|
+
- [x] Run `npm run format:check`.
|
|
25
|
+
- [x] Run `npm test`.
|
|
26
|
+
- [x] Create `.savepoint/audit/E03-cli-foundation/snapshot.md` with the implemented file list and quality-gate results for audit handoff.
|
|
27
|
+
|
|
28
|
+
## Acceptance Criteria
|
|
29
|
+
|
|
30
|
+
- Process globals are isolated to `src/cli.ts`.
|
|
31
|
+
- The full E03 quality-gate command list has been run and recorded.
|
|
32
|
+
- The audit snapshot exists for the next `audit-pending` state.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: epic-design
|
|
3
|
+
status: planned
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Epic E03: CLI Simplify
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Strip the CLI down to the board command only. Remove init, audit, doctor commands and their supporting infrastructure. Update CLI tests to reflect the board-only interface.
|
|
11
|
+
|
|
12
|
+
## What this epic adds
|
|
13
|
+
|
|
14
|
+
- Board-only argument parsing (`args.ts`).
|
|
15
|
+
- Board-only help text (`help.ts`).
|
|
16
|
+
- Board-only command dispatch (`run.ts`).
|
|
17
|
+
- Deletion of init, audit, doctor command files and their supporting directories.
|
|
18
|
+
|
|
19
|
+
## Definition of Done
|
|
20
|
+
|
|
21
|
+
- `savepoint --help` shows only `board` command.
|
|
22
|
+
- `savepoint init/audit/doctor` returns unknown-command error.
|
|
23
|
+
- `savepoint board` still launches from TTY.
|
|
24
|
+
- No dead command code remains in `src/commands/`, `src/init/`, `src/templates/`.
|
|
25
|
+
- All CLI tests pass with board-only interface.
|
|
26
|
+
- Build and typecheck pass.
|
|
27
|
+
|
|
28
|
+
## Components and files
|
|
29
|
+
|
|
30
|
+
| Path | Purpose |
|
|
31
|
+
|------|---------|
|
|
32
|
+
| `src/cli/args.ts` | Board-only argument parsing |
|
|
33
|
+
| `src/cli/help.ts` | Board-only help text |
|
|
34
|
+
| `src/cli/run.ts` | Board-only command dispatch |
|
|
35
|
+
| `test/cli/args.test.ts` | Updated args tests |
|
|
36
|
+
| `test/cli/help.test.ts` | Updated help tests |
|
|
37
|
+
| `test/cli/run.test.ts` | Updated runner tests |
|
|
38
|
+
| (deleted) `src/commands/init.ts` | Removed |
|
|
39
|
+
| (deleted) `src/commands/audit.ts` | Removed |
|
|
40
|
+
| (deleted) `src/commands/doctor.ts` | Removed |
|
|
41
|
+
| (deleted) `src/commands/result.ts` | Removed |
|
|
42
|
+
| (deleted) `src/init/` | Removed (5 files) |
|
|
43
|
+
| (deleted) `src/templates/` | Removed (5 files) |
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E03-cli-simplify/T001-strip-args
|
|
3
|
+
status: planned
|
|
4
|
+
objective: "Remove init, audit, doctor from args.ts; keep only board + version + help"
|
|
5
|
+
depends_on: [E02-domain-phase-model/T004-simplify-router-domain]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# T001: Strip Args
|
|
9
|
+
|
|
10
|
+
## Acceptance Criteria
|
|
11
|
+
|
|
12
|
+
- `args.ts` defines only `board` as an allowed command.
|
|
13
|
+
- `ParseResult` union has no init, audit, or doctor variants.
|
|
14
|
+
- `--version` and `--help` still work.
|
|
15
|
+
- Unknown commands return appropriate error.
|
|
16
|
+
- All args tests pass.
|
|
17
|
+
|
|
18
|
+
## Implementation Plan
|
|
19
|
+
|
|
20
|
+
- [ ] Read existing `args.ts` and `test/cli/args.test.ts`.
|
|
21
|
+
- [ ] Remove `InitOptions`, `AuditOptions` interfaces.
|
|
22
|
+
- [ ] Remove init/audit parse result variants from `ParseResult`.
|
|
23
|
+
- [ ] Remove `parseInitArgs`, `parseAuditArgs`.
|
|
24
|
+
- [ ] Simplify `parseArgs` to handle only `board`, `--help`, `--version`.
|
|
25
|
+
- [ ] Update `test/cli/args.test.ts`.
|
|
26
|
+
- [ ] Run `npm test`.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E03-cli-simplify/T002-strip-help
|
|
3
|
+
status: planned
|
|
4
|
+
objective: "Remove init, audit, doctor help text from help.ts"
|
|
5
|
+
depends_on: [E03-cli-simplify/T001-strip-args]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# T002: Strip Help
|
|
9
|
+
|
|
10
|
+
## Acceptance Criteria
|
|
11
|
+
|
|
12
|
+
- `help.ts` top-level help shows only `board` command.
|
|
13
|
+
- `commandHelp('board')` returns board-specific help text.
|
|
14
|
+
- No help text for init, audit, or doctor exists.
|
|
15
|
+
- All help tests pass.
|
|
16
|
+
|
|
17
|
+
## Implementation Plan
|
|
18
|
+
|
|
19
|
+
- [ ] Read existing `help.ts` and `test/cli/help.test.ts`.
|
|
20
|
+
- [ ] Remove init/audit/doctor help text blocks.
|
|
21
|
+
- [ ] Update top-level help to list only `board`.
|
|
22
|
+
- [ ] Update `test/cli/help.test.ts`.
|
|
23
|
+
- [ ] Run `npm test`.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E03-cli-simplify/T003-strip-run
|
|
3
|
+
status: planned
|
|
4
|
+
objective: "Remove init, audit, doctor dispatch from run.ts; keep only board"
|
|
5
|
+
depends_on: [E03-cli-simplify/T001-strip-args]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# T003: Strip Run
|
|
9
|
+
|
|
10
|
+
## Acceptance Criteria
|
|
11
|
+
|
|
12
|
+
- `run.ts` imports only `runBoard` from commands.
|
|
13
|
+
- `runCli` dispatches only `board`, `--version`, and `--help`.
|
|
14
|
+
- No dead imports (init, audit, doctor).
|
|
15
|
+
- All runner tests pass.
|
|
16
|
+
|
|
17
|
+
## Implementation Plan
|
|
18
|
+
|
|
19
|
+
- [ ] Read existing `run.ts` and `test/cli/run.test.ts`.
|
|
20
|
+
- [ ] Remove imports of `runInit`, `runAudit`, `runDoctor`.
|
|
21
|
+
- [ ] Remove init/audit/doctor dispatch branches.
|
|
22
|
+
- [ ] Update `test/cli/run.test.ts`.
|
|
23
|
+
- [ ] Run `npm test`.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E03-cli-simplify/T004-delete-commands
|
|
3
|
+
status: planned
|
|
4
|
+
objective: "Delete dead command files and supporting directories"
|
|
5
|
+
depends_on: [E03-cli-simplify/T003-strip-run]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# T004: Delete Commands
|
|
9
|
+
|
|
10
|
+
## Acceptance Criteria
|
|
11
|
+
|
|
12
|
+
- `src/commands/init.ts`, `audit.ts`, `doctor.ts`, `result.ts` do not exist.
|
|
13
|
+
- `src/init/` directory does not exist.
|
|
14
|
+
- `src/templates/` directory does not exist.
|
|
15
|
+
- Build still compiles (no broken imports from deleted files).
|
|
16
|
+
|
|
17
|
+
## Implementation Plan
|
|
18
|
+
|
|
19
|
+
- [ ] Verify no remaining imports reference files to be deleted.
|
|
20
|
+
- [ ] Delete `src/commands/init.ts`, `audit.ts`, `doctor.ts`, `result.ts`.
|
|
21
|
+
- [ ] Delete `src/init/` directory and all files within.
|
|
22
|
+
- [ ] Delete `src/templates/` directory and all files within.
|
|
23
|
+
- [ ] Run `npm run build` to confirm no broken imports.
|
|
24
|
+
- [ ] Run `npm run typecheck`.
|
package/.savepoint/releases/v1/epics/_archived/E03-cli-simplify/tasks/T005-update-cli-tests.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E03-cli-simplify/T005-update-cli-tests
|
|
3
|
+
status: planned
|
|
4
|
+
objective: "Update CLI tests to reflect board-only interface"
|
|
5
|
+
depends_on: [E03-cli-simplify/T003-strip-run]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# T005: Update CLI Tests
|
|
9
|
+
|
|
10
|
+
## Acceptance Criteria
|
|
11
|
+
|
|
12
|
+
- All CLI tests pass with board-only interface.
|
|
13
|
+
- No test cases reference init, audit, or doctor commands.
|
|
14
|
+
- `test/cli/`, `test/commands/` contain only board-relevant tests.
|
|
15
|
+
- `npm test` passes.
|
|
16
|
+
|
|
17
|
+
## Implementation Plan
|
|
18
|
+
|
|
19
|
+
- [ ] Review all files in `test/cli/` and `test/commands/`.
|
|
20
|
+
- [ ] Update or delete tests referencing init/audit/doctor.
|
|
21
|
+
- [ ] Ensure board command tests still cover TTY and non-TTY paths.
|
|
22
|
+
- [ ] Run `npm test`.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: epic-design
|
|
3
|
+
status: planned
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Epic E04: Board Phase Integration
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Integrate the phase model into the board TUI. Render phase letters on in_progress tasks, enable phase stepping via keyboard, enforce phase gating, and write phase back to task frontmatter. Remove the audit-review flow entirely.
|
|
11
|
+
|
|
12
|
+
## What this epic adds
|
|
13
|
+
|
|
14
|
+
- Phase letter rendering (B/T/A) with phase-derived colors on in_progress task cards.
|
|
15
|
+
- Phase stepping: space advances (build→test→audit→done), backspace retreats.
|
|
16
|
+
- Phase gating: cannot advance to done unless phase is audit; cannot skip phases.
|
|
17
|
+
- Phase write-back: `phase` field written alongside `status` in task frontmatter.
|
|
18
|
+
- Complete removal of audit proposal loading, AuditReviewApp, and audit event logging.
|
|
19
|
+
|
|
20
|
+
## Definition of Done
|
|
21
|
+
|
|
22
|
+
- Board renders phase letters on in_progress task cards with correct colors.
|
|
23
|
+
- Space/backspace walks through phases; done requires audit phase.
|
|
24
|
+
- Detail pane shows current phase and phase-aware transition preview.
|
|
25
|
+
- Task files are updated with `phase` field on transition.
|
|
26
|
+
- No audit-review code remains in `src/tui/audit-review/` or `src/commands/board.ts`.
|
|
27
|
+
- All board tests pass with phase model.
|
|
28
|
+
- Build and typecheck pass.
|
|
29
|
+
|
|
30
|
+
## Components and files
|
|
31
|
+
|
|
32
|
+
| Path | Purpose |
|
|
33
|
+
|------|---------|
|
|
34
|
+
| `src/tui/board-data.ts` | Phase on BoardTask; remove auditProposalsAvailable |
|
|
35
|
+
| `src/tui/Board.tsx` | Phase letter rendering on task cards |
|
|
36
|
+
| `src/tui/DetailPane.tsx` | Phase display and transition preview |
|
|
37
|
+
| `src/tui/App.tsx` | Phase stepping in input handler; remove audit request |
|
|
38
|
+
| `src/tui/io/gates.ts` | Phase-aware gate enforcement |
|
|
39
|
+
| `src/tui/io/write-status.ts` | Phase write-back to frontmatter |
|
|
40
|
+
| `src/tui/io/write-active-router-epic.ts` | Updated for 3-state router |
|
|
41
|
+
| `src/tui/io/write-active-router-release.ts` | Updated for 3-state router |
|
|
42
|
+
| `src/tui/state/app-reducer.ts` | Remove auditProposalsAvailable from state |
|
|
43
|
+
| `src/commands/board.ts` | Remove audit flow |
|
|
44
|
+
| `test/tui/board-data.test.ts` | Phase data model tests |
|
|
45
|
+
| `test/tui/state/` | Phase-aware state tests |
|
|
46
|
+
| `test/tui/io/` | Phase write and gate tests |
|
|
47
|
+
| `test/commands/board.test.ts` | Updated board command tests |
|
|
48
|
+
| (deleted) `src/tui/audit-review/` | Removed (5 files) |
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E04-board-phase-integration/T001-board-data-phases
|
|
3
|
+
status: planned
|
|
4
|
+
objective: "Add phase to BoardTask; remove auditProposalsAvailable from board-data.ts"
|
|
5
|
+
depends_on: [E02-domain-phase-model/T002-phase-frontmatter]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# T001: Board Data Phases
|
|
9
|
+
|
|
10
|
+
## Acceptance Criteria
|
|
11
|
+
|
|
12
|
+
- `BoardTask` interface includes `phase?: TaskPhase`.
|
|
13
|
+
- `buildBoardData` carries phase from task frontmatter to board tasks.
|
|
14
|
+
- `BoardData` interface has no `auditProposalsAvailable` field.
|
|
15
|
+
- `toBoardTask` copies phase from task document.
|
|
16
|
+
- `test/tui/board-data.test.ts` passes with phase data.
|
|
17
|
+
|
|
18
|
+
## Implementation Plan
|
|
19
|
+
|
|
20
|
+
- [ ] Read `board-data.ts` and `test/tui/board-data.test.ts`.
|
|
21
|
+
- [ ] Add `phase?: TaskPhase` to `BoardTask`.
|
|
22
|
+
- [ ] Remove `auditProposalsAvailable` from `BoardData`.
|
|
23
|
+
- [ ] Update `toBoardTask` to copy phase.
|
|
24
|
+
- [ ] Update `buildBoardData` signature and body.
|
|
25
|
+
- [ ] Update board-data tests.
|
|
26
|
+
- [ ] Run `npm test`.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E04-board-phase-integration/T002-phase-rendering
|
|
3
|
+
status: planned
|
|
4
|
+
objective: "Render phase glyphs with phase-derived color on in_progress task cards in Board.tsx"
|
|
5
|
+
depends_on: [E04-board-phase-integration/T001-board-data-phases]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# T002: Phase Rendering
|
|
9
|
+
|
|
10
|
+
## Acceptance Criteria
|
|
11
|
+
|
|
12
|
+
- In_progress task cards show phase glyphs inline: `▣` (build), `◇` (test), `◆` (audit).
|
|
13
|
+
- Phase glyph uses the accent color mapped by `PHASE_ACCENTS`.
|
|
14
|
+
- Planned and done task cards show no phase glyph.
|
|
15
|
+
- Cards are fixed width, titles are truncated (never wrap), metadata is dimmed.
|
|
16
|
+
- Focused card has accent border (Atari Orange) and slight background tint.
|
|
17
|
+
- Rendering works for 24-bit, 256-color, 16-color, and `NO_COLOR=1` terminals.
|
|
18
|
+
- Board component tests pass.
|
|
19
|
+
|
|
20
|
+
## Implementation Plan
|
|
21
|
+
|
|
22
|
+
- [ ] Read `Board.tsx` and `test/tui/components/`.
|
|
23
|
+
- [ ] Import `PHASE_ACCENTS` and `TaskPhase` in Board.
|
|
24
|
+
- [ ] Add `PHASE_GLYPHS` map: build→▣, test→◇, audit→◆.
|
|
25
|
+
- [ ] Update `TaskCardComponent` to accept phase and render glyph with phase color.
|
|
26
|
+
- [ ] Apply card styling rules: fixed width, truncate title, dimmed metadata, accent border on focus.
|
|
27
|
+
- [ ] Update component tests.
|
|
28
|
+
- [ ] Run `npm test`.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E04-board-phase-integration/T003-detail-pane-phases
|
|
3
|
+
status: planned
|
|
4
|
+
objective: "Render detail pane as centered overlay with board visible behind; add Esc close"
|
|
5
|
+
depends_on: [E04-board-phase-integration/T001-board-data-phases]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# T003: Detail Pane Overlay
|
|
9
|
+
|
|
10
|
+
## Acceptance Criteria
|
|
11
|
+
|
|
12
|
+
- Detail pane renders as a centered overlay on top of the board.
|
|
13
|
+
- Board remains visible and dimmed behind the overlay.
|
|
14
|
+
- Overlay shows: task ID, title, epic, release, status, current phase, description, acceptance criteria.
|
|
15
|
+
- Pressing `Esc` closes the overlay.
|
|
16
|
+
- Overlay width is calculated from terminal size (max 40 chars, or terminal width - 4).
|
|
17
|
+
- No layout breaks at any terminal width.
|
|
18
|
+
|
|
19
|
+
## Implementation Plan
|
|
20
|
+
|
|
21
|
+
- [ ] Read `DetailPane.tsx` and `test/tui/components/`.
|
|
22
|
+
- [ ] Convert DetailPane from replacing board to overlay mode.
|
|
23
|
+
- [ ] Add board dimming behind overlay (reduce opacity or dark tint).
|
|
24
|
+
- [ ] Add `Esc` handler in `App.tsx` to close overlay.
|
|
25
|
+
- [ ] Calculate overlay width from `useWindowSize`.
|
|
26
|
+
- [ ] Update component tests.
|
|
27
|
+
- [ ] Run `npm test`.
|