rafcode 2.5.1 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +2 -1
- package/CLAUDE.md +7 -345
- package/RAF/{aaaabn-dependencies-watchdog/plans/02-update-planning-prompts.md → 13-dependencies-watchdog/plans/2-update-planning-prompts.md} +1 -1
- package/RAF/{aaaabn-dependencies-watchdog/plans/03-parse-dependencies-update-state.md → 13-dependencies-watchdog/plans/3-parse-dependencies-update-state.md} +1 -1
- package/RAF/{aaaabn-dependencies-watchdog/plans/04-implement-dependency-checking-in-do.md → 13-dependencies-watchdog/plans/4-implement-dependency-checking-in-do.md} +1 -1
- package/RAF/{aaaabn-dependencies-watchdog/plans/05-update-execution-prompts.md → 13-dependencies-watchdog/plans/5-update-execution-prompts.md} +1 -1
- package/RAF/{aaaabn-dependencies-watchdog/plans/06-add-tests.md → 13-dependencies-watchdog/plans/6-add-tests.md} +1 -1
- package/RAF/{aaaabr-decision-vault/plans/02-integrate-commit-into-plan.md → 17-decision-vault/plans/2-integrate-commit-into-plan.md} +1 -1
- package/RAF/{aaaabr-decision-vault/plans/03-add-tests-for-planning-commit.md → 17-decision-vault/plans/3-add-tests-for-planning-commit.md} +1 -1
- package/RAF/{aaaabt-verbose-chronicle/plans/04-commit-verification-before-halt.md → 19-verbose-chronicle/plans/4-commit-verification-before-halt.md} +1 -1
- package/RAF/{aaaacu-worktree-weaver/plans/02-worktree-plan-command.md → 20-worktree-weaver/plans/2-worktree-plan-command.md} +1 -1
- package/RAF/{aaaacu-worktree-weaver/plans/03-worktree-do-command.md → 20-worktree-weaver/plans/3-worktree-do-command.md} +1 -1
- package/RAF/{aaaacu-worktree-weaver/plans/04-auto-merge-and-cleanup.md → 20-worktree-weaver/plans/4-auto-merge-and-cleanup.md} +1 -1
- package/RAF/{aaaacu-worktree-weaver/plans/05-worktree-tests.md → 20-worktree-weaver/plans/5-worktree-tests.md} +1 -1
- package/RAF/{aaaacu-worktree-weaver/plans/06-update-documentation.md → 20-worktree-weaver/plans/6-update-documentation.md} +1 -1
- package/RAF/{aaaacv-trim-the-fat/plans/03-commit-artifacts-on-amend.md → 21-trim-the-fat/plans/3-commit-artifacts-on-amend.md} +1 -1
- package/RAF/{aaaacv-trim-the-fat/plans/04-worktree-aware-exit-messages.md → 21-trim-the-fat/plans/4-worktree-aware-exit-messages.md} +1 -1
- package/RAF/{aaaacw-prune-cycle/plans/02-cleanup-worktree-on-success.md → 22-prune-cycle/plans/2-cleanup-worktree-on-success.md} +1 -1
- package/RAF/{aaaacw-prune-cycle/plans/03-amend-recreate-worktree.md → 22-prune-cycle/plans/3-amend-recreate-worktree.md} +1 -1
- package/RAF/{aaaacx-epoch-shift/plans/02-update-pattern-matching.md → 23-epoch-shift/plans/2-update-pattern-matching.md} +1 -1
- package/RAF/{aaaacx-epoch-shift/plans/03-update-tests.md → 23-epoch-shift/plans/3-update-tests.md} +1 -1
- package/RAF/{aaaacx-epoch-shift/plans/04-update-documentation.md → 23-epoch-shift/plans/4-update-documentation.md} +1 -1
- package/RAF/{ahmpro-merge-guardian/plans/003-worktree-pr-creation.md → 24-merge-guardian/plans/3-worktree-pr-creation.md} +1 -1
- package/RAF/{ahmpro-merge-guardian/plans/004-post-execution-picker.md → 24-merge-guardian/plans/4-post-execution-picker.md} +1 -1
- package/RAF/{ahnbcu-letterjam/plans/02-update-tests.md → 25-letterjam/plans/2-update-tests.md} +1 -1
- package/RAF/{ahnbcu-letterjam/plans/03-migrate-command.md → 25-letterjam/plans/3-migrate-command.md} +1 -1
- package/RAF/{ahnbcu-letterjam/plans/04-update-documentation.md → 25-letterjam/plans/4-update-documentation.md} +1 -1
- package/RAF/{ahnwrk-worktree-weaver/plans/04-fix-pr-description.md → 26-worktree-weaver/plans/4-fix-pr-description.md} +1 -1
- package/RAF/{ahrren-turbo-finder/plans/02-medium-effort-do.md → 27-turbo-finder/plans/2-medium-effort-do.md} +1 -1
- package/RAF/{ahslfe-config-wizard/plans/02-refactor-codebase-to-use-config.md → 28-config-wizard/plans/2-refactor-codebase-to-use-config.md} +1 -1
- package/RAF/{ahslfe-config-wizard/plans/03-create-config-documentation.md → 28-config-wizard/plans/3-create-config-documentation.md} +1 -1
- package/RAF/{ahslfe-config-wizard/plans/04-implement-raf-config-command.md → 28-config-wizard/plans/4-implement-raf-config-command.md} +1 -1
- package/RAF/{ahslfe-config-wizard/plans/05-update-claude-md.md → 28-config-wizard/plans/5-update-claude-md.md} +1 -1
- package/RAF/{ahstvo-token-tracker/plans/03-unify-stream-json-execution.md → 29-token-tracker/plans/3-unify-stream-json-execution.md} +1 -1
- package/RAF/{ahstvo-token-tracker/plans/04-token-tracking-cost-calculation.md → 29-token-tracker/plans/4-token-tracking-cost-calculation.md} +1 -1
- package/RAF/{ahstvo-token-tracker/plans/05-token-cost-console-reporting.md → 29-token-tracker/plans/5-token-cost-console-reporting.md} +1 -1
- package/RAF/{ahstvo-token-tracker/plans/06-runtime-verbose-toggle.md → 29-token-tracker/plans/6-runtime-verbose-toggle.md} +1 -1
- package/RAF/{ahtahs-token-reaper/plans/02-accumulate-usage-in-retry-loop.md → 30-token-reaper/plans/2-accumulate-usage-in-retry-loop.md} +1 -1
- package/RAF/{ahtahs-token-reaper/plans/03-per-attempt-display-formatting.md → 30-token-reaper/plans/3-per-attempt-display-formatting.md} +1 -1
- package/RAF/{ahvrih-rate-forge/plans/03-rate-limit-estimation.md → 31-rate-forge/plans/3-rate-limit-estimation.md} +1 -1
- package/RAF/{ahvrih-rate-forge/plans/06-sync-readme-with-codebase.md → 31-rate-forge/plans/6-sync-readme-with-codebase.md} +1 -1
- package/RAF/{ahvrih-rate-forge/plans/08-plan-execution-metadata.md → 31-rate-forge/plans/8-plan-execution-metadata.md} +1 -1
- package/RAF/{ahwidh-quick-fix-gremlin/plans/06-sync-worktree-branch-before-execution.md → 32-quick-fix-gremlin/plans/6-sync-worktree-branch-before-execution.md} +1 -1
- package/RAF/{ahwqwq-model-whisperer/plans/03-add-plan-resume-flag.md → 33-model-whisperer/plans/3-add-plan-resume-flag.md} +1 -1
- package/RAF/{ahwvrz-legacy-sunset/plans/02-fix-resume-worktree-resolution.md → 34-legacy-sunset/plans/2-fix-resume-worktree-resolution.md} +1 -1
- package/RAF/{ahwzmc-echo-forge/plans/03-update-readme.md → 35-echo-forge/plans/3-update-readme.md} +1 -1
- package/RAF/37-flux-weave/decisions.md +22 -0
- package/RAF/37-flux-weave/input.md +4 -0
- package/RAF/37-flux-weave/outcomes/1-numeric-project-ids.md +32 -0
- package/RAF/37-flux-weave/outcomes/2-numeric-task-ids.md +34 -0
- package/RAF/37-flux-weave/outcomes/3-amend-commit-without-new-plans.md +23 -0
- package/RAF/37-flux-weave/outcomes/4-auto-detect-existing-project.md +30 -0
- package/RAF/37-flux-weave/plans/1-numeric-project-ids.md +75 -0
- package/RAF/37-flux-weave/plans/2-numeric-task-ids.md +65 -0
- package/RAF/37-flux-weave/plans/3-amend-commit-without-new-plans.md +54 -0
- package/RAF/37-flux-weave/plans/4-auto-detect-existing-project.md +52 -0
- package/RAF/38-dual-wielder/decisions.md +44 -0
- package/RAF/38-dual-wielder/input.md +13 -0
- package/RAF/38-dual-wielder/outcomes/1-config-schema-provider-types.md +47 -0
- package/RAF/38-dual-wielder/outcomes/2-abstract-cli-runner.md +33 -0
- package/RAF/38-dual-wielder/outcomes/3-implement-codex-runner.md +38 -0
- package/RAF/38-dual-wielder/outcomes/4-update-prompts-llm-agnostic.md +50 -0
- package/RAF/38-dual-wielder/outcomes/5-update-readme-docs.md +33 -0
- package/RAF/38-dual-wielder/outcomes/6-do-unified-project-scanning.md +25 -0
- package/RAF/38-dual-wielder/outcomes/7-fix-plan-amend-automode.md +28 -0
- package/RAF/38-dual-wielder/outcomes/8-e2e-test-codex-provider.md +139 -0
- package/RAF/38-dual-wielder/plans/1-config-schema-provider-types.md +90 -0
- package/RAF/38-dual-wielder/plans/2-abstract-cli-runner.md +76 -0
- package/RAF/38-dual-wielder/plans/3-implement-codex-runner.md +94 -0
- package/RAF/38-dual-wielder/plans/4-update-prompts-llm-agnostic.md +70 -0
- package/RAF/38-dual-wielder/plans/5-update-readme-docs.md +52 -0
- package/RAF/38-dual-wielder/plans/6-do-unified-project-scanning.md +40 -0
- package/RAF/38-dual-wielder/plans/7-fix-plan-amend-automode.md +51 -0
- package/RAF/38-dual-wielder/plans/8-e2e-test-codex-provider.md +95 -0
- package/RAF/39-pathless-rover/decisions.md +16 -0
- package/RAF/39-pathless-rover/input.md +2 -0
- package/RAF/39-pathless-rover/outcomes/1-fix-codex-stream-renderer.md +21 -0
- package/RAF/39-pathless-rover/outcomes/2-wire-provider-flag.md +28 -0
- package/RAF/39-pathless-rover/outcomes/3-remove-worktree-flag-do.md +41 -0
- package/RAF/39-pathless-rover/outcomes/4-remove-worktree-flag-plan-amend.md +30 -0
- package/RAF/39-pathless-rover/outcomes/5-update-prompts-and-docs.md +26 -0
- package/RAF/39-pathless-rover/plans/1-fix-codex-stream-renderer.md +43 -0
- package/RAF/39-pathless-rover/plans/2-wire-provider-flag.md +48 -0
- package/RAF/39-pathless-rover/plans/3-remove-worktree-flag-do.md +41 -0
- package/RAF/39-pathless-rover/plans/4-remove-worktree-flag-plan-amend.md +43 -0
- package/RAF/39-pathless-rover/plans/5-update-prompts-and-docs.md +31 -0
- package/RAF/40-numeric-order-fix/decisions.md +7 -0
- package/RAF/40-numeric-order-fix/input.md +19 -0
- package/RAF/40-numeric-order-fix/outcomes/1-fix-numeric-sort-order.md +18 -0
- package/RAF/40-numeric-order-fix/outcomes/2-add-npm-keywords.md +10 -0
- package/RAF/40-numeric-order-fix/plans/1-fix-numeric-sort-order.md +48 -0
- package/RAF/40-numeric-order-fix/plans/2-add-npm-keywords.md +23 -0
- package/README.md +62 -18
- package/dist/commands/config.js +7 -7
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/do.d.ts.map +1 -1
- package/dist/commands/do.js +51 -230
- package/dist/commands/do.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +96 -147
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/status.js +1 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/core/claude-runner.d.ts +19 -116
- package/dist/core/claude-runner.d.ts.map +1 -1
- package/dist/core/claude-runner.js +20 -173
- package/dist/core/claude-runner.js.map +1 -1
- package/dist/core/codex-runner.d.ts +41 -0
- package/dist/core/codex-runner.d.ts.map +1 -0
- package/dist/core/codex-runner.js +271 -0
- package/dist/core/codex-runner.js.map +1 -0
- package/dist/core/completion-detector.d.ts +47 -0
- package/dist/core/completion-detector.d.ts.map +1 -0
- package/dist/core/completion-detector.js +143 -0
- package/dist/core/completion-detector.js.map +1 -0
- package/dist/core/failure-analyzer.d.ts +1 -1
- package/dist/core/failure-analyzer.js +10 -10
- package/dist/core/failure-analyzer.js.map +1 -1
- package/dist/core/project-manager.d.ts.map +1 -1
- package/dist/core/project-manager.js +2 -2
- package/dist/core/project-manager.js.map +1 -1
- package/dist/core/pull-request.d.ts +4 -4
- package/dist/core/pull-request.js +13 -13
- package/dist/core/pull-request.js.map +1 -1
- package/dist/core/runner-factory.d.ts +12 -0
- package/dist/core/runner-factory.d.ts.map +1 -0
- package/dist/core/runner-factory.js +30 -0
- package/dist/core/runner-factory.js.map +1 -0
- package/dist/core/runner-interface.d.ts +14 -0
- package/dist/core/runner-interface.d.ts.map +1 -0
- package/dist/core/runner-interface.js +2 -0
- package/dist/core/runner-interface.js.map +1 -0
- package/dist/core/runner-types.d.ts +73 -0
- package/dist/core/runner-types.d.ts.map +1 -0
- package/dist/core/runner-types.js +2 -0
- package/dist/core/runner-types.js.map +1 -0
- package/dist/core/shutdown-handler.d.ts +8 -4
- package/dist/core/shutdown-handler.d.ts.map +1 -1
- package/dist/core/shutdown-handler.js +14 -8
- package/dist/core/shutdown-handler.js.map +1 -1
- package/dist/core/state-derivation.d.ts +2 -2
- package/dist/core/state-derivation.d.ts.map +1 -1
- package/dist/core/state-derivation.js +12 -15
- package/dist/core/state-derivation.js.map +1 -1
- package/dist/core/worktree.d.ts +1 -1
- package/dist/core/worktree.d.ts.map +1 -1
- package/dist/core/worktree.js +14 -16
- package/dist/core/worktree.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/parsers/codex-stream-renderer.d.ts +48 -0
- package/dist/parsers/codex-stream-renderer.d.ts.map +1 -0
- package/dist/parsers/codex-stream-renderer.js +158 -0
- package/dist/parsers/codex-stream-renderer.js.map +1 -0
- package/dist/parsers/output-parser.d.ts +2 -2
- package/dist/parsers/output-parser.js +2 -2
- package/dist/parsers/stream-renderer.d.ts +1 -1
- package/dist/parsers/stream-renderer.js +1 -1
- package/dist/prompts/amend.d.ts +1 -2
- package/dist/prompts/amend.d.ts.map +1 -1
- package/dist/prompts/amend.js +8 -9
- package/dist/prompts/amend.js.map +1 -1
- package/dist/prompts/execution.js +2 -2
- package/dist/prompts/execution.js.map +1 -1
- package/dist/prompts/planning.d.ts +1 -1
- package/dist/prompts/planning.d.ts.map +1 -1
- package/dist/prompts/planning.js +14 -15
- package/dist/prompts/planning.js.map +1 -1
- package/dist/types/config.d.ts +21 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +16 -0
- package/dist/types/config.js.map +1 -1
- package/dist/ui/project-picker.d.ts.map +1 -1
- package/dist/ui/project-picker.js.map +1 -1
- package/dist/utils/config.d.ts +24 -6
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +155 -15
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/name-generator.d.ts +2 -2
- package/dist/utils/name-generator.js +9 -9
- package/dist/utils/name-generator.js.map +1 -1
- package/dist/utils/paths.d.ts +32 -51
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +121 -150
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/token-tracker.d.ts +2 -2
- package/dist/utils/token-tracker.js +4 -4
- package/dist/utils/token-tracker.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +7 -10
- package/dist/utils/validation.js.map +1 -1
- package/package.json +7 -2
- package/src/commands/config.ts +7 -7
- package/src/commands/do.ts +53 -265
- package/src/commands/plan.ts +102 -155
- package/src/commands/status.ts +1 -1
- package/src/core/claude-runner.ts +33 -277
- package/src/core/codex-runner.ts +326 -0
- package/src/core/completion-detector.ts +177 -0
- package/src/core/failure-analyzer.ts +10 -10
- package/src/core/project-manager.ts +2 -1
- package/src/core/pull-request.ts +13 -13
- package/src/core/runner-factory.ts +35 -0
- package/src/core/runner-interface.ts +14 -0
- package/src/core/runner-types.ts +75 -0
- package/src/core/shutdown-handler.ts +17 -10
- package/src/core/state-derivation.ts +12 -15
- package/src/core/worktree.ts +14 -16
- package/src/index.ts +1 -1
- package/src/parsers/codex-stream-renderer.ts +210 -0
- package/src/parsers/output-parser.ts +2 -2
- package/src/parsers/stream-renderer.ts +1 -1
- package/src/prompts/amend.ts +7 -10
- package/src/prompts/config-docs.md +8 -8
- package/src/prompts/execution.ts +2 -2
- package/src/prompts/planning.ts +14 -16
- package/src/types/config.ts +39 -1
- package/src/ui/project-picker.ts +1 -0
- package/src/utils/config.ts +170 -14
- package/src/utils/name-generator.ts +9 -9
- package/src/utils/paths.ts +123 -159
- package/src/utils/token-tracker.ts +4 -4
- package/src/utils/validation.ts +7 -10
- package/tests/unit/commit-planning-artifacts-worktree.test.ts +14 -14
- package/tests/unit/commit-planning-artifacts.test.ts +40 -40
- package/tests/unit/config.test.ts +8 -8
- package/tests/unit/dependency-integration.test.ts +96 -96
- package/tests/unit/do-blocked-tasks.test.ts +1 -1
- package/tests/unit/do-command.test.ts +36 -36
- package/tests/unit/do-rerun.test.ts +1 -1
- package/tests/unit/execution-prompt.test.ts +62 -62
- package/tests/unit/git-stash.test.ts +4 -4
- package/tests/unit/paths.test.ts +135 -249
- package/tests/unit/plan-command.test.ts +103 -103
- package/tests/unit/planning-prompt.test.ts +3 -3
- package/tests/unit/project-manager.test.ts +9 -10
- package/tests/unit/project-picker.test.ts +74 -74
- package/tests/unit/pull-request.test.ts +3 -3
- package/tests/unit/state-derivation.test.ts +144 -144
- package/tests/unit/status-command.test.ts +71 -103
- package/tests/unit/worktree.test.ts +32 -33
- /package/RAF/{aaaaab-raf-task-improvements → 1-raf-task-improvements}/input.md +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/01-add-decisions-folder.md → 1-raf-task-improvements/outcomes/1-add-decisions-folder.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/02-fix-write-error-on-shutdown.md → 1-raf-task-improvements/outcomes/2-fix-write-error-on-shutdown.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/03-stash-changes-on-failure.md → 1-raf-task-improvements/outcomes/3-stash-changes-on-failure.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/04-add-project-name-to-commits.md → 1-raf-task-improvements/outcomes/4-add-project-name-to-commits.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/05-add-running-time-display.md → 1-raf-task-improvements/outcomes/5-add-running-time-display.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/06-add-task-name-to-logs.md → 1-raf-task-improvements/outcomes/6-add-task-name-to-logs.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/07-show-model-at-task-start.md → 1-raf-task-improvements/outcomes/7-show-model-at-task-start.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/outcomes/09-remove-editor-placeholder-text.md → 1-raf-task-improvements/outcomes/9-remove-editor-placeholder-text.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements → 1-raf-task-improvements}/outcomes/SUMMARY.md +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/01-add-decisions-folder.md → 1-raf-task-improvements/plans/1-add-decisions-folder.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/02-fix-write-error-on-shutdown.md → 1-raf-task-improvements/plans/2-fix-write-error-on-shutdown.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/03-stash-changes-on-failure.md → 1-raf-task-improvements/plans/3-stash-changes-on-failure.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/04-add-project-name-to-commits.md → 1-raf-task-improvements/plans/4-add-project-name-to-commits.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/05-add-running-time-display.md → 1-raf-task-improvements/plans/5-add-running-time-display.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/06-add-task-name-to-logs.md → 1-raf-task-improvements/plans/6-add-task-name-to-logs.md} +0 -0
- /package/RAF/{aaaaab-raf-task-improvements/plans/09-remove-editor-placeholder-text.md → 1-raf-task-improvements/plans/9-remove-editor-placeholder-text.md} +0 -0
- /package/RAF/{aaaabk-outcome-marker-fallback → 10-outcome-marker-fallback}/decisions.md +0 -0
- /package/RAF/{aaaabk-outcome-marker-fallback → 10-outcome-marker-fallback}/input.md +0 -0
- /package/RAF/{aaaabk-outcome-marker-fallback/outcomes/01-outcome-file-marker-fallback.md → 10-outcome-marker-fallback/outcomes/1-outcome-file-marker-fallback.md} +0 -0
- /package/RAF/{aaaabk-outcome-marker-fallback/outcomes/02-creative-project-naming.md → 10-outcome-marker-fallback/outcomes/2-creative-project-naming.md} +0 -0
- /package/RAF/{aaaabk-outcome-marker-fallback/plans/01-outcome-file-marker-fallback.md → 10-outcome-marker-fallback/plans/1-outcome-file-marker-fallback.md} +0 -0
- /package/RAF/{aaaabk-outcome-marker-fallback/plans/02-creative-project-naming.md → 10-outcome-marker-fallback/plans/2-creative-project-naming.md} +0 -0
- /package/RAF/{aaaabl-do-task-in-commit → 11-do-task-in-commit}/decisions.md +0 -0
- /package/RAF/{aaaabl-do-task-in-commit → 11-do-task-in-commit}/input.md +0 -0
- /package/RAF/{aaaabl-do-task-in-commit/outcomes/01-update-execution-prompt.md → 11-do-task-in-commit/outcomes/1-update-execution-prompt.md} +0 -0
- /package/RAF/{aaaabl-do-task-in-commit/outcomes/02-update-tests.md → 11-do-task-in-commit/outcomes/2-update-tests.md} +0 -0
- /package/RAF/{aaaabl-do-task-in-commit/outcomes/03-update-documentation.md → 11-do-task-in-commit/outcomes/3-update-documentation.md} +0 -0
- /package/RAF/{aaaabl-do-task-in-commit/plans/01-update-execution-prompt.md → 11-do-task-in-commit/plans/1-update-execution-prompt.md} +0 -0
- /package/RAF/{aaaabl-do-task-in-commit/plans/02-update-tests.md → 11-do-task-in-commit/plans/2-update-tests.md} +0 -0
- /package/RAF/{aaaabl-do-task-in-commit/plans/03-update-documentation.md → 11-do-task-in-commit/plans/3-update-documentation.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet → 12-name-picker-buffet}/decisions.md +0 -0
- /package/RAF/{aaaabm-name-picker-buffet → 12-name-picker-buffet}/input.md +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/01-name-picker-for-raf-plan.md → 12-name-picker-buffet/outcomes/1-name-picker-for-raf-plan.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/02-interactive-project-picker-for-raf-do.md → 12-name-picker-buffet/outcomes/2-interactive-project-picker-for-raf-do.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/03-raf-status-truncation.md → 12-name-picker-buffet/outcomes/3-raf-status-truncation.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/04-failure-reason-details.md → 12-name-picker-buffet/outcomes/4-failure-reason-details.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/05-remove-raf-commits.md → 12-name-picker-buffet/outcomes/5-remove-raf-commits.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/06-update-execution-prompt-for-commits.md → 12-name-picker-buffet/outcomes/6-update-execution-prompt-for-commits.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/07-fix-plan-mode-user-prompt.md → 12-name-picker-buffet/outcomes/7-fix-plan-mode-user-prompt.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/outcomes/08-add-auto-flag-for-plan-mode.md → 12-name-picker-buffet/outcomes/8-add-auto-flag-for-plan-mode.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/01-name-picker-for-raf-plan.md → 12-name-picker-buffet/plans/1-name-picker-for-raf-plan.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/02-interactive-project-picker-for-raf-do.md → 12-name-picker-buffet/plans/2-interactive-project-picker-for-raf-do.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/03-raf-status-truncation.md → 12-name-picker-buffet/plans/3-raf-status-truncation.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/04-failure-reason-details.md → 12-name-picker-buffet/plans/4-failure-reason-details.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/05-remove-raf-commits.md → 12-name-picker-buffet/plans/5-remove-raf-commits.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/06-update-execution-prompt-for-commits.md → 12-name-picker-buffet/plans/6-update-execution-prompt-for-commits.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/07-fix-plan-mode-user-prompt.md → 12-name-picker-buffet/plans/7-fix-plan-mode-user-prompt.md} +0 -0
- /package/RAF/{aaaabm-name-picker-buffet/plans/08-add-auto-flag-for-plan-mode.md → 12-name-picker-buffet/plans/8-add-auto-flag-for-plan-mode.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog → 13-dependencies-watchdog}/decisions.md +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog → 13-dependencies-watchdog}/input.md +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/01-define-dependency-syntax.md → 13-dependencies-watchdog/outcomes/1-define-dependency-syntax.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/02-update-planning-prompts.md → 13-dependencies-watchdog/outcomes/2-update-planning-prompts.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/03-parse-dependencies-update-state.md → 13-dependencies-watchdog/outcomes/3-parse-dependencies-update-state.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/04-implement-dependency-checking-in-do.md → 13-dependencies-watchdog/outcomes/4-implement-dependency-checking-in-do.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/05-update-execution-prompts.md → 13-dependencies-watchdog/outcomes/5-update-execution-prompts.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/06-add-tests.md → 13-dependencies-watchdog/outcomes/6-add-tests.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/07-add-act-alias.md → 13-dependencies-watchdog/outcomes/7-add-act-alias.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/outcomes/08-add-exit-message.md → 13-dependencies-watchdog/outcomes/8-add-exit-message.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/plans/01-define-dependency-syntax.md → 13-dependencies-watchdog/plans/1-define-dependency-syntax.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/plans/07-add-act-alias.md → 13-dependencies-watchdog/plans/7-add-act-alias.md} +0 -0
- /package/RAF/{aaaabn-dependencies-watchdog/plans/08-add-exit-message.md → 13-dependencies-watchdog/plans/8-add-exit-message.md} +0 -0
- /package/RAF/{aaaabo-watchdog → 14-watchdog}/decisions.md +0 -0
- /package/RAF/{aaaabo-watchdog → 14-watchdog}/input.md +0 -0
- /package/RAF/{aaaabo-watchdog/outcomes/01-amend-flag-position.md → 14-watchdog/outcomes/1-amend-flag-position.md} +0 -0
- /package/RAF/{aaaabo-watchdog/outcomes/02-details-only-on-failure.md → 14-watchdog/outcomes/2-details-only-on-failure.md} +0 -0
- /package/RAF/{aaaabo-watchdog/plans/01-amend-flag-position.md → 14-watchdog/plans/1-amend-flag-position.md} +0 -0
- /package/RAF/{aaaabo-watchdog/plans/02-details-only-on-failure.md → 14-watchdog/plans/2-details-only-on-failure.md} +0 -0
- /package/RAF/{aaaabp-name-lottery → 15-name-lottery}/decisions.md +0 -0
- /package/RAF/{aaaabp-name-lottery → 15-name-lottery}/input.md +0 -0
- /package/RAF/{aaaabp-name-lottery/outcomes/01-auto-pick-project-name.md → 15-name-lottery/outcomes/1-auto-pick-project-name.md} +0 -0
- /package/RAF/{aaaabp-name-lottery/outcomes/02-mention-plan-files-in-commit.md → 15-name-lottery/outcomes/2-mention-plan-files-in-commit.md} +0 -0
- /package/RAF/{aaaabp-name-lottery/outcomes/03-fix-input-md-in-amend-flow.md → 15-name-lottery/outcomes/3-fix-input-md-in-amend-flow.md} +0 -0
- /package/RAF/{aaaabp-name-lottery/plans/01-auto-pick-project-name.md → 15-name-lottery/plans/1-auto-pick-project-name.md} +0 -0
- /package/RAF/{aaaabp-name-lottery/plans/02-mention-plan-files-in-commit.md → 15-name-lottery/plans/2-mention-plan-files-in-commit.md} +0 -0
- /package/RAF/{aaaabp-name-lottery/plans/03-fix-input-md-in-amend-flow.md → 15-name-lottery/plans/3-fix-input-md-in-amend-flow.md} +0 -0
- /package/RAF/{aaaabq-planning-scalpel → 16-planning-scalpel}/decisions.md +0 -0
- /package/RAF/{aaaabq-planning-scalpel → 16-planning-scalpel}/input.md +0 -0
- /package/RAF/{aaaabq-planning-scalpel/outcomes/01-update-git-commit-instructions.md → 16-planning-scalpel/outcomes/1-update-git-commit-instructions.md} +0 -0
- /package/RAF/{aaaabq-planning-scalpel/plans/01-update-git-commit-instructions.md → 16-planning-scalpel/plans/1-update-git-commit-instructions.md} +0 -0
- /package/RAF/{aaaabr-decision-vault → 17-decision-vault}/decisions.md +0 -0
- /package/RAF/{aaaabr-decision-vault → 17-decision-vault}/input.md +0 -0
- /package/RAF/{aaaabr-decision-vault/outcomes/01-create-git-commit-utility.md → 17-decision-vault/outcomes/1-create-git-commit-utility.md} +0 -0
- /package/RAF/{aaaabr-decision-vault/outcomes/02-integrate-commit-into-plan.md → 17-decision-vault/outcomes/2-integrate-commit-into-plan.md} +0 -0
- /package/RAF/{aaaabr-decision-vault/outcomes/03-add-tests-for-planning-commit.md → 17-decision-vault/outcomes/3-add-tests-for-planning-commit.md} +0 -0
- /package/RAF/{aaaabr-decision-vault/plans/01-create-git-commit-utility.md → 17-decision-vault/plans/1-create-git-commit-utility.md} +0 -0
- /package/RAF/{aaaabs-workflow-forge → 18-workflow-forge}/decisions.md +0 -0
- /package/RAF/{aaaabs-workflow-forge → 18-workflow-forge}/input.md +0 -0
- /package/RAF/{aaaabs-workflow-forge/outcomes/01-add-task-number-progress.md → 18-workflow-forge/outcomes/1-add-task-number-progress.md} +0 -0
- /package/RAF/{aaaabs-workflow-forge/outcomes/02-update-plan-do-prompts.md → 18-workflow-forge/outcomes/2-update-plan-do-prompts.md} +0 -0
- /package/RAF/{aaaabs-workflow-forge/plans/01-add-task-number-progress.md → 18-workflow-forge/plans/1-add-task-number-progress.md} +0 -0
- /package/RAF/{aaaabs-workflow-forge/plans/02-update-plan-do-prompts.md → 18-workflow-forge/plans/2-update-plan-do-prompts.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle → 19-verbose-chronicle}/decisions.md +0 -0
- /package/RAF/{aaaabt-verbose-chronicle → 19-verbose-chronicle}/input.md +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/outcomes/01-amend-iteration-references.md → 19-verbose-chronicle/outcomes/1-amend-iteration-references.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/outcomes/02-verbose-task-name-display.md → 19-verbose-chronicle/outcomes/2-verbose-task-name-display.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/outcomes/03-verbose-streaming-fix.md → 19-verbose-chronicle/outcomes/3-verbose-streaming-fix.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/outcomes/04-commit-verification-before-halt.md → 19-verbose-chronicle/outcomes/4-commit-verification-before-halt.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/plans/01-amend-iteration-references.md → 19-verbose-chronicle/plans/1-amend-iteration-references.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/plans/02-verbose-task-name-display.md → 19-verbose-chronicle/plans/2-verbose-task-name-display.md} +0 -0
- /package/RAF/{aaaabt-verbose-chronicle/plans/03-verbose-streaming-fix.md → 19-verbose-chronicle/plans/3-verbose-streaming-fix.md} +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution → 2-raf-task-improvements-execution}/decisions/DECISIONS.md +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution → 2-raf-task-improvements-execution}/input.md +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution/outcomes/01-commit-show-model-at-task-start.md → 2-raf-task-improvements-execution/outcomes/1-commit-show-model-at-task-start.md} +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution/outcomes/02-delete-skipped-plan.md → 2-raf-task-improvements-execution/outcomes/2-delete-skipped-plan.md} +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution → 2-raf-task-improvements-execution}/outcomes/SUMMARY.md +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution/plans/01-commit-show-model-at-task-start.md → 2-raf-task-improvements-execution/plans/1-commit-show-model-at-task-start.md} +0 -0
- /package/RAF/{aaaaac-raf-task-improvements-execution/plans/02-delete-skipped-plan.md → 2-raf-task-improvements-execution/plans/2-delete-skipped-plan.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver → 20-worktree-weaver}/decisions.md +0 -0
- /package/RAF/{aaaacu-worktree-weaver → 20-worktree-weaver}/input.md +0 -0
- /package/RAF/{aaaacu-worktree-weaver/outcomes/01-git-worktree-utilities.md → 20-worktree-weaver/outcomes/1-git-worktree-utilities.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver/outcomes/02-worktree-plan-command.md → 20-worktree-weaver/outcomes/2-worktree-plan-command.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver/outcomes/03-worktree-do-command.md → 20-worktree-weaver/outcomes/3-worktree-do-command.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver/outcomes/04-auto-merge-and-cleanup.md → 20-worktree-weaver/outcomes/4-auto-merge-and-cleanup.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver/outcomes/05-worktree-tests.md → 20-worktree-weaver/outcomes/5-worktree-tests.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver/outcomes/06-update-documentation.md → 20-worktree-weaver/outcomes/6-update-documentation.md} +0 -0
- /package/RAF/{aaaacu-worktree-weaver/plans/01-git-worktree-utilities.md → 20-worktree-weaver/plans/1-git-worktree-utilities.md} +0 -0
- /package/RAF/{aaaacv-trim-the-fat → 21-trim-the-fat}/decisions.md +0 -0
- /package/RAF/{aaaacv-trim-the-fat → 21-trim-the-fat}/input.md +0 -0
- /package/RAF/{aaaacv-trim-the-fat/outcomes/01-add-worktree-support-to-status.md → 21-trim-the-fat/outcomes/1-add-worktree-support-to-status.md} +0 -0
- /package/RAF/{aaaacv-trim-the-fat/outcomes/02-remove-multi-project-from-do.md → 21-trim-the-fat/outcomes/2-remove-multi-project-from-do.md} +0 -0
- /package/RAF/{aaaacv-trim-the-fat/outcomes/03-commit-artifacts-on-amend.md → 21-trim-the-fat/outcomes/3-commit-artifacts-on-amend.md} +0 -0
- /package/RAF/{aaaacv-trim-the-fat/outcomes/04-worktree-aware-exit-messages.md → 21-trim-the-fat/outcomes/4-worktree-aware-exit-messages.md} +0 -0
- /package/RAF/{aaaacv-trim-the-fat/plans/01-add-worktree-support-to-status.md → 21-trim-the-fat/plans/1-add-worktree-support-to-status.md} +0 -0
- /package/RAF/{aaaacv-trim-the-fat/plans/02-remove-multi-project-from-do.md → 21-trim-the-fat/plans/2-remove-multi-project-from-do.md} +0 -0
- /package/RAF/{aaaacw-prune-cycle → 22-prune-cycle}/decisions.md +0 -0
- /package/RAF/{aaaacw-prune-cycle → 22-prune-cycle}/input.md +0 -0
- /package/RAF/{aaaacw-prune-cycle/outcomes/01-create-worktree-from-branch.md → 22-prune-cycle/outcomes/1-create-worktree-from-branch.md} +0 -0
- /package/RAF/{aaaacw-prune-cycle/outcomes/02-cleanup-worktree-on-success.md → 22-prune-cycle/outcomes/2-cleanup-worktree-on-success.md} +0 -0
- /package/RAF/{aaaacw-prune-cycle/outcomes/03-amend-recreate-worktree.md → 22-prune-cycle/outcomes/3-amend-recreate-worktree.md} +0 -0
- /package/RAF/{aaaacw-prune-cycle/plans/01-create-worktree-from-branch.md → 22-prune-cycle/plans/1-create-worktree-from-branch.md} +0 -0
- /package/RAF/{aaaacx-epoch-shift → 23-epoch-shift}/decisions.md +0 -0
- /package/RAF/{aaaacx-epoch-shift → 23-epoch-shift}/input.md +0 -0
- /package/RAF/{aaaacx-epoch-shift/outcomes/01-epoch-id-generation.md → 23-epoch-shift/outcomes/1-epoch-id-generation.md} +0 -0
- /package/RAF/{aaaacx-epoch-shift/outcomes/02-update-pattern-matching.md → 23-epoch-shift/outcomes/2-update-pattern-matching.md} +0 -0
- /package/RAF/{aaaacx-epoch-shift/outcomes/03-update-tests.md → 23-epoch-shift/outcomes/3-update-tests.md} +0 -0
- /package/RAF/{aaaacx-epoch-shift/outcomes/04-update-documentation.md → 23-epoch-shift/outcomes/4-update-documentation.md} +0 -0
- /package/RAF/{aaaacx-epoch-shift/plans/01-epoch-id-generation.md → 23-epoch-shift/plans/1-epoch-id-generation.md} +0 -0
- /package/RAF/{ahmpro-merge-guardian → 24-merge-guardian}/decisions.md +0 -0
- /package/RAF/{ahmpro-merge-guardian → 24-merge-guardian}/input.md +0 -0
- /package/RAF/{ahmpro-merge-guardian/outcomes/001-fix-amend-worktree-commit.md → 24-merge-guardian/outcomes/1-fix-amend-worktree-commit.md} +0 -0
- /package/RAF/{ahmpro-merge-guardian/outcomes/002-base36-task-ids.md → 24-merge-guardian/outcomes/2-base36-task-ids.md} +0 -0
- /package/RAF/{ahmpro-merge-guardian/outcomes/003-worktree-pr-creation.md → 24-merge-guardian/outcomes/3-worktree-pr-creation.md} +0 -0
- /package/RAF/{ahmpro-merge-guardian/outcomes/004-post-execution-picker.md → 24-merge-guardian/outcomes/4-post-execution-picker.md} +0 -0
- /package/RAF/{ahmpro-merge-guardian/plans/001-fix-amend-worktree-commit.md → 24-merge-guardian/plans/1-fix-amend-worktree-commit.md} +0 -0
- /package/RAF/{ahmpro-merge-guardian/plans/002-base36-task-ids.md → 24-merge-guardian/plans/2-base36-task-ids.md} +0 -0
- /package/RAF/{ahnbcu-letterjam → 25-letterjam}/decisions.md +0 -0
- /package/RAF/{ahnbcu-letterjam → 25-letterjam}/input.md +0 -0
- /package/RAF/{ahnbcu-letterjam/outcomes/01-base26-encoding.md → 25-letterjam/outcomes/1-base26-encoding.md} +0 -0
- /package/RAF/{ahnbcu-letterjam/outcomes/02-update-tests.md → 25-letterjam/outcomes/2-update-tests.md} +0 -0
- /package/RAF/{ahnbcu-letterjam/outcomes/03-migrate-command.md → 25-letterjam/outcomes/3-migrate-command.md} +0 -0
- /package/RAF/{ahnbcu-letterjam/outcomes/04-update-documentation.md → 25-letterjam/outcomes/4-update-documentation.md} +0 -0
- /package/RAF/{ahnbcu-letterjam/plans/01-base26-encoding.md → 25-letterjam/plans/1-base26-encoding.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver → 26-worktree-weaver}/decisions.md +0 -0
- /package/RAF/{ahnwrk-worktree-weaver → 26-worktree-weaver}/input.md +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/outcomes/01-remove-co-authored-by.md → 26-worktree-weaver/outcomes/1-remove-co-authored-by.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/outcomes/02-update-task-status-format.md → 26-worktree-weaver/outcomes/2-update-task-status-format.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/outcomes/03-worktree-auto-discovery.md → 26-worktree-weaver/outcomes/3-worktree-auto-discovery.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/outcomes/04-fix-pr-description.md → 26-worktree-weaver/outcomes/4-fix-pr-description.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/plans/01-remove-co-authored-by.md → 26-worktree-weaver/plans/1-remove-co-authored-by.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/plans/02-update-task-status-format.md → 26-worktree-weaver/plans/2-update-task-status-format.md} +0 -0
- /package/RAF/{ahnwrk-worktree-weaver/plans/03-worktree-auto-discovery.md → 26-worktree-weaver/plans/3-worktree-auto-discovery.md} +0 -0
- /package/RAF/{ahrren-turbo-finder → 27-turbo-finder}/decisions.md +0 -0
- /package/RAF/{ahrren-turbo-finder → 27-turbo-finder}/input.md +0 -0
- /package/RAF/{ahrren-turbo-finder/outcomes/01-worktree-auto-detect.md → 27-turbo-finder/outcomes/1-worktree-auto-detect.md} +0 -0
- /package/RAF/{ahrren-turbo-finder/outcomes/02-medium-effort-do.md → 27-turbo-finder/outcomes/2-medium-effort-do.md} +0 -0
- /package/RAF/{ahrren-turbo-finder/plans/01-worktree-auto-detect.md → 27-turbo-finder/plans/1-worktree-auto-detect.md} +0 -0
- /package/RAF/{ahslfe-config-wizard → 28-config-wizard}/decisions.md +0 -0
- /package/RAF/{ahslfe-config-wizard → 28-config-wizard}/input.md +0 -0
- /package/RAF/{ahslfe-config-wizard/outcomes/01-define-config-schema.md → 28-config-wizard/outcomes/1-define-config-schema.md} +0 -0
- /package/RAF/{ahslfe-config-wizard/outcomes/02-refactor-codebase-to-use-config.md → 28-config-wizard/outcomes/2-refactor-codebase-to-use-config.md} +0 -0
- /package/RAF/{ahslfe-config-wizard/outcomes/03-create-config-documentation.md → 28-config-wizard/outcomes/3-create-config-documentation.md} +0 -0
- /package/RAF/{ahslfe-config-wizard/outcomes/04-implement-raf-config-command.md → 28-config-wizard/outcomes/4-implement-raf-config-command.md} +0 -0
- /package/RAF/{ahslfe-config-wizard/outcomes/05-update-claude-md.md → 28-config-wizard/outcomes/5-update-claude-md.md} +0 -0
- /package/RAF/{ahslfe-config-wizard/plans/01-define-config-schema.md → 28-config-wizard/plans/1-define-config-schema.md} +0 -0
- /package/RAF/{ahstvo-token-tracker → 29-token-tracker}/decisions.md +0 -0
- /package/RAF/{ahstvo-token-tracker → 29-token-tracker}/input.md +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/01-full-model-id-support.md → 29-token-tracker/outcomes/1-full-model-id-support.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/02-name-generation-no-session.md → 29-token-tracker/outcomes/2-name-generation-no-session.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/03-unify-stream-json-execution.md → 29-token-tracker/outcomes/3-unify-stream-json-execution.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/04-token-tracking-cost-calculation.md → 29-token-tracker/outcomes/4-token-tracking-cost-calculation.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/05-token-cost-console-reporting.md → 29-token-tracker/outcomes/5-token-cost-console-reporting.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/06-runtime-verbose-toggle.md → 29-token-tracker/outcomes/6-runtime-verbose-toggle.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/outcomes/07-readme-config-docs.md → 29-token-tracker/outcomes/7-readme-config-docs.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/plans/01-full-model-id-support.md → 29-token-tracker/plans/1-full-model-id-support.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/plans/02-name-generation-no-session.md → 29-token-tracker/plans/2-name-generation-no-session.md} +0 -0
- /package/RAF/{ahstvo-token-tracker/plans/07-readme-config-docs.md → 29-token-tracker/plans/7-readme-config-docs.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution → 3-multi-project-execution}/decisions/DECISIONS.md +0 -0
- /package/RAF/{aaaaad-multi-project-execution → 3-multi-project-execution}/input.md +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/01-remove-state-json.md → 3-multi-project-execution/outcomes/1-remove-state-json.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/02-update-raf-status.md → 3-multi-project-execution/outcomes/2-update-raf-status.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/03-simplify-git-logic.md → 3-multi-project-execution/outcomes/3-simplify-git-logic.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/04-auto-commit-planning.md → 3-multi-project-execution/outcomes/4-auto-commit-planning.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/05-rerun-failed-tasks.md → 3-multi-project-execution/outcomes/5-rerun-failed-tasks.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/06-multi-project-execution.md → 3-multi-project-execution/outcomes/6-multi-project-execution.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/07-verify-timeout.md → 3-multi-project-execution/outcomes/7-verify-timeout.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/outcomes/08-move-decisions-file.md → 3-multi-project-execution/outcomes/8-move-decisions-file.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution → 3-multi-project-execution}/outcomes/SUMMARY.md +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/01-remove-state-json.md → 3-multi-project-execution/plans/1-remove-state-json.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/02-update-raf-status.md → 3-multi-project-execution/plans/2-update-raf-status.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/03-simplify-git-logic.md → 3-multi-project-execution/plans/3-simplify-git-logic.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/04-auto-commit-planning.md → 3-multi-project-execution/plans/4-auto-commit-planning.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/05-rerun-failed-tasks.md → 3-multi-project-execution/plans/5-rerun-failed-tasks.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/06-multi-project-execution.md → 3-multi-project-execution/plans/6-multi-project-execution.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/07-verify-timeout.md → 3-multi-project-execution/plans/7-verify-timeout.md} +0 -0
- /package/RAF/{aaaaad-multi-project-execution/plans/08-move-decisions-file.md → 3-multi-project-execution/plans/8-move-decisions-file.md} +0 -0
- /package/RAF/{ahtahs-token-reaper → 30-token-reaper}/decisions.md +0 -0
- /package/RAF/{ahtahs-token-reaper → 30-token-reaper}/input.md +0 -0
- /package/RAF/{ahtahs-token-reaper/outcomes/01-extend-token-tracker-data-model.md → 30-token-reaper/outcomes/1-extend-token-tracker-data-model.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/outcomes/02-accumulate-usage-in-retry-loop.md → 30-token-reaper/outcomes/2-accumulate-usage-in-retry-loop.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/outcomes/03-per-attempt-display-formatting.md → 30-token-reaper/outcomes/3-per-attempt-display-formatting.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/outcomes/04-add-model-name-to-claude-call-logs.md → 30-token-reaper/outcomes/4-add-model-name-to-claude-call-logs.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/outcomes/05-handle-invalid-config-in-raf-config.md → 30-token-reaper/outcomes/5-handle-invalid-config-in-raf-config.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/outcomes/06-fix-verbose-toggle-timer-display.md → 30-token-reaper/outcomes/6-fix-verbose-toggle-timer-display.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/plans/01-extend-token-tracker-data-model.md → 30-token-reaper/plans/1-extend-token-tracker-data-model.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/plans/04-add-model-name-to-claude-call-logs.md → 30-token-reaper/plans/4-add-model-name-to-claude-call-logs.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/plans/05-handle-invalid-config-in-raf-config.md → 30-token-reaper/plans/5-handle-invalid-config-in-raf-config.md} +0 -0
- /package/RAF/{ahtahs-token-reaper/plans/06-fix-verbose-toggle-timer-display.md → 30-token-reaper/plans/6-fix-verbose-toggle-timer-display.md} +0 -0
- /package/RAF/{ahvrih-rate-forge → 31-rate-forge}/decisions.md +0 -0
- /package/RAF/{ahvrih-rate-forge → 31-rate-forge}/input.md +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/01-remove-claude-command-config.md → 31-rate-forge/outcomes/1-remove-claude-command-config.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/02-fix-mixed-attempt-cost.md → 31-rate-forge/outcomes/2-fix-mixed-attempt-cost.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/03-rate-limit-estimation.md → 31-rate-forge/outcomes/3-rate-limit-estimation.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/04-show-version-in-do-logs.md → 31-rate-forge/outcomes/4-show-version-in-do-logs.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/05-sync-main-before-worktree.md → 31-rate-forge/outcomes/5-sync-main-before-worktree.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/06-sync-readme-with-codebase.md → 31-rate-forge/outcomes/6-sync-readme-with-codebase.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/07-no-session-persistence.md → 31-rate-forge/outcomes/7-no-session-persistence.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/outcomes/08-plan-execution-metadata.md → 31-rate-forge/outcomes/8-plan-execution-metadata.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/plans/01-remove-claude-command-config.md → 31-rate-forge/plans/1-remove-claude-command-config.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/plans/02-fix-mixed-attempt-cost.md → 31-rate-forge/plans/2-fix-mixed-attempt-cost.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/plans/04-show-version-in-do-logs.md → 31-rate-forge/plans/4-show-version-in-do-logs.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/plans/05-sync-main-before-worktree.md → 31-rate-forge/plans/5-sync-main-before-worktree.md} +0 -0
- /package/RAF/{ahvrih-rate-forge/plans/07-no-session-persistence.md → 31-rate-forge/plans/7-no-session-persistence.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin → 32-quick-fix-gremlin}/decisions.md +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin → 32-quick-fix-gremlin}/input.md +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/01-fix-name-generation-prompt.md → 32-quick-fix-gremlin/outcomes/1-fix-name-generation-prompt.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/02-fix-amend-commit-scope.md → 32-quick-fix-gremlin/outcomes/2-fix-amend-commit-scope.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/03-fix-diverged-main-branch-sync.md → 32-quick-fix-gremlin/outcomes/3-fix-diverged-main-branch-sync.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/04-wire-rate-limit-to-do-command.md → 32-quick-fix-gremlin/outcomes/4-wire-rate-limit-to-do-command.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/05-add-config-get-set-flags.md → 32-quick-fix-gremlin/outcomes/5-add-config-get-set-flags.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/06-sync-worktree-branch-before-execution.md → 32-quick-fix-gremlin/outcomes/6-sync-worktree-branch-before-execution.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/07-update-frontmatter-format.md → 32-quick-fix-gremlin/outcomes/7-update-frontmatter-format.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/08-remove-plan-token-report.md → 32-quick-fix-gremlin/outcomes/8-remove-plan-token-report.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/01-fix-name-generation-prompt.md → 32-quick-fix-gremlin/plans/1-fix-name-generation-prompt.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/02-fix-amend-commit-scope.md → 32-quick-fix-gremlin/plans/2-fix-amend-commit-scope.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/03-fix-diverged-main-branch-sync.md → 32-quick-fix-gremlin/plans/3-fix-diverged-main-branch-sync.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/04-wire-rate-limit-to-do-command.md → 32-quick-fix-gremlin/plans/4-wire-rate-limit-to-do-command.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/05-add-config-get-set-flags.md → 32-quick-fix-gremlin/plans/5-add-config-get-set-flags.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/07-update-frontmatter-format.md → 32-quick-fix-gremlin/plans/7-update-frontmatter-format.md} +0 -0
- /package/RAF/{ahwidh-quick-fix-gremlin/plans/08-remove-plan-token-report.md → 32-quick-fix-gremlin/plans/8-remove-plan-token-report.md} +0 -0
- /package/RAF/{ahwqwq-model-whisperer → 33-model-whisperer}/decisions.md +0 -0
- /package/RAF/{ahwqwq-model-whisperer → 33-model-whisperer}/input.md +0 -0
- /package/RAF/{ahwqwq-model-whisperer/outcomes/01-show-model-on-task-line.md → 33-model-whisperer/outcomes/1-show-model-on-task-line.md} +0 -0
- /package/RAF/{ahwqwq-model-whisperer/outcomes/02-use-claude-cost-estimation.md → 33-model-whisperer/outcomes/2-use-claude-cost-estimation.md} +0 -0
- /package/RAF/{ahwqwq-model-whisperer/outcomes/03-add-plan-resume-flag.md → 33-model-whisperer/outcomes/3-add-plan-resume-flag.md} +0 -0
- /package/RAF/{ahwqwq-model-whisperer/plans/01-show-model-on-task-line.md → 33-model-whisperer/plans/1-show-model-on-task-line.md} +0 -0
- /package/RAF/{ahwqwq-model-whisperer/plans/02-use-claude-cost-estimation.md → 33-model-whisperer/plans/2-use-claude-cost-estimation.md} +0 -0
- /package/RAF/{ahwvrz-legacy-sunset → 34-legacy-sunset}/decisions.md +0 -0
- /package/RAF/{ahwvrz-legacy-sunset → 34-legacy-sunset}/input.md +0 -0
- /package/RAF/{ahwvrz-legacy-sunset/outcomes/01-remove-migrate-command.md → 34-legacy-sunset/outcomes/1-remove-migrate-command.md} +0 -0
- /package/RAF/{ahwvrz-legacy-sunset/outcomes/02-fix-resume-worktree-resolution.md → 34-legacy-sunset/outcomes/2-fix-resume-worktree-resolution.md} +0 -0
- /package/RAF/{ahwvrz-legacy-sunset/plans/01-remove-migrate-command.md → 34-legacy-sunset/plans/1-remove-migrate-command.md} +0 -0
- /package/RAF/{ahwzmc-echo-forge → 35-echo-forge}/decisions.md +0 -0
- /package/RAF/{ahwzmc-echo-forge → 35-echo-forge}/input.md +0 -0
- /package/RAF/{ahwzmc-echo-forge/outcomes/01-change-low-effort-default-to-sonnet.md → 35-echo-forge/outcomes/1-change-low-effort-default-to-sonnet.md} +0 -0
- /package/RAF/{ahwzmc-echo-forge/outcomes/02-add-no-worktree-flag.md → 35-echo-forge/outcomes/2-add-no-worktree-flag.md} +0 -0
- /package/RAF/{ahwzmc-echo-forge/outcomes/03-update-readme.md → 35-echo-forge/outcomes/3-update-readme.md} +0 -0
- /package/RAF/{ahwzmc-echo-forge/plans/01-change-low-effort-default-to-sonnet.md → 35-echo-forge/plans/1-change-low-effort-default-to-sonnet.md} +0 -0
- /package/RAF/{ahwzmc-echo-forge/plans/02-add-no-worktree-flag.md → 35-echo-forge/plans/2-add-no-worktree-flag.md} +0 -0
- /package/RAF/{aifqwf-fix-amend-commit-again → 36-fix-amend-commit-again}/decisions.md +0 -0
- /package/RAF/{aifqwf-fix-amend-commit-again → 36-fix-amend-commit-again}/input.md +0 -0
- /package/RAF/{aifqwf-fix-amend-commit-again/outcomes/01-update-effort-mapping-defaults.md → 36-fix-amend-commit-again/outcomes/1-update-effort-mapping-defaults.md} +0 -0
- /package/RAF/{aifqwf-fix-amend-commit-again/outcomes/02-fix-amend-worktree-commit.md → 36-fix-amend-commit-again/outcomes/2-fix-amend-worktree-commit.md} +0 -0
- /package/RAF/{aifqwf-fix-amend-commit-again/plans/01-update-effort-mapping-defaults.md → 36-fix-amend-commit-again/plans/1-update-effort-mapping-defaults.md} +0 -0
- /package/RAF/{aifqwf-fix-amend-commit-again/plans/02-fix-amend-worktree-commit.md → 36-fix-amend-commit-again/plans/2-fix-amend-worktree-commit.md} +0 -0
- /package/RAF/{aaaaae-task-naming-optimization → 4-task-naming-optimization}/decisions.md +0 -0
- /package/RAF/{aaaaae-task-naming-optimization → 4-task-naming-optimization}/input.md +0 -0
- /package/RAF/{aaaaae-task-naming-optimization/outcomes/01-remove-summary-file.md → 4-task-naming-optimization/outcomes/1-remove-summary-file.md} +0 -0
- /package/RAF/{aaaaae-task-naming-optimization/outcomes/02-base36-project-numbering.md → 4-task-naming-optimization/outcomes/2-base36-project-numbering.md} +0 -0
- /package/RAF/{aaaaae-task-naming-optimization/outcomes/03-improve-haiku-prompt.md → 4-task-naming-optimization/outcomes/3-improve-haiku-prompt.md} +0 -0
- /package/RAF/{aaaaae-task-naming-optimization → 4-task-naming-optimization}/outcomes/SUMMARY.md +0 -0
- /package/RAF/{aaaaae-task-naming-optimization/plans/01-remove-summary-file.md → 4-task-naming-optimization/plans/1-remove-summary-file.md} +0 -0
- /package/RAF/{aaaaae-task-naming-optimization/plans/02-base36-project-numbering.md → 4-task-naming-optimization/plans/2-base36-project-numbering.md} +0 -0
- /package/RAF/{aaaaae-task-naming-optimization/plans/03-improve-haiku-prompt.md → 4-task-naming-optimization/plans/3-improve-haiku-prompt.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements → 5-task-naming-improvements}/decisions.md +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements → 5-task-naming-improvements}/input.md +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/01-enhance-identifier-resolution.md → 5-task-naming-improvements/outcomes/1-enhance-identifier-resolution.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/02-add-identifier-support-to-status.md → 5-task-naming-improvements/outcomes/2-add-identifier-support-to-status.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/03-update-do-for-full-folder-names.md → 5-task-naming-improvements/outcomes/3-update-do-for-full-folder-names.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/04-implement-amend-flag-for-plan.md → 5-task-naming-improvements/outcomes/4-implement-amend-flag-for-plan.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/05-commit-outcomes-on-complete.md → 5-task-naming-improvements/outcomes/5-commit-outcomes-on-complete.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/06-update-execution-prompt-commit-schema.md → 5-task-naming-improvements/outcomes/6-update-execution-prompt-commit-schema.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/07-allow-pending-task-amendments.md → 5-task-naming-improvements/outcomes/7-allow-pending-task-amendments.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/outcomes/08-fix-timeout-label.md → 5-task-naming-improvements/outcomes/8-fix-timeout-label.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/01-enhance-identifier-resolution.md → 5-task-naming-improvements/plans/1-enhance-identifier-resolution.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/02-add-identifier-support-to-status.md → 5-task-naming-improvements/plans/2-add-identifier-support-to-status.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/03-update-do-for-full-folder-names.md → 5-task-naming-improvements/plans/3-update-do-for-full-folder-names.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/04-implement-amend-flag-for-plan.md → 5-task-naming-improvements/plans/4-implement-amend-flag-for-plan.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/05-commit-outcomes-on-complete.md → 5-task-naming-improvements/plans/5-commit-outcomes-on-complete.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/06-update-execution-prompt-commit-schema.md → 5-task-naming-improvements/plans/6-update-execution-prompt-commit-schema.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/07-allow-pending-task-amendments.md → 5-task-naming-improvements/plans/7-allow-pending-task-amendments.md} +0 -0
- /package/RAF/{aaaaaf-task-naming-improvements/plans/08-fix-timeout-label.md → 5-task-naming-improvements/plans/8-fix-timeout-label.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers → 6-fix-double-summary-headers}/decisions.md +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers → 6-fix-double-summary-headers}/input.md +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/outcomes/01-fix-double-summary-headers.md → 6-fix-double-summary-headers/outcomes/1-fix-double-summary-headers.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/outcomes/02-update-readme-for-npm.md → 6-fix-double-summary-headers/outcomes/2-update-readme-for-npm.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/outcomes/03-npm-publish-instructions.md → 6-fix-double-summary-headers/outcomes/3-npm-publish-instructions.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/outcomes/04-flexible-project-lookup.md → 6-fix-double-summary-headers/outcomes/4-flexible-project-lookup.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/plans/01-fix-double-summary-headers.md → 6-fix-double-summary-headers/plans/1-fix-double-summary-headers.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/plans/02-update-readme-for-npm.md → 6-fix-double-summary-headers/plans/2-update-readme-for-npm.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/plans/03-npm-publish-instructions.md → 6-fix-double-summary-headers/plans/3-npm-publish-instructions.md} +0 -0
- /package/RAF/{aaaaag-fix-double-summary-headers/plans/04-flexible-project-lookup.md → 6-fix-double-summary-headers/plans/4-flexible-project-lookup.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format → 7-improve-outcome-format}/decisions.md +0 -0
- /package/RAF/{aaaaah-improve-outcome-format → 7-improve-outcome-format}/input.md +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/outcomes/01-update-execution-prompt.md → 7-improve-outcome-format/outcomes/1-update-execution-prompt.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/outcomes/02-update-state-derivation.md → 7-improve-outcome-format/outcomes/2-update-state-derivation.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/outcomes/03-update-do-command-outcome-handling.md → 7-improve-outcome-format/outcomes/3-update-do-command-outcome-handling.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/outcomes/04-implement-failure-analysis.md → 7-improve-outcome-format/outcomes/4-implement-failure-analysis.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/outcomes/05-update-documentation.md → 7-improve-outcome-format/outcomes/5-update-documentation.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/plans/01-update-execution-prompt.md → 7-improve-outcome-format/plans/1-update-execution-prompt.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/plans/02-update-state-derivation.md → 7-improve-outcome-format/plans/2-update-state-derivation.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/plans/03-update-do-command-outcome-handling.md → 7-improve-outcome-format/plans/3-update-do-command-outcome-handling.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/plans/04-implement-failure-analysis.md → 7-improve-outcome-format/plans/4-implement-failure-analysis.md} +0 -0
- /package/RAF/{aaaaah-improve-outcome-format/plans/05-update-documentation.md → 7-improve-outcome-format/plans/5-update-documentation.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do → 8-beautiful-do}/decisions.md +0 -0
- /package/RAF/{aaaaai-beautiful-do → 8-beautiful-do}/input.md +0 -0
- /package/RAF/{aaaaai-beautiful-do/outcomes/01-terminal-symbols.md → 8-beautiful-do/outcomes/1-terminal-symbols.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/outcomes/02-refactor-do-output.md → 8-beautiful-do/outcomes/2-refactor-do-output.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/outcomes/03-refactor-status-output.md → 8-beautiful-do/outcomes/3-refactor-status-output.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/outcomes/04-simplify-logger.md → 8-beautiful-do/outcomes/4-simplify-logger.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/outcomes/05-add-tests.md → 8-beautiful-do/outcomes/5-add-tests.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/plans/01-terminal-symbols.md → 8-beautiful-do/plans/1-terminal-symbols.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/plans/02-refactor-do-output.md → 8-beautiful-do/plans/2-refactor-do-output.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/plans/03-refactor-status-output.md → 8-beautiful-do/plans/3-refactor-status-output.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/plans/04-simplify-logger.md → 8-beautiful-do/plans/4-simplify-logger.md} +0 -0
- /package/RAF/{aaaaai-beautiful-do/plans/05-add-tests.md → 8-beautiful-do/plans/5-add-tests.md} +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend → 9-system-promt-ammend}/decisions.md +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend → 9-system-promt-ammend}/input.md +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend/outcomes/01-model-override.md → 9-system-promt-ammend/outcomes/1-model-override.md} +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend/outcomes/02-system-prompt-append.md → 9-system-promt-ammend/outcomes/2-system-prompt-append.md} +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend/outcomes/03-retry-context.md → 9-system-promt-ammend/outcomes/3-retry-context.md} +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend/plans/01-model-override.md → 9-system-promt-ammend/plans/1-model-override.md} +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend/plans/02-system-prompt-append.md → 9-system-promt-ammend/plans/2-system-prompt-append.md} +0 -0
- /package/RAF/{aaaaaj-system-promt-ammend/plans/03-retry-context.md → 9-system-promt-ammend/plans/3-retry-context.md} +0 -0
|
@@ -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.)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
effort: medium
|
|
3
|
+
---
|
|
4
|
+
# Task: Unified Project Scanning in `raf do` Worktree Mode
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
Make `raf do --worktree` show both worktree and main-repo projects in the interactive picker, instead of only worktree projects.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
Currently, `raf do` has two scanning modes:
|
|
11
|
+
- **Standard mode**: scans both main-repo and worktree projects (via `pickPendingProject()` + `getPendingWorktreeProjects()`)
|
|
12
|
+
- **Worktree mode** (`--worktree`): only scans worktree projects (via `discoverAndPickWorktreeProject()`)
|
|
13
|
+
|
|
14
|
+
This is confusing — users expect to see all pending projects regardless of where they live. The fix should make worktree mode also show main-repo projects.
|
|
15
|
+
|
|
16
|
+
## Requirements
|
|
17
|
+
- In worktree mode, the project picker should show both worktree AND main-repo pending projects
|
|
18
|
+
- When a project exists in both main repo and worktree, the worktree version takes precedence (dedup)
|
|
19
|
+
- The existing threshold filter logic in `discoverAndPickWorktreeProject()` should still apply to worktree projects
|
|
20
|
+
- Main-repo projects should be clearly distinguishable from worktree projects in the picker (if they aren't already)
|
|
21
|
+
- When a main-repo project is selected in worktree mode, the existing worktree creation flow should kick in as normal
|
|
22
|
+
|
|
23
|
+
## Implementation Steps
|
|
24
|
+
1. Read `src/commands/do.ts` — focus on `discoverAndPickWorktreeProject()` (lines ~659-770) and the standard mode picker logic (lines ~270-299)
|
|
25
|
+
2. Read `src/ui/project-picker.ts` — understand `getPendingWorktreeProjects()` and `pickPendingProject()` and how dedup works
|
|
26
|
+
3. Modify `discoverAndPickWorktreeProject()` to also discover main-repo pending projects using existing utilities
|
|
27
|
+
4. Merge the two lists with worktree versions taking precedence on duplicates
|
|
28
|
+
5. Update the picker display if needed to indicate project source (worktree vs main)
|
|
29
|
+
6. Test the flow manually to ensure both project types appear
|
|
30
|
+
|
|
31
|
+
## Acceptance Criteria
|
|
32
|
+
- [ ] `raf do --worktree` shows pending projects from both worktree and main repo
|
|
33
|
+
- [ ] Duplicate projects are deduped with worktree version taking precedence
|
|
34
|
+
- [ ] Selecting a main-repo project in worktree mode correctly creates/uses a worktree
|
|
35
|
+
- [ ] Existing worktree-only scanning behavior is replaced by unified scanning
|
|
36
|
+
- [ ] No regressions in standard (non-worktree) mode
|
|
37
|
+
|
|
38
|
+
## Notes
|
|
39
|
+
- The standard mode already has this merging logic — reuse it rather than reimplementing
|
|
40
|
+
- Be careful with the threshold filter — it should only apply to worktree project filtering, not main-repo projects
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
effort: medium
|
|
3
|
+
---
|
|
4
|
+
# Task: Fix Plan Amend Prompt and Add Numeric ID Resolution
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
Fix the bug where `raf plan -y <project-name>` skips the existing project check, and add numeric ID resolution to both the auto-detect prompt and the explicit `--amend` flag.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
This is a follow-up fix to a previously implemented feature. Two issues:
|
|
11
|
+
|
|
12
|
+
1. **Auto mode bypass**: The amend prompt (plan.ts lines ~118-161) correctly detects existing projects in both main repo and worktrees, and offers to amend. However, the entire check is gated by `!autoMode`, so running `raf plan -y dual-wielder` when a project named "dual-wielder" already exists will silently create a new project instead of amending.
|
|
13
|
+
|
|
14
|
+
2. **Numeric ID not supported**: Neither the auto-detect flow nor the explicit `--amend` flag resolve numeric project IDs. `raf plan --amend 38` or `raf plan 38` should find project `38-dual-wielder` and work correctly.
|
|
15
|
+
|
|
16
|
+
The specific failing case: `raf-dev plan -y dual-wielder` opened fresh planning instead of amending the existing worktree project "dual-wielder".
|
|
17
|
+
|
|
18
|
+
## Requirements
|
|
19
|
+
- The existing project name check must run even when `-y` (auto mode) is active
|
|
20
|
+
- When an existing project is found in auto mode, the tool should still prompt the user (breaking out of auto mode for this safety check) — silently creating a duplicate would be worse than interrupting auto mode
|
|
21
|
+
- The check should cover both main-repo and worktree projects (it already does, just needs the `!autoMode` gate removed)
|
|
22
|
+
- `raf plan --amend 38` should resolve numeric ID `38` to the matching project in both main-repo and worktrees
|
|
23
|
+
- `raf plan 38` (without --amend) should also detect the existing project by numeric ID and prompt to amend
|
|
24
|
+
- Numeric ID resolution should use the existing `resolveProjectIdentifierWithDetails()` and `resolveWorktreeProjectByIdentifier()` utilities which already support numeric prefix matching
|
|
25
|
+
|
|
26
|
+
## Implementation Steps
|
|
27
|
+
1. Read `src/commands/plan.ts` — focus on:
|
|
28
|
+
- The auto mode guard around line 118: `if (projectName && !autoMode)`
|
|
29
|
+
- The `--amend` flag handling and how it resolves project identifiers
|
|
30
|
+
- The `runAmendCommand()` function
|
|
31
|
+
2. Read `src/utils/paths.ts` — understand `resolveProjectIdentifierWithDetails()` which already supports numeric prefix matching
|
|
32
|
+
3. Read `src/core/worktree.ts` — understand `resolveWorktreeProjectByIdentifier()` which also supports numeric matching
|
|
33
|
+
4. Remove the `!autoMode` condition so the existing project check runs regardless of mode
|
|
34
|
+
5. Update the auto-detect check to use `resolveProjectIdentifierWithDetails()` (which handles numeric IDs) instead of any name-only matching
|
|
35
|
+
6. Update the `--amend` flag handling to accept numeric IDs, using the same resolution utilities
|
|
36
|
+
7. Ensure resolution checks both main-repo and worktree projects for both flows
|
|
37
|
+
|
|
38
|
+
## Acceptance Criteria
|
|
39
|
+
- [ ] `raf plan -y <existing-project-name>` detects the existing project and prompts to amend
|
|
40
|
+
- [ ] `raf plan -y <numeric-id>` (e.g., `raf plan -y 38`) detects the existing project and prompts to amend
|
|
41
|
+
- [ ] `raf plan --amend <numeric-id>` resolves the project correctly and enters amend mode
|
|
42
|
+
- [ ] `raf plan --amend <project-name>` continues to work as before
|
|
43
|
+
- [ ] Resolution checks both main-repo and worktree projects in all cases
|
|
44
|
+
- [ ] If user selects "amend", the amend flow runs correctly
|
|
45
|
+
- [ ] If user selects "create new", a new project is created as before
|
|
46
|
+
- [ ] Non-auto-mode behavior is unchanged
|
|
47
|
+
|
|
48
|
+
## Notes
|
|
49
|
+
- The resolution utilities (`resolveProjectIdentifierWithDetails`, `resolveWorktreeProjectByIdentifier`) already support numeric prefix matching — reuse them rather than adding custom logic
|
|
50
|
+
- The safety prompt intentionally breaks auto mode — duplicating a project name is almost always a mistake
|
|
51
|
+
- Effort bumped to medium since this touches both the auto-detect and --amend flows with ID resolution logic
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
effort: high
|
|
3
|
+
---
|
|
4
|
+
# Task: E2E Test Codex Provider
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
Verify the Codex provider integration works end-to-end by running `raf-dev plan` and `raf-dev do` with `--provider codex` against a dummy Node.js project, documenting all issues found.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
This is a follow-up to task 3 (implement-codex-runner). See outcome: /Users/eremeev/projects/RAF/RAF/38-dual-wielder/outcomes/3-implement-codex-runner.md
|
|
11
|
+
|
|
12
|
+
Tasks 1-4 added Codex support (config schema, abstract runner, CodexRunner implementation, LLM-agnostic prompts) but none of this has been tested E2E against a real project. This task validates the full integration.
|
|
13
|
+
|
|
14
|
+
## Dependencies
|
|
15
|
+
3
|
|
16
|
+
|
|
17
|
+
## Requirements
|
|
18
|
+
- Create a simple dummy Node.js project to use as a test target
|
|
19
|
+
- Run `raf-dev plan` and `raf-dev do` with `--provider codex` and verify real behavior
|
|
20
|
+
- Use `raf-dev` (not `raf`) for all testing — this is the development binary
|
|
21
|
+
- Test all major scenarios: planning, execution, config/model resolution, error handling
|
|
22
|
+
- Document all issues found in the outcome — do NOT auto-create fix tasks
|
|
23
|
+
- Sequential testing is fine (no need for parallel agents)
|
|
24
|
+
|
|
25
|
+
## Implementation Steps
|
|
26
|
+
|
|
27
|
+
### Phase 1: Set up dummy project
|
|
28
|
+
|
|
29
|
+
1. Create a temporary dummy Node.js project folder (e.g., `/tmp/raf-codex-test-project/`) with:
|
|
30
|
+
- `package.json` with a name and basic scripts
|
|
31
|
+
- `src/index.ts` — a small file with a few intentional TODOs or bugs (e.g., a function that doesn't handle edge cases)
|
|
32
|
+
- `tsconfig.json` — basic TypeScript config
|
|
33
|
+
- Initialize a git repo in it (`git init && git add . && git commit`)
|
|
34
|
+
2. The project should be simple enough that an LLM can meaningfully plan and execute tasks against it
|
|
35
|
+
|
|
36
|
+
### Phase 2: Test `raf-dev plan --provider codex`
|
|
37
|
+
|
|
38
|
+
3. Run `raf-dev plan --provider codex` targeting the dummy project
|
|
39
|
+
- Provide a simple input like "add input validation to the exported functions"
|
|
40
|
+
- Verify: Does the PTY spawn correctly? Does Codex receive the prompt?
|
|
41
|
+
- Verify: Are plan files generated with correct frontmatter?
|
|
42
|
+
- Verify: Does the interactive planning session complete without crashes?
|
|
43
|
+
4. Check the generated plan files — are they well-formed? Do they have the expected structure?
|
|
44
|
+
|
|
45
|
+
### Phase 3: Test `raf-dev do --provider codex`
|
|
46
|
+
|
|
47
|
+
5. Run `raf-dev do --provider codex` on the planned project
|
|
48
|
+
- Verify: Does task execution start correctly?
|
|
49
|
+
- Verify: Is the `codex exec --full-auto --json --ephemeral` command constructed properly?
|
|
50
|
+
- Verify: Does JSONL stream output display correctly in verbose mode?
|
|
51
|
+
- Verify: Does completion detection work (outcome file, commit verification)?
|
|
52
|
+
- Verify: Does the task complete and produce an outcome file?
|
|
53
|
+
6. Check the outcome files and any commits made — are they correct?
|
|
54
|
+
|
|
55
|
+
### Phase 4: Test config/model resolution
|
|
56
|
+
|
|
57
|
+
7. Test that `--provider codex` correctly overrides the default provider in config
|
|
58
|
+
8. Test effort-based model resolution for codex:
|
|
59
|
+
- A plan with `effort: low` should use `gpt-5.3-codex-spark`
|
|
60
|
+
- A plan with `effort: medium` should use `gpt-5.3-codex`
|
|
61
|
+
- A plan with `effort: high` should use `gpt-5.4`
|
|
62
|
+
9. Test explicit model override in plan frontmatter (e.g., `model: codex/gpt-5.4`)
|
|
63
|
+
|
|
64
|
+
### Phase 5: Test error handling and edge cases
|
|
65
|
+
|
|
66
|
+
10. Test what happens when `codex` binary is not in PATH (temporarily rename or use a bad path)
|
|
67
|
+
11. Test timeout behavior — does a long-running task get terminated correctly?
|
|
68
|
+
12. Test that `runResume` correctly throws "not supported" for Codex
|
|
69
|
+
13. Test behavior with malformed/unexpected Codex output
|
|
70
|
+
14. Verify that usage data being `undefined` for Codex doesn't break any display or logging code
|
|
71
|
+
|
|
72
|
+
### Phase 6: Document results
|
|
73
|
+
|
|
74
|
+
15. Create a comprehensive outcome document listing:
|
|
75
|
+
- Each scenario tested and its result (PASS/FAIL)
|
|
76
|
+
- Detailed description of any failures or unexpected behavior
|
|
77
|
+
- Severity assessment for each issue (critical/major/minor)
|
|
78
|
+
- Suggested fixes for each issue found
|
|
79
|
+
|
|
80
|
+
## Acceptance Criteria
|
|
81
|
+
- [ ] Dummy Node.js project created and initialized with git
|
|
82
|
+
- [ ] `raf-dev plan --provider codex` tested and results documented
|
|
83
|
+
- [ ] `raf-dev do --provider codex` tested and results documented
|
|
84
|
+
- [ ] Config/model resolution tested for codex provider
|
|
85
|
+
- [ ] Error handling and edge cases tested
|
|
86
|
+
- [ ] Comprehensive outcome document listing all issues found with severity
|
|
87
|
+
|
|
88
|
+
## Notes
|
|
89
|
+
- This task requires the `codex` CLI to be installed and available in PATH
|
|
90
|
+
- If Codex CLI is not available, document that as the first finding and test what you can without it (e.g., error handling for missing binary, config resolution logic)
|
|
91
|
+
- Focus on documenting issues clearly — the user will decide what to fix based on the outcome
|
|
92
|
+
- When testing interactively (raf-dev plan), you may need to provide input via the PTY — document any difficulties with this
|
|
93
|
+
- Check `src/core/codex-runner.ts` for the actual command construction to verify correctness
|
|
94
|
+
- Check `src/core/runner-factory.ts` to verify provider routing
|
|
95
|
+
- Check `src/utils/config.ts` for model resolution logic
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Project Decisions
|
|
2
|
+
|
|
3
|
+
## Should the JSONL stream renderer support both old and new event formats, or replace entirely?
|
|
4
|
+
The "old" format is not old — it's the Claude event format. The renderer should add Codex-specific event handling (item.completed, turn.completed, etc.) alongside the existing Claude event handling. Claude should continue to work as before.
|
|
5
|
+
|
|
6
|
+
## For removing --worktree: when creating a NEW project with raf plan, should it always create a worktree or use config default?
|
|
7
|
+
Config default. --worktree and --no-worktree flags should STILL be supported for `raf plan` (new project creation). They determine where the new project will be created. But for --amend and auto-amend flows, the flag should be removed — auto-detect where the project lives.
|
|
8
|
+
|
|
9
|
+
## For raf plan --amend: if project exists in main but not worktree, auto-create worktree or amend in-place?
|
|
10
|
+
Amend in-place. Follow where the project lives — if in main repo, amend there; if in worktree, amend there.
|
|
11
|
+
|
|
12
|
+
## For raf do: just remove --worktree/--no-worktree flags, or deeper refactor?
|
|
13
|
+
Just remove flags. The existing auto-detection logic already scans both worktree and main. Just remove the CLI flags and let auto-detection be the only path.
|
|
14
|
+
|
|
15
|
+
## Should auto-amend detection (name collision in raf plan) scan worktrees too?
|
|
16
|
+
Yes, scan both main repo and worktrees for name collisions during auto-amend detection.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Task 1: Fix Codex JSONL Stream Renderer
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Updated `codex-stream-renderer.ts` to handle the real Codex CLI event format (nested `item.completed` events) while preserving existing Claude flat-format handlers.
|
|
5
|
+
|
|
6
|
+
## Changes Made
|
|
7
|
+
|
|
8
|
+
### File: `src/parsers/codex-stream-renderer.ts`
|
|
9
|
+
- Extended `CodexEvent` interface with `item` (nested object), `message`, and `usage` fields
|
|
10
|
+
- Added `item.completed` handler that dispatches on `item.type`: `agent_message`, `command_execution`, `file_change`
|
|
11
|
+
- Added `item.started` handler (no-op, renders on completion)
|
|
12
|
+
- Added `turn.completed` handler that extracts and displays usage data
|
|
13
|
+
- Added `error` handler — outputs error message in both `display` and `textContent`
|
|
14
|
+
- Added `turn.failed` handler — outputs failure message in both `display` and `textContent`
|
|
15
|
+
- All existing Claude-format handlers (`AgentMessage`, `CommandExecution`, `FileChange`, `McpToolCall`, `TodoList`) remain untouched
|
|
16
|
+
|
|
17
|
+
## Verification
|
|
18
|
+
- TypeScript compiles without errors (`npm run build`)
|
|
19
|
+
- All acceptance criteria met
|
|
20
|
+
|
|
21
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Task 2: Wire --provider CLI Flag Through to Runner and Model Resolution
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Wired the inert `--provider` CLI flag through to `createRunner()` and `resolveEffortToModel()` in both `do.ts` and `plan.ts`, so that `--provider codex` actually creates a `CodexRunner` and uses the codex effort mapping.
|
|
5
|
+
|
|
6
|
+
## Changes Made
|
|
7
|
+
|
|
8
|
+
### File: `src/commands/do.ts`
|
|
9
|
+
- Added `provider` field to `SingleProjectOptions` interface
|
|
10
|
+
- Pass `options.provider` through `executeSingleProject` to the task execution loop
|
|
11
|
+
- Updated `resolveTaskModel()` to accept an optional `provider` parameter and pass it to `resolveEffortToModel()`
|
|
12
|
+
- Pass `provider` to `createRunner({ model, provider })` in the task retry loop
|
|
13
|
+
|
|
14
|
+
### File: `src/commands/plan.ts`
|
|
15
|
+
- Read `options.provider` in the action handler
|
|
16
|
+
- Pass `provider` through to `runPlanCommand()`, `runAmendCommand()`, and `runResumeCommand()`
|
|
17
|
+
- Pass `provider` to all three `createRunner({ model, provider })` call sites
|
|
18
|
+
- Pass `provider` through the duplicate-project amend redirect flow
|
|
19
|
+
|
|
20
|
+
## Verification
|
|
21
|
+
- TypeScript compiles without errors (`npm run build`)
|
|
22
|
+
- All acceptance criteria met:
|
|
23
|
+
- `raf do --provider codex` will create a `CodexRunner` (provider flows to `createRunner`)
|
|
24
|
+
- `raf plan --provider codex` will create a `CodexRunner` for planning sessions
|
|
25
|
+
- `resolveEffortToModel` receives the provider param for codex effort mapping
|
|
26
|
+
- TypeScript compiles cleanly
|
|
27
|
+
|
|
28
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Task 3: Remove --worktree Flag from raf do — Auto-detect Project Location
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Removed `--worktree` and `--no-worktree` CLI flags from `raf do`. Project location (worktree vs main repo) is now always auto-detected. The combined picker and worktree-first resolution are the only code paths.
|
|
5
|
+
|
|
6
|
+
## Changes Made
|
|
7
|
+
|
|
8
|
+
### File: `src/commands/do.ts`
|
|
9
|
+
- Removed `-w, --worktree` and `--no-worktree` option lines from `createDoCommand()`
|
|
10
|
+
- Removed `worktreeMode` variable and all assignments to it
|
|
11
|
+
- Removed the early `if (worktreeMode)` block that did worktree-specific setup — the combined picker flow now handles both worktree and main projects
|
|
12
|
+
- Replaced `if (worktreeMode)` in resolution with `if (worktreeRoot)` — when the picker sets worktreeRoot, resolve within that worktree; otherwise auto-detect (worktree first, then main)
|
|
13
|
+
- Moved main branch sync (`pullMainBranch`) to after project resolution, triggered by `worktreeRoot` being set
|
|
14
|
+
- Replaced `worktreeMode && worktreeRoot` guards with just `worktreeRoot`
|
|
15
|
+
- Removed unused `discoverAndPickWorktreeProject` function
|
|
16
|
+
- Cleaned up unused imports: `getWorktreeDefault`, `discoverProjects`, `formatProjectChoice`, `computeWorktreePath`, `computeWorktreeBaseDir`, `validateWorktree`, `listWorktreeProjects`
|
|
17
|
+
|
|
18
|
+
### File: `src/types/config.ts`
|
|
19
|
+
- Removed `worktree?: boolean` from `DoCommandOptions` interface
|
|
20
|
+
|
|
21
|
+
### File: `src/commands/plan.ts`
|
|
22
|
+
- Removed `--worktree` from `raf do` suggestions in user-facing log messages (2 locations)
|
|
23
|
+
|
|
24
|
+
### File: `src/prompts/planning.ts`
|
|
25
|
+
- Removed `worktreeFlag` variable and `worktreeMode` destructuring — `raf do` instruction no longer includes `--worktree`
|
|
26
|
+
|
|
27
|
+
### File: `src/prompts/amend.ts`
|
|
28
|
+
- Removed `worktreeFlag` variable and `worktreeMode` destructuring — `raf do` instruction no longer includes `--worktree`
|
|
29
|
+
|
|
30
|
+
### File: `src/prompts/config-docs.md`
|
|
31
|
+
- Updated `worktree` config description to note that `raf do` auto-detects regardless of this setting
|
|
32
|
+
|
|
33
|
+
## Verification
|
|
34
|
+
- TypeScript compiles without errors (`npm run build`)
|
|
35
|
+
- All acceptance criteria met:
|
|
36
|
+
- `raf do` CLI no longer accepts `--worktree` or `--no-worktree`
|
|
37
|
+
- `raf do` (no args) shows combined picker of worktree + main projects
|
|
38
|
+
- `raf do <project>` auto-detects if project is in worktree or main
|
|
39
|
+
- Post-execution worktree actions (merge/PR/leave) still work correctly (triggered by `worktreeRoot`)
|
|
40
|
+
|
|
41
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Task 4: Remove --worktree Flag from raf plan --amend — Auto-detect Project Location
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Modified `runAmendCommand` to auto-detect whether a project lives in a worktree or main repo, removing the `worktreeMode` parameter. The `--worktree`/`--no-worktree` flags remain on the `plan` command for new project creation only.
|
|
5
|
+
|
|
6
|
+
## Changes Made
|
|
7
|
+
|
|
8
|
+
### File: `src/commands/plan.ts`
|
|
9
|
+
- Removed `worktreeMode` parameter from `runAmendCommand` signature
|
|
10
|
+
- Replaced the complex worktree-mode branch (manual worktree scanning, branch recreation, fresh worktree creation with file copying) with simple auto-detection: try `resolveWorktreeProjectByIdentifier()` first, fall back to `resolveProjectIdentifierWithDetails()` in main repo
|
|
11
|
+
- Updated both call sites (explicit `--amend` at line ~104 and auto-amend at line ~158) to no longer pass `worktreeMode`
|
|
12
|
+
- Removed `existingWorktreeMode` variable from auto-amend detection flow
|
|
13
|
+
- Removed redundant if/else for `raf do` suggestion (both branches were identical)
|
|
14
|
+
- Simplified `worktreeMode && worktreePath` guard to just `worktreePath`
|
|
15
|
+
- Removed `worktreeMode` from `getAmendPrompt()` call
|
|
16
|
+
- Cleaned up unused imports: `createWorktreeFromBranch`, `branchExists`, `computeWorktreeBaseDir`
|
|
17
|
+
|
|
18
|
+
### File: `src/prompts/amend.ts`
|
|
19
|
+
- Removed `worktreeMode?: boolean` from `AmendPromptParams` interface
|
|
20
|
+
|
|
21
|
+
## Verification
|
|
22
|
+
- TypeScript compiles without errors (`npm run build`)
|
|
23
|
+
- All acceptance criteria met:
|
|
24
|
+
- `raf plan myproject --amend` finds project in worktree without needing `--worktree` flag
|
|
25
|
+
- `raf plan myproject --amend` finds project in main repo without needing `--no-worktree` flag
|
|
26
|
+
- `raf plan myproject` (name collision) detects projects in both worktree and main
|
|
27
|
+
- `--worktree`/`--no-worktree` flags still work for new project creation
|
|
28
|
+
- TypeScript compiles without errors
|
|
29
|
+
|
|
30
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Task 5: Update Prompts, Docs, and Config Docs for Removed --worktree Flag
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Updated README.md to remove stale `--worktree` references for `raf do`. The `raf plan` command still supports `--worktree` for new project creation, so those references were preserved.
|
|
5
|
+
|
|
6
|
+
## Changes Made
|
|
7
|
+
|
|
8
|
+
### File: `README.md`
|
|
9
|
+
- Removed `raf do --worktree` and `raf do my-feature -w` examples from the `raf do` usage block
|
|
10
|
+
- Updated "Basic workflow" in Worktree Mode section: `raf do my-feature --worktree` → `raf do my-feature` with note "(auto-detected, no flag needed)"
|
|
11
|
+
- Added bullet in "How it works" section: `raf do` auto-detects whether a project lives in a worktree — no `--worktree` flag needed
|
|
12
|
+
- Clarified `--no-worktree` bullet to specify it applies to `raf plan` (not `raf do`)
|
|
13
|
+
- Removed `-w, --worktree` and `--no-worktree` rows from `raf do` command reference table
|
|
14
|
+
|
|
15
|
+
## No Changes Needed
|
|
16
|
+
- `src/prompts/planning.ts` — already cleaned up in Task 3
|
|
17
|
+
- `src/prompts/amend.ts` — already cleaned up in Task 3
|
|
18
|
+
- `src/prompts/config-docs.md` — already accurate (references are specific to `raf plan --worktree`, which still has the flag)
|
|
19
|
+
- `src/commands/do.ts` — already cleaned up in Task 3
|
|
20
|
+
|
|
21
|
+
## Verification
|
|
22
|
+
- TypeScript compiles without errors (`npm run build`)
|
|
23
|
+
- All remaining `--worktree` references are scoped to `raf plan` (still valid)
|
|
24
|
+
- No stale `--worktree` references for `raf do` or `raf plan --amend`
|
|
25
|
+
|
|
26
|
+
<promise>COMPLETE</promise>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
effort: medium
|
|
3
|
+
---
|
|
4
|
+
# Task: Fix Codex JSONL Stream Renderer for Real Event Format
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
Update the Codex stream renderer to handle the actual event format emitted by Codex CLI, while preserving existing Claude event handling.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
The Codex CLI emits events in a nested format (`item.completed` with `item.type` sub-fields) but the renderer expects flat event types (`AgentMessage`, `CommandExecution`). This causes all Codex output to be silently dropped. The existing flat event types are used by Claude's renderer and must be preserved — this is NOT an "old" format, it's the Claude format.
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
- Handle real Codex CLI event types: `item.completed`, `item.started`, `turn.completed`, `error`, `turn.failed`
|
|
14
|
+
- For `item.completed`, dispatch on `item.type`: `agent_message` (text in `item.text`), `command_execution` (command in `item.command`), `file_change`
|
|
15
|
+
- Handle `error` and `turn.failed` events — capture error messages in both `display` and `textContent`
|
|
16
|
+
- Extract usage data from `turn.completed` events if available
|
|
17
|
+
- Keep existing `AgentMessage`, `CommandExecution`, `FileChange`, `McpToolCall`, `TodoList` handlers intact — these are for Claude
|
|
18
|
+
- Update the `CodexEvent` interface to model the real nested event structure
|
|
19
|
+
|
|
20
|
+
## Implementation Steps
|
|
21
|
+
1. Read `src/parsers/codex-stream-renderer.ts` to understand current structure
|
|
22
|
+
2. Update the `CodexEvent` interface to include nested item structure:
|
|
23
|
+
- Add `item?: { type: string; text?: string; command?: string; exit_code?: number; path?: string; ... }`
|
|
24
|
+
- Add fields for `error`, `turn.failed`, `turn.completed` events
|
|
25
|
+
3. Add new cases to the switch statement for real Codex event types:
|
|
26
|
+
- `item.completed` → check `event.item.type` and dispatch to appropriate renderer
|
|
27
|
+
- `item.started` → optionally render (or skip)
|
|
28
|
+
- `turn.completed` → extract usage data if present
|
|
29
|
+
- `error` → render error message in both display and textContent
|
|
30
|
+
- `turn.failed` → render failure message in both display and textContent
|
|
31
|
+
4. Keep all existing cases (`AgentMessage`, `CommandExecution`, etc.) untouched
|
|
32
|
+
5. Build and verify no type errors
|
|
33
|
+
|
|
34
|
+
## Acceptance Criteria
|
|
35
|
+
- [ ] Real Codex `item.completed` events with `agent_message` type produce text output
|
|
36
|
+
- [ ] Real Codex `item.completed` events with `command_execution` type show command status
|
|
37
|
+
- [ ] `error` and `turn.failed` events produce visible error output in both display and textContent
|
|
38
|
+
- [ ] Existing Claude event handlers (`AgentMessage`, `CommandExecution`, etc.) continue to work unchanged
|
|
39
|
+
- [ ] TypeScript compiles without errors
|
|
40
|
+
|
|
41
|
+
## Notes
|
|
42
|
+
- Reference the outcomes file at `RAF/38-dual-wielder/outcomes/8-e2e-test-codex-provider.md` for exact real event JSON samples
|
|
43
|
+
- The `RenderResult` interface from `stream-renderer.ts` is the return type — keep using it
|