rafcode 2.5.1 → 3.2.1
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 +2 -1
- package/CLAUDE.md +7 -345
- package/RAF/{aaaabn-dependencies-watchdog/plans/02-update-planning-prompts.md → 13-dependencies-watchdog/plans/2-update-planning-prompts.md} +1 -1
- package/RAF/{aaaabn-dependencies-watchdog/plans/03-parse-dependencies-update-state.md → 13-dependencies-watchdog/plans/3-parse-dependencies-update-state.md} +1 -1
- package/RAF/{aaaabn-dependencies-watchdog/plans/04-implement-dependency-checking-in-do.md → 13-dependencies-watchdog/plans/4-implement-dependency-checking-in-do.md} +1 -1
- package/RAF/{aaaabn-dependencies-watchdog/plans/05-update-execution-prompts.md → 13-dependencies-watchdog/plans/5-update-execution-prompts.md} +1 -1
- package/RAF/{aaaabn-dependencies-watchdog/plans/06-add-tests.md → 13-dependencies-watchdog/plans/6-add-tests.md} +1 -1
- package/RAF/{aaaabr-decision-vault/plans/02-integrate-commit-into-plan.md → 17-decision-vault/plans/2-integrate-commit-into-plan.md} +1 -1
- package/RAF/{aaaabr-decision-vault/plans/03-add-tests-for-planning-commit.md → 17-decision-vault/plans/3-add-tests-for-planning-commit.md} +1 -1
- package/RAF/{aaaabt-verbose-chronicle/plans/04-commit-verification-before-halt.md → 19-verbose-chronicle/plans/4-commit-verification-before-halt.md} +1 -1
- package/RAF/{aaaacu-worktree-weaver/plans/02-worktree-plan-command.md → 20-worktree-weaver/plans/2-worktree-plan-command.md} +1 -1
- package/RAF/{aaaacu-worktree-weaver/plans/03-worktree-do-command.md → 20-worktree-weaver/plans/3-worktree-do-command.md} +1 -1
- package/RAF/{aaaacu-worktree-weaver/plans/04-auto-merge-and-cleanup.md → 20-worktree-weaver/plans/4-auto-merge-and-cleanup.md} +1 -1
- package/RAF/{aaaacu-worktree-weaver/plans/05-worktree-tests.md → 20-worktree-weaver/plans/5-worktree-tests.md} +1 -1
- package/RAF/{aaaacu-worktree-weaver/plans/06-update-documentation.md → 20-worktree-weaver/plans/6-update-documentation.md} +1 -1
- package/RAF/{aaaacv-trim-the-fat/plans/03-commit-artifacts-on-amend.md → 21-trim-the-fat/plans/3-commit-artifacts-on-amend.md} +1 -1
- package/RAF/{aaaacv-trim-the-fat/plans/04-worktree-aware-exit-messages.md → 21-trim-the-fat/plans/4-worktree-aware-exit-messages.md} +1 -1
- package/RAF/{aaaacw-prune-cycle/plans/02-cleanup-worktree-on-success.md → 22-prune-cycle/plans/2-cleanup-worktree-on-success.md} +1 -1
- package/RAF/{aaaacw-prune-cycle/plans/03-amend-recreate-worktree.md → 22-prune-cycle/plans/3-amend-recreate-worktree.md} +1 -1
- package/RAF/{aaaacx-epoch-shift/plans/02-update-pattern-matching.md → 23-epoch-shift/plans/2-update-pattern-matching.md} +1 -1
- package/RAF/{aaaacx-epoch-shift/plans/03-update-tests.md → 23-epoch-shift/plans/3-update-tests.md} +1 -1
- package/RAF/{aaaacx-epoch-shift/plans/04-update-documentation.md → 23-epoch-shift/plans/4-update-documentation.md} +1 -1
- package/RAF/{ahmpro-merge-guardian/plans/003-worktree-pr-creation.md → 24-merge-guardian/plans/3-worktree-pr-creation.md} +1 -1
- package/RAF/{ahmpro-merge-guardian/plans/004-post-execution-picker.md → 24-merge-guardian/plans/4-post-execution-picker.md} +1 -1
- package/RAF/{ahnbcu-letterjam/plans/02-update-tests.md → 25-letterjam/plans/2-update-tests.md} +1 -1
- package/RAF/{ahnbcu-letterjam/plans/03-migrate-command.md → 25-letterjam/plans/3-migrate-command.md} +1 -1
- package/RAF/{ahnbcu-letterjam/plans/04-update-documentation.md → 25-letterjam/plans/4-update-documentation.md} +1 -1
- package/RAF/{ahnwrk-worktree-weaver/plans/04-fix-pr-description.md → 26-worktree-weaver/plans/4-fix-pr-description.md} +1 -1
- package/RAF/{ahrren-turbo-finder/plans/02-medium-effort-do.md → 27-turbo-finder/plans/2-medium-effort-do.md} +1 -1
- package/RAF/{ahslfe-config-wizard/plans/02-refactor-codebase-to-use-config.md → 28-config-wizard/plans/2-refactor-codebase-to-use-config.md} +1 -1
- package/RAF/{ahslfe-config-wizard/plans/03-create-config-documentation.md → 28-config-wizard/plans/3-create-config-documentation.md} +1 -1
- package/RAF/{ahslfe-config-wizard/plans/04-implement-raf-config-command.md → 28-config-wizard/plans/4-implement-raf-config-command.md} +1 -1
- package/RAF/{ahslfe-config-wizard/plans/05-update-claude-md.md → 28-config-wizard/plans/5-update-claude-md.md} +1 -1
- package/RAF/{ahstvo-token-tracker/plans/03-unify-stream-json-execution.md → 29-token-tracker/plans/3-unify-stream-json-execution.md} +1 -1
- package/RAF/{ahstvo-token-tracker/plans/04-token-tracking-cost-calculation.md → 29-token-tracker/plans/4-token-tracking-cost-calculation.md} +1 -1
- package/RAF/{ahstvo-token-tracker/plans/05-token-cost-console-reporting.md → 29-token-tracker/plans/5-token-cost-console-reporting.md} +1 -1
- package/RAF/{ahstvo-token-tracker/plans/06-runtime-verbose-toggle.md → 29-token-tracker/plans/6-runtime-verbose-toggle.md} +1 -1
- package/RAF/{ahtahs-token-reaper/plans/02-accumulate-usage-in-retry-loop.md → 30-token-reaper/plans/2-accumulate-usage-in-retry-loop.md} +1 -1
- package/RAF/{ahtahs-token-reaper/plans/03-per-attempt-display-formatting.md → 30-token-reaper/plans/3-per-attempt-display-formatting.md} +1 -1
- package/RAF/{ahvrih-rate-forge/plans/03-rate-limit-estimation.md → 31-rate-forge/plans/3-rate-limit-estimation.md} +1 -1
- package/RAF/{ahvrih-rate-forge/plans/06-sync-readme-with-codebase.md → 31-rate-forge/plans/6-sync-readme-with-codebase.md} +1 -1
- package/RAF/{ahvrih-rate-forge/plans/08-plan-execution-metadata.md → 31-rate-forge/plans/8-plan-execution-metadata.md} +1 -1
- package/RAF/{ahwidh-quick-fix-gremlin/plans/06-sync-worktree-branch-before-execution.md → 32-quick-fix-gremlin/plans/6-sync-worktree-branch-before-execution.md} +1 -1
- package/RAF/{ahwqwq-model-whisperer/plans/03-add-plan-resume-flag.md → 33-model-whisperer/plans/3-add-plan-resume-flag.md} +1 -1
- package/RAF/{ahwvrz-legacy-sunset/plans/02-fix-resume-worktree-resolution.md → 34-legacy-sunset/plans/2-fix-resume-worktree-resolution.md} +1 -1
- package/RAF/{ahwzmc-echo-forge/plans/03-update-readme.md → 35-echo-forge/plans/3-update-readme.md} +1 -1
- package/RAF/37-flux-weave/decisions.md +22 -0
- package/RAF/37-flux-weave/input.md +4 -0
- package/RAF/37-flux-weave/outcomes/1-numeric-project-ids.md +32 -0
- package/RAF/37-flux-weave/outcomes/2-numeric-task-ids.md +34 -0
- package/RAF/37-flux-weave/outcomes/3-amend-commit-without-new-plans.md +23 -0
- package/RAF/37-flux-weave/outcomes/4-auto-detect-existing-project.md +30 -0
- package/RAF/37-flux-weave/plans/1-numeric-project-ids.md +75 -0
- package/RAF/37-flux-weave/plans/2-numeric-task-ids.md +65 -0
- package/RAF/37-flux-weave/plans/3-amend-commit-without-new-plans.md +54 -0
- package/RAF/37-flux-weave/plans/4-auto-detect-existing-project.md +52 -0
- package/RAF/38-dual-wielder/decisions.md +44 -0
- package/RAF/38-dual-wielder/input.md +13 -0
- package/RAF/38-dual-wielder/outcomes/1-config-schema-provider-types.md +47 -0
- package/RAF/38-dual-wielder/outcomes/2-abstract-cli-runner.md +33 -0
- package/RAF/38-dual-wielder/outcomes/3-implement-codex-runner.md +38 -0
- package/RAF/38-dual-wielder/outcomes/4-update-prompts-llm-agnostic.md +50 -0
- package/RAF/38-dual-wielder/outcomes/5-update-readme-docs.md +33 -0
- package/RAF/38-dual-wielder/outcomes/6-do-unified-project-scanning.md +25 -0
- package/RAF/38-dual-wielder/outcomes/7-fix-plan-amend-automode.md +28 -0
- package/RAF/38-dual-wielder/outcomes/8-e2e-test-codex-provider.md +139 -0
- package/RAF/38-dual-wielder/plans/1-config-schema-provider-types.md +90 -0
- package/RAF/38-dual-wielder/plans/2-abstract-cli-runner.md +76 -0
- package/RAF/38-dual-wielder/plans/3-implement-codex-runner.md +94 -0
- package/RAF/38-dual-wielder/plans/4-update-prompts-llm-agnostic.md +70 -0
- package/RAF/38-dual-wielder/plans/5-update-readme-docs.md +52 -0
- package/RAF/38-dual-wielder/plans/6-do-unified-project-scanning.md +40 -0
- package/RAF/38-dual-wielder/plans/7-fix-plan-amend-automode.md +51 -0
- package/RAF/38-dual-wielder/plans/8-e2e-test-codex-provider.md +95 -0
- package/RAF/39-pathless-rover/decisions.md +16 -0
- package/RAF/39-pathless-rover/input.md +2 -0
- package/RAF/39-pathless-rover/outcomes/1-fix-codex-stream-renderer.md +21 -0
- package/RAF/39-pathless-rover/outcomes/2-wire-provider-flag.md +28 -0
- package/RAF/39-pathless-rover/outcomes/3-remove-worktree-flag-do.md +41 -0
- package/RAF/39-pathless-rover/outcomes/4-remove-worktree-flag-plan-amend.md +30 -0
- package/RAF/39-pathless-rover/outcomes/5-update-prompts-and-docs.md +26 -0
- package/RAF/39-pathless-rover/plans/1-fix-codex-stream-renderer.md +43 -0
- package/RAF/39-pathless-rover/plans/2-wire-provider-flag.md +48 -0
- package/RAF/39-pathless-rover/plans/3-remove-worktree-flag-do.md +41 -0
- package/RAF/39-pathless-rover/plans/4-remove-worktree-flag-plan-amend.md +43 -0
- package/RAF/39-pathless-rover/plans/5-update-prompts-and-docs.md +31 -0
- package/RAF/40-numeric-order-fix/decisions.md +7 -0
- package/RAF/40-numeric-order-fix/input.md +19 -0
- package/RAF/40-numeric-order-fix/outcomes/1-fix-numeric-sort-order.md +18 -0
- package/RAF/40-numeric-order-fix/outcomes/2-add-npm-keywords.md +10 -0
- package/RAF/40-numeric-order-fix/plans/1-fix-numeric-sort-order.md +48 -0
- package/RAF/40-numeric-order-fix/plans/2-add-npm-keywords.md +23 -0
- package/README.md +62 -18
- package/dist/commands/config.js +7 -7
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/do.d.ts.map +1 -1
- package/dist/commands/do.js +51 -230
- package/dist/commands/do.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +96 -147
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/status.js +1 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/core/claude-runner.d.ts +19 -116
- package/dist/core/claude-runner.d.ts.map +1 -1
- package/dist/core/claude-runner.js +20 -173
- package/dist/core/claude-runner.js.map +1 -1
- package/dist/core/codex-runner.d.ts +41 -0
- package/dist/core/codex-runner.d.ts.map +1 -0
- package/dist/core/codex-runner.js +271 -0
- package/dist/core/codex-runner.js.map +1 -0
- package/dist/core/completion-detector.d.ts +47 -0
- package/dist/core/completion-detector.d.ts.map +1 -0
- package/dist/core/completion-detector.js +143 -0
- package/dist/core/completion-detector.js.map +1 -0
- package/dist/core/failure-analyzer.d.ts +1 -1
- package/dist/core/failure-analyzer.js +10 -10
- package/dist/core/failure-analyzer.js.map +1 -1
- package/dist/core/project-manager.d.ts.map +1 -1
- package/dist/core/project-manager.js +2 -2
- package/dist/core/project-manager.js.map +1 -1
- package/dist/core/pull-request.d.ts +4 -4
- package/dist/core/pull-request.js +13 -13
- package/dist/core/pull-request.js.map +1 -1
- package/dist/core/runner-factory.d.ts +12 -0
- package/dist/core/runner-factory.d.ts.map +1 -0
- package/dist/core/runner-factory.js +30 -0
- package/dist/core/runner-factory.js.map +1 -0
- package/dist/core/runner-interface.d.ts +14 -0
- package/dist/core/runner-interface.d.ts.map +1 -0
- package/dist/core/runner-interface.js +2 -0
- package/dist/core/runner-interface.js.map +1 -0
- package/dist/core/runner-types.d.ts +73 -0
- package/dist/core/runner-types.d.ts.map +1 -0
- package/dist/core/runner-types.js +2 -0
- package/dist/core/runner-types.js.map +1 -0
- package/dist/core/shutdown-handler.d.ts +8 -4
- package/dist/core/shutdown-handler.d.ts.map +1 -1
- package/dist/core/shutdown-handler.js +14 -8
- package/dist/core/shutdown-handler.js.map +1 -1
- package/dist/core/state-derivation.d.ts +2 -2
- package/dist/core/state-derivation.d.ts.map +1 -1
- package/dist/core/state-derivation.js +12 -15
- package/dist/core/state-derivation.js.map +1 -1
- package/dist/core/worktree.d.ts +1 -1
- package/dist/core/worktree.d.ts.map +1 -1
- package/dist/core/worktree.js +14 -16
- package/dist/core/worktree.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/parsers/codex-stream-renderer.d.ts +48 -0
- package/dist/parsers/codex-stream-renderer.d.ts.map +1 -0
- package/dist/parsers/codex-stream-renderer.js +158 -0
- package/dist/parsers/codex-stream-renderer.js.map +1 -0
- package/dist/parsers/output-parser.d.ts +2 -2
- package/dist/parsers/output-parser.js +2 -2
- package/dist/parsers/stream-renderer.d.ts +1 -1
- package/dist/parsers/stream-renderer.js +1 -1
- package/dist/prompts/amend.d.ts +1 -2
- package/dist/prompts/amend.d.ts.map +1 -1
- package/dist/prompts/amend.js +8 -9
- package/dist/prompts/amend.js.map +1 -1
- package/dist/prompts/execution.js +2 -2
- package/dist/prompts/execution.js.map +1 -1
- package/dist/prompts/planning.d.ts +1 -1
- package/dist/prompts/planning.d.ts.map +1 -1
- package/dist/prompts/planning.js +14 -15
- package/dist/prompts/planning.js.map +1 -1
- package/dist/types/config.d.ts +21 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +16 -0
- package/dist/types/config.js.map +1 -1
- package/dist/ui/project-picker.d.ts.map +1 -1
- package/dist/ui/project-picker.js.map +1 -1
- package/dist/utils/config.d.ts +24 -6
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +155 -15
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/name-generator.d.ts +2 -2
- package/dist/utils/name-generator.js +9 -9
- package/dist/utils/name-generator.js.map +1 -1
- package/dist/utils/paths.d.ts +32 -51
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +121 -150
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/token-tracker.d.ts +2 -2
- package/dist/utils/token-tracker.js +4 -4
- package/dist/utils/token-tracker.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +7 -10
- package/dist/utils/validation.js.map +1 -1
- package/package.json +7 -2
- package/src/commands/config.ts +7 -7
- package/src/commands/do.ts +53 -265
- package/src/commands/plan.ts +102 -155
- package/src/commands/status.ts +1 -1
- package/src/core/claude-runner.ts +33 -277
- package/src/core/codex-runner.ts +326 -0
- package/src/core/completion-detector.ts +177 -0
- package/src/core/failure-analyzer.ts +10 -10
- package/src/core/project-manager.ts +2 -1
- package/src/core/pull-request.ts +13 -13
- package/src/core/runner-factory.ts +35 -0
- package/src/core/runner-interface.ts +14 -0
- package/src/core/runner-types.ts +75 -0
- package/src/core/shutdown-handler.ts +17 -10
- package/src/core/state-derivation.ts +12 -15
- package/src/core/worktree.ts +14 -16
- package/src/index.ts +1 -1
- package/src/parsers/codex-stream-renderer.ts +210 -0
- package/src/parsers/output-parser.ts +2 -2
- package/src/parsers/stream-renderer.ts +1 -1
- package/src/prompts/amend.ts +7 -10
- package/src/prompts/config-docs.md +8 -8
- package/src/prompts/execution.ts +2 -2
- package/src/prompts/planning.ts +14 -16
- package/src/types/config.ts +39 -1
- package/src/ui/project-picker.ts +1 -0
- package/src/utils/config.ts +170 -14
- package/src/utils/name-generator.ts +9 -9
- package/src/utils/paths.ts +123 -159
- package/src/utils/token-tracker.ts +4 -4
- package/src/utils/validation.ts +7 -10
- package/tests/unit/commit-planning-artifacts-worktree.test.ts +14 -14
- package/tests/unit/commit-planning-artifacts.test.ts +40 -40
- package/tests/unit/config.test.ts +8 -8
- package/tests/unit/dependency-integration.test.ts +96 -96
- package/tests/unit/do-blocked-tasks.test.ts +1 -1
- package/tests/unit/do-command.test.ts +36 -36
- package/tests/unit/do-rerun.test.ts +1 -1
- package/tests/unit/execution-prompt.test.ts +62 -62
- package/tests/unit/git-stash.test.ts +4 -4
- package/tests/unit/paths.test.ts +135 -249
- package/tests/unit/plan-command.test.ts +103 -103
- package/tests/unit/planning-prompt.test.ts +3 -3
- package/tests/unit/project-manager.test.ts +9 -10
- package/tests/unit/project-picker.test.ts +74 -74
- package/tests/unit/pull-request.test.ts +3 -3
- package/tests/unit/state-derivation.test.ts +144 -144
- package/tests/unit/status-command.test.ts +71 -103
- package/tests/unit/worktree.test.ts +32 -33
- /package/RAF/{aaaaab-raf-task-improvements → 1-raf-task-improvements}/input.md +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/01-add-decisions-folder.md → 1-raf-task-improvements/outcomes/1-add-decisions-folder.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/02-fix-write-error-on-shutdown.md → 1-raf-task-improvements/outcomes/2-fix-write-error-on-shutdown.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/03-stash-changes-on-failure.md → 1-raf-task-improvements/outcomes/3-stash-changes-on-failure.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/04-add-project-name-to-commits.md → 1-raf-task-improvements/outcomes/4-add-project-name-to-commits.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/05-add-running-time-display.md → 1-raf-task-improvements/outcomes/5-add-running-time-display.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/06-add-task-name-to-logs.md → 1-raf-task-improvements/outcomes/6-add-task-name-to-logs.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/07-show-model-at-task-start.md → 1-raf-task-improvements/outcomes/7-show-model-at-task-start.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/09-remove-editor-placeholder-text.md → 1-raf-task-improvements/outcomes/9-remove-editor-placeholder-text.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements → 1-raf-task-improvements}/outcomes/SUMMARY.md +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/01-add-decisions-folder.md → 1-raf-task-improvements/plans/1-add-decisions-folder.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/02-fix-write-error-on-shutdown.md → 1-raf-task-improvements/plans/2-fix-write-error-on-shutdown.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/03-stash-changes-on-failure.md → 1-raf-task-improvements/plans/3-stash-changes-on-failure.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/04-add-project-name-to-commits.md → 1-raf-task-improvements/plans/4-add-project-name-to-commits.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/05-add-running-time-display.md → 1-raf-task-improvements/plans/5-add-running-time-display.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/06-add-task-name-to-logs.md → 1-raf-task-improvements/plans/6-add-task-name-to-logs.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/09-remove-editor-placeholder-text.md → 1-raf-task-improvements/plans/9-remove-editor-placeholder-text.md} +0 -0
- /package/RAF/{aaaabk-outcome-marker-fallback → 10-outcome-marker-fallback}/decisions.md +0 -0
- /package/RAF/{aaaabk-outcome-marker-fallback → 10-outcome-marker-fallback}/input.md +0 -0
- /package/RAF/{aaaabk-outcome-marker-fallback/outcomes/01-outcome-file-marker-fallback.md → 10-outcome-marker-fallback/outcomes/1-outcome-file-marker-fallback.md} +0 -0
- /package/RAF/{aaaabk-outcome-marker-fallback/outcomes/02-creative-project-naming.md → 10-outcome-marker-fallback/outcomes/2-creative-project-naming.md} +0 -0
- /package/RAF/{aaaabk-outcome-marker-fallback/plans/01-outcome-file-marker-fallback.md → 10-outcome-marker-fallback/plans/1-outcome-file-marker-fallback.md} +0 -0
- /package/RAF/{aaaabk-outcome-marker-fallback/plans/02-creative-project-naming.md → 10-outcome-marker-fallback/plans/2-creative-project-naming.md} +0 -0
- /package/RAF/{aaaabl-do-task-in-commit → 11-do-task-in-commit}/decisions.md +0 -0
- /package/RAF/{aaaabl-do-task-in-commit → 11-do-task-in-commit}/input.md +0 -0
- /package/RAF/{aaaabl-do-task-in-commit/outcomes/01-update-execution-prompt.md → 11-do-task-in-commit/outcomes/1-update-execution-prompt.md} +0 -0
- /package/RAF/{aaaabl-do-task-in-commit/outcomes/02-update-tests.md → 11-do-task-in-commit/outcomes/2-update-tests.md} +0 -0
- /package/RAF/{aaaabl-do-task-in-commit/outcomes/03-update-documentation.md → 11-do-task-in-commit/outcomes/3-update-documentation.md} +0 -0
- /package/RAF/{aaaabl-do-task-in-commit/plans/01-update-execution-prompt.md → 11-do-task-in-commit/plans/1-update-execution-prompt.md} +0 -0
- /package/RAF/{aaaabl-do-task-in-commit/plans/02-update-tests.md → 11-do-task-in-commit/plans/2-update-tests.md} +0 -0
- /package/RAF/{aaaabl-do-task-in-commit/plans/03-update-documentation.md → 11-do-task-in-commit/plans/3-update-documentation.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet → 12-name-picker-buffet}/decisions.md +0 -0
- /package/RAF/{aaaabm-name-picker-buffet → 12-name-picker-buffet}/input.md +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/01-name-picker-for-raf-plan.md → 12-name-picker-buffet/outcomes/1-name-picker-for-raf-plan.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/02-interactive-project-picker-for-raf-do.md → 12-name-picker-buffet/outcomes/2-interactive-project-picker-for-raf-do.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/03-raf-status-truncation.md → 12-name-picker-buffet/outcomes/3-raf-status-truncation.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/04-failure-reason-details.md → 12-name-picker-buffet/outcomes/4-failure-reason-details.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/05-remove-raf-commits.md → 12-name-picker-buffet/outcomes/5-remove-raf-commits.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/06-update-execution-prompt-for-commits.md → 12-name-picker-buffet/outcomes/6-update-execution-prompt-for-commits.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/07-fix-plan-mode-user-prompt.md → 12-name-picker-buffet/outcomes/7-fix-plan-mode-user-prompt.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/08-add-auto-flag-for-plan-mode.md → 12-name-picker-buffet/outcomes/8-add-auto-flag-for-plan-mode.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/01-name-picker-for-raf-plan.md → 12-name-picker-buffet/plans/1-name-picker-for-raf-plan.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/02-interactive-project-picker-for-raf-do.md → 12-name-picker-buffet/plans/2-interactive-project-picker-for-raf-do.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/03-raf-status-truncation.md → 12-name-picker-buffet/plans/3-raf-status-truncation.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/04-failure-reason-details.md → 12-name-picker-buffet/plans/4-failure-reason-details.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/05-remove-raf-commits.md → 12-name-picker-buffet/plans/5-remove-raf-commits.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/06-update-execution-prompt-for-commits.md → 12-name-picker-buffet/plans/6-update-execution-prompt-for-commits.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/07-fix-plan-mode-user-prompt.md → 12-name-picker-buffet/plans/7-fix-plan-mode-user-prompt.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/08-add-auto-flag-for-plan-mode.md → 12-name-picker-buffet/plans/8-add-auto-flag-for-plan-mode.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog → 13-dependencies-watchdog}/decisions.md +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog → 13-dependencies-watchdog}/input.md +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/01-define-dependency-syntax.md → 13-dependencies-watchdog/outcomes/1-define-dependency-syntax.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/02-update-planning-prompts.md → 13-dependencies-watchdog/outcomes/2-update-planning-prompts.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/03-parse-dependencies-update-state.md → 13-dependencies-watchdog/outcomes/3-parse-dependencies-update-state.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/04-implement-dependency-checking-in-do.md → 13-dependencies-watchdog/outcomes/4-implement-dependency-checking-in-do.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/05-update-execution-prompts.md → 13-dependencies-watchdog/outcomes/5-update-execution-prompts.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/06-add-tests.md → 13-dependencies-watchdog/outcomes/6-add-tests.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/07-add-act-alias.md → 13-dependencies-watchdog/outcomes/7-add-act-alias.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/08-add-exit-message.md → 13-dependencies-watchdog/outcomes/8-add-exit-message.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/plans/01-define-dependency-syntax.md → 13-dependencies-watchdog/plans/1-define-dependency-syntax.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/plans/07-add-act-alias.md → 13-dependencies-watchdog/plans/7-add-act-alias.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/plans/08-add-exit-message.md → 13-dependencies-watchdog/plans/8-add-exit-message.md} +0 -0
- /package/RAF/{aaaabo-watchdog → 14-watchdog}/decisions.md +0 -0
- /package/RAF/{aaaabo-watchdog → 14-watchdog}/input.md +0 -0
- /package/RAF/{aaaabo-watchdog/outcomes/01-amend-flag-position.md → 14-watchdog/outcomes/1-amend-flag-position.md} +0 -0
- /package/RAF/{aaaabo-watchdog/outcomes/02-details-only-on-failure.md → 14-watchdog/outcomes/2-details-only-on-failure.md} +0 -0
- /package/RAF/{aaaabo-watchdog/plans/01-amend-flag-position.md → 14-watchdog/plans/1-amend-flag-position.md} +0 -0
- /package/RAF/{aaaabo-watchdog/plans/02-details-only-on-failure.md → 14-watchdog/plans/2-details-only-on-failure.md} +0 -0
- /package/RAF/{aaaabp-name-lottery → 15-name-lottery}/decisions.md +0 -0
- /package/RAF/{aaaabp-name-lottery → 15-name-lottery}/input.md +0 -0
- /package/RAF/{aaaabp-name-lottery/outcomes/01-auto-pick-project-name.md → 15-name-lottery/outcomes/1-auto-pick-project-name.md} +0 -0
- /package/RAF/{aaaabp-name-lottery/outcomes/02-mention-plan-files-in-commit.md → 15-name-lottery/outcomes/2-mention-plan-files-in-commit.md} +0 -0
- /package/RAF/{aaaabp-name-lottery/outcomes/03-fix-input-md-in-amend-flow.md → 15-name-lottery/outcomes/3-fix-input-md-in-amend-flow.md} +0 -0
- /package/RAF/{aaaabp-name-lottery/plans/01-auto-pick-project-name.md → 15-name-lottery/plans/1-auto-pick-project-name.md} +0 -0
- /package/RAF/{aaaabp-name-lottery/plans/02-mention-plan-files-in-commit.md → 15-name-lottery/plans/2-mention-plan-files-in-commit.md} +0 -0
- /package/RAF/{aaaabp-name-lottery/plans/03-fix-input-md-in-amend-flow.md → 15-name-lottery/plans/3-fix-input-md-in-amend-flow.md} +0 -0
- /package/RAF/{aaaabq-planning-scalpel → 16-planning-scalpel}/decisions.md +0 -0
- /package/RAF/{aaaabq-planning-scalpel → 16-planning-scalpel}/input.md +0 -0
- /package/RAF/{aaaabq-planning-scalpel/outcomes/01-update-git-commit-instructions.md → 16-planning-scalpel/outcomes/1-update-git-commit-instructions.md} +0 -0
- /package/RAF/{aaaabq-planning-scalpel/plans/01-update-git-commit-instructions.md → 16-planning-scalpel/plans/1-update-git-commit-instructions.md} +0 -0
- /package/RAF/{aaaabr-decision-vault → 17-decision-vault}/decisions.md +0 -0
- /package/RAF/{aaaabr-decision-vault → 17-decision-vault}/input.md +0 -0
- /package/RAF/{aaaabr-decision-vault/outcomes/01-create-git-commit-utility.md → 17-decision-vault/outcomes/1-create-git-commit-utility.md} +0 -0
- /package/RAF/{aaaabr-decision-vault/outcomes/02-integrate-commit-into-plan.md → 17-decision-vault/outcomes/2-integrate-commit-into-plan.md} +0 -0
- /package/RAF/{aaaabr-decision-vault/outcomes/03-add-tests-for-planning-commit.md → 17-decision-vault/outcomes/3-add-tests-for-planning-commit.md} +0 -0
- /package/RAF/{aaaabr-decision-vault/plans/01-create-git-commit-utility.md → 17-decision-vault/plans/1-create-git-commit-utility.md} +0 -0
- /package/RAF/{aaaabs-workflow-forge → 18-workflow-forge}/decisions.md +0 -0
- /package/RAF/{aaaabs-workflow-forge → 18-workflow-forge}/input.md +0 -0
- /package/RAF/{aaaabs-workflow-forge/outcomes/01-add-task-number-progress.md → 18-workflow-forge/outcomes/1-add-task-number-progress.md} +0 -0
- /package/RAF/{aaaabs-workflow-forge/outcomes/02-update-plan-do-prompts.md → 18-workflow-forge/outcomes/2-update-plan-do-prompts.md} +0 -0
- /package/RAF/{aaaabs-workflow-forge/plans/01-add-task-number-progress.md → 18-workflow-forge/plans/1-add-task-number-progress.md} +0 -0
- /package/RAF/{aaaabs-workflow-forge/plans/02-update-plan-do-prompts.md → 18-workflow-forge/plans/2-update-plan-do-prompts.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle → 19-verbose-chronicle}/decisions.md +0 -0
- /package/RAF/{aaaabt-verbose-chronicle → 19-verbose-chronicle}/input.md +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/outcomes/01-amend-iteration-references.md → 19-verbose-chronicle/outcomes/1-amend-iteration-references.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/outcomes/02-verbose-task-name-display.md → 19-verbose-chronicle/outcomes/2-verbose-task-name-display.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/outcomes/03-verbose-streaming-fix.md → 19-verbose-chronicle/outcomes/3-verbose-streaming-fix.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/outcomes/04-commit-verification-before-halt.md → 19-verbose-chronicle/outcomes/4-commit-verification-before-halt.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/plans/01-amend-iteration-references.md → 19-verbose-chronicle/plans/1-amend-iteration-references.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/plans/02-verbose-task-name-display.md → 19-verbose-chronicle/plans/2-verbose-task-name-display.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/plans/03-verbose-streaming-fix.md → 19-verbose-chronicle/plans/3-verbose-streaming-fix.md} +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution → 2-raf-task-improvements-execution}/decisions/DECISIONS.md +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution → 2-raf-task-improvements-execution}/input.md +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution/outcomes/01-commit-show-model-at-task-start.md → 2-raf-task-improvements-execution/outcomes/1-commit-show-model-at-task-start.md} +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution/outcomes/02-delete-skipped-plan.md → 2-raf-task-improvements-execution/outcomes/2-delete-skipped-plan.md} +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution → 2-raf-task-improvements-execution}/outcomes/SUMMARY.md +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution/plans/01-commit-show-model-at-task-start.md → 2-raf-task-improvements-execution/plans/1-commit-show-model-at-task-start.md} +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution/plans/02-delete-skipped-plan.md → 2-raf-task-improvements-execution/plans/2-delete-skipped-plan.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver → 20-worktree-weaver}/decisions.md +0 -0
- /package/RAF/{aaaacu-worktree-weaver → 20-worktree-weaver}/input.md +0 -0
- /package/RAF/{aaaacu-worktree-weaver/outcomes/01-git-worktree-utilities.md → 20-worktree-weaver/outcomes/1-git-worktree-utilities.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver/outcomes/02-worktree-plan-command.md → 20-worktree-weaver/outcomes/2-worktree-plan-command.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver/outcomes/03-worktree-do-command.md → 20-worktree-weaver/outcomes/3-worktree-do-command.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver/outcomes/04-auto-merge-and-cleanup.md → 20-worktree-weaver/outcomes/4-auto-merge-and-cleanup.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver/outcomes/05-worktree-tests.md → 20-worktree-weaver/outcomes/5-worktree-tests.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver/outcomes/06-update-documentation.md → 20-worktree-weaver/outcomes/6-update-documentation.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver/plans/01-git-worktree-utilities.md → 20-worktree-weaver/plans/1-git-worktree-utilities.md} +0 -0
- /package/RAF/{aaaacv-trim-the-fat → 21-trim-the-fat}/decisions.md +0 -0
- /package/RAF/{aaaacv-trim-the-fat → 21-trim-the-fat}/input.md +0 -0
- /package/RAF/{aaaacv-trim-the-fat/outcomes/01-add-worktree-support-to-status.md → 21-trim-the-fat/outcomes/1-add-worktree-support-to-status.md} +0 -0
- /package/RAF/{aaaacv-trim-the-fat/outcomes/02-remove-multi-project-from-do.md → 21-trim-the-fat/outcomes/2-remove-multi-project-from-do.md} +0 -0
- /package/RAF/{aaaacv-trim-the-fat/outcomes/03-commit-artifacts-on-amend.md → 21-trim-the-fat/outcomes/3-commit-artifacts-on-amend.md} +0 -0
- /package/RAF/{aaaacv-trim-the-fat/outcomes/04-worktree-aware-exit-messages.md → 21-trim-the-fat/outcomes/4-worktree-aware-exit-messages.md} +0 -0
- /package/RAF/{aaaacv-trim-the-fat/plans/01-add-worktree-support-to-status.md → 21-trim-the-fat/plans/1-add-worktree-support-to-status.md} +0 -0
- /package/RAF/{aaaacv-trim-the-fat/plans/02-remove-multi-project-from-do.md → 21-trim-the-fat/plans/2-remove-multi-project-from-do.md} +0 -0
- /package/RAF/{aaaacw-prune-cycle → 22-prune-cycle}/decisions.md +0 -0
- /package/RAF/{aaaacw-prune-cycle → 22-prune-cycle}/input.md +0 -0
- /package/RAF/{aaaacw-prune-cycle/outcomes/01-create-worktree-from-branch.md → 22-prune-cycle/outcomes/1-create-worktree-from-branch.md} +0 -0
- /package/RAF/{aaaacw-prune-cycle/outcomes/02-cleanup-worktree-on-success.md → 22-prune-cycle/outcomes/2-cleanup-worktree-on-success.md} +0 -0
- /package/RAF/{aaaacw-prune-cycle/outcomes/03-amend-recreate-worktree.md → 22-prune-cycle/outcomes/3-amend-recreate-worktree.md} +0 -0
- /package/RAF/{aaaacw-prune-cycle/plans/01-create-worktree-from-branch.md → 22-prune-cycle/plans/1-create-worktree-from-branch.md} +0 -0
- /package/RAF/{aaaacx-epoch-shift → 23-epoch-shift}/decisions.md +0 -0
- /package/RAF/{aaaacx-epoch-shift → 23-epoch-shift}/input.md +0 -0
- /package/RAF/{aaaacx-epoch-shift/outcomes/01-epoch-id-generation.md → 23-epoch-shift/outcomes/1-epoch-id-generation.md} +0 -0
- /package/RAF/{aaaacx-epoch-shift/outcomes/02-update-pattern-matching.md → 23-epoch-shift/outcomes/2-update-pattern-matching.md} +0 -0
- /package/RAF/{aaaacx-epoch-shift/outcomes/03-update-tests.md → 23-epoch-shift/outcomes/3-update-tests.md} +0 -0
- /package/RAF/{aaaacx-epoch-shift/outcomes/04-update-documentation.md → 23-epoch-shift/outcomes/4-update-documentation.md} +0 -0
- /package/RAF/{aaaacx-epoch-shift/plans/01-epoch-id-generation.md → 23-epoch-shift/plans/1-epoch-id-generation.md} +0 -0
- /package/RAF/{ahmpro-merge-guardian → 24-merge-guardian}/decisions.md +0 -0
- /package/RAF/{ahmpro-merge-guardian → 24-merge-guardian}/input.md +0 -0
- /package/RAF/{ahmpro-merge-guardian/outcomes/001-fix-amend-worktree-commit.md → 24-merge-guardian/outcomes/1-fix-amend-worktree-commit.md} +0 -0
- /package/RAF/{ahmpro-merge-guardian/outcomes/002-base36-task-ids.md → 24-merge-guardian/outcomes/2-base36-task-ids.md} +0 -0
- /package/RAF/{ahmpro-merge-guardian/outcomes/003-worktree-pr-creation.md → 24-merge-guardian/outcomes/3-worktree-pr-creation.md} +0 -0
- /package/RAF/{ahmpro-merge-guardian/outcomes/004-post-execution-picker.md → 24-merge-guardian/outcomes/4-post-execution-picker.md} +0 -0
- /package/RAF/{ahmpro-merge-guardian/plans/001-fix-amend-worktree-commit.md → 24-merge-guardian/plans/1-fix-amend-worktree-commit.md} +0 -0
- /package/RAF/{ahmpro-merge-guardian/plans/002-base36-task-ids.md → 24-merge-guardian/plans/2-base36-task-ids.md} +0 -0
- /package/RAF/{ahnbcu-letterjam → 25-letterjam}/decisions.md +0 -0
- /package/RAF/{ahnbcu-letterjam → 25-letterjam}/input.md +0 -0
- /package/RAF/{ahnbcu-letterjam/outcomes/01-base26-encoding.md → 25-letterjam/outcomes/1-base26-encoding.md} +0 -0
- /package/RAF/{ahnbcu-letterjam/outcomes/02-update-tests.md → 25-letterjam/outcomes/2-update-tests.md} +0 -0
- /package/RAF/{ahnbcu-letterjam/outcomes/03-migrate-command.md → 25-letterjam/outcomes/3-migrate-command.md} +0 -0
- /package/RAF/{ahnbcu-letterjam/outcomes/04-update-documentation.md → 25-letterjam/outcomes/4-update-documentation.md} +0 -0
- /package/RAF/{ahnbcu-letterjam/plans/01-base26-encoding.md → 25-letterjam/plans/1-base26-encoding.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver → 26-worktree-weaver}/decisions.md +0 -0
- /package/RAF/{ahnwrk-worktree-weaver → 26-worktree-weaver}/input.md +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/outcomes/01-remove-co-authored-by.md → 26-worktree-weaver/outcomes/1-remove-co-authored-by.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/outcomes/02-update-task-status-format.md → 26-worktree-weaver/outcomes/2-update-task-status-format.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/outcomes/03-worktree-auto-discovery.md → 26-worktree-weaver/outcomes/3-worktree-auto-discovery.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/outcomes/04-fix-pr-description.md → 26-worktree-weaver/outcomes/4-fix-pr-description.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/plans/01-remove-co-authored-by.md → 26-worktree-weaver/plans/1-remove-co-authored-by.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/plans/02-update-task-status-format.md → 26-worktree-weaver/plans/2-update-task-status-format.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/plans/03-worktree-auto-discovery.md → 26-worktree-weaver/plans/3-worktree-auto-discovery.md} +0 -0
- /package/RAF/{ahrren-turbo-finder → 27-turbo-finder}/decisions.md +0 -0
- /package/RAF/{ahrren-turbo-finder → 27-turbo-finder}/input.md +0 -0
- /package/RAF/{ahrren-turbo-finder/outcomes/01-worktree-auto-detect.md → 27-turbo-finder/outcomes/1-worktree-auto-detect.md} +0 -0
- /package/RAF/{ahrren-turbo-finder/outcomes/02-medium-effort-do.md → 27-turbo-finder/outcomes/2-medium-effort-do.md} +0 -0
- /package/RAF/{ahrren-turbo-finder/plans/01-worktree-auto-detect.md → 27-turbo-finder/plans/1-worktree-auto-detect.md} +0 -0
- /package/RAF/{ahslfe-config-wizard → 28-config-wizard}/decisions.md +0 -0
- /package/RAF/{ahslfe-config-wizard → 28-config-wizard}/input.md +0 -0
- /package/RAF/{ahslfe-config-wizard/outcomes/01-define-config-schema.md → 28-config-wizard/outcomes/1-define-config-schema.md} +0 -0
- /package/RAF/{ahslfe-config-wizard/outcomes/02-refactor-codebase-to-use-config.md → 28-config-wizard/outcomes/2-refactor-codebase-to-use-config.md} +0 -0
- /package/RAF/{ahslfe-config-wizard/outcomes/03-create-config-documentation.md → 28-config-wizard/outcomes/3-create-config-documentation.md} +0 -0
- /package/RAF/{ahslfe-config-wizard/outcomes/04-implement-raf-config-command.md → 28-config-wizard/outcomes/4-implement-raf-config-command.md} +0 -0
- /package/RAF/{ahslfe-config-wizard/outcomes/05-update-claude-md.md → 28-config-wizard/outcomes/5-update-claude-md.md} +0 -0
- /package/RAF/{ahslfe-config-wizard/plans/01-define-config-schema.md → 28-config-wizard/plans/1-define-config-schema.md} +0 -0
- /package/RAF/{ahstvo-token-tracker → 29-token-tracker}/decisions.md +0 -0
- /package/RAF/{ahstvo-token-tracker → 29-token-tracker}/input.md +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/01-full-model-id-support.md → 29-token-tracker/outcomes/1-full-model-id-support.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/02-name-generation-no-session.md → 29-token-tracker/outcomes/2-name-generation-no-session.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/03-unify-stream-json-execution.md → 29-token-tracker/outcomes/3-unify-stream-json-execution.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/04-token-tracking-cost-calculation.md → 29-token-tracker/outcomes/4-token-tracking-cost-calculation.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/05-token-cost-console-reporting.md → 29-token-tracker/outcomes/5-token-cost-console-reporting.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/06-runtime-verbose-toggle.md → 29-token-tracker/outcomes/6-runtime-verbose-toggle.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/07-readme-config-docs.md → 29-token-tracker/outcomes/7-readme-config-docs.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/plans/01-full-model-id-support.md → 29-token-tracker/plans/1-full-model-id-support.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/plans/02-name-generation-no-session.md → 29-token-tracker/plans/2-name-generation-no-session.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/plans/07-readme-config-docs.md → 29-token-tracker/plans/7-readme-config-docs.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution → 3-multi-project-execution}/decisions/DECISIONS.md +0 -0
- /package/RAF/{aaaaad-multi-project-execution → 3-multi-project-execution}/input.md +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/01-remove-state-json.md → 3-multi-project-execution/outcomes/1-remove-state-json.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/02-update-raf-status.md → 3-multi-project-execution/outcomes/2-update-raf-status.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/03-simplify-git-logic.md → 3-multi-project-execution/outcomes/3-simplify-git-logic.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/04-auto-commit-planning.md → 3-multi-project-execution/outcomes/4-auto-commit-planning.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/05-rerun-failed-tasks.md → 3-multi-project-execution/outcomes/5-rerun-failed-tasks.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/06-multi-project-execution.md → 3-multi-project-execution/outcomes/6-multi-project-execution.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/07-verify-timeout.md → 3-multi-project-execution/outcomes/7-verify-timeout.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/08-move-decisions-file.md → 3-multi-project-execution/outcomes/8-move-decisions-file.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution → 3-multi-project-execution}/outcomes/SUMMARY.md +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/01-remove-state-json.md → 3-multi-project-execution/plans/1-remove-state-json.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/02-update-raf-status.md → 3-multi-project-execution/plans/2-update-raf-status.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/03-simplify-git-logic.md → 3-multi-project-execution/plans/3-simplify-git-logic.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/04-auto-commit-planning.md → 3-multi-project-execution/plans/4-auto-commit-planning.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/05-rerun-failed-tasks.md → 3-multi-project-execution/plans/5-rerun-failed-tasks.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/06-multi-project-execution.md → 3-multi-project-execution/plans/6-multi-project-execution.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/07-verify-timeout.md → 3-multi-project-execution/plans/7-verify-timeout.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/08-move-decisions-file.md → 3-multi-project-execution/plans/8-move-decisions-file.md} +0 -0
- /package/RAF/{ahtahs-token-reaper → 30-token-reaper}/decisions.md +0 -0
- /package/RAF/{ahtahs-token-reaper → 30-token-reaper}/input.md +0 -0
- /package/RAF/{ahtahs-token-reaper/outcomes/01-extend-token-tracker-data-model.md → 30-token-reaper/outcomes/1-extend-token-tracker-data-model.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/outcomes/02-accumulate-usage-in-retry-loop.md → 30-token-reaper/outcomes/2-accumulate-usage-in-retry-loop.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/outcomes/03-per-attempt-display-formatting.md → 30-token-reaper/outcomes/3-per-attempt-display-formatting.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/outcomes/04-add-model-name-to-claude-call-logs.md → 30-token-reaper/outcomes/4-add-model-name-to-claude-call-logs.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/outcomes/05-handle-invalid-config-in-raf-config.md → 30-token-reaper/outcomes/5-handle-invalid-config-in-raf-config.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/outcomes/06-fix-verbose-toggle-timer-display.md → 30-token-reaper/outcomes/6-fix-verbose-toggle-timer-display.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/plans/01-extend-token-tracker-data-model.md → 30-token-reaper/plans/1-extend-token-tracker-data-model.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/plans/04-add-model-name-to-claude-call-logs.md → 30-token-reaper/plans/4-add-model-name-to-claude-call-logs.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/plans/05-handle-invalid-config-in-raf-config.md → 30-token-reaper/plans/5-handle-invalid-config-in-raf-config.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/plans/06-fix-verbose-toggle-timer-display.md → 30-token-reaper/plans/6-fix-verbose-toggle-timer-display.md} +0 -0
- /package/RAF/{ahvrih-rate-forge → 31-rate-forge}/decisions.md +0 -0
- /package/RAF/{ahvrih-rate-forge → 31-rate-forge}/input.md +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/01-remove-claude-command-config.md → 31-rate-forge/outcomes/1-remove-claude-command-config.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/02-fix-mixed-attempt-cost.md → 31-rate-forge/outcomes/2-fix-mixed-attempt-cost.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/03-rate-limit-estimation.md → 31-rate-forge/outcomes/3-rate-limit-estimation.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/04-show-version-in-do-logs.md → 31-rate-forge/outcomes/4-show-version-in-do-logs.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/05-sync-main-before-worktree.md → 31-rate-forge/outcomes/5-sync-main-before-worktree.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/06-sync-readme-with-codebase.md → 31-rate-forge/outcomes/6-sync-readme-with-codebase.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/07-no-session-persistence.md → 31-rate-forge/outcomes/7-no-session-persistence.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/08-plan-execution-metadata.md → 31-rate-forge/outcomes/8-plan-execution-metadata.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/plans/01-remove-claude-command-config.md → 31-rate-forge/plans/1-remove-claude-command-config.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/plans/02-fix-mixed-attempt-cost.md → 31-rate-forge/plans/2-fix-mixed-attempt-cost.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/plans/04-show-version-in-do-logs.md → 31-rate-forge/plans/4-show-version-in-do-logs.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/plans/05-sync-main-before-worktree.md → 31-rate-forge/plans/5-sync-main-before-worktree.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/plans/07-no-session-persistence.md → 31-rate-forge/plans/7-no-session-persistence.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin → 32-quick-fix-gremlin}/decisions.md +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin → 32-quick-fix-gremlin}/input.md +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/01-fix-name-generation-prompt.md → 32-quick-fix-gremlin/outcomes/1-fix-name-generation-prompt.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/02-fix-amend-commit-scope.md → 32-quick-fix-gremlin/outcomes/2-fix-amend-commit-scope.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/03-fix-diverged-main-branch-sync.md → 32-quick-fix-gremlin/outcomes/3-fix-diverged-main-branch-sync.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/04-wire-rate-limit-to-do-command.md → 32-quick-fix-gremlin/outcomes/4-wire-rate-limit-to-do-command.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/05-add-config-get-set-flags.md → 32-quick-fix-gremlin/outcomes/5-add-config-get-set-flags.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/06-sync-worktree-branch-before-execution.md → 32-quick-fix-gremlin/outcomes/6-sync-worktree-branch-before-execution.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/07-update-frontmatter-format.md → 32-quick-fix-gremlin/outcomes/7-update-frontmatter-format.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/08-remove-plan-token-report.md → 32-quick-fix-gremlin/outcomes/8-remove-plan-token-report.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/01-fix-name-generation-prompt.md → 32-quick-fix-gremlin/plans/1-fix-name-generation-prompt.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/02-fix-amend-commit-scope.md → 32-quick-fix-gremlin/plans/2-fix-amend-commit-scope.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/03-fix-diverged-main-branch-sync.md → 32-quick-fix-gremlin/plans/3-fix-diverged-main-branch-sync.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/04-wire-rate-limit-to-do-command.md → 32-quick-fix-gremlin/plans/4-wire-rate-limit-to-do-command.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/05-add-config-get-set-flags.md → 32-quick-fix-gremlin/plans/5-add-config-get-set-flags.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/07-update-frontmatter-format.md → 32-quick-fix-gremlin/plans/7-update-frontmatter-format.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/08-remove-plan-token-report.md → 32-quick-fix-gremlin/plans/8-remove-plan-token-report.md} +0 -0
- /package/RAF/{ahwqwq-model-whisperer → 33-model-whisperer}/decisions.md +0 -0
- /package/RAF/{ahwqwq-model-whisperer → 33-model-whisperer}/input.md +0 -0
- /package/RAF/{ahwqwq-model-whisperer/outcomes/01-show-model-on-task-line.md → 33-model-whisperer/outcomes/1-show-model-on-task-line.md} +0 -0
- /package/RAF/{ahwqwq-model-whisperer/outcomes/02-use-claude-cost-estimation.md → 33-model-whisperer/outcomes/2-use-claude-cost-estimation.md} +0 -0
- /package/RAF/{ahwqwq-model-whisperer/outcomes/03-add-plan-resume-flag.md → 33-model-whisperer/outcomes/3-add-plan-resume-flag.md} +0 -0
- /package/RAF/{ahwqwq-model-whisperer/plans/01-show-model-on-task-line.md → 33-model-whisperer/plans/1-show-model-on-task-line.md} +0 -0
- /package/RAF/{ahwqwq-model-whisperer/plans/02-use-claude-cost-estimation.md → 33-model-whisperer/plans/2-use-claude-cost-estimation.md} +0 -0
- /package/RAF/{ahwvrz-legacy-sunset → 34-legacy-sunset}/decisions.md +0 -0
- /package/RAF/{ahwvrz-legacy-sunset → 34-legacy-sunset}/input.md +0 -0
- /package/RAF/{ahwvrz-legacy-sunset/outcomes/01-remove-migrate-command.md → 34-legacy-sunset/outcomes/1-remove-migrate-command.md} +0 -0
- /package/RAF/{ahwvrz-legacy-sunset/outcomes/02-fix-resume-worktree-resolution.md → 34-legacy-sunset/outcomes/2-fix-resume-worktree-resolution.md} +0 -0
- /package/RAF/{ahwvrz-legacy-sunset/plans/01-remove-migrate-command.md → 34-legacy-sunset/plans/1-remove-migrate-command.md} +0 -0
- /package/RAF/{ahwzmc-echo-forge → 35-echo-forge}/decisions.md +0 -0
- /package/RAF/{ahwzmc-echo-forge → 35-echo-forge}/input.md +0 -0
- /package/RAF/{ahwzmc-echo-forge/outcomes/01-change-low-effort-default-to-sonnet.md → 35-echo-forge/outcomes/1-change-low-effort-default-to-sonnet.md} +0 -0
- /package/RAF/{ahwzmc-echo-forge/outcomes/02-add-no-worktree-flag.md → 35-echo-forge/outcomes/2-add-no-worktree-flag.md} +0 -0
- /package/RAF/{ahwzmc-echo-forge/outcomes/03-update-readme.md → 35-echo-forge/outcomes/3-update-readme.md} +0 -0
- /package/RAF/{ahwzmc-echo-forge/plans/01-change-low-effort-default-to-sonnet.md → 35-echo-forge/plans/1-change-low-effort-default-to-sonnet.md} +0 -0
- /package/RAF/{ahwzmc-echo-forge/plans/02-add-no-worktree-flag.md → 35-echo-forge/plans/2-add-no-worktree-flag.md} +0 -0
- /package/RAF/{aifqwf-fix-amend-commit-again → 36-fix-amend-commit-again}/decisions.md +0 -0
- /package/RAF/{aifqwf-fix-amend-commit-again → 36-fix-amend-commit-again}/input.md +0 -0
- /package/RAF/{aifqwf-fix-amend-commit-again/outcomes/01-update-effort-mapping-defaults.md → 36-fix-amend-commit-again/outcomes/1-update-effort-mapping-defaults.md} +0 -0
- /package/RAF/{aifqwf-fix-amend-commit-again/outcomes/02-fix-amend-worktree-commit.md → 36-fix-amend-commit-again/outcomes/2-fix-amend-worktree-commit.md} +0 -0
- /package/RAF/{aifqwf-fix-amend-commit-again/plans/01-update-effort-mapping-defaults.md → 36-fix-amend-commit-again/plans/1-update-effort-mapping-defaults.md} +0 -0
- /package/RAF/{aifqwf-fix-amend-commit-again/plans/02-fix-amend-worktree-commit.md → 36-fix-amend-commit-again/plans/2-fix-amend-worktree-commit.md} +0 -0
- /package/RAF/{aaaaae-task-naming-optimization → 4-task-naming-optimization}/decisions.md +0 -0
- /package/RAF/{aaaaae-task-naming-optimization → 4-task-naming-optimization}/input.md +0 -0
- /package/RAF/{aaaaae-task-naming-optimization/outcomes/01-remove-summary-file.md → 4-task-naming-optimization/outcomes/1-remove-summary-file.md} +0 -0
- /package/RAF/{aaaaae-task-naming-optimization/outcomes/02-base36-project-numbering.md → 4-task-naming-optimization/outcomes/2-base36-project-numbering.md} +0 -0
- /package/RAF/{aaaaae-task-naming-optimization/outcomes/03-improve-haiku-prompt.md → 4-task-naming-optimization/outcomes/3-improve-haiku-prompt.md} +0 -0
- /package/RAF/{aaaaae-task-naming-optimization → 4-task-naming-optimization}/outcomes/SUMMARY.md +0 -0
- /package/RAF/{aaaaae-task-naming-optimization/plans/01-remove-summary-file.md → 4-task-naming-optimization/plans/1-remove-summary-file.md} +0 -0
- /package/RAF/{aaaaae-task-naming-optimization/plans/02-base36-project-numbering.md → 4-task-naming-optimization/plans/2-base36-project-numbering.md} +0 -0
- /package/RAF/{aaaaae-task-naming-optimization/plans/03-improve-haiku-prompt.md → 4-task-naming-optimization/plans/3-improve-haiku-prompt.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements → 5-task-naming-improvements}/decisions.md +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements → 5-task-naming-improvements}/input.md +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/01-enhance-identifier-resolution.md → 5-task-naming-improvements/outcomes/1-enhance-identifier-resolution.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/02-add-identifier-support-to-status.md → 5-task-naming-improvements/outcomes/2-add-identifier-support-to-status.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/03-update-do-for-full-folder-names.md → 5-task-naming-improvements/outcomes/3-update-do-for-full-folder-names.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/04-implement-amend-flag-for-plan.md → 5-task-naming-improvements/outcomes/4-implement-amend-flag-for-plan.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/05-commit-outcomes-on-complete.md → 5-task-naming-improvements/outcomes/5-commit-outcomes-on-complete.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/06-update-execution-prompt-commit-schema.md → 5-task-naming-improvements/outcomes/6-update-execution-prompt-commit-schema.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/07-allow-pending-task-amendments.md → 5-task-naming-improvements/outcomes/7-allow-pending-task-amendments.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/08-fix-timeout-label.md → 5-task-naming-improvements/outcomes/8-fix-timeout-label.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/01-enhance-identifier-resolution.md → 5-task-naming-improvements/plans/1-enhance-identifier-resolution.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/02-add-identifier-support-to-status.md → 5-task-naming-improvements/plans/2-add-identifier-support-to-status.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/03-update-do-for-full-folder-names.md → 5-task-naming-improvements/plans/3-update-do-for-full-folder-names.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/04-implement-amend-flag-for-plan.md → 5-task-naming-improvements/plans/4-implement-amend-flag-for-plan.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/05-commit-outcomes-on-complete.md → 5-task-naming-improvements/plans/5-commit-outcomes-on-complete.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/06-update-execution-prompt-commit-schema.md → 5-task-naming-improvements/plans/6-update-execution-prompt-commit-schema.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/07-allow-pending-task-amendments.md → 5-task-naming-improvements/plans/7-allow-pending-task-amendments.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/08-fix-timeout-label.md → 5-task-naming-improvements/plans/8-fix-timeout-label.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers → 6-fix-double-summary-headers}/decisions.md +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers → 6-fix-double-summary-headers}/input.md +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/outcomes/01-fix-double-summary-headers.md → 6-fix-double-summary-headers/outcomes/1-fix-double-summary-headers.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/outcomes/02-update-readme-for-npm.md → 6-fix-double-summary-headers/outcomes/2-update-readme-for-npm.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/outcomes/03-npm-publish-instructions.md → 6-fix-double-summary-headers/outcomes/3-npm-publish-instructions.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/outcomes/04-flexible-project-lookup.md → 6-fix-double-summary-headers/outcomes/4-flexible-project-lookup.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/plans/01-fix-double-summary-headers.md → 6-fix-double-summary-headers/plans/1-fix-double-summary-headers.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/plans/02-update-readme-for-npm.md → 6-fix-double-summary-headers/plans/2-update-readme-for-npm.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/plans/03-npm-publish-instructions.md → 6-fix-double-summary-headers/plans/3-npm-publish-instructions.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/plans/04-flexible-project-lookup.md → 6-fix-double-summary-headers/plans/4-flexible-project-lookup.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format → 7-improve-outcome-format}/decisions.md +0 -0
- /package/RAF/{aaaaah-improve-outcome-format → 7-improve-outcome-format}/input.md +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/outcomes/01-update-execution-prompt.md → 7-improve-outcome-format/outcomes/1-update-execution-prompt.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/outcomes/02-update-state-derivation.md → 7-improve-outcome-format/outcomes/2-update-state-derivation.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/outcomes/03-update-do-command-outcome-handling.md → 7-improve-outcome-format/outcomes/3-update-do-command-outcome-handling.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/outcomes/04-implement-failure-analysis.md → 7-improve-outcome-format/outcomes/4-implement-failure-analysis.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/outcomes/05-update-documentation.md → 7-improve-outcome-format/outcomes/5-update-documentation.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/plans/01-update-execution-prompt.md → 7-improve-outcome-format/plans/1-update-execution-prompt.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/plans/02-update-state-derivation.md → 7-improve-outcome-format/plans/2-update-state-derivation.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/plans/03-update-do-command-outcome-handling.md → 7-improve-outcome-format/plans/3-update-do-command-outcome-handling.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/plans/04-implement-failure-analysis.md → 7-improve-outcome-format/plans/4-implement-failure-analysis.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/plans/05-update-documentation.md → 7-improve-outcome-format/plans/5-update-documentation.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do → 8-beautiful-do}/decisions.md +0 -0
- /package/RAF/{aaaaai-beautiful-do → 8-beautiful-do}/input.md +0 -0
- /package/RAF/{aaaaai-beautiful-do/outcomes/01-terminal-symbols.md → 8-beautiful-do/outcomes/1-terminal-symbols.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/outcomes/02-refactor-do-output.md → 8-beautiful-do/outcomes/2-refactor-do-output.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/outcomes/03-refactor-status-output.md → 8-beautiful-do/outcomes/3-refactor-status-output.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/outcomes/04-simplify-logger.md → 8-beautiful-do/outcomes/4-simplify-logger.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/outcomes/05-add-tests.md → 8-beautiful-do/outcomes/5-add-tests.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/plans/01-terminal-symbols.md → 8-beautiful-do/plans/1-terminal-symbols.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/plans/02-refactor-do-output.md → 8-beautiful-do/plans/2-refactor-do-output.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/plans/03-refactor-status-output.md → 8-beautiful-do/plans/3-refactor-status-output.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/plans/04-simplify-logger.md → 8-beautiful-do/plans/4-simplify-logger.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/plans/05-add-tests.md → 8-beautiful-do/plans/5-add-tests.md} +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend → 9-system-promt-ammend}/decisions.md +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend → 9-system-promt-ammend}/input.md +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend/outcomes/01-model-override.md → 9-system-promt-ammend/outcomes/1-model-override.md} +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend/outcomes/02-system-prompt-append.md → 9-system-promt-ammend/outcomes/2-system-prompt-append.md} +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend/outcomes/03-retry-context.md → 9-system-promt-ammend/outcomes/3-retry-context.md} +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend/plans/01-model-override.md → 9-system-promt-ammend/plans/1-model-override.md} +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend/plans/02-system-prompt-append.md → 9-system-promt-ammend/plans/2-system-prompt-append.md} +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend/plans/03-retry-context.md → 9-system-promt-ammend/plans/3-retry-context.md} +0 -0
|
@@ -7,7 +7,7 @@ Replace all hardcoded settings throughout the codebase with config lookups using
|
|
|
7
7
|
The codebase has hardcoded model names, effort levels, timeouts, commit formats, and other settings scattered across many files. This task wires everything up to use the centralized config system.
|
|
8
8
|
|
|
9
9
|
## Dependencies
|
|
10
|
-
|
|
10
|
+
1
|
|
11
11
|
|
|
12
12
|
## Requirements
|
|
13
13
|
- Every previously hardcoded user-facing setting must read from config
|
|
@@ -7,7 +7,7 @@ Create a comprehensive config documentation file bundled in the package that ser
|
|
|
7
7
|
The `raf config` command will spawn an interactive Claude session that needs full knowledge of the config schema, valid values, defaults, and how to edit the file. This documentation serves double duty: it's readable by users and injected as a system prompt for Claude during config sessions.
|
|
8
8
|
|
|
9
9
|
## Dependencies
|
|
10
|
-
|
|
10
|
+
1
|
|
11
11
|
|
|
12
12
|
## Requirements
|
|
13
13
|
- File location: `src/prompts/config-docs.md` (bundled in package, versioned with code)
|
|
@@ -7,7 +7,7 @@ Create the `raf config [prompt]` CLI command that launches an interactive Claude
|
|
|
7
7
|
Users need a natural-language way to modify their config. This command spawns Claude Sonnet with the config documentation as a system prompt, giving it full knowledge of the schema. It also supports `--reset` to restore defaults.
|
|
8
8
|
|
|
9
9
|
## Dependencies
|
|
10
|
-
|
|
10
|
+
1, 2, 3
|
|
11
11
|
|
|
12
12
|
## Requirements
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@ Update CLAUDE.md with the new config system architecture, the "configurable by d
|
|
|
7
7
|
CLAUDE.md serves as the project's internal documentation and instruction set. It needs to reflect the new config system so that future Claude sessions (planning, execution) understand how config works. The user also wants an explicit architectural principle: if a feature can be configurable, it should be configurable via config.
|
|
8
8
|
|
|
9
9
|
## Dependencies
|
|
10
|
-
|
|
10
|
+
1, 2, 3, 4
|
|
11
11
|
|
|
12
12
|
## Requirements
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@ Switch all task execution modes to use `--output-format stream-json --verbose` s
|
|
|
7
7
|
Currently `claude-runner.ts` has two execution methods: `run()` (plain text stdout) and `runVerbose()` (stream-json with tool display). Token usage data is only available in stream-json's `result` event. To enable token tracking, all execution must use stream-json format. The difference between verbose and non-verbose becomes purely a display concern — whether tool descriptions are printed to the console.
|
|
8
8
|
|
|
9
9
|
## Dependencies
|
|
10
|
-
|
|
10
|
+
1
|
|
11
11
|
|
|
12
12
|
## Requirements
|
|
13
13
|
- All task execution uses `--output-format stream-json --verbose` flags
|
|
@@ -7,7 +7,7 @@ Implement token usage accumulation across tasks and cost calculation using confi
|
|
|
7
7
|
After task execution is unified to stream-json (task 03), each task returns `UsageData` with token counts. This task adds the infrastructure to accumulate usage across multiple tasks and calculate estimated costs based on configurable pricing.
|
|
8
8
|
|
|
9
9
|
## Dependencies
|
|
10
|
-
|
|
10
|
+
1, 3
|
|
11
11
|
|
|
12
12
|
## Requirements
|
|
13
13
|
- Add pricing config to the RAF config schema with current prices as defaults
|
|
@@ -7,7 +7,7 @@ Display per-task token usage and cost estimates after each task, and a grand tot
|
|
|
7
7
|
With token tracking infrastructure in place (task 04), this task wires it into the `raf do` execution flow to display usage reports in the terminal. This is the user-facing part of the feature.
|
|
8
8
|
|
|
9
9
|
## Dependencies
|
|
10
|
-
|
|
10
|
+
4
|
|
11
11
|
|
|
12
12
|
## Requirements
|
|
13
13
|
- After each task completes, print a concise usage summary line to the console
|
|
@@ -7,7 +7,7 @@ Allow users to press Tab during task execution to toggle verbose mode on/off in
|
|
|
7
7
|
After task 03 unifies all execution to stream-json, the underlying data stream always includes tool-use events. Verbose mode becomes purely a display concern — whether to print tool descriptions (e.g., "Reading src/file.ts", "Running: npm test") to the console. This makes runtime toggling straightforward: listen for Tab key on stdin and flip a boolean that controls display output.
|
|
8
8
|
|
|
9
9
|
## Dependencies
|
|
10
|
-
|
|
10
|
+
3
|
|
11
11
|
|
|
12
12
|
## Requirements
|
|
13
13
|
- During non-interactive task execution (`raf do`), listen for Tab keypress on `process.stdin`
|
|
@@ -7,7 +7,7 @@ Change the retry loop in `do.ts` to collect usage data from every attempt instea
|
|
|
7
7
|
The retry loop in `src/commands/do.ts` (around line 908-1021) currently declares a single `lastUsageData` variable that gets overwritten on each retry attempt. After the loop, only the final attempt's data is passed to `tokenTracker.addTask()`. This must change to collect all attempts' data.
|
|
8
8
|
|
|
9
9
|
## Dependencies
|
|
10
|
-
|
|
10
|
+
1
|
|
11
11
|
|
|
12
12
|
## Requirements
|
|
13
13
|
- Replace the single `lastUsageData` variable with an array that collects `UsageData` from each attempt
|
|
@@ -7,7 +7,7 @@ Update `formatTaskTokenSummary()` to display a per-attempt breakdown when a task
|
|
|
7
7
|
With tasks 01 and 02 complete, the `TaskUsageEntry` now contains an `attempts` array with per-attempt `UsageData`. The formatting function needs to render this breakdown so users can see token consumption per retry attempt.
|
|
8
8
|
|
|
9
9
|
## Dependencies
|
|
10
|
-
|
|
10
|
+
1, 2
|
|
11
11
|
|
|
12
12
|
## Requirements
|
|
13
13
|
- When a task has only 1 attempt, output is identical to the current format (no visual change)
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
Add an estimated percentage of the 5-hour rate limit window consumed, displayed after each task and in the grand total summary. Also add token usage tracking and display for `raf plan` interactive sessions.
|
|
5
5
|
|
|
6
6
|
## Dependencies
|
|
7
|
-
|
|
7
|
+
2
|
|
8
8
|
|
|
9
9
|
## Context
|
|
10
10
|
Anthropic's subscription plans use a shared credit pool per 5-hour window. The pool is measured in cost-weighted credits, not raw token count. Heavier models (Opus) consume the pool faster than lighter ones (Haiku) in proportion to their API pricing ratios. Users need visibility into how much of their 5-hour window they've consumed during a RAF session.
|
|
@@ -7,7 +7,7 @@ Fix critical discrepancies between README.md and the actual codebase implementat
|
|
|
7
7
|
The README documents features that no longer exist (like `--merge` flag) and is missing documentation for major features (post-execution picker, PR creation). This causes user confusion and makes the tool harder to adopt.
|
|
8
8
|
|
|
9
9
|
## Dependencies
|
|
10
|
-
|
|
10
|
+
1, 5
|
|
11
11
|
|
|
12
12
|
## Requirements
|
|
13
13
|
Fix these three critical discrepancies:
|
|
@@ -13,7 +13,7 @@ The existing `effort.*` config section (which maps to Claude CLI's `--effort` fl
|
|
|
13
13
|
Additionally, the planning prompts currently contain restrictive wording that discourages implementation details in plans. This wording should be removed to allow the planning model to include whatever level of detail it deems appropriate.
|
|
14
14
|
|
|
15
15
|
## Dependencies
|
|
16
|
-
|
|
16
|
+
4
|
|
17
17
|
|
|
18
18
|
## Requirements
|
|
19
19
|
|
|
@@ -6,7 +6,7 @@ effort: medium
|
|
|
6
6
|
Before executing tasks in a worktree, rebase the worktree branch onto the latest main branch to ensure it's up-to-date.
|
|
7
7
|
|
|
8
8
|
## Dependencies
|
|
9
|
-
|
|
9
|
+
3
|
|
10
10
|
|
|
11
11
|
## Context
|
|
12
12
|
When using `raf do` in worktree mode, the worktree branch may be behind main (e.g., if other worktree projects were merged into main since this branch was created). Rebasing before execution ensures the branch starts from the latest main, reducing merge conflicts later.
|
|
@@ -12,7 +12,7 @@ Running `raf plan --resume ahwvrz-legacy-sunset --worktree` from the main branch
|
|
|
12
12
|
The `--amend` command already handles this correctly by searching worktree directories first. The `--resume` command needs the same treatment, plus auto-detection so `--worktree` is optional.
|
|
13
13
|
|
|
14
14
|
## Dependencies
|
|
15
|
-
|
|
15
|
+
1
|
|
16
16
|
|
|
17
17
|
## Requirements
|
|
18
18
|
- `runResumeCommand()` must search worktree directories in addition to the main repo
|
package/RAF/{ahwzmc-echo-forge/plans/03-update-readme.md → 35-echo-forge/plans/3-update-readme.md}
RENAMED
|
@@ -10,7 +10,7 @@ Enhance the README to better communicate RAF's value proposition and clarify the
|
|
|
10
10
|
The current README is functional but undersells RAF's capabilities. Key benefits like smart model selection, automatic PR generation, and structured decision-making are buried or absent. The difference between `--amend` (add tasks to a project) and `--resume` (resume a Claude session) is not explained.
|
|
11
11
|
|
|
12
12
|
## Dependencies
|
|
13
|
-
|
|
13
|
+
1, 2
|
|
14
14
|
|
|
15
15
|
## Requirements
|
|
16
16
|
- Rewrite the "Why RAF?" section to better highlight RAF's advanced capabilities
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Project Decisions
|
|
2
|
+
|
|
3
|
+
## Should existing projects with base26 IDs be migrated to numeric IDs?
|
|
4
|
+
No migration needed. No need to support old base26 project IDs — consider it a fresh start.
|
|
5
|
+
|
|
6
|
+
## Should numeric project IDs be zero-padded (e.g., 001-foo) or unpadded (1-foo)?
|
|
7
|
+
No padding. Use simple unpadded numbers: 1-foo, 2-bar, 10-buz, 101-bar.
|
|
8
|
+
|
|
9
|
+
## When amend produces no new plans but updates decisions/input/plans, what commit message format?
|
|
10
|
+
Use the existing 'Amend' format: `RAF[id] Amend: project-name`.
|
|
11
|
+
|
|
12
|
+
## For auto-detecting existing projects on `raf plan project-name`, should it use exact or fuzzy matching?
|
|
13
|
+
Exact match only. Only prompt if a project with the exact same name exists.
|
|
14
|
+
|
|
15
|
+
## Should task IDs follow the same numeric approach as project IDs?
|
|
16
|
+
Yes, same approach — no padding, no migration, fresh start.
|
|
17
|
+
|
|
18
|
+
## When creating a new project, should we scan all worktrees + main for the highest ID?
|
|
19
|
+
Yes, scan all. Scan main repo RAF/ folder + all worktree RAF/ folders to find the highest numeric ID, then increment.
|
|
20
|
+
|
|
21
|
+
## Should gaps in the ID sequence be filled or left as-is?
|
|
22
|
+
Gaps are fine. If projects 1, 2, 3, 5 exist, next project is 6 (not 4). Always use max + 1.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
- [ ] if plan amend has no new plans but decisions, input and plans are update(or any of those) - commit amended changes.
|
|
2
|
+
- [ ] if command is like "raf plan project-name" - make sure to check if project with exact name exist (in main or worktree) and prompt to user whether he wants to amend (probably forgot to put --amend flag)
|
|
3
|
+
- [ ] switch project ids to numbers starting with single numbers (1-foo, 2-bar, ..., 10-buz, 101-bar). don't rely that id is uniq, but make mechanism to not create duplicate ids even if project created in workspace (search all worktrees + main and increment largest id), not alpha chars in id, only numbers
|
|
4
|
+
- [ ] switch task ids to numeric like(1-foo, 2-bar, ..., 10-buz, 101-bar)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Outcome: Switch Project IDs to Numeric
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Replaced the epoch-based base26 project ID system with sequential numeric IDs (1, 2, 3, ...).
|
|
5
|
+
|
|
6
|
+
## Key Changes
|
|
7
|
+
|
|
8
|
+
### Source files modified:
|
|
9
|
+
- **`src/utils/paths.ts`** — Complete rewrite of ID system: removed `encodeBase26`, `decodeBase26`, `isBase26Prefix`, `RAF_EPOCH`, `ID_WIDTH`, `BASE26_ALPHABET`. `getNextProjectNumber()` now scans main RAF dir + worktrees for max ID and returns max+1 (or 1 if no projects). `formatProjectNumber()` returns plain number string. `extractProjectNumber()` extracts numeric prefix. `parseProjectPrefix()` parses numeric strings. All regex patterns updated from `[a-z]{6}` to `\d+`.
|
|
10
|
+
- **`src/core/worktree.ts`** — Updated `resolveWorktreeProjectByIdentifier()` to match by numeric prefix instead of base26.
|
|
11
|
+
- **`src/core/state-derivation.ts`** — Updated `discoverProjects()` to use numeric folder pattern.
|
|
12
|
+
- **`src/utils/validation.ts`** — Updated `validateProjectExists()` regex.
|
|
13
|
+
- **`src/commands/plan.ts`** — Pass `repoBasename` to `getNextProjectNumber()` for worktree scanning.
|
|
14
|
+
- **`src/commands/status.ts`** — Updated help text for identifier argument.
|
|
15
|
+
- **`src/ui/project-picker.ts`** — No logic changes needed (uses updated functions).
|
|
16
|
+
- **`README.md`** — Updated project structure documentation.
|
|
17
|
+
|
|
18
|
+
### Test files updated (25 files):
|
|
19
|
+
All test files updated to use numeric project IDs instead of base26 IDs.
|
|
20
|
+
|
|
21
|
+
## Acceptance Criteria Verification
|
|
22
|
+
- [x] New projects get sequential numeric IDs starting from 1
|
|
23
|
+
- [x] `getNextProjectNumber()` scans all worktrees + main to find the highest ID
|
|
24
|
+
- [x] Project folders are named `{number}-{name}` (e.g., `3-auth-system`)
|
|
25
|
+
- [x] `raf plan` creates projects with numeric IDs
|
|
26
|
+
- [x] `raf plan --amend 3` resolves project by numeric ID
|
|
27
|
+
- [x] `raf status` displays projects with numeric IDs correctly
|
|
28
|
+
- [x] Commit messages use numeric IDs: `RAF[3] Plan: auth-system`
|
|
29
|
+
- [x] Worktree paths use numeric IDs
|
|
30
|
+
- [x] All tests pass (1239/1240 — 1 pre-existing failure in name-generator.test.ts unrelated to this change)
|
|
31
|
+
|
|
32
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Outcome: Switch Task IDs to Numeric
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Replaced the base36 two-character task ID system with sequential numeric IDs (1, 2, 3, ...) matching the project ID format from task 01.
|
|
5
|
+
|
|
6
|
+
## Key Changes
|
|
7
|
+
|
|
8
|
+
### Source files modified:
|
|
9
|
+
- **`src/utils/paths.ts`** — Rewrote task ID system: `TASK_ID_PATTERN` changed from `[0-9a-z]{2}` to `\d+`. `encodeTaskId()` now returns plain `num.toString()`. `decodeTaskId()` now uses `parseInt(str, 10)` with `\d+` validation. Removed `TASK_ID_WIDTH` constant and 1296 max limit. `extractTaskNameFromPlanFile()` regex updated from `^[0-9a-z]{2}-` to `^\d+-`.
|
|
10
|
+
- **`src/core/state-derivation.ts`** — Updated comments from "2-char base36" to "numeric". No logic changes needed (uses `TASK_ID_PATTERN` which was updated).
|
|
11
|
+
- **`src/prompts/execution.ts`** — Changed task number encoding from `taskNumber.toString(36).padStart(2, '0')` to `taskNumber.toString()`.
|
|
12
|
+
- **`src/prompts/planning.ts`** — Updated all examples from `01-`, `02-` to `1-`, `2-`. Updated dependency format examples from `"01, 02"` to `"1, 2"`. Updated task summary examples.
|
|
13
|
+
- **`src/prompts/amend.ts`** — Updated dependency format examples and task numbering references.
|
|
14
|
+
- **`src/commands/plan.ts`** — Updated comment from "decode base36" to "numeric".
|
|
15
|
+
|
|
16
|
+
### Test files updated (7 files):
|
|
17
|
+
- `tests/unit/paths.test.ts` — Updated `extractTaskNameFromPlanFile` tests for numeric IDs
|
|
18
|
+
- `tests/unit/state-derivation.test.ts` — Updated all plan/outcome filenames and dependency references
|
|
19
|
+
- `tests/unit/execution-prompt.test.ts` — Updated commit format expectations and task ID references
|
|
20
|
+
- `tests/unit/plan-command.test.ts` — Updated all task IDs, filenames, and amend prompt expectations
|
|
21
|
+
- `tests/unit/dependency-integration.test.ts` — Updated all task IDs, dependencies, and filenames
|
|
22
|
+
- `tests/unit/config.test.ts` — Updated task ID in renderCommitMessage test
|
|
23
|
+
- `tests/unit/planning-prompt.test.ts` — Updated plan file path and numbering expectations
|
|
24
|
+
|
|
25
|
+
## Acceptance Criteria Verification
|
|
26
|
+
- [x] Plan files are created as `1-task-name.md`, `2-task-name.md`, etc.
|
|
27
|
+
- [x] `encodeTaskId(5)` returns `"5"` (not `"05"`)
|
|
28
|
+
- [x] `decodeTaskId("12")` returns `12`
|
|
29
|
+
- [x] Amend flow correctly finds max task number and increments
|
|
30
|
+
- [x] Task commit messages show numeric IDs: `RAF[3:2] Task description`
|
|
31
|
+
- [x] Dependency references in plan frontmatter work with numeric IDs
|
|
32
|
+
- [x] All tests pass (1239/1240 — 1 pre-existing failure in name-generator.test.ts unrelated to this change)
|
|
33
|
+
|
|
34
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Outcome: Commit Amended Changes When No New Plans Are Created
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Fixed the amend flow to always attempt committing after a successful Claude session, regardless of whether new plan files were created. Previously, commits were skipped when no new plans were added, even if decisions.md, input.md, or existing plan files were modified.
|
|
5
|
+
|
|
6
|
+
## Key Changes
|
|
7
|
+
|
|
8
|
+
### Source files modified:
|
|
9
|
+
- **`src/commands/plan.ts`** (lines 629-655) — Restructured the post-session logic in `runAmendCommand()`:
|
|
10
|
+
- Moved `commitPlanningArtifacts()` call outside the `newPlanFiles.length > 0` conditional block
|
|
11
|
+
- Changed `additionalFiles` from only new plan files to ALL plan files (so modifications to existing plans are staged)
|
|
12
|
+
- The existing `git diff --cached` check in `commitPlanningArtifacts()` naturally prevents empty commits when nothing changed
|
|
13
|
+
|
|
14
|
+
## Acceptance Criteria Verification
|
|
15
|
+
- [x] `raf plan --amend` commits when decisions.md is updated but no new plans created — `commitPlanningArtifacts` always stages decisions.md and calls commit
|
|
16
|
+
- [x] `raf plan --amend` commits when existing plan files are modified but no new plans created — all plan files are now staged via `allPlanAbsolutePaths`
|
|
17
|
+
- [x] `raf plan --amend` commits when input.md is updated but no new plans created — `commitPlanningArtifacts` always stages input.md
|
|
18
|
+
- [x] `raf plan --amend` does NOT create an empty commit when nothing changed — `commitPlanningArtifacts` checks `git diff --cached` before committing
|
|
19
|
+
- [x] `raf plan --amend` still commits normally when new plan files ARE created — all plan files are staged regardless
|
|
20
|
+
- [x] Commit message uses 'Amend' format in all cases — `isAmend: true` is always passed
|
|
21
|
+
- [x] All tests pass (1239/1240 — 1 pre-existing failure in name-generator.test.ts unrelated to this change)
|
|
22
|
+
|
|
23
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Outcome: Auto-Detect Existing Project on `raf plan project-name`
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
When `raf plan project-name` is run (without `--amend`) and a project with that name already exists, the user is now prompted interactively: amend it, create a new project, or cancel. Previously the command would just exit with an error.
|
|
5
|
+
|
|
6
|
+
## Key Changes
|
|
7
|
+
|
|
8
|
+
### `src/commands/plan.ts`
|
|
9
|
+
- Added `import { select } from '@inquirer/prompts'`
|
|
10
|
+
- Removed the old hard-error check (`resolveProjectIdentifier` → exit 1)
|
|
11
|
+
- Replaced with a prompt-based flow (in non-auto mode):
|
|
12
|
+
1. Checks main RAF dir with `resolveProjectIdentifierWithDetails`
|
|
13
|
+
2. Falls back to checking worktrees with `resolveWorktreeProjectByIdentifier`
|
|
14
|
+
3. If a match is found, shows a `select` prompt: "Yes, amend it" / "No, create a new project" / "Cancel"
|
|
15
|
+
4. "Yes" → calls `runAmendCommand` with the existing folder name (and `worktreeMode=true` if it's a worktree project)
|
|
16
|
+
5. "Cancel" → `process.exit(0)`
|
|
17
|
+
6. "No" / auto mode → continues with normal project creation
|
|
18
|
+
- Removed unused `resolveProjectIdentifier` import
|
|
19
|
+
|
|
20
|
+
## Acceptance Criteria Verification
|
|
21
|
+
- [x] `raf plan my-project` detects existing project named "my-project" and prompts — uses name-based lookup in `resolveProjectIdentifierWithDetails`
|
|
22
|
+
- [x] Exact match only — "my" does NOT match "my-project" — name comparison is exact (just case-insensitive)
|
|
23
|
+
- [x] Case-insensitive matching — "My-Project" matches "my-project" — both `resolveProjectIdentifierWithDetails` and `resolveWorktreeProjectByIdentifier` use `.toLowerCase()`
|
|
24
|
+
- [x] User can choose to amend, create new, or cancel — three choices in the select prompt
|
|
25
|
+
- [x] Choosing amend redirects to the amend flow correctly — calls `runAmendCommand(existingFolder, model, autoMode, existingWorktreeMode)`
|
|
26
|
+
- [x] Projects in worktrees are also detected — checks `resolveWorktreeProjectByIdentifier` when not found in main
|
|
27
|
+
- [x] `raf plan --amend` is not affected — the new check only runs in `runPlanCommand`, not `runAmendCommand`
|
|
28
|
+
- [x] All tests pass (1239/1240 — 1 pre-existing failure in name-generator.test.ts unrelated to this change)
|
|
29
|
+
|
|
30
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
effort: high
|
|
3
|
+
---
|
|
4
|
+
# Task: Switch Project IDs to Numeric
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
Replace the epoch-based base26 project ID system with sequential numeric IDs (1, 2, 3, ...) that are unique across all worktrees and the main repo.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
Currently project IDs are 6-character base26 strings derived from Unix timestamps (e.g., "apaerm"). This is hard to read and type. Switching to simple incrementing numbers (1-foo, 2-bar, 10-buz) makes projects easier to reference. No migration of existing projects is needed — treat this as a fresh start. No need to maintain backward compatibility with base26 IDs.
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
- Project folder format: `{number}-{name}` (e.g., `1-my-project`, `12-auth-system`)
|
|
14
|
+
- No zero-padding on the number
|
|
15
|
+
- Numbers are only digits — no alpha characters in the ID portion
|
|
16
|
+
- To find the next ID: scan ALL worktrees + main repo's `RAF/` folder for the highest existing numeric ID, then increment by 1
|
|
17
|
+
- If no projects exist, start at 1
|
|
18
|
+
- Project ID uniqueness must be maintained even when projects are created in different worktrees
|
|
19
|
+
- Gaps in the sequence are fine (e.g., 1, 2, 3, 5 → next is 6, not 4). Always use `max(existing IDs) + 1`, never fill gaps
|
|
20
|
+
|
|
21
|
+
## Implementation Steps
|
|
22
|
+
|
|
23
|
+
1. **Replace ID encoding/decoding in `src/utils/paths.ts`:**
|
|
24
|
+
- Remove `encodeBase26()`, `decodeBase26()`, and `RAF_EPOCH` constant
|
|
25
|
+
- Replace `getNextProjectNumber()` to:
|
|
26
|
+
- Scan `RAF/` in the main repo for folders matching `^\d+-`
|
|
27
|
+
- Scan all worktree directories at `~/.raf/worktrees/{repoBasename}/` for folders matching `^\d+-`
|
|
28
|
+
- Extract the numeric prefix from each folder name
|
|
29
|
+
- Return `max + 1` (or `1` if none found)
|
|
30
|
+
- Update `extractProjectNumber()` to extract the numeric prefix (everything before the first `-`)
|
|
31
|
+
|
|
32
|
+
2. **Update project folder creation in `src/commands/plan.ts`:**
|
|
33
|
+
- Where `getNextProjectNumber()` is called, use the new numeric ID
|
|
34
|
+
- Update folder naming from `{base26Id}-{name}` to `{numericId}-{name}`
|
|
35
|
+
|
|
36
|
+
3. **Update project resolution in `src/utils/paths.ts`:**
|
|
37
|
+
- `resolveProjectIdentifierWithDetails()` — update matching logic:
|
|
38
|
+
- Full folder name match (exact)
|
|
39
|
+
- Numeric prefix match (e.g., input "5" matches "5-auth-system")
|
|
40
|
+
- Project name match (case-insensitive)
|
|
41
|
+
- Remove base26-specific matching logic
|
|
42
|
+
|
|
43
|
+
4. **Update worktree project resolution in `src/core/worktree.ts`:**
|
|
44
|
+
- `resolveWorktreeProjectByIdentifier()` — same matching changes as above
|
|
45
|
+
- `computeWorktreePath()` — uses projectId which is now numeric
|
|
46
|
+
- Update any regex patterns that expect 6-char base26 IDs
|
|
47
|
+
|
|
48
|
+
5. **Update commit message rendering in `src/utils/config.ts`:**
|
|
49
|
+
- `renderCommitMessage()` uses `{projectId}` — ensure it works with numeric IDs (should work as-is since it's just string interpolation)
|
|
50
|
+
|
|
51
|
+
6. **Update `src/core/git.ts`:**
|
|
52
|
+
- `extractProjectNumber()` or similar functions that parse folder names for the ID portion
|
|
53
|
+
|
|
54
|
+
7. **Update `src/commands/status.ts`:**
|
|
55
|
+
- Project listing/display — ensure numeric IDs render correctly
|
|
56
|
+
|
|
57
|
+
8. **Update any regex patterns across the codebase** that assume project IDs are 6-character lowercase alpha strings (e.g., `[a-z]{6}` patterns).
|
|
58
|
+
|
|
59
|
+
9. **Update tests** in `tests/` that reference base26 encoding/decoding or use base26 project IDs in fixtures.
|
|
60
|
+
|
|
61
|
+
## Acceptance Criteria
|
|
62
|
+
- [ ] New projects get sequential numeric IDs starting from 1
|
|
63
|
+
- [ ] `getNextProjectNumber()` scans all worktrees + main to find the highest ID
|
|
64
|
+
- [ ] Project folders are named `{number}-{name}` (e.g., `3-auth-system`)
|
|
65
|
+
- [ ] `raf plan` creates projects with numeric IDs
|
|
66
|
+
- [ ] `raf plan --amend 3` resolves project by numeric ID
|
|
67
|
+
- [ ] `raf status` displays projects with numeric IDs correctly
|
|
68
|
+
- [ ] Commit messages use numeric IDs: `RAF[3] Plan: auth-system`
|
|
69
|
+
- [ ] Worktree paths use numeric IDs
|
|
70
|
+
- [ ] All tests pass
|
|
71
|
+
|
|
72
|
+
## Notes
|
|
73
|
+
- The `getNextProjectNumber()` function needs access to the git repo root to scan `RAF/` and to `~/.raf/worktrees/` to scan worktrees. It may need the repo basename as a parameter.
|
|
74
|
+
- No backward compatibility with base26 IDs is required — this is a clean break.
|
|
75
|
+
- The worktree scan should handle the case where `~/.raf/worktrees/{repoBasename}/` doesn't exist yet.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
effort: medium
|
|
3
|
+
---
|
|
4
|
+
# Task: Switch Task IDs to Numeric
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
Replace the base36 two-character task ID system with sequential numeric IDs (1, 2, 3, ...) matching the same format as the new project IDs.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
Task IDs are currently 2-character base36 strings (e.g., "01", "0a", "10"). This is confusing because "0a" looks like hex and "10" means 36 in base36. Switching to simple sequential numbers (1-setup-db, 2-create-api, 10-write-tests) is more intuitive. No migration needed — fresh start.
|
|
11
|
+
|
|
12
|
+
## Dependencies
|
|
13
|
+
1
|
|
14
|
+
|
|
15
|
+
## Requirements
|
|
16
|
+
- Plan file format: `{number}-{task-name}.md` (e.g., `1-setup-database.md`, `12-write-tests.md`)
|
|
17
|
+
- No zero-padding on the number
|
|
18
|
+
- Only digits in the ID portion — no alpha characters
|
|
19
|
+
- Task numbering starts at 1 within each project
|
|
20
|
+
- The amend flow must find the max existing task number and continue from there
|
|
21
|
+
|
|
22
|
+
## Implementation Steps
|
|
23
|
+
|
|
24
|
+
1. **Replace task ID encoding/decoding in `src/utils/paths.ts`:**
|
|
25
|
+
- Replace `encodeTaskId(num)` — now just returns `num.toString()` (no base36, no padding)
|
|
26
|
+
- Replace `decodeTaskId(str)` — now just does `parseInt(str, 10)`
|
|
27
|
+
- Update the regex pattern that extracts task IDs from filenames: change from `^[0-9a-z]{2}-` to `^\d+-`
|
|
28
|
+
- Remove the 1296 (36*36) max limit — numeric IDs have no practical limit
|
|
29
|
+
|
|
30
|
+
2. **Update plan file parsing in `src/core/state-derivation.ts`:**
|
|
31
|
+
- `parsePlanFiles()` or equivalent — update regex to match `^\d+-` prefix
|
|
32
|
+
- Task ID extraction from filenames
|
|
33
|
+
- Dependency parsing (dependencies reference task IDs like "01, 02" — now "1, 2")
|
|
34
|
+
|
|
35
|
+
3. **Update the amend flow in `src/commands/plan.ts`:**
|
|
36
|
+
- Where `decodeTaskId()` is called to find max task number — use new numeric decode
|
|
37
|
+
- Where `encodeTaskId()` is called to generate next task number — use new numeric encode
|
|
38
|
+
- Update the amend template that shows existing tasks and next task number
|
|
39
|
+
|
|
40
|
+
4. **Update commit message rendering:**
|
|
41
|
+
- Task commit format `{prefix}[{projectId}:{taskId}]` — ensure numeric task IDs work (e.g., `RAF[3:5] Setup database`)
|
|
42
|
+
|
|
43
|
+
5. **Update the planning prompt in `src/prompts/planning.ts`:**
|
|
44
|
+
- The prompt tells Claude to create plan files numbered "01, 02, 03" — update to "1, 2, 3"
|
|
45
|
+
- Update any examples that show base36 task IDs
|
|
46
|
+
|
|
47
|
+
6. **Update the amend prompt in `src/prompts/amend.ts`:**
|
|
48
|
+
- References to task ID format and next task number
|
|
49
|
+
|
|
50
|
+
7. **Update frontmatter parsing in `src/utils/frontmatter.ts`** if it references task ID format.
|
|
51
|
+
|
|
52
|
+
8. **Update tests** that use base36 task IDs.
|
|
53
|
+
|
|
54
|
+
## Acceptance Criteria
|
|
55
|
+
- [ ] Plan files are created as `1-task-name.md`, `2-task-name.md`, etc.
|
|
56
|
+
- [ ] `encodeTaskId(5)` returns `"5"` (not `"05"`)
|
|
57
|
+
- [ ] `decodeTaskId("12")` returns `12`
|
|
58
|
+
- [ ] Amend flow correctly finds max task number and increments
|
|
59
|
+
- [ ] Task commit messages show numeric IDs: `RAF[3:2] Task description`
|
|
60
|
+
- [ ] Dependency references in plan frontmatter work with numeric IDs
|
|
61
|
+
- [ ] All tests pass
|
|
62
|
+
|
|
63
|
+
## Notes
|
|
64
|
+
- This task follows the same pattern as task 01 (numeric project IDs) but is scoped to task IDs within a project.
|
|
65
|
+
- The planning prompt instructs Claude on the file naming convention, so it must be updated to tell Claude to use numeric prefixes.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
effort: medium
|
|
3
|
+
---
|
|
4
|
+
# Task: Commit Amended Changes When No New Plans Are Created
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
Fix the amend flow to commit changes even when no new plan files are created, as long as decisions.md, input.md, or existing plan files were updated.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
Currently, `commitPlanningArtifacts()` in the amend flow only commits if new plan files were created. But an amend session might only update decisions.md, modify existing plans, or update input.md without adding new tasks. These changes should still be committed with the 'Amend' format commit message.
|
|
11
|
+
|
|
12
|
+
## Dependencies
|
|
13
|
+
1
|
|
14
|
+
|
|
15
|
+
## Requirements
|
|
16
|
+
- When `raf plan --amend` runs and the Claude session completes, commit if ANY of these changed:
|
|
17
|
+
- `input.md` was updated (new task description appended)
|
|
18
|
+
- `decisions.md` was updated (new Q&A pairs added)
|
|
19
|
+
- Existing plan files in `plans/` were modified
|
|
20
|
+
- Use the existing 'Amend' commit message format: `RAF[id] Amend: project-name`
|
|
21
|
+
- If truly nothing changed (no file modifications at all), don't create an empty commit
|
|
22
|
+
|
|
23
|
+
## Implementation Steps
|
|
24
|
+
|
|
25
|
+
1. **Examine `commitPlanningArtifacts()` in `src/core/git.ts`** (around line 228):
|
|
26
|
+
- Currently it receives a list of new plan files and stages them alongside input.md and decisions.md
|
|
27
|
+
- The issue is likely in how the amend flow in `plan.ts` decides whether to call commit — it may skip the call when no new plan files are detected
|
|
28
|
+
|
|
29
|
+
2. **Examine the amend flow in `src/commands/plan.ts`** (around line 616-646):
|
|
30
|
+
- After the Claude session, it checks for new plan files (those with ID >= nextTaskNumber)
|
|
31
|
+
- If no new plan files are found, it likely skips the commit step
|
|
32
|
+
- Fix: always attempt to commit after a successful amend session, regardless of whether new plan files were created
|
|
33
|
+
|
|
34
|
+
3. **Update the commit logic:**
|
|
35
|
+
- Always stage `input.md` and `decisions.md` (they're almost always updated during amend)
|
|
36
|
+
- Stage any modified plan files in the `plans/` directory (use `git diff --name-only` or stage the entire plans directory)
|
|
37
|
+
- Call `commitPlanningArtifacts()` even when the new plan files list is empty
|
|
38
|
+
- The existing `git diff --cached` check before commit will naturally prevent empty commits
|
|
39
|
+
|
|
40
|
+
4. **Test the flow:**
|
|
41
|
+
- Verify that an amend session that only updates decisions still commits
|
|
42
|
+
- Verify that an amend session with no changes at all doesn't create an empty commit
|
|
43
|
+
|
|
44
|
+
## Acceptance Criteria
|
|
45
|
+
- [ ] `raf plan --amend` commits when decisions.md is updated but no new plans created
|
|
46
|
+
- [ ] `raf plan --amend` commits when existing plan files are modified but no new plans created
|
|
47
|
+
- [ ] `raf plan --amend` commits when input.md is updated but no new plans created
|
|
48
|
+
- [ ] `raf plan --amend` does NOT create an empty commit when nothing changed
|
|
49
|
+
- [ ] `raf plan --amend` still commits normally when new plan files ARE created
|
|
50
|
+
- [ ] Commit message uses 'Amend' format in all cases
|
|
51
|
+
|
|
52
|
+
## Notes
|
|
53
|
+
- The `commitPlanningArtifacts()` function already has a `git diff --cached` check that prevents empty commits, so the main fix is ensuring the amend flow always calls commit rather than short-circuiting when no new plans are detected.
|
|
54
|
+
- This depends on task 01 because project ID format changes may affect how `commitPlanningArtifacts` resolves the project ID for the commit message.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
effort: low
|
|
3
|
+
---
|
|
4
|
+
# Task: Auto-Detect Existing Project on `raf plan project-name`
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
When a user runs `raf plan project-name` without `--amend`, check if a project with that exact name already exists and prompt whether they want to amend it instead.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
Users sometimes forget to add the `--amend` flag when they want to add tasks to an existing project. Currently, `raf plan project-name` would either create a duplicate or fail. Instead, we should detect the existing project and ask the user if they meant to amend.
|
|
11
|
+
|
|
12
|
+
## Dependencies
|
|
13
|
+
1
|
|
14
|
+
|
|
15
|
+
## Requirements
|
|
16
|
+
- Only check for exact name matches (case-insensitive)
|
|
17
|
+
- Search both main repo and all worktrees for the existing project
|
|
18
|
+
- If found, prompt the user: "Project 'project-name' already exists (ID: X). Did you mean to amend it?"
|
|
19
|
+
- If user says yes, redirect to the amend flow
|
|
20
|
+
- If user says no, proceed with creating a new project (or abort — user's choice)
|
|
21
|
+
|
|
22
|
+
## Implementation Steps
|
|
23
|
+
|
|
24
|
+
1. **In `src/commands/plan.ts`, in `runPlanCommand()`** (around line 109):
|
|
25
|
+
- After the project name is determined but before creating the project folder
|
|
26
|
+
- Check if a project with the exact same name exists using `resolveProjectIdentifierWithDetails()` searching by name
|
|
27
|
+
- Also check worktrees using `resolveWorktreeProjectByIdentifier()`
|
|
28
|
+
|
|
29
|
+
2. **Add the user prompt:**
|
|
30
|
+
- Use the existing interactive prompt pattern (inquirer or similar) already used in the codebase
|
|
31
|
+
- Show: "Project '{name}' already exists (ID: {id}). Did you want to amend it?"
|
|
32
|
+
- Options: "Yes, amend it" / "No, create a new project" / "Cancel"
|
|
33
|
+
- If "Yes", call `runAmendCommand()` with the existing project's ID
|
|
34
|
+
- If "No", continue with normal project creation
|
|
35
|
+
- If "Cancel", exit
|
|
36
|
+
|
|
37
|
+
3. **Handle worktree context:**
|
|
38
|
+
- If the existing project is in a worktree, the amend redirect should include `--worktree`
|
|
39
|
+
- If the existing project is in main, redirect without `--worktree`
|
|
40
|
+
|
|
41
|
+
## Acceptance Criteria
|
|
42
|
+
- [ ] `raf plan my-project` detects existing project named "my-project" and prompts
|
|
43
|
+
- [ ] Exact match only — "my" does NOT match "my-project"
|
|
44
|
+
- [ ] Case-insensitive matching — "My-Project" matches "my-project"
|
|
45
|
+
- [ ] User can choose to amend, create new, or cancel
|
|
46
|
+
- [ ] Choosing amend redirects to the amend flow correctly
|
|
47
|
+
- [ ] Projects in worktrees are also detected
|
|
48
|
+
- [ ] `raf plan --amend` is not affected by this change (no double-prompt)
|
|
49
|
+
|
|
50
|
+
## Notes
|
|
51
|
+
- This check should only happen in the `raf plan` flow (not `--amend` which already knows it's amending).
|
|
52
|
+
- The prompt should be skipped if running in non-interactive mode (e.g., `--auto` / `-y` flag).
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Project Decisions
|
|
2
|
+
|
|
3
|
+
## How should we handle Codex's lack of a --system-prompt flag?
|
|
4
|
+
Prepend system prompt to user message. Concatenate the system prompt with the user message into a single prompt string.
|
|
5
|
+
|
|
6
|
+
## Should Codex support extend to interactive planning or only execution?
|
|
7
|
+
Both planning and execution. Support Codex for both `raf plan` and `raf do`.
|
|
8
|
+
|
|
9
|
+
## How should the provider be selected?
|
|
10
|
+
Global config + CLI override. Default provider in `raf.config.json`, overridable with `--provider` flag on commands.
|
|
11
|
+
|
|
12
|
+
## What default Codex models should map to effort levels?
|
|
13
|
+
- Low: `codex/gpt-5.3-codex-spark`
|
|
14
|
+
- Medium: `codex/gpt-5.3-codex`
|
|
15
|
+
- High: `codex/gpt-5.4`
|
|
16
|
+
|
|
17
|
+
Use harness prefix format: `claude/opus`, `codex/gpt-5.4`, etc.
|
|
18
|
+
|
|
19
|
+
## Should existing shorthand aliases require explicit prefixes?
|
|
20
|
+
No. Unprefixed aliases default to claude/ prefix. Existing configs keep working — `opus` means `claude/opus`. Only codex models need the `codex/` prefix.
|
|
21
|
+
|
|
22
|
+
## How should Codex interactive planning work?
|
|
23
|
+
PTY spawn like Claude. Spawn `codex` (without exec) via PTY, passing the prompt with system prompt prepended to user message.
|
|
24
|
+
|
|
25
|
+
## How should output parsing work for Codex?
|
|
26
|
+
Separate parsers, shared interface. Keep parsing logic completely separate for each provider but ensure they expose the same output interface (status, tokens, messages).
|
|
27
|
+
|
|
28
|
+
## How should `raf do` handle project scanning in worktree mode?
|
|
29
|
+
Merge both worktree and main-repo projects in the picker. When a project exists in both, worktree version takes precedence (dedup). This makes worktree mode show the same unified list as standard mode.
|
|
30
|
+
|
|
31
|
+
## What's wrong with the `raf plan` amend prompt?
|
|
32
|
+
The existing project check is skipped in auto mode (`-y` flag). The condition `if (projectName && !autoMode)` at plan.ts line 118 bypasses the check entirely. Fix: run the existing project check even in auto mode. When `-y` is used and an existing project is found, either auto-select amend or still prompt (breaking out of auto mode for this safety check).
|
|
33
|
+
|
|
34
|
+
## Should `raf plan --amend` and auto-detect accept numeric project IDs?
|
|
35
|
+
Yes. Both the explicit `--amend <id>` flow and the auto-detect prompt (`raf plan <identifier>`) should resolve numeric IDs (e.g., `raf plan --amend 38` or `raf plan 38`). Resolution should check both main-repo and worktree projects, consistent with name resolution.
|
|
36
|
+
|
|
37
|
+
## What kind of Codex testing should be done?
|
|
38
|
+
E2E only — actually run `raf plan` and `raf do` with `--provider codex` against a real dummy Node.js project. No unit tests for now.
|
|
39
|
+
|
|
40
|
+
## What scenarios should Codex E2E testing cover?
|
|
41
|
+
All scenarios: `raf plan --provider codex`, `raf do --provider codex`, config/model resolution, error handling, and edge cases. Sequential execution is fine (no need for parallel agents).
|
|
42
|
+
|
|
43
|
+
## How should issues found during Codex testing be handled?
|
|
44
|
+
Document only. List all issues in the outcome file. User decides what to fix after reviewing.
|