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.
Files changed (585) hide show
  1. package/.claude/settings.local.json +2 -1
  2. package/CLAUDE.md +7 -345
  3. package/RAF/{aaaabn-dependencies-watchdog/plans/02-update-planning-prompts.md → 13-dependencies-watchdog/plans/2-update-planning-prompts.md} +1 -1
  4. package/RAF/{aaaabn-dependencies-watchdog/plans/03-parse-dependencies-update-state.md → 13-dependencies-watchdog/plans/3-parse-dependencies-update-state.md} +1 -1
  5. 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
  6. package/RAF/{aaaabn-dependencies-watchdog/plans/05-update-execution-prompts.md → 13-dependencies-watchdog/plans/5-update-execution-prompts.md} +1 -1
  7. package/RAF/{aaaabn-dependencies-watchdog/plans/06-add-tests.md → 13-dependencies-watchdog/plans/6-add-tests.md} +1 -1
  8. package/RAF/{aaaabr-decision-vault/plans/02-integrate-commit-into-plan.md → 17-decision-vault/plans/2-integrate-commit-into-plan.md} +1 -1
  9. 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
  10. package/RAF/{aaaabt-verbose-chronicle/plans/04-commit-verification-before-halt.md → 19-verbose-chronicle/plans/4-commit-verification-before-halt.md} +1 -1
  11. package/RAF/{aaaacu-worktree-weaver/plans/02-worktree-plan-command.md → 20-worktree-weaver/plans/2-worktree-plan-command.md} +1 -1
  12. package/RAF/{aaaacu-worktree-weaver/plans/03-worktree-do-command.md → 20-worktree-weaver/plans/3-worktree-do-command.md} +1 -1
  13. package/RAF/{aaaacu-worktree-weaver/plans/04-auto-merge-and-cleanup.md → 20-worktree-weaver/plans/4-auto-merge-and-cleanup.md} +1 -1
  14. package/RAF/{aaaacu-worktree-weaver/plans/05-worktree-tests.md → 20-worktree-weaver/plans/5-worktree-tests.md} +1 -1
  15. package/RAF/{aaaacu-worktree-weaver/plans/06-update-documentation.md → 20-worktree-weaver/plans/6-update-documentation.md} +1 -1
  16. 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
  17. 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
  18. package/RAF/{aaaacw-prune-cycle/plans/02-cleanup-worktree-on-success.md → 22-prune-cycle/plans/2-cleanup-worktree-on-success.md} +1 -1
  19. package/RAF/{aaaacw-prune-cycle/plans/03-amend-recreate-worktree.md → 22-prune-cycle/plans/3-amend-recreate-worktree.md} +1 -1
  20. package/RAF/{aaaacx-epoch-shift/plans/02-update-pattern-matching.md → 23-epoch-shift/plans/2-update-pattern-matching.md} +1 -1
  21. package/RAF/{aaaacx-epoch-shift/plans/03-update-tests.md → 23-epoch-shift/plans/3-update-tests.md} +1 -1
  22. package/RAF/{aaaacx-epoch-shift/plans/04-update-documentation.md → 23-epoch-shift/plans/4-update-documentation.md} +1 -1
  23. package/RAF/{ahmpro-merge-guardian/plans/003-worktree-pr-creation.md → 24-merge-guardian/plans/3-worktree-pr-creation.md} +1 -1
  24. package/RAF/{ahmpro-merge-guardian/plans/004-post-execution-picker.md → 24-merge-guardian/plans/4-post-execution-picker.md} +1 -1
  25. package/RAF/{ahnbcu-letterjam/plans/02-update-tests.md → 25-letterjam/plans/2-update-tests.md} +1 -1
  26. package/RAF/{ahnbcu-letterjam/plans/03-migrate-command.md → 25-letterjam/plans/3-migrate-command.md} +1 -1
  27. package/RAF/{ahnbcu-letterjam/plans/04-update-documentation.md → 25-letterjam/plans/4-update-documentation.md} +1 -1
  28. package/RAF/{ahnwrk-worktree-weaver/plans/04-fix-pr-description.md → 26-worktree-weaver/plans/4-fix-pr-description.md} +1 -1
  29. package/RAF/{ahrren-turbo-finder/plans/02-medium-effort-do.md → 27-turbo-finder/plans/2-medium-effort-do.md} +1 -1
  30. 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
  31. package/RAF/{ahslfe-config-wizard/plans/03-create-config-documentation.md → 28-config-wizard/plans/3-create-config-documentation.md} +1 -1
  32. package/RAF/{ahslfe-config-wizard/plans/04-implement-raf-config-command.md → 28-config-wizard/plans/4-implement-raf-config-command.md} +1 -1
  33. package/RAF/{ahslfe-config-wizard/plans/05-update-claude-md.md → 28-config-wizard/plans/5-update-claude-md.md} +1 -1
  34. package/RAF/{ahstvo-token-tracker/plans/03-unify-stream-json-execution.md → 29-token-tracker/plans/3-unify-stream-json-execution.md} +1 -1
  35. package/RAF/{ahstvo-token-tracker/plans/04-token-tracking-cost-calculation.md → 29-token-tracker/plans/4-token-tracking-cost-calculation.md} +1 -1
  36. package/RAF/{ahstvo-token-tracker/plans/05-token-cost-console-reporting.md → 29-token-tracker/plans/5-token-cost-console-reporting.md} +1 -1
  37. package/RAF/{ahstvo-token-tracker/plans/06-runtime-verbose-toggle.md → 29-token-tracker/plans/6-runtime-verbose-toggle.md} +1 -1
  38. 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
  39. package/RAF/{ahtahs-token-reaper/plans/03-per-attempt-display-formatting.md → 30-token-reaper/plans/3-per-attempt-display-formatting.md} +1 -1
  40. package/RAF/{ahvrih-rate-forge/plans/03-rate-limit-estimation.md → 31-rate-forge/plans/3-rate-limit-estimation.md} +1 -1
  41. package/RAF/{ahvrih-rate-forge/plans/06-sync-readme-with-codebase.md → 31-rate-forge/plans/6-sync-readme-with-codebase.md} +1 -1
  42. package/RAF/{ahvrih-rate-forge/plans/08-plan-execution-metadata.md → 31-rate-forge/plans/8-plan-execution-metadata.md} +1 -1
  43. 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
  44. package/RAF/{ahwqwq-model-whisperer/plans/03-add-plan-resume-flag.md → 33-model-whisperer/plans/3-add-plan-resume-flag.md} +1 -1
  45. package/RAF/{ahwvrz-legacy-sunset/plans/02-fix-resume-worktree-resolution.md → 34-legacy-sunset/plans/2-fix-resume-worktree-resolution.md} +1 -1
  46. package/RAF/{ahwzmc-echo-forge/plans/03-update-readme.md → 35-echo-forge/plans/3-update-readme.md} +1 -1
  47. package/RAF/37-flux-weave/decisions.md +22 -0
  48. package/RAF/37-flux-weave/input.md +4 -0
  49. package/RAF/37-flux-weave/outcomes/1-numeric-project-ids.md +32 -0
  50. package/RAF/37-flux-weave/outcomes/2-numeric-task-ids.md +34 -0
  51. package/RAF/37-flux-weave/outcomes/3-amend-commit-without-new-plans.md +23 -0
  52. package/RAF/37-flux-weave/outcomes/4-auto-detect-existing-project.md +30 -0
  53. package/RAF/37-flux-weave/plans/1-numeric-project-ids.md +75 -0
  54. package/RAF/37-flux-weave/plans/2-numeric-task-ids.md +65 -0
  55. package/RAF/37-flux-weave/plans/3-amend-commit-without-new-plans.md +54 -0
  56. package/RAF/37-flux-weave/plans/4-auto-detect-existing-project.md +52 -0
  57. package/RAF/38-dual-wielder/decisions.md +44 -0
  58. package/RAF/38-dual-wielder/input.md +13 -0
  59. package/RAF/38-dual-wielder/outcomes/1-config-schema-provider-types.md +47 -0
  60. package/RAF/38-dual-wielder/outcomes/2-abstract-cli-runner.md +33 -0
  61. package/RAF/38-dual-wielder/outcomes/3-implement-codex-runner.md +38 -0
  62. package/RAF/38-dual-wielder/outcomes/4-update-prompts-llm-agnostic.md +50 -0
  63. package/RAF/38-dual-wielder/outcomes/5-update-readme-docs.md +33 -0
  64. package/RAF/38-dual-wielder/outcomes/6-do-unified-project-scanning.md +25 -0
  65. package/RAF/38-dual-wielder/outcomes/7-fix-plan-amend-automode.md +28 -0
  66. package/RAF/38-dual-wielder/outcomes/8-e2e-test-codex-provider.md +139 -0
  67. package/RAF/38-dual-wielder/plans/1-config-schema-provider-types.md +90 -0
  68. package/RAF/38-dual-wielder/plans/2-abstract-cli-runner.md +76 -0
  69. package/RAF/38-dual-wielder/plans/3-implement-codex-runner.md +94 -0
  70. package/RAF/38-dual-wielder/plans/4-update-prompts-llm-agnostic.md +70 -0
  71. package/RAF/38-dual-wielder/plans/5-update-readme-docs.md +52 -0
  72. package/RAF/38-dual-wielder/plans/6-do-unified-project-scanning.md +40 -0
  73. package/RAF/38-dual-wielder/plans/7-fix-plan-amend-automode.md +51 -0
  74. package/RAF/38-dual-wielder/plans/8-e2e-test-codex-provider.md +95 -0
  75. package/RAF/39-pathless-rover/decisions.md +16 -0
  76. package/RAF/39-pathless-rover/input.md +2 -0
  77. package/RAF/39-pathless-rover/outcomes/1-fix-codex-stream-renderer.md +21 -0
  78. package/RAF/39-pathless-rover/outcomes/2-wire-provider-flag.md +28 -0
  79. package/RAF/39-pathless-rover/outcomes/3-remove-worktree-flag-do.md +41 -0
  80. package/RAF/39-pathless-rover/outcomes/4-remove-worktree-flag-plan-amend.md +30 -0
  81. package/RAF/39-pathless-rover/outcomes/5-update-prompts-and-docs.md +26 -0
  82. package/RAF/39-pathless-rover/plans/1-fix-codex-stream-renderer.md +43 -0
  83. package/RAF/39-pathless-rover/plans/2-wire-provider-flag.md +48 -0
  84. package/RAF/39-pathless-rover/plans/3-remove-worktree-flag-do.md +41 -0
  85. package/RAF/39-pathless-rover/plans/4-remove-worktree-flag-plan-amend.md +43 -0
  86. package/RAF/39-pathless-rover/plans/5-update-prompts-and-docs.md +31 -0
  87. package/RAF/40-numeric-order-fix/decisions.md +7 -0
  88. package/RAF/40-numeric-order-fix/input.md +19 -0
  89. package/RAF/40-numeric-order-fix/outcomes/1-fix-numeric-sort-order.md +18 -0
  90. package/RAF/40-numeric-order-fix/outcomes/2-add-npm-keywords.md +10 -0
  91. package/RAF/40-numeric-order-fix/plans/1-fix-numeric-sort-order.md +48 -0
  92. package/RAF/40-numeric-order-fix/plans/2-add-npm-keywords.md +23 -0
  93. package/README.md +62 -18
  94. package/dist/commands/config.js +7 -7
  95. package/dist/commands/config.js.map +1 -1
  96. package/dist/commands/do.d.ts.map +1 -1
  97. package/dist/commands/do.js +51 -230
  98. package/dist/commands/do.js.map +1 -1
  99. package/dist/commands/plan.d.ts.map +1 -1
  100. package/dist/commands/plan.js +96 -147
  101. package/dist/commands/plan.js.map +1 -1
  102. package/dist/commands/status.js +1 -1
  103. package/dist/commands/status.js.map +1 -1
  104. package/dist/core/claude-runner.d.ts +19 -116
  105. package/dist/core/claude-runner.d.ts.map +1 -1
  106. package/dist/core/claude-runner.js +20 -173
  107. package/dist/core/claude-runner.js.map +1 -1
  108. package/dist/core/codex-runner.d.ts +41 -0
  109. package/dist/core/codex-runner.d.ts.map +1 -0
  110. package/dist/core/codex-runner.js +271 -0
  111. package/dist/core/codex-runner.js.map +1 -0
  112. package/dist/core/completion-detector.d.ts +47 -0
  113. package/dist/core/completion-detector.d.ts.map +1 -0
  114. package/dist/core/completion-detector.js +143 -0
  115. package/dist/core/completion-detector.js.map +1 -0
  116. package/dist/core/failure-analyzer.d.ts +1 -1
  117. package/dist/core/failure-analyzer.js +10 -10
  118. package/dist/core/failure-analyzer.js.map +1 -1
  119. package/dist/core/project-manager.d.ts.map +1 -1
  120. package/dist/core/project-manager.js +2 -2
  121. package/dist/core/project-manager.js.map +1 -1
  122. package/dist/core/pull-request.d.ts +4 -4
  123. package/dist/core/pull-request.js +13 -13
  124. package/dist/core/pull-request.js.map +1 -1
  125. package/dist/core/runner-factory.d.ts +12 -0
  126. package/dist/core/runner-factory.d.ts.map +1 -0
  127. package/dist/core/runner-factory.js +30 -0
  128. package/dist/core/runner-factory.js.map +1 -0
  129. package/dist/core/runner-interface.d.ts +14 -0
  130. package/dist/core/runner-interface.d.ts.map +1 -0
  131. package/dist/core/runner-interface.js +2 -0
  132. package/dist/core/runner-interface.js.map +1 -0
  133. package/dist/core/runner-types.d.ts +73 -0
  134. package/dist/core/runner-types.d.ts.map +1 -0
  135. package/dist/core/runner-types.js +2 -0
  136. package/dist/core/runner-types.js.map +1 -0
  137. package/dist/core/shutdown-handler.d.ts +8 -4
  138. package/dist/core/shutdown-handler.d.ts.map +1 -1
  139. package/dist/core/shutdown-handler.js +14 -8
  140. package/dist/core/shutdown-handler.js.map +1 -1
  141. package/dist/core/state-derivation.d.ts +2 -2
  142. package/dist/core/state-derivation.d.ts.map +1 -1
  143. package/dist/core/state-derivation.js +12 -15
  144. package/dist/core/state-derivation.js.map +1 -1
  145. package/dist/core/worktree.d.ts +1 -1
  146. package/dist/core/worktree.d.ts.map +1 -1
  147. package/dist/core/worktree.js +14 -16
  148. package/dist/core/worktree.js.map +1 -1
  149. package/dist/index.js +1 -1
  150. package/dist/index.js.map +1 -1
  151. package/dist/parsers/codex-stream-renderer.d.ts +48 -0
  152. package/dist/parsers/codex-stream-renderer.d.ts.map +1 -0
  153. package/dist/parsers/codex-stream-renderer.js +158 -0
  154. package/dist/parsers/codex-stream-renderer.js.map +1 -0
  155. package/dist/parsers/output-parser.d.ts +2 -2
  156. package/dist/parsers/output-parser.js +2 -2
  157. package/dist/parsers/stream-renderer.d.ts +1 -1
  158. package/dist/parsers/stream-renderer.js +1 -1
  159. package/dist/prompts/amend.d.ts +1 -2
  160. package/dist/prompts/amend.d.ts.map +1 -1
  161. package/dist/prompts/amend.js +8 -9
  162. package/dist/prompts/amend.js.map +1 -1
  163. package/dist/prompts/execution.js +2 -2
  164. package/dist/prompts/execution.js.map +1 -1
  165. package/dist/prompts/planning.d.ts +1 -1
  166. package/dist/prompts/planning.d.ts.map +1 -1
  167. package/dist/prompts/planning.js +14 -15
  168. package/dist/prompts/planning.js.map +1 -1
  169. package/dist/types/config.d.ts +21 -1
  170. package/dist/types/config.d.ts.map +1 -1
  171. package/dist/types/config.js +16 -0
  172. package/dist/types/config.js.map +1 -1
  173. package/dist/ui/project-picker.d.ts.map +1 -1
  174. package/dist/ui/project-picker.js.map +1 -1
  175. package/dist/utils/config.d.ts +24 -6
  176. package/dist/utils/config.d.ts.map +1 -1
  177. package/dist/utils/config.js +155 -15
  178. package/dist/utils/config.js.map +1 -1
  179. package/dist/utils/name-generator.d.ts +2 -2
  180. package/dist/utils/name-generator.js +9 -9
  181. package/dist/utils/name-generator.js.map +1 -1
  182. package/dist/utils/paths.d.ts +32 -51
  183. package/dist/utils/paths.d.ts.map +1 -1
  184. package/dist/utils/paths.js +121 -150
  185. package/dist/utils/paths.js.map +1 -1
  186. package/dist/utils/token-tracker.d.ts +2 -2
  187. package/dist/utils/token-tracker.js +4 -4
  188. package/dist/utils/token-tracker.js.map +1 -1
  189. package/dist/utils/validation.d.ts.map +1 -1
  190. package/dist/utils/validation.js +7 -10
  191. package/dist/utils/validation.js.map +1 -1
  192. package/package.json +7 -2
  193. package/src/commands/config.ts +7 -7
  194. package/src/commands/do.ts +53 -265
  195. package/src/commands/plan.ts +102 -155
  196. package/src/commands/status.ts +1 -1
  197. package/src/core/claude-runner.ts +33 -277
  198. package/src/core/codex-runner.ts +326 -0
  199. package/src/core/completion-detector.ts +177 -0
  200. package/src/core/failure-analyzer.ts +10 -10
  201. package/src/core/project-manager.ts +2 -1
  202. package/src/core/pull-request.ts +13 -13
  203. package/src/core/runner-factory.ts +35 -0
  204. package/src/core/runner-interface.ts +14 -0
  205. package/src/core/runner-types.ts +75 -0
  206. package/src/core/shutdown-handler.ts +17 -10
  207. package/src/core/state-derivation.ts +12 -15
  208. package/src/core/worktree.ts +14 -16
  209. package/src/index.ts +1 -1
  210. package/src/parsers/codex-stream-renderer.ts +210 -0
  211. package/src/parsers/output-parser.ts +2 -2
  212. package/src/parsers/stream-renderer.ts +1 -1
  213. package/src/prompts/amend.ts +7 -10
  214. package/src/prompts/config-docs.md +8 -8
  215. package/src/prompts/execution.ts +2 -2
  216. package/src/prompts/planning.ts +14 -16
  217. package/src/types/config.ts +39 -1
  218. package/src/ui/project-picker.ts +1 -0
  219. package/src/utils/config.ts +170 -14
  220. package/src/utils/name-generator.ts +9 -9
  221. package/src/utils/paths.ts +123 -159
  222. package/src/utils/token-tracker.ts +4 -4
  223. package/src/utils/validation.ts +7 -10
  224. package/tests/unit/commit-planning-artifacts-worktree.test.ts +14 -14
  225. package/tests/unit/commit-planning-artifacts.test.ts +40 -40
  226. package/tests/unit/config.test.ts +8 -8
  227. package/tests/unit/dependency-integration.test.ts +96 -96
  228. package/tests/unit/do-blocked-tasks.test.ts +1 -1
  229. package/tests/unit/do-command.test.ts +36 -36
  230. package/tests/unit/do-rerun.test.ts +1 -1
  231. package/tests/unit/execution-prompt.test.ts +62 -62
  232. package/tests/unit/git-stash.test.ts +4 -4
  233. package/tests/unit/paths.test.ts +135 -249
  234. package/tests/unit/plan-command.test.ts +103 -103
  235. package/tests/unit/planning-prompt.test.ts +3 -3
  236. package/tests/unit/project-manager.test.ts +9 -10
  237. package/tests/unit/project-picker.test.ts +74 -74
  238. package/tests/unit/pull-request.test.ts +3 -3
  239. package/tests/unit/state-derivation.test.ts +144 -144
  240. package/tests/unit/status-command.test.ts +71 -103
  241. package/tests/unit/worktree.test.ts +32 -33
  242. /package/RAF/{aaaaab-raf-task-improvements → 1-raf-task-improvements}/input.md +0 -0
  243. /package/RAF/{aaaaab-raf-task-improvements/outcomes/01-add-decisions-folder.md → 1-raf-task-improvements/outcomes/1-add-decisions-folder.md} +0 -0
  244. /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
  245. /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
  246. /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
  247. /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
  248. /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
  249. /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
  250. /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
  251. /package/RAF/{aaaaab-raf-task-improvements → 1-raf-task-improvements}/outcomes/SUMMARY.md +0 -0
  252. /package/RAF/{aaaaab-raf-task-improvements/plans/01-add-decisions-folder.md → 1-raf-task-improvements/plans/1-add-decisions-folder.md} +0 -0
  253. /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
  254. /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
  255. /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
  256. /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
  257. /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
  258. /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
  259. /package/RAF/{aaaabk-outcome-marker-fallback → 10-outcome-marker-fallback}/decisions.md +0 -0
  260. /package/RAF/{aaaabk-outcome-marker-fallback → 10-outcome-marker-fallback}/input.md +0 -0
  261. /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
  262. /package/RAF/{aaaabk-outcome-marker-fallback/outcomes/02-creative-project-naming.md → 10-outcome-marker-fallback/outcomes/2-creative-project-naming.md} +0 -0
  263. /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
  264. /package/RAF/{aaaabk-outcome-marker-fallback/plans/02-creative-project-naming.md → 10-outcome-marker-fallback/plans/2-creative-project-naming.md} +0 -0
  265. /package/RAF/{aaaabl-do-task-in-commit → 11-do-task-in-commit}/decisions.md +0 -0
  266. /package/RAF/{aaaabl-do-task-in-commit → 11-do-task-in-commit}/input.md +0 -0
  267. /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
  268. /package/RAF/{aaaabl-do-task-in-commit/outcomes/02-update-tests.md → 11-do-task-in-commit/outcomes/2-update-tests.md} +0 -0
  269. /package/RAF/{aaaabl-do-task-in-commit/outcomes/03-update-documentation.md → 11-do-task-in-commit/outcomes/3-update-documentation.md} +0 -0
  270. /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
  271. /package/RAF/{aaaabl-do-task-in-commit/plans/02-update-tests.md → 11-do-task-in-commit/plans/2-update-tests.md} +0 -0
  272. /package/RAF/{aaaabl-do-task-in-commit/plans/03-update-documentation.md → 11-do-task-in-commit/plans/3-update-documentation.md} +0 -0
  273. /package/RAF/{aaaabm-name-picker-buffet → 12-name-picker-buffet}/decisions.md +0 -0
  274. /package/RAF/{aaaabm-name-picker-buffet → 12-name-picker-buffet}/input.md +0 -0
  275. /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
  276. /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
  277. /package/RAF/{aaaabm-name-picker-buffet/outcomes/03-raf-status-truncation.md → 12-name-picker-buffet/outcomes/3-raf-status-truncation.md} +0 -0
  278. /package/RAF/{aaaabm-name-picker-buffet/outcomes/04-failure-reason-details.md → 12-name-picker-buffet/outcomes/4-failure-reason-details.md} +0 -0
  279. /package/RAF/{aaaabm-name-picker-buffet/outcomes/05-remove-raf-commits.md → 12-name-picker-buffet/outcomes/5-remove-raf-commits.md} +0 -0
  280. /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
  281. /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
  282. /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
  283. /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
  284. /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
  285. /package/RAF/{aaaabm-name-picker-buffet/plans/03-raf-status-truncation.md → 12-name-picker-buffet/plans/3-raf-status-truncation.md} +0 -0
  286. /package/RAF/{aaaabm-name-picker-buffet/plans/04-failure-reason-details.md → 12-name-picker-buffet/plans/4-failure-reason-details.md} +0 -0
  287. /package/RAF/{aaaabm-name-picker-buffet/plans/05-remove-raf-commits.md → 12-name-picker-buffet/plans/5-remove-raf-commits.md} +0 -0
  288. /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
  289. /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
  290. /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
  291. /package/RAF/{aaaabn-dependencies-watchdog → 13-dependencies-watchdog}/decisions.md +0 -0
  292. /package/RAF/{aaaabn-dependencies-watchdog → 13-dependencies-watchdog}/input.md +0 -0
  293. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/01-define-dependency-syntax.md → 13-dependencies-watchdog/outcomes/1-define-dependency-syntax.md} +0 -0
  294. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/02-update-planning-prompts.md → 13-dependencies-watchdog/outcomes/2-update-planning-prompts.md} +0 -0
  295. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/03-parse-dependencies-update-state.md → 13-dependencies-watchdog/outcomes/3-parse-dependencies-update-state.md} +0 -0
  296. /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
  297. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/05-update-execution-prompts.md → 13-dependencies-watchdog/outcomes/5-update-execution-prompts.md} +0 -0
  298. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/06-add-tests.md → 13-dependencies-watchdog/outcomes/6-add-tests.md} +0 -0
  299. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/07-add-act-alias.md → 13-dependencies-watchdog/outcomes/7-add-act-alias.md} +0 -0
  300. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/08-add-exit-message.md → 13-dependencies-watchdog/outcomes/8-add-exit-message.md} +0 -0
  301. /package/RAF/{aaaabn-dependencies-watchdog/plans/01-define-dependency-syntax.md → 13-dependencies-watchdog/plans/1-define-dependency-syntax.md} +0 -0
  302. /package/RAF/{aaaabn-dependencies-watchdog/plans/07-add-act-alias.md → 13-dependencies-watchdog/plans/7-add-act-alias.md} +0 -0
  303. /package/RAF/{aaaabn-dependencies-watchdog/plans/08-add-exit-message.md → 13-dependencies-watchdog/plans/8-add-exit-message.md} +0 -0
  304. /package/RAF/{aaaabo-watchdog → 14-watchdog}/decisions.md +0 -0
  305. /package/RAF/{aaaabo-watchdog → 14-watchdog}/input.md +0 -0
  306. /package/RAF/{aaaabo-watchdog/outcomes/01-amend-flag-position.md → 14-watchdog/outcomes/1-amend-flag-position.md} +0 -0
  307. /package/RAF/{aaaabo-watchdog/outcomes/02-details-only-on-failure.md → 14-watchdog/outcomes/2-details-only-on-failure.md} +0 -0
  308. /package/RAF/{aaaabo-watchdog/plans/01-amend-flag-position.md → 14-watchdog/plans/1-amend-flag-position.md} +0 -0
  309. /package/RAF/{aaaabo-watchdog/plans/02-details-only-on-failure.md → 14-watchdog/plans/2-details-only-on-failure.md} +0 -0
  310. /package/RAF/{aaaabp-name-lottery → 15-name-lottery}/decisions.md +0 -0
  311. /package/RAF/{aaaabp-name-lottery → 15-name-lottery}/input.md +0 -0
  312. /package/RAF/{aaaabp-name-lottery/outcomes/01-auto-pick-project-name.md → 15-name-lottery/outcomes/1-auto-pick-project-name.md} +0 -0
  313. /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
  314. /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
  315. /package/RAF/{aaaabp-name-lottery/plans/01-auto-pick-project-name.md → 15-name-lottery/plans/1-auto-pick-project-name.md} +0 -0
  316. /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
  317. /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
  318. /package/RAF/{aaaabq-planning-scalpel → 16-planning-scalpel}/decisions.md +0 -0
  319. /package/RAF/{aaaabq-planning-scalpel → 16-planning-scalpel}/input.md +0 -0
  320. /package/RAF/{aaaabq-planning-scalpel/outcomes/01-update-git-commit-instructions.md → 16-planning-scalpel/outcomes/1-update-git-commit-instructions.md} +0 -0
  321. /package/RAF/{aaaabq-planning-scalpel/plans/01-update-git-commit-instructions.md → 16-planning-scalpel/plans/1-update-git-commit-instructions.md} +0 -0
  322. /package/RAF/{aaaabr-decision-vault → 17-decision-vault}/decisions.md +0 -0
  323. /package/RAF/{aaaabr-decision-vault → 17-decision-vault}/input.md +0 -0
  324. /package/RAF/{aaaabr-decision-vault/outcomes/01-create-git-commit-utility.md → 17-decision-vault/outcomes/1-create-git-commit-utility.md} +0 -0
  325. /package/RAF/{aaaabr-decision-vault/outcomes/02-integrate-commit-into-plan.md → 17-decision-vault/outcomes/2-integrate-commit-into-plan.md} +0 -0
  326. /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
  327. /package/RAF/{aaaabr-decision-vault/plans/01-create-git-commit-utility.md → 17-decision-vault/plans/1-create-git-commit-utility.md} +0 -0
  328. /package/RAF/{aaaabs-workflow-forge → 18-workflow-forge}/decisions.md +0 -0
  329. /package/RAF/{aaaabs-workflow-forge → 18-workflow-forge}/input.md +0 -0
  330. /package/RAF/{aaaabs-workflow-forge/outcomes/01-add-task-number-progress.md → 18-workflow-forge/outcomes/1-add-task-number-progress.md} +0 -0
  331. /package/RAF/{aaaabs-workflow-forge/outcomes/02-update-plan-do-prompts.md → 18-workflow-forge/outcomes/2-update-plan-do-prompts.md} +0 -0
  332. /package/RAF/{aaaabs-workflow-forge/plans/01-add-task-number-progress.md → 18-workflow-forge/plans/1-add-task-number-progress.md} +0 -0
  333. /package/RAF/{aaaabs-workflow-forge/plans/02-update-plan-do-prompts.md → 18-workflow-forge/plans/2-update-plan-do-prompts.md} +0 -0
  334. /package/RAF/{aaaabt-verbose-chronicle → 19-verbose-chronicle}/decisions.md +0 -0
  335. /package/RAF/{aaaabt-verbose-chronicle → 19-verbose-chronicle}/input.md +0 -0
  336. /package/RAF/{aaaabt-verbose-chronicle/outcomes/01-amend-iteration-references.md → 19-verbose-chronicle/outcomes/1-amend-iteration-references.md} +0 -0
  337. /package/RAF/{aaaabt-verbose-chronicle/outcomes/02-verbose-task-name-display.md → 19-verbose-chronicle/outcomes/2-verbose-task-name-display.md} +0 -0
  338. /package/RAF/{aaaabt-verbose-chronicle/outcomes/03-verbose-streaming-fix.md → 19-verbose-chronicle/outcomes/3-verbose-streaming-fix.md} +0 -0
  339. /package/RAF/{aaaabt-verbose-chronicle/outcomes/04-commit-verification-before-halt.md → 19-verbose-chronicle/outcomes/4-commit-verification-before-halt.md} +0 -0
  340. /package/RAF/{aaaabt-verbose-chronicle/plans/01-amend-iteration-references.md → 19-verbose-chronicle/plans/1-amend-iteration-references.md} +0 -0
  341. /package/RAF/{aaaabt-verbose-chronicle/plans/02-verbose-task-name-display.md → 19-verbose-chronicle/plans/2-verbose-task-name-display.md} +0 -0
  342. /package/RAF/{aaaabt-verbose-chronicle/plans/03-verbose-streaming-fix.md → 19-verbose-chronicle/plans/3-verbose-streaming-fix.md} +0 -0
  343. /package/RAF/{aaaaac-raf-task-improvements-execution → 2-raf-task-improvements-execution}/decisions/DECISIONS.md +0 -0
  344. /package/RAF/{aaaaac-raf-task-improvements-execution → 2-raf-task-improvements-execution}/input.md +0 -0
  345. /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
  346. /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
  347. /package/RAF/{aaaaac-raf-task-improvements-execution → 2-raf-task-improvements-execution}/outcomes/SUMMARY.md +0 -0
  348. /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
  349. /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
  350. /package/RAF/{aaaacu-worktree-weaver → 20-worktree-weaver}/decisions.md +0 -0
  351. /package/RAF/{aaaacu-worktree-weaver → 20-worktree-weaver}/input.md +0 -0
  352. /package/RAF/{aaaacu-worktree-weaver/outcomes/01-git-worktree-utilities.md → 20-worktree-weaver/outcomes/1-git-worktree-utilities.md} +0 -0
  353. /package/RAF/{aaaacu-worktree-weaver/outcomes/02-worktree-plan-command.md → 20-worktree-weaver/outcomes/2-worktree-plan-command.md} +0 -0
  354. /package/RAF/{aaaacu-worktree-weaver/outcomes/03-worktree-do-command.md → 20-worktree-weaver/outcomes/3-worktree-do-command.md} +0 -0
  355. /package/RAF/{aaaacu-worktree-weaver/outcomes/04-auto-merge-and-cleanup.md → 20-worktree-weaver/outcomes/4-auto-merge-and-cleanup.md} +0 -0
  356. /package/RAF/{aaaacu-worktree-weaver/outcomes/05-worktree-tests.md → 20-worktree-weaver/outcomes/5-worktree-tests.md} +0 -0
  357. /package/RAF/{aaaacu-worktree-weaver/outcomes/06-update-documentation.md → 20-worktree-weaver/outcomes/6-update-documentation.md} +0 -0
  358. /package/RAF/{aaaacu-worktree-weaver/plans/01-git-worktree-utilities.md → 20-worktree-weaver/plans/1-git-worktree-utilities.md} +0 -0
  359. /package/RAF/{aaaacv-trim-the-fat → 21-trim-the-fat}/decisions.md +0 -0
  360. /package/RAF/{aaaacv-trim-the-fat → 21-trim-the-fat}/input.md +0 -0
  361. /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
  362. /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
  363. /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
  364. /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
  365. /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
  366. /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
  367. /package/RAF/{aaaacw-prune-cycle → 22-prune-cycle}/decisions.md +0 -0
  368. /package/RAF/{aaaacw-prune-cycle → 22-prune-cycle}/input.md +0 -0
  369. /package/RAF/{aaaacw-prune-cycle/outcomes/01-create-worktree-from-branch.md → 22-prune-cycle/outcomes/1-create-worktree-from-branch.md} +0 -0
  370. /package/RAF/{aaaacw-prune-cycle/outcomes/02-cleanup-worktree-on-success.md → 22-prune-cycle/outcomes/2-cleanup-worktree-on-success.md} +0 -0
  371. /package/RAF/{aaaacw-prune-cycle/outcomes/03-amend-recreate-worktree.md → 22-prune-cycle/outcomes/3-amend-recreate-worktree.md} +0 -0
  372. /package/RAF/{aaaacw-prune-cycle/plans/01-create-worktree-from-branch.md → 22-prune-cycle/plans/1-create-worktree-from-branch.md} +0 -0
  373. /package/RAF/{aaaacx-epoch-shift → 23-epoch-shift}/decisions.md +0 -0
  374. /package/RAF/{aaaacx-epoch-shift → 23-epoch-shift}/input.md +0 -0
  375. /package/RAF/{aaaacx-epoch-shift/outcomes/01-epoch-id-generation.md → 23-epoch-shift/outcomes/1-epoch-id-generation.md} +0 -0
  376. /package/RAF/{aaaacx-epoch-shift/outcomes/02-update-pattern-matching.md → 23-epoch-shift/outcomes/2-update-pattern-matching.md} +0 -0
  377. /package/RAF/{aaaacx-epoch-shift/outcomes/03-update-tests.md → 23-epoch-shift/outcomes/3-update-tests.md} +0 -0
  378. /package/RAF/{aaaacx-epoch-shift/outcomes/04-update-documentation.md → 23-epoch-shift/outcomes/4-update-documentation.md} +0 -0
  379. /package/RAF/{aaaacx-epoch-shift/plans/01-epoch-id-generation.md → 23-epoch-shift/plans/1-epoch-id-generation.md} +0 -0
  380. /package/RAF/{ahmpro-merge-guardian → 24-merge-guardian}/decisions.md +0 -0
  381. /package/RAF/{ahmpro-merge-guardian → 24-merge-guardian}/input.md +0 -0
  382. /package/RAF/{ahmpro-merge-guardian/outcomes/001-fix-amend-worktree-commit.md → 24-merge-guardian/outcomes/1-fix-amend-worktree-commit.md} +0 -0
  383. /package/RAF/{ahmpro-merge-guardian/outcomes/002-base36-task-ids.md → 24-merge-guardian/outcomes/2-base36-task-ids.md} +0 -0
  384. /package/RAF/{ahmpro-merge-guardian/outcomes/003-worktree-pr-creation.md → 24-merge-guardian/outcomes/3-worktree-pr-creation.md} +0 -0
  385. /package/RAF/{ahmpro-merge-guardian/outcomes/004-post-execution-picker.md → 24-merge-guardian/outcomes/4-post-execution-picker.md} +0 -0
  386. /package/RAF/{ahmpro-merge-guardian/plans/001-fix-amend-worktree-commit.md → 24-merge-guardian/plans/1-fix-amend-worktree-commit.md} +0 -0
  387. /package/RAF/{ahmpro-merge-guardian/plans/002-base36-task-ids.md → 24-merge-guardian/plans/2-base36-task-ids.md} +0 -0
  388. /package/RAF/{ahnbcu-letterjam → 25-letterjam}/decisions.md +0 -0
  389. /package/RAF/{ahnbcu-letterjam → 25-letterjam}/input.md +0 -0
  390. /package/RAF/{ahnbcu-letterjam/outcomes/01-base26-encoding.md → 25-letterjam/outcomes/1-base26-encoding.md} +0 -0
  391. /package/RAF/{ahnbcu-letterjam/outcomes/02-update-tests.md → 25-letterjam/outcomes/2-update-tests.md} +0 -0
  392. /package/RAF/{ahnbcu-letterjam/outcomes/03-migrate-command.md → 25-letterjam/outcomes/3-migrate-command.md} +0 -0
  393. /package/RAF/{ahnbcu-letterjam/outcomes/04-update-documentation.md → 25-letterjam/outcomes/4-update-documentation.md} +0 -0
  394. /package/RAF/{ahnbcu-letterjam/plans/01-base26-encoding.md → 25-letterjam/plans/1-base26-encoding.md} +0 -0
  395. /package/RAF/{ahnwrk-worktree-weaver → 26-worktree-weaver}/decisions.md +0 -0
  396. /package/RAF/{ahnwrk-worktree-weaver → 26-worktree-weaver}/input.md +0 -0
  397. /package/RAF/{ahnwrk-worktree-weaver/outcomes/01-remove-co-authored-by.md → 26-worktree-weaver/outcomes/1-remove-co-authored-by.md} +0 -0
  398. /package/RAF/{ahnwrk-worktree-weaver/outcomes/02-update-task-status-format.md → 26-worktree-weaver/outcomes/2-update-task-status-format.md} +0 -0
  399. /package/RAF/{ahnwrk-worktree-weaver/outcomes/03-worktree-auto-discovery.md → 26-worktree-weaver/outcomes/3-worktree-auto-discovery.md} +0 -0
  400. /package/RAF/{ahnwrk-worktree-weaver/outcomes/04-fix-pr-description.md → 26-worktree-weaver/outcomes/4-fix-pr-description.md} +0 -0
  401. /package/RAF/{ahnwrk-worktree-weaver/plans/01-remove-co-authored-by.md → 26-worktree-weaver/plans/1-remove-co-authored-by.md} +0 -0
  402. /package/RAF/{ahnwrk-worktree-weaver/plans/02-update-task-status-format.md → 26-worktree-weaver/plans/2-update-task-status-format.md} +0 -0
  403. /package/RAF/{ahnwrk-worktree-weaver/plans/03-worktree-auto-discovery.md → 26-worktree-weaver/plans/3-worktree-auto-discovery.md} +0 -0
  404. /package/RAF/{ahrren-turbo-finder → 27-turbo-finder}/decisions.md +0 -0
  405. /package/RAF/{ahrren-turbo-finder → 27-turbo-finder}/input.md +0 -0
  406. /package/RAF/{ahrren-turbo-finder/outcomes/01-worktree-auto-detect.md → 27-turbo-finder/outcomes/1-worktree-auto-detect.md} +0 -0
  407. /package/RAF/{ahrren-turbo-finder/outcomes/02-medium-effort-do.md → 27-turbo-finder/outcomes/2-medium-effort-do.md} +0 -0
  408. /package/RAF/{ahrren-turbo-finder/plans/01-worktree-auto-detect.md → 27-turbo-finder/plans/1-worktree-auto-detect.md} +0 -0
  409. /package/RAF/{ahslfe-config-wizard → 28-config-wizard}/decisions.md +0 -0
  410. /package/RAF/{ahslfe-config-wizard → 28-config-wizard}/input.md +0 -0
  411. /package/RAF/{ahslfe-config-wizard/outcomes/01-define-config-schema.md → 28-config-wizard/outcomes/1-define-config-schema.md} +0 -0
  412. /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
  413. /package/RAF/{ahslfe-config-wizard/outcomes/03-create-config-documentation.md → 28-config-wizard/outcomes/3-create-config-documentation.md} +0 -0
  414. /package/RAF/{ahslfe-config-wizard/outcomes/04-implement-raf-config-command.md → 28-config-wizard/outcomes/4-implement-raf-config-command.md} +0 -0
  415. /package/RAF/{ahslfe-config-wizard/outcomes/05-update-claude-md.md → 28-config-wizard/outcomes/5-update-claude-md.md} +0 -0
  416. /package/RAF/{ahslfe-config-wizard/plans/01-define-config-schema.md → 28-config-wizard/plans/1-define-config-schema.md} +0 -0
  417. /package/RAF/{ahstvo-token-tracker → 29-token-tracker}/decisions.md +0 -0
  418. /package/RAF/{ahstvo-token-tracker → 29-token-tracker}/input.md +0 -0
  419. /package/RAF/{ahstvo-token-tracker/outcomes/01-full-model-id-support.md → 29-token-tracker/outcomes/1-full-model-id-support.md} +0 -0
  420. /package/RAF/{ahstvo-token-tracker/outcomes/02-name-generation-no-session.md → 29-token-tracker/outcomes/2-name-generation-no-session.md} +0 -0
  421. /package/RAF/{ahstvo-token-tracker/outcomes/03-unify-stream-json-execution.md → 29-token-tracker/outcomes/3-unify-stream-json-execution.md} +0 -0
  422. /package/RAF/{ahstvo-token-tracker/outcomes/04-token-tracking-cost-calculation.md → 29-token-tracker/outcomes/4-token-tracking-cost-calculation.md} +0 -0
  423. /package/RAF/{ahstvo-token-tracker/outcomes/05-token-cost-console-reporting.md → 29-token-tracker/outcomes/5-token-cost-console-reporting.md} +0 -0
  424. /package/RAF/{ahstvo-token-tracker/outcomes/06-runtime-verbose-toggle.md → 29-token-tracker/outcomes/6-runtime-verbose-toggle.md} +0 -0
  425. /package/RAF/{ahstvo-token-tracker/outcomes/07-readme-config-docs.md → 29-token-tracker/outcomes/7-readme-config-docs.md} +0 -0
  426. /package/RAF/{ahstvo-token-tracker/plans/01-full-model-id-support.md → 29-token-tracker/plans/1-full-model-id-support.md} +0 -0
  427. /package/RAF/{ahstvo-token-tracker/plans/02-name-generation-no-session.md → 29-token-tracker/plans/2-name-generation-no-session.md} +0 -0
  428. /package/RAF/{ahstvo-token-tracker/plans/07-readme-config-docs.md → 29-token-tracker/plans/7-readme-config-docs.md} +0 -0
  429. /package/RAF/{aaaaad-multi-project-execution → 3-multi-project-execution}/decisions/DECISIONS.md +0 -0
  430. /package/RAF/{aaaaad-multi-project-execution → 3-multi-project-execution}/input.md +0 -0
  431. /package/RAF/{aaaaad-multi-project-execution/outcomes/01-remove-state-json.md → 3-multi-project-execution/outcomes/1-remove-state-json.md} +0 -0
  432. /package/RAF/{aaaaad-multi-project-execution/outcomes/02-update-raf-status.md → 3-multi-project-execution/outcomes/2-update-raf-status.md} +0 -0
  433. /package/RAF/{aaaaad-multi-project-execution/outcomes/03-simplify-git-logic.md → 3-multi-project-execution/outcomes/3-simplify-git-logic.md} +0 -0
  434. /package/RAF/{aaaaad-multi-project-execution/outcomes/04-auto-commit-planning.md → 3-multi-project-execution/outcomes/4-auto-commit-planning.md} +0 -0
  435. /package/RAF/{aaaaad-multi-project-execution/outcomes/05-rerun-failed-tasks.md → 3-multi-project-execution/outcomes/5-rerun-failed-tasks.md} +0 -0
  436. /package/RAF/{aaaaad-multi-project-execution/outcomes/06-multi-project-execution.md → 3-multi-project-execution/outcomes/6-multi-project-execution.md} +0 -0
  437. /package/RAF/{aaaaad-multi-project-execution/outcomes/07-verify-timeout.md → 3-multi-project-execution/outcomes/7-verify-timeout.md} +0 -0
  438. /package/RAF/{aaaaad-multi-project-execution/outcomes/08-move-decisions-file.md → 3-multi-project-execution/outcomes/8-move-decisions-file.md} +0 -0
  439. /package/RAF/{aaaaad-multi-project-execution → 3-multi-project-execution}/outcomes/SUMMARY.md +0 -0
  440. /package/RAF/{aaaaad-multi-project-execution/plans/01-remove-state-json.md → 3-multi-project-execution/plans/1-remove-state-json.md} +0 -0
  441. /package/RAF/{aaaaad-multi-project-execution/plans/02-update-raf-status.md → 3-multi-project-execution/plans/2-update-raf-status.md} +0 -0
  442. /package/RAF/{aaaaad-multi-project-execution/plans/03-simplify-git-logic.md → 3-multi-project-execution/plans/3-simplify-git-logic.md} +0 -0
  443. /package/RAF/{aaaaad-multi-project-execution/plans/04-auto-commit-planning.md → 3-multi-project-execution/plans/4-auto-commit-planning.md} +0 -0
  444. /package/RAF/{aaaaad-multi-project-execution/plans/05-rerun-failed-tasks.md → 3-multi-project-execution/plans/5-rerun-failed-tasks.md} +0 -0
  445. /package/RAF/{aaaaad-multi-project-execution/plans/06-multi-project-execution.md → 3-multi-project-execution/plans/6-multi-project-execution.md} +0 -0
  446. /package/RAF/{aaaaad-multi-project-execution/plans/07-verify-timeout.md → 3-multi-project-execution/plans/7-verify-timeout.md} +0 -0
  447. /package/RAF/{aaaaad-multi-project-execution/plans/08-move-decisions-file.md → 3-multi-project-execution/plans/8-move-decisions-file.md} +0 -0
  448. /package/RAF/{ahtahs-token-reaper → 30-token-reaper}/decisions.md +0 -0
  449. /package/RAF/{ahtahs-token-reaper → 30-token-reaper}/input.md +0 -0
  450. /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
  451. /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
  452. /package/RAF/{ahtahs-token-reaper/outcomes/03-per-attempt-display-formatting.md → 30-token-reaper/outcomes/3-per-attempt-display-formatting.md} +0 -0
  453. /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
  454. /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
  455. /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
  456. /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
  457. /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
  458. /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
  459. /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
  460. /package/RAF/{ahvrih-rate-forge → 31-rate-forge}/decisions.md +0 -0
  461. /package/RAF/{ahvrih-rate-forge → 31-rate-forge}/input.md +0 -0
  462. /package/RAF/{ahvrih-rate-forge/outcomes/01-remove-claude-command-config.md → 31-rate-forge/outcomes/1-remove-claude-command-config.md} +0 -0
  463. /package/RAF/{ahvrih-rate-forge/outcomes/02-fix-mixed-attempt-cost.md → 31-rate-forge/outcomes/2-fix-mixed-attempt-cost.md} +0 -0
  464. /package/RAF/{ahvrih-rate-forge/outcomes/03-rate-limit-estimation.md → 31-rate-forge/outcomes/3-rate-limit-estimation.md} +0 -0
  465. /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
  466. /package/RAF/{ahvrih-rate-forge/outcomes/05-sync-main-before-worktree.md → 31-rate-forge/outcomes/5-sync-main-before-worktree.md} +0 -0
  467. /package/RAF/{ahvrih-rate-forge/outcomes/06-sync-readme-with-codebase.md → 31-rate-forge/outcomes/6-sync-readme-with-codebase.md} +0 -0
  468. /package/RAF/{ahvrih-rate-forge/outcomes/07-no-session-persistence.md → 31-rate-forge/outcomes/7-no-session-persistence.md} +0 -0
  469. /package/RAF/{ahvrih-rate-forge/outcomes/08-plan-execution-metadata.md → 31-rate-forge/outcomes/8-plan-execution-metadata.md} +0 -0
  470. /package/RAF/{ahvrih-rate-forge/plans/01-remove-claude-command-config.md → 31-rate-forge/plans/1-remove-claude-command-config.md} +0 -0
  471. /package/RAF/{ahvrih-rate-forge/plans/02-fix-mixed-attempt-cost.md → 31-rate-forge/plans/2-fix-mixed-attempt-cost.md} +0 -0
  472. /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
  473. /package/RAF/{ahvrih-rate-forge/plans/05-sync-main-before-worktree.md → 31-rate-forge/plans/5-sync-main-before-worktree.md} +0 -0
  474. /package/RAF/{ahvrih-rate-forge/plans/07-no-session-persistence.md → 31-rate-forge/plans/7-no-session-persistence.md} +0 -0
  475. /package/RAF/{ahwidh-quick-fix-gremlin → 32-quick-fix-gremlin}/decisions.md +0 -0
  476. /package/RAF/{ahwidh-quick-fix-gremlin → 32-quick-fix-gremlin}/input.md +0 -0
  477. /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
  478. /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
  479. /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
  480. /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
  481. /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
  482. /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
  483. /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/07-update-frontmatter-format.md → 32-quick-fix-gremlin/outcomes/7-update-frontmatter-format.md} +0 -0
  484. /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
  485. /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
  486. /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
  487. /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
  488. /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
  489. /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
  490. /package/RAF/{ahwidh-quick-fix-gremlin/plans/07-update-frontmatter-format.md → 32-quick-fix-gremlin/plans/7-update-frontmatter-format.md} +0 -0
  491. /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
  492. /package/RAF/{ahwqwq-model-whisperer → 33-model-whisperer}/decisions.md +0 -0
  493. /package/RAF/{ahwqwq-model-whisperer → 33-model-whisperer}/input.md +0 -0
  494. /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
  495. /package/RAF/{ahwqwq-model-whisperer/outcomes/02-use-claude-cost-estimation.md → 33-model-whisperer/outcomes/2-use-claude-cost-estimation.md} +0 -0
  496. /package/RAF/{ahwqwq-model-whisperer/outcomes/03-add-plan-resume-flag.md → 33-model-whisperer/outcomes/3-add-plan-resume-flag.md} +0 -0
  497. /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
  498. /package/RAF/{ahwqwq-model-whisperer/plans/02-use-claude-cost-estimation.md → 33-model-whisperer/plans/2-use-claude-cost-estimation.md} +0 -0
  499. /package/RAF/{ahwvrz-legacy-sunset → 34-legacy-sunset}/decisions.md +0 -0
  500. /package/RAF/{ahwvrz-legacy-sunset → 34-legacy-sunset}/input.md +0 -0
  501. /package/RAF/{ahwvrz-legacy-sunset/outcomes/01-remove-migrate-command.md → 34-legacy-sunset/outcomes/1-remove-migrate-command.md} +0 -0
  502. /package/RAF/{ahwvrz-legacy-sunset/outcomes/02-fix-resume-worktree-resolution.md → 34-legacy-sunset/outcomes/2-fix-resume-worktree-resolution.md} +0 -0
  503. /package/RAF/{ahwvrz-legacy-sunset/plans/01-remove-migrate-command.md → 34-legacy-sunset/plans/1-remove-migrate-command.md} +0 -0
  504. /package/RAF/{ahwzmc-echo-forge → 35-echo-forge}/decisions.md +0 -0
  505. /package/RAF/{ahwzmc-echo-forge → 35-echo-forge}/input.md +0 -0
  506. /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
  507. /package/RAF/{ahwzmc-echo-forge/outcomes/02-add-no-worktree-flag.md → 35-echo-forge/outcomes/2-add-no-worktree-flag.md} +0 -0
  508. /package/RAF/{ahwzmc-echo-forge/outcomes/03-update-readme.md → 35-echo-forge/outcomes/3-update-readme.md} +0 -0
  509. /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
  510. /package/RAF/{ahwzmc-echo-forge/plans/02-add-no-worktree-flag.md → 35-echo-forge/plans/2-add-no-worktree-flag.md} +0 -0
  511. /package/RAF/{aifqwf-fix-amend-commit-again → 36-fix-amend-commit-again}/decisions.md +0 -0
  512. /package/RAF/{aifqwf-fix-amend-commit-again → 36-fix-amend-commit-again}/input.md +0 -0
  513. /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
  514. /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
  515. /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
  516. /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
  517. /package/RAF/{aaaaae-task-naming-optimization → 4-task-naming-optimization}/decisions.md +0 -0
  518. /package/RAF/{aaaaae-task-naming-optimization → 4-task-naming-optimization}/input.md +0 -0
  519. /package/RAF/{aaaaae-task-naming-optimization/outcomes/01-remove-summary-file.md → 4-task-naming-optimization/outcomes/1-remove-summary-file.md} +0 -0
  520. /package/RAF/{aaaaae-task-naming-optimization/outcomes/02-base36-project-numbering.md → 4-task-naming-optimization/outcomes/2-base36-project-numbering.md} +0 -0
  521. /package/RAF/{aaaaae-task-naming-optimization/outcomes/03-improve-haiku-prompt.md → 4-task-naming-optimization/outcomes/3-improve-haiku-prompt.md} +0 -0
  522. /package/RAF/{aaaaae-task-naming-optimization → 4-task-naming-optimization}/outcomes/SUMMARY.md +0 -0
  523. /package/RAF/{aaaaae-task-naming-optimization/plans/01-remove-summary-file.md → 4-task-naming-optimization/plans/1-remove-summary-file.md} +0 -0
  524. /package/RAF/{aaaaae-task-naming-optimization/plans/02-base36-project-numbering.md → 4-task-naming-optimization/plans/2-base36-project-numbering.md} +0 -0
  525. /package/RAF/{aaaaae-task-naming-optimization/plans/03-improve-haiku-prompt.md → 4-task-naming-optimization/plans/3-improve-haiku-prompt.md} +0 -0
  526. /package/RAF/{aaaaaf-task-naming-improvements → 5-task-naming-improvements}/decisions.md +0 -0
  527. /package/RAF/{aaaaaf-task-naming-improvements → 5-task-naming-improvements}/input.md +0 -0
  528. /package/RAF/{aaaaaf-task-naming-improvements/outcomes/01-enhance-identifier-resolution.md → 5-task-naming-improvements/outcomes/1-enhance-identifier-resolution.md} +0 -0
  529. /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
  530. /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
  531. /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
  532. /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
  533. /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
  534. /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
  535. /package/RAF/{aaaaaf-task-naming-improvements/outcomes/08-fix-timeout-label.md → 5-task-naming-improvements/outcomes/8-fix-timeout-label.md} +0 -0
  536. /package/RAF/{aaaaaf-task-naming-improvements/plans/01-enhance-identifier-resolution.md → 5-task-naming-improvements/plans/1-enhance-identifier-resolution.md} +0 -0
  537. /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
  538. /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
  539. /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
  540. /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
  541. /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
  542. /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
  543. /package/RAF/{aaaaaf-task-naming-improvements/plans/08-fix-timeout-label.md → 5-task-naming-improvements/plans/8-fix-timeout-label.md} +0 -0
  544. /package/RAF/{aaaaag-fix-double-summary-headers → 6-fix-double-summary-headers}/decisions.md +0 -0
  545. /package/RAF/{aaaaag-fix-double-summary-headers → 6-fix-double-summary-headers}/input.md +0 -0
  546. /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
  547. /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
  548. /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
  549. /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
  550. /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
  551. /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
  552. /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
  553. /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
  554. /package/RAF/{aaaaah-improve-outcome-format → 7-improve-outcome-format}/decisions.md +0 -0
  555. /package/RAF/{aaaaah-improve-outcome-format → 7-improve-outcome-format}/input.md +0 -0
  556. /package/RAF/{aaaaah-improve-outcome-format/outcomes/01-update-execution-prompt.md → 7-improve-outcome-format/outcomes/1-update-execution-prompt.md} +0 -0
  557. /package/RAF/{aaaaah-improve-outcome-format/outcomes/02-update-state-derivation.md → 7-improve-outcome-format/outcomes/2-update-state-derivation.md} +0 -0
  558. /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
  559. /package/RAF/{aaaaah-improve-outcome-format/outcomes/04-implement-failure-analysis.md → 7-improve-outcome-format/outcomes/4-implement-failure-analysis.md} +0 -0
  560. /package/RAF/{aaaaah-improve-outcome-format/outcomes/05-update-documentation.md → 7-improve-outcome-format/outcomes/5-update-documentation.md} +0 -0
  561. /package/RAF/{aaaaah-improve-outcome-format/plans/01-update-execution-prompt.md → 7-improve-outcome-format/plans/1-update-execution-prompt.md} +0 -0
  562. /package/RAF/{aaaaah-improve-outcome-format/plans/02-update-state-derivation.md → 7-improve-outcome-format/plans/2-update-state-derivation.md} +0 -0
  563. /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
  564. /package/RAF/{aaaaah-improve-outcome-format/plans/04-implement-failure-analysis.md → 7-improve-outcome-format/plans/4-implement-failure-analysis.md} +0 -0
  565. /package/RAF/{aaaaah-improve-outcome-format/plans/05-update-documentation.md → 7-improve-outcome-format/plans/5-update-documentation.md} +0 -0
  566. /package/RAF/{aaaaai-beautiful-do → 8-beautiful-do}/decisions.md +0 -0
  567. /package/RAF/{aaaaai-beautiful-do → 8-beautiful-do}/input.md +0 -0
  568. /package/RAF/{aaaaai-beautiful-do/outcomes/01-terminal-symbols.md → 8-beautiful-do/outcomes/1-terminal-symbols.md} +0 -0
  569. /package/RAF/{aaaaai-beautiful-do/outcomes/02-refactor-do-output.md → 8-beautiful-do/outcomes/2-refactor-do-output.md} +0 -0
  570. /package/RAF/{aaaaai-beautiful-do/outcomes/03-refactor-status-output.md → 8-beautiful-do/outcomes/3-refactor-status-output.md} +0 -0
  571. /package/RAF/{aaaaai-beautiful-do/outcomes/04-simplify-logger.md → 8-beautiful-do/outcomes/4-simplify-logger.md} +0 -0
  572. /package/RAF/{aaaaai-beautiful-do/outcomes/05-add-tests.md → 8-beautiful-do/outcomes/5-add-tests.md} +0 -0
  573. /package/RAF/{aaaaai-beautiful-do/plans/01-terminal-symbols.md → 8-beautiful-do/plans/1-terminal-symbols.md} +0 -0
  574. /package/RAF/{aaaaai-beautiful-do/plans/02-refactor-do-output.md → 8-beautiful-do/plans/2-refactor-do-output.md} +0 -0
  575. /package/RAF/{aaaaai-beautiful-do/plans/03-refactor-status-output.md → 8-beautiful-do/plans/3-refactor-status-output.md} +0 -0
  576. /package/RAF/{aaaaai-beautiful-do/plans/04-simplify-logger.md → 8-beautiful-do/plans/4-simplify-logger.md} +0 -0
  577. /package/RAF/{aaaaai-beautiful-do/plans/05-add-tests.md → 8-beautiful-do/plans/5-add-tests.md} +0 -0
  578. /package/RAF/{aaaaaj-system-promt-ammend → 9-system-promt-ammend}/decisions.md +0 -0
  579. /package/RAF/{aaaaaj-system-promt-ammend → 9-system-promt-ammend}/input.md +0 -0
  580. /package/RAF/{aaaaaj-system-promt-ammend/outcomes/01-model-override.md → 9-system-promt-ammend/outcomes/1-model-override.md} +0 -0
  581. /package/RAF/{aaaaaj-system-promt-ammend/outcomes/02-system-prompt-append.md → 9-system-promt-ammend/outcomes/2-system-prompt-append.md} +0 -0
  582. /package/RAF/{aaaaaj-system-promt-ammend/outcomes/03-retry-context.md → 9-system-promt-ammend/outcomes/3-retry-context.md} +0 -0
  583. /package/RAF/{aaaaaj-system-promt-ammend/plans/01-model-override.md → 9-system-promt-ammend/plans/1-model-override.md} +0 -0
  584. /package/RAF/{aaaaaj-system-promt-ammend/plans/02-system-prompt-append.md → 9-system-promt-ammend/plans/2-system-prompt-append.md} +0 -0
  585. /package/RAF/{aaaaaj-system-promt-ammend/plans/03-retry-context.md → 9-system-promt-ammend/plans/3-retry-context.md} +0 -0
@@ -3,7 +3,7 @@ import * as path from 'node:path';
3
3
  import * as readline from 'node:readline';
4
4
  import { fileURLToPath } from 'node:url';
5
5
  import { Command } from 'commander';
6
- import { ClaudeRunner } from '../core/claude-runner.js';
6
+ import { createRunner } from '../core/runner-factory.js';
7
7
  import { shutdownHandler } from '../core/shutdown-handler.js';
8
8
  import { logger } from '../utils/logger.js';
9
9
  import {
@@ -53,7 +53,7 @@ function getCurrentConfigState(configPath: string): string {
53
53
  }
54
54
 
55
55
  /**
56
- * Build the system prompt for the config editing Claude session.
56
+ * Build the system prompt for the config editing session.
57
57
  */
58
58
  function buildConfigSystemPrompt(configDocs: string, configState: string): string {
59
59
  return [
@@ -69,7 +69,7 @@ function buildConfigSystemPrompt(configDocs: string, configState: string): strin
69
69
  }
70
70
 
71
71
  /**
72
- * Validate the config file after the Claude session ends and report results.
72
+ * Validate the config file after the editing session ends and report results.
73
73
  */
74
74
  function postSessionValidation(configPath: string): void {
75
75
  if (!fs.existsSync(configPath)) {
@@ -336,7 +336,7 @@ function handleSet(args: string[]): void {
336
336
 
337
337
  export function createConfigCommand(): Command {
338
338
  const command = new Command('config')
339
- .description('View and edit RAF configuration with Claude')
339
+ .description('View and edit RAF configuration interactively')
340
340
  .argument('[prompt...]', 'Optional initial prompt for the config session')
341
341
  .option('--reset', 'Delete config file and restore all defaults')
342
342
  .option('--get [key]', 'Show config value (all config if no key, or specific dot-notation key)')
@@ -437,8 +437,8 @@ async function runConfigSession(initialPrompt?: string): Promise<void> {
437
437
  const userMessage = initialPrompt
438
438
  ?? 'Show me my current config and help me make changes.';
439
439
 
440
- // Set up Claude runner
441
- const claudeRunner = new ClaudeRunner({ model });
440
+ // Set up runner
441
+ const claudeRunner = createRunner({ model });
442
442
  shutdownHandler.init();
443
443
  shutdownHandler.registerClaudeRunner(claudeRunner);
444
444
 
@@ -452,7 +452,7 @@ async function runConfigSession(initialPrompt?: string): Promise<void> {
452
452
  });
453
453
 
454
454
  if (exitCode !== 0) {
455
- logger.warn(`Claude exited with code ${exitCode}`);
455
+ logger.warn(`Process exited with code ${exitCode}`);
456
456
  }
457
457
 
458
458
  // Post-session validation
@@ -3,17 +3,17 @@ import * as path from 'node:path';
3
3
  import { Command } from 'commander';
4
4
  import { select } from '@inquirer/prompts';
5
5
  import { ProjectManager } from '../core/project-manager.js';
6
- import { ClaudeRunner } from '../core/claude-runner.js';
6
+ import { createRunner } from '../core/runner-factory.js';
7
7
  import { shutdownHandler } from '../core/shutdown-handler.js';
8
8
  import { stashChanges, hasUncommittedChanges, isGitRepo, getHeadCommitHash } from '../core/git.js';
9
9
  import { getExecutionPrompt } from '../prompts/execution.js';
10
10
  import { parseOutput, isRetryableFailure } from '../parsers/output-parser.js';
11
11
  import { validatePlansExist, resolveModelOption } from '../utils/validation.js';
12
- import { getRafDir, extractProjectNumber, extractProjectName, extractTaskNameFromPlanFile, resolveProjectIdentifierWithDetails, getOutcomeFilePath, parseProjectPrefix } from '../utils/paths.js';
12
+ import { getRafDir, extractProjectNumber, extractProjectName, extractTaskNameFromPlanFile, resolveProjectIdentifierWithDetails, getOutcomeFilePath } from '../utils/paths.js';
13
13
  import { pickPendingProject, getPendingProjects, getPendingWorktreeProjects } from '../ui/project-picker.js';
14
14
  import type { PendingProjectInfo } from '../ui/project-picker.js';
15
15
  import { logger } from '../utils/logger.js';
16
- import { getConfig, getWorktreeDefault, getModel, getModelShortName, resolveFullModelId, getSyncMainBranch, resolveEffortToModel, applyModelCeiling, getShowCacheTokens } from '../utils/config.js';
16
+ import { getConfig, getModel, getModelShortName, resolveFullModelId, getSyncMainBranch, resolveEffortToModel, applyModelCeiling, getShowCacheTokens } from '../utils/config.js';
17
17
  import type { PlanFrontmatter } from '../utils/frontmatter.js';
18
18
  import { getVersion } from '../utils/version.js';
19
19
  import { createTaskTimer, formatElapsedTime } from '../utils/timer.js';
@@ -29,7 +29,6 @@ import { TokenTracker } from '../utils/token-tracker.js';
29
29
  import { VerboseToggle } from '../utils/verbose-toggle.js';
30
30
  import {
31
31
  deriveProjectState,
32
- discoverProjects,
33
32
  getNextExecutableTask,
34
33
  getDerivedStats,
35
34
  getDerivedStatsForTasks,
@@ -44,10 +43,6 @@ import {
44
43
  getRepoRoot,
45
44
  getRepoBasename,
46
45
  getCurrentBranch,
47
- computeWorktreePath,
48
- computeWorktreeBaseDir,
49
- validateWorktree,
50
- listWorktreeProjects,
51
46
  mergeWorktreeBranch,
52
47
  removeWorktree,
53
48
  resolveWorktreeProjectByIdentifier,
@@ -97,6 +92,7 @@ function resolveTaskModel(
97
92
  frontmatterWarnings: string[] | undefined,
98
93
  ceilingModel: string,
99
94
  isRetry: boolean,
95
+ provider?: import('../types/config.js').HarnessProvider,
100
96
  ): TaskModelResolution {
101
97
  const warnings = frontmatterWarnings ? [...frontmatterWarnings] : [];
102
98
 
@@ -122,7 +118,7 @@ function resolveTaskModel(
122
118
 
123
119
  // Effort-based resolution - apply ceiling
124
120
  if (frontmatter.effort) {
125
- const mappedModel = resolveEffortToModel(frontmatter.effort);
121
+ const mappedModel = resolveEffortToModel(frontmatter.effort, provider);
126
122
  const model = applyModelCeiling(mappedModel, ceilingModel);
127
123
  return { model, missingFrontmatter: false, warnings };
128
124
  }
@@ -196,13 +192,12 @@ export function createDoCommand(): Command {
196
192
  .alias('act')
197
193
  .argument('[project]', 'Project identifier: ID (00j3k1), name (my-project), or folder (00j3k1-my-project)')
198
194
  .option('-t, --timeout <minutes>', 'Timeout per task in minutes', '60')
199
- .option('-v, --verbose', 'Show full Claude output')
195
+ .option('-v, --verbose', 'Show full LLM output')
200
196
  .option('-d, --debug', 'Save all logs and show debug output')
201
197
  .option('-f, --force', 'Re-run all tasks regardless of status')
202
- .option('-m, --model <name>', 'Claude model to use (sonnet, haiku, opus)')
198
+ .option('-m, --model <name>', 'Model to use (sonnet, haiku, opus)')
203
199
  .option('--sonnet', 'Use Sonnet model (shorthand for --model sonnet)')
204
- .option('-w, --worktree', 'Execute tasks in a git worktree')
205
- .option('--no-worktree', 'Disable worktree mode (overrides config)')
200
+ .option('-p, --provider <provider>', 'CLI provider to use (claude, codex)')
206
201
  .action(async (project: string | undefined, options: DoCommandOptions) => {
207
202
  await runDoCommand(project, options);
208
203
  });
@@ -213,8 +208,6 @@ export function createDoCommand(): Command {
213
208
  async function runDoCommand(projectIdentifierArg: string | undefined, options: DoCommandOptions): Promise<void> {
214
209
  const rafDir = getRafDir();
215
210
  let projectIdentifier = projectIdentifierArg;
216
- let worktreeMode = options.worktree ?? getWorktreeDefault();
217
-
218
211
  // Validate and resolve model option
219
212
  let model: string;
220
213
  try {
@@ -224,48 +217,11 @@ async function runDoCommand(projectIdentifierArg: string | undefined, options: D
224
217
  process.exit(1);
225
218
  }
226
219
 
227
- // Variables for worktree context (set when --worktree is used)
220
+ // Variables for worktree context (derived from where the project is found)
228
221
  let worktreeRoot: string | undefined;
229
222
  let originalBranch: string | undefined;
230
223
  let mainBranchName: string | null = null;
231
224
 
232
- if (worktreeMode) {
233
- // Validate git repo
234
- const repoRoot = getRepoRoot();
235
- if (!repoRoot) {
236
- logger.error('--worktree requires a git repository');
237
- process.exit(1);
238
- }
239
- const repoBasename = getRepoBasename()!;
240
- const rafRelativePath = path.relative(repoRoot, rafDir);
241
-
242
- // Record original branch before any worktree operations
243
- originalBranch = getCurrentBranch() ?? undefined;
244
-
245
- // Sync main branch before worktree operations (if enabled)
246
- if (getSyncMainBranch()) {
247
- const syncResult = pullMainBranch();
248
- mainBranchName = syncResult.mainBranch;
249
- if (syncResult.success) {
250
- if (syncResult.hadChanges) {
251
- logger.info(`Synced ${syncResult.mainBranch} from remote`);
252
- }
253
- } else {
254
- logger.warn(`Could not sync main branch: ${syncResult.error}`);
255
- }
256
- }
257
-
258
- if (!projectIdentifier) {
259
- // Auto-discovery flow
260
- const selected = await discoverAndPickWorktreeProject(repoBasename, rafDir, rafRelativePath);
261
- if (!selected) {
262
- process.exit(0);
263
- }
264
- worktreeRoot = selected.worktreeRoot;
265
- projectIdentifier = selected.projectFolder;
266
- }
267
- }
268
-
269
225
  // Handle no project identifier (non-worktree mode) - show interactive picker
270
226
  if (!projectIdentifier) {
271
227
  // Discover worktree projects for the current repo (if in a git repo)
@@ -297,9 +253,8 @@ async function runDoCommand(projectIdentifierArg: string | undefined, options: D
297
253
  // Use the selected project
298
254
  projectIdentifier = selectedProject.folder;
299
255
 
300
- // If a worktree project was selected, auto-switch to worktree mode
256
+ // If a worktree project was selected, record worktree context
301
257
  if (selectedProject.source === 'worktree' && selectedProject.worktreeRoot) {
302
- worktreeMode = true;
303
258
  worktreeRoot = selectedProject.worktreeRoot;
304
259
  originalBranch = getCurrentBranch() ?? undefined;
305
260
  }
@@ -315,89 +270,20 @@ async function runDoCommand(projectIdentifierArg: string | undefined, options: D
315
270
  // Resolve project identifier
316
271
  let resolvedProject: { identifier: string; path: string; name: string } | undefined;
317
272
 
318
- if (worktreeMode) {
319
- // Worktree mode: resolve project inside the worktree
273
+ if (worktreeRoot) {
274
+ // Worktree was set by the picker — resolve project inside the worktree
320
275
  const repoRoot = getRepoRoot()!;
321
- const repoBasename = getRepoBasename()!;
322
276
  const rafRelativePath = path.relative(repoRoot, rafDir);
323
-
324
- // If worktreeRoot was set by auto-discovery, use it directly
325
- if (worktreeRoot) {
326
- const wtRafDir = path.join(worktreeRoot, rafRelativePath);
327
- const result = resolveProjectIdentifierWithDetails(wtRafDir, projectIdentifier);
328
- if (!result.path) {
329
- logger.error(`Project not found in worktree: ${projectIdentifier}`);
330
- process.exit(1);
331
- }
332
- const projectName = extractProjectName(result.path) ?? projectIdentifier;
333
- resolvedProject = { identifier: projectIdentifier, path: result.path, name: projectName };
334
- } else {
335
- // Explicit identifier: resolve from main repo to get folder name, then validate worktree
336
- const mainResult = resolveProjectIdentifierWithDetails(rafDir, projectIdentifier);
337
-
338
- let projectFolderName: string;
339
- if (mainResult.path) {
340
- // Found in main repo - use its folder name
341
- projectFolderName = path.basename(mainResult.path);
342
- } else {
343
- // Not found in main repo - try to find it in worktrees directly
344
- // This handles projects that only exist in worktrees
345
- const worktreeBaseDir = computeWorktreeBaseDir(repoBasename);
346
- if (!fs.existsSync(worktreeBaseDir)) {
347
- logger.error(`No worktree found for project "${projectIdentifier}". Did you plan with --worktree?`);
348
- process.exit(1);
349
- }
350
-
351
- // Search worktrees for the project
352
- const wtProjects = listWorktreeProjects(repoBasename);
353
- let found = false;
354
- for (const wtProjectDir of wtProjects) {
355
- const wtPath = computeWorktreePath(repoBasename, wtProjectDir);
356
- const wtRafDir = path.join(wtPath, rafRelativePath);
357
- if (!fs.existsSync(wtRafDir)) continue;
358
-
359
- const resolution = resolveProjectIdentifierWithDetails(wtRafDir, projectIdentifier);
360
- if (resolution.path) {
361
- projectFolderName = path.basename(resolution.path);
362
- worktreeRoot = wtPath;
363
- found = true;
364
- break;
365
- }
366
- }
367
-
368
- if (!found) {
369
- logger.error(`No worktree found for project "${projectIdentifier}". Did you plan with --worktree?`);
370
- process.exit(1);
371
- }
372
- }
373
-
374
- // Compute worktree path if not already set
375
- if (!worktreeRoot) {
376
- worktreeRoot = computeWorktreePath(repoBasename, projectFolderName!);
377
- }
378
-
379
- // Validate the worktree
380
- const wtProjectRelPath = path.join(rafRelativePath, projectFolderName!);
381
- const validation = validateWorktree(worktreeRoot, wtProjectRelPath);
382
-
383
- if (!validation.exists || !validation.isValidWorktree) {
384
- logger.error(`No worktree found for project "${projectIdentifier}". Did you plan with --worktree?`);
385
- logger.error(`Expected worktree at: ${worktreeRoot}`);
386
- process.exit(1);
387
- }
388
-
389
- if (!validation.hasProjectFolder || !validation.hasPlans) {
390
- logger.error(`Worktree exists but project content is missing.`);
391
- logger.error(`Expected project folder at: ${validation.projectPath ?? path.join(worktreeRoot, wtProjectRelPath)}`);
392
- process.exit(1);
393
- }
394
-
395
- const projectPath = validation.projectPath!;
396
- const projectName = extractProjectName(projectPath) ?? projectIdentifier;
397
- resolvedProject = { identifier: projectIdentifier, path: projectPath, name: projectName };
277
+ const wtRafDir = path.join(worktreeRoot, rafRelativePath);
278
+ const result = resolveProjectIdentifierWithDetails(wtRafDir, projectIdentifier);
279
+ if (!result.path) {
280
+ logger.error(`Project not found in worktree: ${projectIdentifier}`);
281
+ process.exit(1);
398
282
  }
283
+ const projectName = extractProjectName(result.path) ?? projectIdentifier;
284
+ resolvedProject = { identifier: projectIdentifier, path: result.path, name: projectName };
399
285
  } else {
400
- // Standard mode: check worktrees first (worktree takes priority), then main repo
286
+ // Auto-detect: check worktrees first (worktree takes priority), then main repo
401
287
  const repoRoot = getRepoRoot();
402
288
  const repoBasename = repoRoot ? getRepoBasename() : null;
403
289
 
@@ -410,8 +296,6 @@ async function runDoCommand(projectIdentifierArg: string | undefined, options: D
410
296
  const wtProjectPath = path.join(wtRafDir, wtResolution.folder);
411
297
 
412
298
  if (fs.existsSync(wtProjectPath)) {
413
- // Auto-switch to worktree mode
414
- worktreeMode = true;
415
299
  worktreeRoot = wtResolution.worktreeRoot;
416
300
  originalBranch = getCurrentBranch() ?? undefined;
417
301
 
@@ -455,9 +339,26 @@ async function runDoCommand(projectIdentifierArg: string | undefined, options: D
455
339
  // Configure logger
456
340
  logger.configure({ verbose, debug });
457
341
 
458
- // Show post-execution picker before task execution (worktree mode only)
342
+ // Worktree setup: sync main branch and show post-execution picker
459
343
  let postAction: PostExecutionAction = 'leave';
460
- if (worktreeMode && worktreeRoot) {
344
+ if (worktreeRoot) {
345
+ if (!originalBranch) {
346
+ originalBranch = getCurrentBranch() ?? undefined;
347
+ }
348
+
349
+ // Sync main branch before worktree operations (if enabled)
350
+ if (getSyncMainBranch()) {
351
+ const syncResult = pullMainBranch();
352
+ mainBranchName = syncResult.mainBranch;
353
+ if (syncResult.success) {
354
+ if (syncResult.hadChanges) {
355
+ logger.info(`Synced ${syncResult.mainBranch} from remote`);
356
+ }
357
+ } else {
358
+ logger.warn(`Could not sync main branch: ${syncResult.error}`);
359
+ }
360
+ }
361
+
461
362
  try {
462
363
  postAction = await pickPostExecutionAction(worktreeRoot);
463
364
  } catch (error) {
@@ -498,6 +399,7 @@ async function runDoCommand(projectIdentifierArg: string | undefined, options: D
498
399
  maxRetries,
499
400
  autoCommit,
500
401
  model,
402
+ provider: options.provider,
501
403
  worktreeCwd: worktreeRoot,
502
404
  }
503
405
  );
@@ -508,7 +410,7 @@ async function runDoCommand(projectIdentifierArg: string | undefined, options: D
508
410
  }
509
411
 
510
412
  // Execute post-execution action based on picker choice
511
- if (worktreeMode && worktreeRoot) {
413
+ if (worktreeRoot) {
512
414
  const worktreeBranch = path.basename(worktreeRoot);
513
415
 
514
416
  if (result.success) {
@@ -649,123 +551,6 @@ async function executePostAction(
649
551
  }
650
552
  }
651
553
 
652
- /**
653
- * Auto-discovery flow for `raf do --worktree` without a project identifier.
654
- * Lists worktree projects, finds latest completed main-tree project, filters,
655
- * and shows an interactive picker.
656
- *
657
- * @returns Selected project info or null if cancelled/no projects
658
- */
659
- async function discoverAndPickWorktreeProject(
660
- repoBasename: string,
661
- rafDir: string,
662
- rafRelativePath: string,
663
- ): Promise<{ worktreeRoot: string; projectFolder: string } | null> {
664
- // List all worktree projects for this repo
665
- const wtProjects = listWorktreeProjects(repoBasename);
666
-
667
- if (wtProjects.length === 0) {
668
- logger.error('No worktree projects found. Did you plan with --worktree?');
669
- process.exit(1);
670
- }
671
-
672
- // Find the highest-numbered completed project in the MAIN tree
673
- const mainProjects = discoverProjects(rafDir);
674
- let highestCompletedNumber = 0;
675
-
676
- for (const project of mainProjects) {
677
- const state = deriveProjectState(project.path);
678
- if (isProjectComplete(state) && state.tasks.length > 0) {
679
- if (project.number > highestCompletedNumber) {
680
- highestCompletedNumber = project.number;
681
- }
682
- }
683
- }
684
-
685
- // Filter threshold: highest completed - 3 (or 0 if none completed)
686
- const threshold = highestCompletedNumber > 3 ? highestCompletedNumber - 3 : 0;
687
-
688
- // Filter worktree projects by number threshold and completion status
689
- const uncompletedProjects: Array<{
690
- folder: string;
691
- worktreeRoot: string;
692
- projectPath: string;
693
- completedTasks: number;
694
- totalTasks: number;
695
- projectNumber: number;
696
- }> = [];
697
-
698
- for (const wtProjectDir of wtProjects) {
699
- // Extract project number from the worktree directory name
700
- const numPrefix = extractProjectNumber(wtProjectDir);
701
- if (!numPrefix) continue;
702
- const projectNumber = parseProjectPrefix(numPrefix);
703
- if (projectNumber === null) continue;
704
-
705
- // Apply threshold filter
706
- if (projectNumber < threshold) continue;
707
-
708
- // Check if this worktree has a valid project
709
- const wtPath = computeWorktreePath(repoBasename, wtProjectDir);
710
- const wtProjectPath = path.join(wtPath, rafRelativePath, wtProjectDir);
711
-
712
- if (!fs.existsSync(wtProjectPath)) continue;
713
-
714
- // Derive project state from worktree
715
- const state = deriveProjectState(wtProjectPath);
716
- if (state.tasks.length === 0) continue;
717
-
718
- // Keep only uncompleted projects
719
- if (isProjectComplete(state)) continue;
720
-
721
- const stats = getDerivedStats(state);
722
- uncompletedProjects.push({
723
- folder: wtProjectDir,
724
- worktreeRoot: wtPath,
725
- projectPath: wtProjectPath,
726
- completedTasks: stats.completed,
727
- totalTasks: stats.total,
728
- projectNumber,
729
- });
730
- }
731
-
732
- if (uncompletedProjects.length === 0) {
733
- logger.info('All worktree projects are completed.');
734
- return null;
735
- }
736
-
737
- // Sort by project number
738
- uncompletedProjects.sort((a, b) => a.projectNumber - b.projectNumber);
739
-
740
- // Show interactive picker (even if only one project)
741
- const choices = uncompletedProjects.map((p) => {
742
- const name = extractProjectName(p.folder) ?? p.folder;
743
- const numPrefix = extractProjectNumber(p.folder) ?? '';
744
- return {
745
- name: `${numPrefix} ${name} (${p.completedTasks}/${p.totalTasks} tasks)`,
746
- value: p,
747
- };
748
- });
749
-
750
- try {
751
- const selected = await select({
752
- message: 'Select a worktree project to execute:',
753
- choices,
754
- });
755
-
756
- return {
757
- worktreeRoot: selected.worktreeRoot,
758
- projectFolder: selected.folder,
759
- };
760
- } catch (error) {
761
- // Handle Ctrl+C (user cancellation)
762
- if (error instanceof Error && error.message.includes('User force closed')) {
763
- return null;
764
- }
765
- throw error;
766
- }
767
- }
768
-
769
554
  interface SingleProjectOptions {
770
555
  timeout: number;
771
556
  verbose: boolean;
@@ -774,7 +559,9 @@ interface SingleProjectOptions {
774
559
  maxRetries: number;
775
560
  autoCommit: boolean;
776
561
  model: string;
777
- /** Worktree root directory. When set, Claude runs with cwd in the worktree. */
562
+ /** CLI provider to use (claude, codex). */
563
+ provider?: import('../types/config.js').HarnessProvider;
564
+ /** Worktree root directory. When set, the runner uses cwd in the worktree. */
778
565
  worktreeCwd?: string;
779
566
  }
780
567
 
@@ -783,7 +570,7 @@ async function executeSingleProject(
783
570
  projectName: string,
784
571
  options: SingleProjectOptions
785
572
  ): Promise<ProjectExecutionResult> {
786
- const { timeout, verbose, debug, force, maxRetries, autoCommit, model, worktreeCwd } = options;
573
+ const { timeout, verbose, debug, force, maxRetries, autoCommit, model, provider, worktreeCwd } = options;
787
574
 
788
575
  if (!validatePlansExist(projectPath)) {
789
576
  return {
@@ -953,7 +740,7 @@ async function executeSingleProject(
953
740
  const taskId = task.id; // Capture for closure
954
741
  const taskLabel = displayName !== task.id ? `${task.id} (${displayName})` : task.id;
955
742
 
956
- // Handle blocked tasks separately - skip Claude execution
743
+ // Handle blocked tasks separately - skip LLM execution
957
744
  if (task.status === 'blocked') {
958
745
  // Find which dependency caused the block for the message
959
746
  const failedOrBlockedDeps = task.dependencies.filter((depId) => {
@@ -1056,6 +843,7 @@ async function executeSingleProject(
1056
843
  undefined, // warnings already logged above
1057
844
  ceilingModel,
1058
845
  isRetry,
846
+ provider,
1059
847
  );
1060
848
 
1061
849
  // Update current model for timer callback display
@@ -1067,7 +855,7 @@ async function executeSingleProject(
1067
855
  }
1068
856
 
1069
857
  // Create a runner for this attempt's model
1070
- const taskRunner = new ClaudeRunner({ model: modelResolution.model });
858
+ const taskRunner = createRunner({ model: modelResolution.model, provider });
1071
859
  shutdownHandler.registerClaudeRunner(taskRunner);
1072
860
 
1073
861
  if (verbose && isRetry) {
@@ -1108,7 +896,7 @@ async function executeSingleProject(
1108
896
  outcomeFilePath,
1109
897
  } : undefined;
1110
898
 
1111
- // Run Claude (use worktree root as cwd if in worktree mode)
899
+ // Run task (use worktree root as cwd if in worktree mode)
1112
900
  const runnerOptions = {
1113
901
  timeout,
1114
902
  outcomeFilePath,
@@ -1194,18 +982,18 @@ async function executeSingleProject(
1194
982
  }
1195
983
 
1196
984
  if (success) {
1197
- // Check if Claude wrote an outcome file with valid marker
985
+ // Check if the LLM wrote an outcome file with valid marker
1198
986
  // If so, keep it as-is; otherwise create fallback
1199
987
  // NOTE: Successful outcomes do NOT get ## Details section appended
1200
988
  let outcomeContent: string;
1201
- const claudeWroteOutcome = fs.existsSync(outcomeFilePath);
989
+ const llmWroteOutcome = fs.existsSync(outcomeFilePath);
1202
990
 
1203
- if (claudeWroteOutcome) {
991
+ if (llmWroteOutcome) {
1204
992
  const existingContent = fs.readFileSync(outcomeFilePath, 'utf-8');
1205
993
  const status = parseOutcomeStatus(existingContent);
1206
994
 
1207
995
  if (status === 'completed') {
1208
- // Claude wrote a valid outcome - keep it as-is (no metadata added)
996
+ // LLM wrote a valid outcome - keep it as-is (no metadata added)
1209
997
  outcomeContent = existingContent;
1210
998
  } else {
1211
999
  // Outcome file exists but no valid COMPLETE marker - create fallback