rafcode 2.5.1-0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +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 +35 -0
- package/RAF/38-dual-wielder/input.md +8 -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/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/README.md +57 -10
- 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 +42 -69
- package/dist/commands/do.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +71 -34
- 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/pull-request.d.ts +4 -4
- package/dist/core/pull-request.js +11 -11
- 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 +10 -13
- 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 +31 -0
- package/dist/parsers/codex-stream-renderer.d.ts.map +1 -0
- package/dist/parsers/codex-stream-renderer.js +81 -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 -1
- package/dist/prompts/amend.js +6 -6
- 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.js +12 -12
- package/dist/types/config.d.ts +21 -0
- 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 +27 -51
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +112 -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 +1 -1
- package/src/commands/config.ts +7 -7
- package/src/commands/do.ts +45 -79
- package/src/commands/plan.ts +74 -34
- 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/pull-request.ts +11 -11
- 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 +10 -13
- package/src/core/worktree.ts +14 -16
- package/src/index.ts +1 -1
- package/src/parsers/codex-stream-renderer.ts +108 -0
- package/src/parsers/output-parser.ts +2 -2
- package/src/parsers/stream-renderer.ts +1 -1
- package/src/prompts/amend.ts +6 -6
- package/src/prompts/config-docs.md +7 -7
- package/src/prompts/execution.ts +2 -2
- package/src/prompts/planning.ts +12 -12
- package/src/types/config.ts +39 -0
- 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 +113 -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
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Task 1: Config Schema & Provider Types
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Extended the config system to support multiple CLI providers (claude, codex) with harness-prefixed model names and provider-specific model mappings.
|
|
5
|
+
|
|
6
|
+
## Changes Made
|
|
7
|
+
|
|
8
|
+
### `src/types/config.ts`
|
|
9
|
+
- Added `HarnessProvider` type (`'claude' | 'codex'`)
|
|
10
|
+
- Added `CodexModelAlias` type (`'spark' | 'codex' | 'gpt54'`)
|
|
11
|
+
- Added `ModelAlias` and `ModelName` types (provider-agnostic unions)
|
|
12
|
+
- Added `provider: HarnessProvider` to `RafConfig` with default `'claude'`
|
|
13
|
+
- Added `codexModels` and `codexEffortMapping` config sections parallel to Claude ones
|
|
14
|
+
- Added `VALID_CODEX_MODEL_ALIASES` and `VALID_HARNESS_PROVIDERS` constants
|
|
15
|
+
- Added `provider?: HarnessProvider` to `PlanCommandOptions` and `DoCommandOptions`
|
|
16
|
+
- Kept backward-compatible `ClaudeModelAlias` and `ClaudeModelName` types
|
|
17
|
+
|
|
18
|
+
### `src/utils/config.ts`
|
|
19
|
+
- Added `CODEX_MODEL_ID_PATTERN` for Codex model validation
|
|
20
|
+
- Updated `isValidModelName()` to accept Claude aliases, Codex aliases, raw Codex IDs, and harness-prefixed format (`claude/opus`, `codex/gpt-5.4`)
|
|
21
|
+
- Added `parseModelSpec()` function to parse harness-prefixed model specs
|
|
22
|
+
- Updated `getModel()` and `resolveEffortToModel()` to accept optional provider parameter
|
|
23
|
+
- Added Codex model tier ordering (`CODEX_MODEL_TIER_ORDER`)
|
|
24
|
+
- Updated `getModelTier()`, `getModelShortName()`, `resolveFullModelId()` for Codex models
|
|
25
|
+
- Updated `MODEL_ALIAS_TO_FULL_ID` with Codex alias mappings
|
|
26
|
+
- Updated `VALID_TOP_LEVEL_KEYS`, `validateConfig()`, `deepMerge()`, `resolveConfig()` for new fields
|
|
27
|
+
|
|
28
|
+
### `src/utils/validation.ts`
|
|
29
|
+
- Updated `validateModelName()` to delegate to `isValidModelName()` (DRY)
|
|
30
|
+
- Updated error message in `resolveModelOption()` to mention harness-prefixed format
|
|
31
|
+
|
|
32
|
+
### `src/commands/plan.ts` and `src/commands/do.ts`
|
|
33
|
+
- Added `--provider` / `-p` CLI flag to both commands
|
|
34
|
+
|
|
35
|
+
## Acceptance Criteria
|
|
36
|
+
- [x] `provider` field exists in config with `'claude'` default
|
|
37
|
+
- [x] Harness-prefixed model names parse correctly (e.g., `codex/gpt-5.4`)
|
|
38
|
+
- [x] Unprefixed aliases still work and default to claude
|
|
39
|
+
- [x] Codex model defaults are defined
|
|
40
|
+
- [x] Config validation accepts new fields and rejects invalid ones
|
|
41
|
+
- [x] `--provider` flag available on `raf plan` and `raf do`
|
|
42
|
+
- [x] TypeScript compiles without errors
|
|
43
|
+
|
|
44
|
+
## Notes
|
|
45
|
+
- One pre-existing test failure in `name-generator.test.ts` (hardcoded `haiku` expectation vs config default `sonnet` for `nameGeneration`) — not related to this task.
|
|
46
|
+
|
|
47
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Task 2: Abstract CLI Runner Interface
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Extracted a provider-agnostic runner interface from `ClaudeRunner`, separating CLI-specific logic from shared orchestration concerns. Both Claude and future Codex runners can now be used interchangeably through the `ICliRunner` interface and `createRunner()` factory.
|
|
5
|
+
|
|
6
|
+
## Changes Made
|
|
7
|
+
|
|
8
|
+
### New Files
|
|
9
|
+
- **`src/core/runner-types.ts`**: Shared types — `RunnerOptions` (renamed from `ClaudeRunnerOptions`), `RunnerConfig` (renamed from `ClaudeRunnerConfig`), `RunResult`
|
|
10
|
+
- **`src/core/runner-interface.ts`**: `ICliRunner` interface with `run()`, `runVerbose()`, `runInteractive()`, `runResume()`, `kill()`, `isRunning()`
|
|
11
|
+
- **`src/core/completion-detector.ts`**: Extracted `createCompletionDetector()`, `verifyCommit()`, `CompletionDetector` interface, and timing constants from `claude-runner.ts`
|
|
12
|
+
- **`src/core/runner-factory.ts`**: `createRunner(config)` factory function and `getProviderBinaryName()` utility; Codex throws "not yet implemented"
|
|
13
|
+
|
|
14
|
+
### Modified Files
|
|
15
|
+
- **`src/core/claude-runner.ts`**: `ClaudeRunner` now implements `ICliRunner`; imports shared types from `runner-types.ts` and completion detection from `completion-detector.ts`; backward-compatible re-exports for `ClaudeRunnerOptions`, `ClaudeRunnerConfig`, `RunResult`, `CommitContext`, `CompletionDetector`, and timing constants
|
|
16
|
+
- **`src/core/shutdown-handler.ts`**: Changed from `ClaudeRunner` type to `ICliRunner`; added `registerRunner()` method with `registerClaudeRunner()` as deprecated alias
|
|
17
|
+
- **`src/commands/do.ts`**: Uses `createRunner()` instead of `new ClaudeRunner()`
|
|
18
|
+
- **`src/commands/plan.ts`**: Uses `createRunner()` instead of `new ClaudeRunner()`
|
|
19
|
+
- **`src/commands/config.ts`**: Uses `createRunner()` instead of `new ClaudeRunner()`
|
|
20
|
+
|
|
21
|
+
## Acceptance Criteria
|
|
22
|
+
- [x] `ICliRunner` interface is defined and `ClaudeRunner` implements it
|
|
23
|
+
- [x] `createRunner()` factory works for claude provider
|
|
24
|
+
- [x] `do.ts` and `plan.ts` use the factory instead of direct `ClaudeRunner` construction
|
|
25
|
+
- [x] Completion detection is extracted and shared
|
|
26
|
+
- [x] All existing functionality works identically (no behavior changes)
|
|
27
|
+
- [x] TypeScript compiles without errors
|
|
28
|
+
|
|
29
|
+
## Notes
|
|
30
|
+
- Backward-compatible re-exports in `claude-runner.ts` ensure existing tests continue to work without modification.
|
|
31
|
+
- The pre-existing `name-generator.test.ts` failure (hardcoded `haiku` expectation) remains — unrelated to this task.
|
|
32
|
+
|
|
33
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Task 3: Implement Codex Runner
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Implemented `CodexRunner` class that wraps the Codex CLI binary, providing the same `ICliRunner` interface as `ClaudeRunner`. Includes a dedicated JSONL stream renderer for Codex event types and factory integration.
|
|
5
|
+
|
|
6
|
+
## Changes Made
|
|
7
|
+
|
|
8
|
+
### New Files
|
|
9
|
+
- **`src/parsers/codex-stream-renderer.ts`**: Parses Codex JSONL events (`AgentMessage`, `CommandExecution`, `FileChange`, `McpToolCall`, `TodoList`) into `RenderResult` format shared with Claude's renderer. Unknown event types are skipped gracefully.
|
|
10
|
+
- **`src/core/codex-runner.ts`**: `CodexRunner` implementing `ICliRunner` with:
|
|
11
|
+
- `runInteractive()`: Spawns `codex -m <model> <combined_prompt>` via PTY with stdin/stdout passthrough
|
|
12
|
+
- `run()` / `runVerbose()`: Spawns `codex exec --full-auto --json --ephemeral -m <model> <prompt>` and parses JSONL output
|
|
13
|
+
- `runResume()`: Throws error (not supported by Codex CLI)
|
|
14
|
+
- `kill()` / `isRunning()`: Same graceful shutdown pattern as ClaudeRunner
|
|
15
|
+
- System prompt prepended to user message as `[System Instructions]...[User Request]...` format
|
|
16
|
+
- Shared completion detector for outcome file monitoring
|
|
17
|
+
- Context overflow detection
|
|
18
|
+
- Usage data gracefully omitted (Codex doesn't provide it in the same format)
|
|
19
|
+
|
|
20
|
+
### Modified Files
|
|
21
|
+
- **`src/core/runner-factory.ts`**: Imports `CodexRunner` and returns `new CodexRunner(config)` for `provider: 'codex'` (replaces the "not yet implemented" error)
|
|
22
|
+
|
|
23
|
+
## Acceptance Criteria
|
|
24
|
+
- [x] `CodexRunner` implements `ICliRunner` fully
|
|
25
|
+
- [x] `codex exec` spawns correctly with proper flags (`--full-auto --json --ephemeral -m`)
|
|
26
|
+
- [x] System prompt is prepended to user message correctly
|
|
27
|
+
- [x] JSONL events are parsed and displayed properly in verbose mode
|
|
28
|
+
- [x] Interactive mode works via PTY
|
|
29
|
+
- [x] Timeout and completion detection work
|
|
30
|
+
- [x] `createRunner({ provider: 'codex' })` returns a working CodexRunner
|
|
31
|
+
- [x] TypeScript compiles without errors
|
|
32
|
+
|
|
33
|
+
## Notes
|
|
34
|
+
- Codex usage data is omitted (returns `undefined`) since Codex doesn't provide token usage in the same format as Claude's stream-json.
|
|
35
|
+
- The `--ephemeral` flag is used in non-interactive mode to avoid session persistence pollution.
|
|
36
|
+
- The pre-existing `name-generator.test.ts` failure remains — unrelated to this task.
|
|
37
|
+
|
|
38
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Task 4: Update Prompts to be LLM-Agnostic
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Removed Claude-specific language from all user-facing prompt templates, log messages, CLI descriptions, error messages, and doc comments so they work with any LLM provider.
|
|
5
|
+
|
|
6
|
+
## Changes Made
|
|
7
|
+
|
|
8
|
+
### Prompt Files
|
|
9
|
+
- **`src/prompts/planning.ts`**: Removed "for Claude" from task sizing guidance, changed "Claude model" to "model", updated doc comment
|
|
10
|
+
- **`src/prompts/amend.ts`**: Same changes as planning.ts — removed "Claude model" references, updated doc comment
|
|
11
|
+
- **`src/prompts/execution.ts`**: Already generic, no changes needed
|
|
12
|
+
- **`src/prompts/config-docs.md`**: Updated "Claude Model Selection" → "Model Selection", "Claude models" → "models", "Claude automatically commits" → "RAF automatically commits", "For Claude — Config Editing" → "Config Editing Session Instructions"
|
|
13
|
+
|
|
14
|
+
### Core Files
|
|
15
|
+
- **`src/core/claude-runner.ts`**: Made all log messages generic ("Starting interactive session", "Session timed out", "Process exited", "Process stderr"), updated all doc comments
|
|
16
|
+
- **`src/core/pull-request.ts`**: Updated error messages ("CLI not found", "Process exited with code", "LLM returned empty output"), updated doc comments
|
|
17
|
+
- **`src/core/failure-analyzer.ts`**: Updated user-facing failure analysis text ("The API returned", "The LLM is stuck", "context grew too large for the LLM"), updated doc comments
|
|
18
|
+
- **`src/core/runner-interface.ts`**: No changes needed (already mentions both runners by class name)
|
|
19
|
+
|
|
20
|
+
### Command Files
|
|
21
|
+
- **`src/index.ts`**: `'RAF - Automated Task Planning & Execution with Claude Code'` → `'RAF - Automated Task Planning & Execution'`
|
|
22
|
+
- **`src/commands/plan.ts`**: Updated description, option help text (`'Model to use'`, `'Skip permission prompts'`), log messages (`'Starting planning session...'`, `'The planner will interview you'`)
|
|
23
|
+
- **`src/commands/do.ts`**: Updated option help text (`'Show full LLM output'`, `'Model to use'`), updated comments
|
|
24
|
+
- **`src/commands/config.ts`**: Updated description (`'View and edit RAF configuration interactively'`), log messages, doc comments
|
|
25
|
+
|
|
26
|
+
### Parser & Utility Files
|
|
27
|
+
- **`src/parsers/stream-renderer.ts`**: Updated doc comment ("LLM response" instead of "Claude's response")
|
|
28
|
+
- **`src/parsers/output-parser.ts`**: Updated doc comments
|
|
29
|
+
- **`src/utils/name-generator.ts`**: Updated all doc comments and debug log messages
|
|
30
|
+
- **`src/utils/validation.ts`**: Updated error message for missing CLI
|
|
31
|
+
- **`src/utils/token-tracker.ts`**: Updated comments ("CLI-provided" instead of "Claude-provided")
|
|
32
|
+
|
|
33
|
+
## What Was NOT Changed (By Design)
|
|
34
|
+
- Internal variable/type names (`ClaudeRunner`, `claudeRunner`, `ClaudeModelAlias`, `callClaudeForPrBody`, etc.) — these are internal implementation details
|
|
35
|
+
- Literal `'claude'` as a provider value — it's a valid provider name
|
|
36
|
+
- Claude model ID strings/patterns (`claude-opus-4-6`) — these are actual model identifiers
|
|
37
|
+
- File names (`claude-runner.ts`) — internal implementation files for the Claude provider
|
|
38
|
+
- Backward-compatible re-exports
|
|
39
|
+
|
|
40
|
+
## Acceptance Criteria
|
|
41
|
+
- [x] No user-facing prompt text mentions "Claude" specifically
|
|
42
|
+
- [x] Log messages are provider-generic or include provider name dynamically
|
|
43
|
+
- [x] CLI description is LLM-agnostic
|
|
44
|
+
- [x] All prompts still function correctly (no broken templates)
|
|
45
|
+
- [x] TypeScript compiles without errors
|
|
46
|
+
|
|
47
|
+
## Notes
|
|
48
|
+
- The pre-existing `name-generator.test.ts` failure (hardcoded `haiku` expectation vs config default `sonnet`) remains — unrelated to this task.
|
|
49
|
+
|
|
50
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Task 5: Update README and Documentation
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Updated README.md to reflect dual-provider support for Claude Code CLI and OpenAI Codex CLI.
|
|
5
|
+
|
|
6
|
+
## Changes Made
|
|
7
|
+
|
|
8
|
+
### `README.md`
|
|
9
|
+
- Updated title: "RAF - Automated Task Planning & Execution with Claude Code" → "RAF - Automated Task Planning & Execution"
|
|
10
|
+
- Updated description to mention both Claude Code CLI and OpenAI Codex CLI
|
|
11
|
+
- Updated Requirements section to list both providers
|
|
12
|
+
- Updated Features list to add "Multi-Provider" bullet
|
|
13
|
+
- Updated generic language ("the model needs" instead of "Claude needs")
|
|
14
|
+
- Updated Quick Start comment from "Claude will interview you" to be generic
|
|
15
|
+
- Added `"provider": "claude"` to the config example
|
|
16
|
+
- Added **Provider Configuration** section with:
|
|
17
|
+
- `--provider codex` CLI usage examples
|
|
18
|
+
- Model spec format (plain aliases and `<provider>/<alias>` prefix)
|
|
19
|
+
- Codex-specific config example (`codexModels`, `codexEffortMapping`)
|
|
20
|
+
- Codex limitations (`--resume` not supported, system prompt prepend behavior)
|
|
21
|
+
- Updated Command Reference tables for `raf plan` and `raf do`:
|
|
22
|
+
- Added `-p, --provider <name>` row
|
|
23
|
+
- Added `-m, --model <name>` row to `raf plan`
|
|
24
|
+
- Updated model description to show harness-prefixed examples
|
|
25
|
+
- Updated the dangerous-mode note to be provider-generic
|
|
26
|
+
|
|
27
|
+
## Acceptance Criteria
|
|
28
|
+
- [x] README reflects multi-provider support
|
|
29
|
+
- [x] New config fields are documented (`provider`, `codexModels`, `codexEffortMapping`)
|
|
30
|
+
- [x] `--provider` flag is documented for `raf do` and `raf plan`
|
|
31
|
+
- [x] Existing documentation is updated (not just appended)
|
|
32
|
+
|
|
33
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Task 6: Unified Project Scanning in `raf do` Worktree Mode
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Made `raf do --worktree` show both worktree and main-repo pending projects in the interactive picker, instead of only worktree projects.
|
|
5
|
+
|
|
6
|
+
## Changes Made
|
|
7
|
+
|
|
8
|
+
### `src/commands/do.ts`
|
|
9
|
+
- Rewrote `discoverAndPickWorktreeProject()` to use `getPendingWorktreeProjects()` and `getPendingProjects()` from `project-picker.ts` instead of reimplementing scanning logic
|
|
10
|
+
- Added main-repo pending projects to the picker (no threshold filter on main-repo projects)
|
|
11
|
+
- Threshold filter still applies to worktree projects only
|
|
12
|
+
- Deduplication: worktree versions take precedence over main-repo versions (same logic as `pickPendingProject()`)
|
|
13
|
+
- Uses `formatProjectChoice()` for consistent display with `[worktree]` suffix on worktree projects
|
|
14
|
+
- Changed return type to `{ worktreeRoot?: string; projectFolder: string }` — when a main-repo project is selected, `worktreeRoot` is undefined and the downstream worktree creation flow kicks in as normal
|
|
15
|
+
- Removed unused `parseProjectPrefix` import
|
|
16
|
+
- Added `formatProjectChoice` to static imports
|
|
17
|
+
|
|
18
|
+
## Acceptance Criteria
|
|
19
|
+
- [x] `raf do --worktree` shows pending projects from both worktree and main repo
|
|
20
|
+
- [x] Duplicate projects are deduped with worktree version taking precedence
|
|
21
|
+
- [x] Selecting a main-repo project in worktree mode correctly creates/uses a worktree (worktreeRoot is undefined, falls through to existing worktree creation logic)
|
|
22
|
+
- [x] Existing worktree-only scanning behavior is replaced by unified scanning
|
|
23
|
+
- [x] No regressions in standard (non-worktree) mode — that code path is untouched
|
|
24
|
+
|
|
25
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Task 7: Fix Plan Amend Prompt and Add Numeric ID Resolution
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Removed the `!autoMode` gate from the existing-project detection check in `runPlanCommand()`, so `raf plan -y <name-or-id>` now correctly detects existing projects and prompts to amend instead of silently creating duplicates.
|
|
5
|
+
|
|
6
|
+
## Changes Made
|
|
7
|
+
|
|
8
|
+
### `src/commands/plan.ts`
|
|
9
|
+
- Removed `!autoMode` from the condition on line 121: `if (projectName && !autoMode)` → `if (projectName)`
|
|
10
|
+
- The existing project detection now runs regardless of `-y` flag
|
|
11
|
+
- The interactive prompt (`select()`) intentionally breaks out of auto mode for this safety check
|
|
12
|
+
- Numeric ID resolution was already supported by both `resolveProjectIdentifierWithDetails()` and `resolveWorktreeProjectByIdentifier()` — no additional changes needed
|
|
13
|
+
|
|
14
|
+
## Acceptance Criteria
|
|
15
|
+
- [x] `raf plan -y <existing-project-name>` detects the existing project and prompts to amend
|
|
16
|
+
- [x] `raf plan -y <numeric-id>` (e.g., `raf plan -y 38`) detects the existing project and prompts to amend
|
|
17
|
+
- [x] `raf plan --amend <numeric-id>` resolves the project correctly and enters amend mode
|
|
18
|
+
- [x] `raf plan --amend <project-name>` continues to work as before
|
|
19
|
+
- [x] Resolution checks both main-repo and worktree projects in all cases
|
|
20
|
+
- [x] If user selects "amend", the amend flow runs correctly
|
|
21
|
+
- [x] If user selects "create new", a new project is created as before
|
|
22
|
+
- [x] Non-auto-mode behavior is unchanged
|
|
23
|
+
|
|
24
|
+
## Notes
|
|
25
|
+
- The fix was a one-line change — the resolution utilities already supported numeric IDs; only the auto-mode guard was preventing the check from running.
|
|
26
|
+
- The `select()` prompt intentionally breaks auto mode for this safety check, as silently duplicating a project is almost always a mistake.
|
|
27
|
+
|
|
28
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
effort: high
|
|
3
|
+
---
|
|
4
|
+
# Task: Config Schema & Provider Types
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
Extend the config system to support multiple CLI providers (claude, codex) with harness-prefixed model names and provider-specific model mappings.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
RAF currently hardcodes Claude as the only CLI provider. To support Codex CLI alongside Claude, we need to introduce a provider abstraction at the config/type level first. This is the foundation task — all other tasks depend on it.
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
- Add a `provider` field to `RafConfig` (default: `'claude'`)
|
|
14
|
+
- Support harness-prefixed model format: `claude/opus`, `codex/gpt-5.4`, etc.
|
|
15
|
+
- Unprefixed aliases (`opus`, `sonnet`, `haiku`) default to `claude/` prefix — existing configs keep working
|
|
16
|
+
- Add Codex-specific model mappings and effort mappings
|
|
17
|
+
- Add provider to CLI command options (`--provider` flag)
|
|
18
|
+
- Config validation must accept both old (unprefixed) and new (prefixed) model formats
|
|
19
|
+
|
|
20
|
+
## Implementation Steps
|
|
21
|
+
|
|
22
|
+
1. **Update `src/types/config.ts`**:
|
|
23
|
+
- Add `HarnessProvider` type: `'claude' | 'codex'`
|
|
24
|
+
- Add `provider: HarnessProvider` to `RafConfig` with default `'claude'`
|
|
25
|
+
- Add `provider` to `DEFAULT_CONFIG`
|
|
26
|
+
- Rename `ClaudeModelAlias` to `ModelAlias` (keep backward-compat re-export)
|
|
27
|
+
- Rename `ClaudeModelName` to `ModelName` (keep backward-compat re-export)
|
|
28
|
+
- Add `CodexModelAlias` type for codex shorthand names (e.g., `'spark'`, `'codex'`, `'gpt54'`)
|
|
29
|
+
- Update `PlanCommandOptions` and `DoCommandOptions` to include `provider?: HarnessProvider`
|
|
30
|
+
- Add a `codexModels` config section parallel to `models`, with same scenario keys but codex model defaults
|
|
31
|
+
- Add a `codexEffortMapping` config section parallel to `effortMapping`
|
|
32
|
+
|
|
33
|
+
2. **Add Codex model constants and defaults**:
|
|
34
|
+
- Default codex models config:
|
|
35
|
+
```
|
|
36
|
+
codexModels: {
|
|
37
|
+
plan: 'gpt-5.3-codex',
|
|
38
|
+
execute: 'gpt-5.4',
|
|
39
|
+
nameGeneration: 'gpt-5.3-codex-spark',
|
|
40
|
+
failureAnalysis: 'gpt-5.3-codex-spark',
|
|
41
|
+
prGeneration: 'gpt-5.3-codex',
|
|
42
|
+
config: 'gpt-5.3-codex',
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
- Default codex effort mapping:
|
|
46
|
+
```
|
|
47
|
+
codexEffortMapping: {
|
|
48
|
+
low: 'gpt-5.3-codex-spark',
|
|
49
|
+
medium: 'gpt-5.3-codex',
|
|
50
|
+
high: 'gpt-5.4',
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
3. **Update `src/utils/config.ts`**:
|
|
55
|
+
- Update `isValidModelName()` to accept:
|
|
56
|
+
- Existing Claude aliases and full IDs (backward compat)
|
|
57
|
+
- Harness-prefixed format: `claude/<alias-or-full-id>` or `codex/<model-id>`
|
|
58
|
+
- Raw Codex model IDs (e.g., `gpt-5.4`, `gpt-5.3-codex-spark`)
|
|
59
|
+
- Update `resolveFullModelId()` to handle prefixed format — strip prefix and resolve
|
|
60
|
+
- Add `parseModelSpec(modelSpec: string): { provider: HarnessProvider; model: string }` that parses `codex/gpt-5.4` into parts
|
|
61
|
+
- Update `getModel()` to accept optional provider parameter and return from the right config section
|
|
62
|
+
- Update `resolveEffortToModel()` similarly
|
|
63
|
+
- Add Codex model tier ordering for ceiling comparison
|
|
64
|
+
- Update `getModelShortName()` to handle Codex models
|
|
65
|
+
- Update `MODEL_ALIAS_TO_FULL_ID` to include codex aliases if any
|
|
66
|
+
- Update `VALID_TOP_LEVEL_KEYS` set to include `'provider'`, `'codexModels'`, `'codexEffortMapping'`
|
|
67
|
+
- Update `validateConfig()` to validate the new fields
|
|
68
|
+
- Update `deepMerge()` to merge the new config sections
|
|
69
|
+
|
|
70
|
+
4. **Update `src/index.ts`**:
|
|
71
|
+
- Add `--provider <provider>` option to `plan` and `do` commands
|
|
72
|
+
- Pass provider through to command handlers
|
|
73
|
+
|
|
74
|
+
5. **Update `src/commands/do.ts`** and `src/commands/plan.ts`** (only the option plumbing):
|
|
75
|
+
- Accept `provider` from CLI options
|
|
76
|
+
- Thread it through to where model resolution happens
|
|
77
|
+
|
|
78
|
+
## Acceptance Criteria
|
|
79
|
+
- [ ] `provider` field exists in config with `'claude'` default
|
|
80
|
+
- [ ] Harness-prefixed model names parse correctly (e.g., `codex/gpt-5.4`)
|
|
81
|
+
- [ ] Unprefixed aliases still work and default to claude
|
|
82
|
+
- [ ] Codex model defaults are defined
|
|
83
|
+
- [ ] Config validation accepts new fields and rejects invalid ones
|
|
84
|
+
- [ ] `--provider` flag available on `raf plan` and `raf do`
|
|
85
|
+
- [ ] TypeScript compiles without errors
|
|
86
|
+
|
|
87
|
+
## Notes
|
|
88
|
+
- This task focuses on types, config, and validation only. The actual CLI runner abstraction is in the next task.
|
|
89
|
+
- Keep backward-compat re-exports for renamed types so other modules don't need immediate changes.
|
|
90
|
+
- The `codexModels` and `codexEffortMapping` config sections mirror the claude ones structurally, making the config symmetric.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
effort: high
|
|
3
|
+
---
|
|
4
|
+
# Task: Abstract CLI Runner Interface
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
Extract a provider-agnostic runner interface from `ClaudeRunner` so both Claude and Codex can be used interchangeably.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
`ClaudeRunner` in `src/core/claude-runner.ts` currently contains both Claude-specific logic (CLI args, path discovery) and generic orchestration logic (timeout management, completion detection, PTY handling). We need to separate these concerns so Codex can plug in with its own CLI-specific logic while reusing the orchestration.
|
|
11
|
+
|
|
12
|
+
## Dependencies
|
|
13
|
+
1
|
|
14
|
+
|
|
15
|
+
## Requirements
|
|
16
|
+
- Create an abstract `CliRunner` interface/base class that both providers implement
|
|
17
|
+
- The interface must support: `run()`, `runVerbose()`, `runInteractive()`, `runResume()`, `kill()`, `isRunning()`
|
|
18
|
+
- Keep `RunResult` and `ClaudeRunnerOptions` as shared types (rename options to `RunnerOptions`)
|
|
19
|
+
- Completion detection logic (grace period, commit verification) should remain shared
|
|
20
|
+
- Create a factory function that returns the correct runner based on provider config
|
|
21
|
+
- Existing code that uses `ClaudeRunner` should work with minimal changes (ideally just type changes)
|
|
22
|
+
|
|
23
|
+
## Implementation Steps
|
|
24
|
+
|
|
25
|
+
1. **Create `src/core/runner-types.ts`**:
|
|
26
|
+
- Move shared types here: `RunnerOptions` (renamed from `ClaudeRunnerOptions`), `RunnerConfig` (renamed from `ClaudeRunnerConfig`), `RunResult`
|
|
27
|
+
- Add `provider: HarnessProvider` to `RunnerConfig`
|
|
28
|
+
- Re-export from `claude-runner.ts` for backward compat
|
|
29
|
+
|
|
30
|
+
2. **Create `src/core/runner-interface.ts`**:
|
|
31
|
+
- Define the `ICliRunner` interface:
|
|
32
|
+
```typescript
|
|
33
|
+
export interface ICliRunner {
|
|
34
|
+
runInteractive(systemPrompt: string, userMessage: string, options?: RunnerOptions): Promise<number>;
|
|
35
|
+
runResume(options?: RunnerOptions): Promise<number>;
|
|
36
|
+
run(prompt: string, options?: RunnerOptions): Promise<RunResult>;
|
|
37
|
+
runVerbose(prompt: string, options?: RunnerOptions): Promise<RunResult>;
|
|
38
|
+
kill(): void;
|
|
39
|
+
isRunning(): boolean;
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
3. **Refactor `src/core/claude-runner.ts`**:
|
|
44
|
+
- `ClaudeRunner` implements `ICliRunner`
|
|
45
|
+
- Keep all existing Claude-specific logic (arg building, `which claude`, stream-json parsing)
|
|
46
|
+
- Import shared types from `runner-types.ts`
|
|
47
|
+
- The completion detection helpers (`createCompletionDetector`, `verifyCommit`, etc.) stay in this file or move to a shared utils file since Codex will need them too
|
|
48
|
+
|
|
49
|
+
4. **Create `src/core/runner-factory.ts`**:
|
|
50
|
+
- Export `createRunner(config: RunnerConfig): ICliRunner`
|
|
51
|
+
- For `provider: 'claude'` → return `new ClaudeRunner(config)`
|
|
52
|
+
- For `provider: 'codex'` → throw for now with "Codex runner not yet implemented" (task 3 will implement it)
|
|
53
|
+
- Export `getProviderBinaryName(provider: HarnessProvider): string` utility
|
|
54
|
+
|
|
55
|
+
5. **Extract completion detection to `src/core/completion-detector.ts`**:
|
|
56
|
+
- Move `createCompletionDetector`, `verifyCommit`, `CompletionDetector` interface, and related constants
|
|
57
|
+
- Both Claude and Codex runners will import from here
|
|
58
|
+
|
|
59
|
+
6. **Update consumers**:
|
|
60
|
+
- `src/commands/do.ts`: Use `createRunner()` instead of `new ClaudeRunner()`; pass provider from options
|
|
61
|
+
- `src/commands/plan.ts`: Same
|
|
62
|
+
- `src/core/pull-request.ts`: Will need provider-aware runner creation (can stay claude-only for now with a TODO)
|
|
63
|
+
- Update imports as needed
|
|
64
|
+
|
|
65
|
+
## Acceptance Criteria
|
|
66
|
+
- [ ] `ICliRunner` interface is defined and `ClaudeRunner` implements it
|
|
67
|
+
- [ ] `createRunner()` factory works for claude provider
|
|
68
|
+
- [ ] `do.ts` and `plan.ts` use the factory instead of direct `ClaudeRunner` construction
|
|
69
|
+
- [ ] Completion detection is extracted and shared
|
|
70
|
+
- [ ] All existing functionality works identically (no behavior changes)
|
|
71
|
+
- [ ] TypeScript compiles without errors
|
|
72
|
+
|
|
73
|
+
## Notes
|
|
74
|
+
- This is a refactoring task — no new features, just structural changes to enable task 3.
|
|
75
|
+
- The `runResume()` method is Claude-specific (Codex may not support session resume). The Codex implementation can throw "not supported" for this method.
|
|
76
|
+
- Keep the refactoring minimal — don't redesign the whole API, just extract the interface.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
effort: high
|
|
3
|
+
---
|
|
4
|
+
# Task: Implement Codex Runner
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
Implement `CodexRunner` that wraps the Codex CLI (`codex` binary) with the same interface as `ClaudeRunner`.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
With the runner interface extracted in task 2, we can now implement the Codex-specific runner. Codex CLI has different flags, output formats, and interaction patterns than Claude CLI. Key differences:
|
|
11
|
+
- Non-interactive: `codex exec --full-auto --json` (vs Claude's `-p --output-format stream-json`)
|
|
12
|
+
- Interactive: `codex` TUI via PTY (vs Claude's PTY)
|
|
13
|
+
- No `--system-prompt` flag — system prompt must be prepended to user message
|
|
14
|
+
- JSONL output with different event types (CommandExecution, FileChange, AgentMessage, etc.)
|
|
15
|
+
- Model flag: `-m` (vs `--model`)
|
|
16
|
+
- Permission bypass: `--full-auto` (vs `--dangerously-skip-permissions`)
|
|
17
|
+
|
|
18
|
+
## Dependencies
|
|
19
|
+
1, 2
|
|
20
|
+
|
|
21
|
+
## Requirements
|
|
22
|
+
- Implement `CodexRunner` class implementing `ICliRunner`
|
|
23
|
+
- Handle system prompt by prepending it to the user message
|
|
24
|
+
- Parse Codex JSONL events into the shared `RunResult` format
|
|
25
|
+
- Support both interactive (PTY) and non-interactive (exec) modes
|
|
26
|
+
- Discover `codex` binary via `which codex`
|
|
27
|
+
- Build correct CLI arguments for Codex
|
|
28
|
+
- Stream renderer for Codex JSONL events (separate from Claude's stream-renderer)
|
|
29
|
+
|
|
30
|
+
## Implementation Steps
|
|
31
|
+
|
|
32
|
+
1. **Create `src/parsers/codex-stream-renderer.ts`**:
|
|
33
|
+
- Parse Codex JSONL events (one JSON object per line)
|
|
34
|
+
- Map Codex event types to `RenderResult` (same interface as Claude's renderer):
|
|
35
|
+
- `AgentMessage` → text content + display
|
|
36
|
+
- `CommandExecution` → tool display (show command + exit code)
|
|
37
|
+
- `FileChange` → tool display (show file path + change kind)
|
|
38
|
+
- `McpToolCall` → tool display
|
|
39
|
+
- `TodoList` → skip or minimal display
|
|
40
|
+
- Extract any usage/cost data from Codex events if available
|
|
41
|
+
- Export `renderCodexStreamEvent(line: string): RenderResult`
|
|
42
|
+
|
|
43
|
+
2. **Create `src/core/codex-runner.ts`**:
|
|
44
|
+
- Implement `ICliRunner` interface
|
|
45
|
+
- `getCodexPath()`: `execSync('which codex', ...)`
|
|
46
|
+
- Constructor takes `RunnerConfig` (model, provider)
|
|
47
|
+
|
|
48
|
+
3. **Implement `runInteractive()`**:
|
|
49
|
+
- Spawn `codex` (no `exec` subcommand) via PTY
|
|
50
|
+
- Build args: `-m <model>`
|
|
51
|
+
- Combine system prompt and user message: `"[System Instructions]\n\n{systemPrompt}\n\n[User Request]\n\n{userMessage}"`
|
|
52
|
+
- Pass combined message as positional argument
|
|
53
|
+
- Handle PTY stdin/stdout passthrough (same pattern as ClaudeRunner)
|
|
54
|
+
- Handle cleanup on exit
|
|
55
|
+
|
|
56
|
+
4. **Implement `run()` / `runVerbose()` (non-interactive execution)**:
|
|
57
|
+
- Spawn: `codex exec --full-auto --json -m <model> <combined_prompt>`
|
|
58
|
+
- Build the combined prompt (system + user prompt prepended)
|
|
59
|
+
- Parse JSONL stdout line by line using `renderCodexStreamEvent()`
|
|
60
|
+
- Accumulate text content for output
|
|
61
|
+
- Apply timeout logic (same pattern as ClaudeRunner)
|
|
62
|
+
- Use shared completion detector for outcome file monitoring
|
|
63
|
+
- Return `RunResult` with output, exitCode, timedOut, contextOverflow
|
|
64
|
+
|
|
65
|
+
5. **Implement `runResume()`**:
|
|
66
|
+
- Throw `Error('Session resume is not supported by Codex CLI')`
|
|
67
|
+
|
|
68
|
+
6. **Implement `kill()` and `isRunning()`**:
|
|
69
|
+
- Same pattern as ClaudeRunner (Ctrl+C via PTY write, SIGTERM fallback)
|
|
70
|
+
|
|
71
|
+
7. **Update `src/core/runner-factory.ts`**:
|
|
72
|
+
- Import `CodexRunner`
|
|
73
|
+
- Return `new CodexRunner(config)` for `provider: 'codex'`
|
|
74
|
+
|
|
75
|
+
8. **Handle Codex-specific edge cases**:
|
|
76
|
+
- Codex may not report token usage in the same way — handle missing usage data gracefully
|
|
77
|
+
- Codex `--json` output might include events we don't care about — filter/skip unknown types
|
|
78
|
+
- `--ephemeral` flag to avoid session persistence pollution
|
|
79
|
+
|
|
80
|
+
## Acceptance Criteria
|
|
81
|
+
- [ ] `CodexRunner` implements `ICliRunner` fully
|
|
82
|
+
- [ ] `codex exec` spawns correctly with proper flags
|
|
83
|
+
- [ ] System prompt is prepended to user message correctly
|
|
84
|
+
- [ ] JSONL events are parsed and displayed properly in verbose mode
|
|
85
|
+
- [ ] Interactive mode works via PTY
|
|
86
|
+
- [ ] Timeout and completion detection work
|
|
87
|
+
- [ ] `createRunner({ provider: 'codex' })` returns a working CodexRunner
|
|
88
|
+
- [ ] TypeScript compiles without errors
|
|
89
|
+
|
|
90
|
+
## Notes
|
|
91
|
+
- Test by running `raf do <project> --provider codex` once integrated
|
|
92
|
+
- Codex may not provide `total_cost_usd` in the same format — handle gracefully with zeros
|
|
93
|
+
- The combined prompt approach (prepending system prompt) means Codex sees one large message. This is simpler but less structured than Claude's separate system prompt. It was chosen for simplicity per user decision.
|
|
94
|
+
- Use `--ephemeral` flag in non-interactive mode to keep things clean
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
effort: medium
|
|
3
|
+
---
|
|
4
|
+
# Task: Update Prompts to be LLM-Agnostic
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
Remove Claude-specific language from all prompt templates so they work with any LLM provider.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
The prompts in `src/prompts/` contain Claude-specific references like "Claude Code", "Claude CLI", "Claude session", and "Claude model". These need to be made generic since the prompts will now be sent to either Claude or Codex.
|
|
11
|
+
|
|
12
|
+
## Dependencies
|
|
13
|
+
1
|
|
14
|
+
|
|
15
|
+
## Requirements
|
|
16
|
+
- Replace Claude-specific references in all prompt files with generic alternatives
|
|
17
|
+
- Update the execution prompt, planning prompt, and amend prompt
|
|
18
|
+
- Keep the prompts' functional content identical — only change naming/branding
|
|
19
|
+
- Update any log messages that reference "Claude" in the runner and command files
|
|
20
|
+
|
|
21
|
+
## Implementation Steps
|
|
22
|
+
|
|
23
|
+
1. **Update `src/prompts/execution.ts`**:
|
|
24
|
+
- Replace "Claude" references in prompt text with generic terms
|
|
25
|
+
- `"You are executing a planned task for RAF"` — already generic, keep as-is
|
|
26
|
+
- Check for any Claude-specific tool names or behaviors mentioned in the prompt
|
|
27
|
+
|
|
28
|
+
2. **Update `src/prompts/planning.ts`**:
|
|
29
|
+
- `"Take roughly 10-30 minutes of work for Claude"` → `"Take roughly 10-30 minutes of work"`
|
|
30
|
+
- `"which Claude model will execute the task"` → `"which model will execute the task"`
|
|
31
|
+
- Review entire planning prompt for Claude-specific language
|
|
32
|
+
|
|
33
|
+
3. **Update `src/prompts/amend.ts`**:
|
|
34
|
+
- Same treatment as planning prompt
|
|
35
|
+
- `"which Claude model will execute the task"` → `"which model will execute the task"`
|
|
36
|
+
|
|
37
|
+
4. **Update log messages in `src/core/claude-runner.ts`**:
|
|
38
|
+
- `"Starting interactive Claude session"` → `"Starting interactive session"` or include provider name dynamically
|
|
39
|
+
- `"Starting Claude execution session"` → `"Starting execution session"`
|
|
40
|
+
- `"Claude session timed out"` → `"Session timed out"`
|
|
41
|
+
- `"terminating Claude process"` → `"terminating process"`
|
|
42
|
+
- `"Claude exited with code"` → `"Process exited with code"`
|
|
43
|
+
- `"Claude stderr"` → `"Process stderr"`
|
|
44
|
+
|
|
45
|
+
5. **Update `src/core/pull-request.ts`**:
|
|
46
|
+
- `callClaudeForPrBody` → `callLlmForPrBody` (or keep internal name, just update error messages)
|
|
47
|
+
- `"Claude CLI not found"` → make provider-aware or generic
|
|
48
|
+
|
|
49
|
+
6. **Update `src/index.ts`**:
|
|
50
|
+
- `.description('RAF - Automated Task Planning & Execution with Claude Code')` → `'RAF - Automated Task Planning & Execution'`
|
|
51
|
+
|
|
52
|
+
7. **Update `src/parsers/stream-renderer.ts`** doc comments:
|
|
53
|
+
- `"Event types from claude -p --output-format stream-json --verbose"` → make generic or note it's Claude-specific
|
|
54
|
+
|
|
55
|
+
8. **Scan for remaining references**:
|
|
56
|
+
- Search entire `src/` for strings containing "claude" (case-insensitive)
|
|
57
|
+
- Skip: file names that will be addressed by the runner refactoring, type names with backward-compat re-exports
|
|
58
|
+
- Update any user-facing messages, error messages, and comments
|
|
59
|
+
|
|
60
|
+
## Acceptance Criteria
|
|
61
|
+
- [ ] No user-facing prompt text mentions "Claude" specifically
|
|
62
|
+
- [ ] Log messages are provider-generic or include provider name dynamically
|
|
63
|
+
- [ ] CLI description is LLM-agnostic
|
|
64
|
+
- [ ] All prompts still function correctly (no broken templates)
|
|
65
|
+
- [ ] TypeScript compiles without errors
|
|
66
|
+
|
|
67
|
+
## Notes
|
|
68
|
+
- Internal code comments mentioning "Claude" are lower priority but should be updated where easy
|
|
69
|
+
- File names like `claude-runner.ts` don't need to change — they're internal implementation files for the Claude provider
|
|
70
|
+
- The planning prompt is also used as the system prompt for this very planning session, but that's fine — it's a template, not a runtime concern
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
effort: low
|
|
3
|
+
---
|
|
4
|
+
# Task: Update README and Documentation
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
Update README.md to reflect multi-provider support, new config options, and the `--provider` CLI flag.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
The README currently describes RAF as a Claude Code-only tool. With Codex support added, documentation needs to reflect the dual-provider capability.
|
|
11
|
+
|
|
12
|
+
## Dependencies
|
|
13
|
+
1, 2, 3, 4
|
|
14
|
+
|
|
15
|
+
## Requirements
|
|
16
|
+
- Document the `provider` config field and `--provider` CLI flag
|
|
17
|
+
- Document harness-prefixed model format (`claude/opus`, `codex/gpt-5.4`)
|
|
18
|
+
- Document Codex-specific configuration (codexModels, codexEffortMapping)
|
|
19
|
+
- Update existing examples that reference Claude-only setup
|
|
20
|
+
- Keep README concise — don't over-document
|
|
21
|
+
|
|
22
|
+
## Implementation Steps
|
|
23
|
+
|
|
24
|
+
1. **Update the project description** at the top of README.md:
|
|
25
|
+
- Mention support for both Claude Code CLI and OpenAI Codex CLI
|
|
26
|
+
|
|
27
|
+
2. **Add a Provider Configuration section**:
|
|
28
|
+
- Explain `provider` config field (default: `claude`)
|
|
29
|
+
- Show `--provider codex` CLI usage
|
|
30
|
+
- Explain model prefix format with examples
|
|
31
|
+
|
|
32
|
+
3. **Update the Configuration section**:
|
|
33
|
+
- Add `codexModels` and `codexEffortMapping` to config example
|
|
34
|
+
- Show harness-prefixed model examples
|
|
35
|
+
|
|
36
|
+
4. **Update command examples**:
|
|
37
|
+
- Add `--provider` flag to `raf do` and `raf plan` examples
|
|
38
|
+
- Show mixed provider usage
|
|
39
|
+
|
|
40
|
+
5. **Note limitations**:
|
|
41
|
+
- Codex doesn't support `--resume` (session resume)
|
|
42
|
+
- System prompt is prepended to user message for Codex
|
|
43
|
+
|
|
44
|
+
## Acceptance Criteria
|
|
45
|
+
- [ ] README reflects multi-provider support
|
|
46
|
+
- [ ] New config fields are documented
|
|
47
|
+
- [ ] `--provider` flag is documented for relevant commands
|
|
48
|
+
- [ ] Existing documentation is updated (not just appended)
|
|
49
|
+
|
|
50
|
+
## Notes
|
|
51
|
+
- Keep the README focused on usage, not implementation details
|
|
52
|
+
- Don't document internal architecture changes (runner interface, etc.)
|