rafcode 2.5.1-0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (557) 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 +35 -0
  58. package/RAF/38-dual-wielder/input.md +8 -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/plans/1-config-schema-provider-types.md +90 -0
  67. package/RAF/38-dual-wielder/plans/2-abstract-cli-runner.md +76 -0
  68. package/RAF/38-dual-wielder/plans/3-implement-codex-runner.md +94 -0
  69. package/RAF/38-dual-wielder/plans/4-update-prompts-llm-agnostic.md +70 -0
  70. package/RAF/38-dual-wielder/plans/5-update-readme-docs.md +52 -0
  71. package/RAF/38-dual-wielder/plans/6-do-unified-project-scanning.md +40 -0
  72. package/RAF/38-dual-wielder/plans/7-fix-plan-amend-automode.md +51 -0
  73. package/README.md +57 -10
  74. package/dist/commands/config.js +7 -7
  75. package/dist/commands/config.js.map +1 -1
  76. package/dist/commands/do.d.ts.map +1 -1
  77. package/dist/commands/do.js +42 -69
  78. package/dist/commands/do.js.map +1 -1
  79. package/dist/commands/plan.d.ts.map +1 -1
  80. package/dist/commands/plan.js +71 -34
  81. package/dist/commands/plan.js.map +1 -1
  82. package/dist/commands/status.js +1 -1
  83. package/dist/commands/status.js.map +1 -1
  84. package/dist/core/claude-runner.d.ts +19 -116
  85. package/dist/core/claude-runner.d.ts.map +1 -1
  86. package/dist/core/claude-runner.js +20 -173
  87. package/dist/core/claude-runner.js.map +1 -1
  88. package/dist/core/codex-runner.d.ts +41 -0
  89. package/dist/core/codex-runner.d.ts.map +1 -0
  90. package/dist/core/codex-runner.js +271 -0
  91. package/dist/core/codex-runner.js.map +1 -0
  92. package/dist/core/completion-detector.d.ts +47 -0
  93. package/dist/core/completion-detector.d.ts.map +1 -0
  94. package/dist/core/completion-detector.js +143 -0
  95. package/dist/core/completion-detector.js.map +1 -0
  96. package/dist/core/failure-analyzer.d.ts +1 -1
  97. package/dist/core/failure-analyzer.js +10 -10
  98. package/dist/core/failure-analyzer.js.map +1 -1
  99. package/dist/core/pull-request.d.ts +4 -4
  100. package/dist/core/pull-request.js +11 -11
  101. package/dist/core/pull-request.js.map +1 -1
  102. package/dist/core/runner-factory.d.ts +12 -0
  103. package/dist/core/runner-factory.d.ts.map +1 -0
  104. package/dist/core/runner-factory.js +30 -0
  105. package/dist/core/runner-factory.js.map +1 -0
  106. package/dist/core/runner-interface.d.ts +14 -0
  107. package/dist/core/runner-interface.d.ts.map +1 -0
  108. package/dist/core/runner-interface.js +2 -0
  109. package/dist/core/runner-interface.js.map +1 -0
  110. package/dist/core/runner-types.d.ts +73 -0
  111. package/dist/core/runner-types.d.ts.map +1 -0
  112. package/dist/core/runner-types.js +2 -0
  113. package/dist/core/runner-types.js.map +1 -0
  114. package/dist/core/shutdown-handler.d.ts +8 -4
  115. package/dist/core/shutdown-handler.d.ts.map +1 -1
  116. package/dist/core/shutdown-handler.js +14 -8
  117. package/dist/core/shutdown-handler.js.map +1 -1
  118. package/dist/core/state-derivation.d.ts +2 -2
  119. package/dist/core/state-derivation.d.ts.map +1 -1
  120. package/dist/core/state-derivation.js +10 -13
  121. package/dist/core/state-derivation.js.map +1 -1
  122. package/dist/core/worktree.d.ts +1 -1
  123. package/dist/core/worktree.d.ts.map +1 -1
  124. package/dist/core/worktree.js +14 -16
  125. package/dist/core/worktree.js.map +1 -1
  126. package/dist/index.js +1 -1
  127. package/dist/index.js.map +1 -1
  128. package/dist/parsers/codex-stream-renderer.d.ts +31 -0
  129. package/dist/parsers/codex-stream-renderer.d.ts.map +1 -0
  130. package/dist/parsers/codex-stream-renderer.js +81 -0
  131. package/dist/parsers/codex-stream-renderer.js.map +1 -0
  132. package/dist/parsers/output-parser.d.ts +2 -2
  133. package/dist/parsers/output-parser.js +2 -2
  134. package/dist/parsers/stream-renderer.d.ts +1 -1
  135. package/dist/parsers/stream-renderer.js +1 -1
  136. package/dist/prompts/amend.d.ts +1 -1
  137. package/dist/prompts/amend.js +6 -6
  138. package/dist/prompts/execution.js +2 -2
  139. package/dist/prompts/execution.js.map +1 -1
  140. package/dist/prompts/planning.d.ts +1 -1
  141. package/dist/prompts/planning.js +12 -12
  142. package/dist/types/config.d.ts +21 -0
  143. package/dist/types/config.d.ts.map +1 -1
  144. package/dist/types/config.js +16 -0
  145. package/dist/types/config.js.map +1 -1
  146. package/dist/ui/project-picker.d.ts.map +1 -1
  147. package/dist/ui/project-picker.js.map +1 -1
  148. package/dist/utils/config.d.ts +24 -6
  149. package/dist/utils/config.d.ts.map +1 -1
  150. package/dist/utils/config.js +155 -15
  151. package/dist/utils/config.js.map +1 -1
  152. package/dist/utils/name-generator.d.ts +2 -2
  153. package/dist/utils/name-generator.js +9 -9
  154. package/dist/utils/name-generator.js.map +1 -1
  155. package/dist/utils/paths.d.ts +27 -51
  156. package/dist/utils/paths.d.ts.map +1 -1
  157. package/dist/utils/paths.js +112 -150
  158. package/dist/utils/paths.js.map +1 -1
  159. package/dist/utils/token-tracker.d.ts +2 -2
  160. package/dist/utils/token-tracker.js +4 -4
  161. package/dist/utils/token-tracker.js.map +1 -1
  162. package/dist/utils/validation.d.ts.map +1 -1
  163. package/dist/utils/validation.js +7 -10
  164. package/dist/utils/validation.js.map +1 -1
  165. package/package.json +1 -1
  166. package/src/commands/config.ts +7 -7
  167. package/src/commands/do.ts +45 -79
  168. package/src/commands/plan.ts +74 -34
  169. package/src/commands/status.ts +1 -1
  170. package/src/core/claude-runner.ts +33 -277
  171. package/src/core/codex-runner.ts +326 -0
  172. package/src/core/completion-detector.ts +177 -0
  173. package/src/core/failure-analyzer.ts +10 -10
  174. package/src/core/pull-request.ts +11 -11
  175. package/src/core/runner-factory.ts +35 -0
  176. package/src/core/runner-interface.ts +14 -0
  177. package/src/core/runner-types.ts +75 -0
  178. package/src/core/shutdown-handler.ts +17 -10
  179. package/src/core/state-derivation.ts +10 -13
  180. package/src/core/worktree.ts +14 -16
  181. package/src/index.ts +1 -1
  182. package/src/parsers/codex-stream-renderer.ts +108 -0
  183. package/src/parsers/output-parser.ts +2 -2
  184. package/src/parsers/stream-renderer.ts +1 -1
  185. package/src/prompts/amend.ts +6 -6
  186. package/src/prompts/config-docs.md +7 -7
  187. package/src/prompts/execution.ts +2 -2
  188. package/src/prompts/planning.ts +12 -12
  189. package/src/types/config.ts +39 -0
  190. package/src/ui/project-picker.ts +1 -0
  191. package/src/utils/config.ts +170 -14
  192. package/src/utils/name-generator.ts +9 -9
  193. package/src/utils/paths.ts +113 -159
  194. package/src/utils/token-tracker.ts +4 -4
  195. package/src/utils/validation.ts +7 -10
  196. package/tests/unit/commit-planning-artifacts-worktree.test.ts +14 -14
  197. package/tests/unit/commit-planning-artifacts.test.ts +40 -40
  198. package/tests/unit/config.test.ts +8 -8
  199. package/tests/unit/dependency-integration.test.ts +96 -96
  200. package/tests/unit/do-blocked-tasks.test.ts +1 -1
  201. package/tests/unit/do-command.test.ts +36 -36
  202. package/tests/unit/do-rerun.test.ts +1 -1
  203. package/tests/unit/execution-prompt.test.ts +62 -62
  204. package/tests/unit/git-stash.test.ts +4 -4
  205. package/tests/unit/paths.test.ts +135 -249
  206. package/tests/unit/plan-command.test.ts +103 -103
  207. package/tests/unit/planning-prompt.test.ts +3 -3
  208. package/tests/unit/project-manager.test.ts +9 -10
  209. package/tests/unit/project-picker.test.ts +74 -74
  210. package/tests/unit/pull-request.test.ts +3 -3
  211. package/tests/unit/state-derivation.test.ts +144 -144
  212. package/tests/unit/status-command.test.ts +71 -103
  213. package/tests/unit/worktree.test.ts +32 -33
  214. /package/RAF/{aaaaab-raf-task-improvements → 1-raf-task-improvements}/input.md +0 -0
  215. /package/RAF/{aaaaab-raf-task-improvements/outcomes/01-add-decisions-folder.md → 1-raf-task-improvements/outcomes/1-add-decisions-folder.md} +0 -0
  216. /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
  217. /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
  218. /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
  219. /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
  220. /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
  221. /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
  222. /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
  223. /package/RAF/{aaaaab-raf-task-improvements → 1-raf-task-improvements}/outcomes/SUMMARY.md +0 -0
  224. /package/RAF/{aaaaab-raf-task-improvements/plans/01-add-decisions-folder.md → 1-raf-task-improvements/plans/1-add-decisions-folder.md} +0 -0
  225. /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
  226. /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
  227. /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
  228. /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
  229. /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
  230. /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
  231. /package/RAF/{aaaabk-outcome-marker-fallback → 10-outcome-marker-fallback}/decisions.md +0 -0
  232. /package/RAF/{aaaabk-outcome-marker-fallback → 10-outcome-marker-fallback}/input.md +0 -0
  233. /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
  234. /package/RAF/{aaaabk-outcome-marker-fallback/outcomes/02-creative-project-naming.md → 10-outcome-marker-fallback/outcomes/2-creative-project-naming.md} +0 -0
  235. /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
  236. /package/RAF/{aaaabk-outcome-marker-fallback/plans/02-creative-project-naming.md → 10-outcome-marker-fallback/plans/2-creative-project-naming.md} +0 -0
  237. /package/RAF/{aaaabl-do-task-in-commit → 11-do-task-in-commit}/decisions.md +0 -0
  238. /package/RAF/{aaaabl-do-task-in-commit → 11-do-task-in-commit}/input.md +0 -0
  239. /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
  240. /package/RAF/{aaaabl-do-task-in-commit/outcomes/02-update-tests.md → 11-do-task-in-commit/outcomes/2-update-tests.md} +0 -0
  241. /package/RAF/{aaaabl-do-task-in-commit/outcomes/03-update-documentation.md → 11-do-task-in-commit/outcomes/3-update-documentation.md} +0 -0
  242. /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
  243. /package/RAF/{aaaabl-do-task-in-commit/plans/02-update-tests.md → 11-do-task-in-commit/plans/2-update-tests.md} +0 -0
  244. /package/RAF/{aaaabl-do-task-in-commit/plans/03-update-documentation.md → 11-do-task-in-commit/plans/3-update-documentation.md} +0 -0
  245. /package/RAF/{aaaabm-name-picker-buffet → 12-name-picker-buffet}/decisions.md +0 -0
  246. /package/RAF/{aaaabm-name-picker-buffet → 12-name-picker-buffet}/input.md +0 -0
  247. /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
  248. /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
  249. /package/RAF/{aaaabm-name-picker-buffet/outcomes/03-raf-status-truncation.md → 12-name-picker-buffet/outcomes/3-raf-status-truncation.md} +0 -0
  250. /package/RAF/{aaaabm-name-picker-buffet/outcomes/04-failure-reason-details.md → 12-name-picker-buffet/outcomes/4-failure-reason-details.md} +0 -0
  251. /package/RAF/{aaaabm-name-picker-buffet/outcomes/05-remove-raf-commits.md → 12-name-picker-buffet/outcomes/5-remove-raf-commits.md} +0 -0
  252. /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
  253. /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
  254. /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
  255. /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
  256. /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
  257. /package/RAF/{aaaabm-name-picker-buffet/plans/03-raf-status-truncation.md → 12-name-picker-buffet/plans/3-raf-status-truncation.md} +0 -0
  258. /package/RAF/{aaaabm-name-picker-buffet/plans/04-failure-reason-details.md → 12-name-picker-buffet/plans/4-failure-reason-details.md} +0 -0
  259. /package/RAF/{aaaabm-name-picker-buffet/plans/05-remove-raf-commits.md → 12-name-picker-buffet/plans/5-remove-raf-commits.md} +0 -0
  260. /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
  261. /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
  262. /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
  263. /package/RAF/{aaaabn-dependencies-watchdog → 13-dependencies-watchdog}/decisions.md +0 -0
  264. /package/RAF/{aaaabn-dependencies-watchdog → 13-dependencies-watchdog}/input.md +0 -0
  265. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/01-define-dependency-syntax.md → 13-dependencies-watchdog/outcomes/1-define-dependency-syntax.md} +0 -0
  266. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/02-update-planning-prompts.md → 13-dependencies-watchdog/outcomes/2-update-planning-prompts.md} +0 -0
  267. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/03-parse-dependencies-update-state.md → 13-dependencies-watchdog/outcomes/3-parse-dependencies-update-state.md} +0 -0
  268. /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
  269. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/05-update-execution-prompts.md → 13-dependencies-watchdog/outcomes/5-update-execution-prompts.md} +0 -0
  270. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/06-add-tests.md → 13-dependencies-watchdog/outcomes/6-add-tests.md} +0 -0
  271. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/07-add-act-alias.md → 13-dependencies-watchdog/outcomes/7-add-act-alias.md} +0 -0
  272. /package/RAF/{aaaabn-dependencies-watchdog/outcomes/08-add-exit-message.md → 13-dependencies-watchdog/outcomes/8-add-exit-message.md} +0 -0
  273. /package/RAF/{aaaabn-dependencies-watchdog/plans/01-define-dependency-syntax.md → 13-dependencies-watchdog/plans/1-define-dependency-syntax.md} +0 -0
  274. /package/RAF/{aaaabn-dependencies-watchdog/plans/07-add-act-alias.md → 13-dependencies-watchdog/plans/7-add-act-alias.md} +0 -0
  275. /package/RAF/{aaaabn-dependencies-watchdog/plans/08-add-exit-message.md → 13-dependencies-watchdog/plans/8-add-exit-message.md} +0 -0
  276. /package/RAF/{aaaabo-watchdog → 14-watchdog}/decisions.md +0 -0
  277. /package/RAF/{aaaabo-watchdog → 14-watchdog}/input.md +0 -0
  278. /package/RAF/{aaaabo-watchdog/outcomes/01-amend-flag-position.md → 14-watchdog/outcomes/1-amend-flag-position.md} +0 -0
  279. /package/RAF/{aaaabo-watchdog/outcomes/02-details-only-on-failure.md → 14-watchdog/outcomes/2-details-only-on-failure.md} +0 -0
  280. /package/RAF/{aaaabo-watchdog/plans/01-amend-flag-position.md → 14-watchdog/plans/1-amend-flag-position.md} +0 -0
  281. /package/RAF/{aaaabo-watchdog/plans/02-details-only-on-failure.md → 14-watchdog/plans/2-details-only-on-failure.md} +0 -0
  282. /package/RAF/{aaaabp-name-lottery → 15-name-lottery}/decisions.md +0 -0
  283. /package/RAF/{aaaabp-name-lottery → 15-name-lottery}/input.md +0 -0
  284. /package/RAF/{aaaabp-name-lottery/outcomes/01-auto-pick-project-name.md → 15-name-lottery/outcomes/1-auto-pick-project-name.md} +0 -0
  285. /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
  286. /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
  287. /package/RAF/{aaaabp-name-lottery/plans/01-auto-pick-project-name.md → 15-name-lottery/plans/1-auto-pick-project-name.md} +0 -0
  288. /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
  289. /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
  290. /package/RAF/{aaaabq-planning-scalpel → 16-planning-scalpel}/decisions.md +0 -0
  291. /package/RAF/{aaaabq-planning-scalpel → 16-planning-scalpel}/input.md +0 -0
  292. /package/RAF/{aaaabq-planning-scalpel/outcomes/01-update-git-commit-instructions.md → 16-planning-scalpel/outcomes/1-update-git-commit-instructions.md} +0 -0
  293. /package/RAF/{aaaabq-planning-scalpel/plans/01-update-git-commit-instructions.md → 16-planning-scalpel/plans/1-update-git-commit-instructions.md} +0 -0
  294. /package/RAF/{aaaabr-decision-vault → 17-decision-vault}/decisions.md +0 -0
  295. /package/RAF/{aaaabr-decision-vault → 17-decision-vault}/input.md +0 -0
  296. /package/RAF/{aaaabr-decision-vault/outcomes/01-create-git-commit-utility.md → 17-decision-vault/outcomes/1-create-git-commit-utility.md} +0 -0
  297. /package/RAF/{aaaabr-decision-vault/outcomes/02-integrate-commit-into-plan.md → 17-decision-vault/outcomes/2-integrate-commit-into-plan.md} +0 -0
  298. /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
  299. /package/RAF/{aaaabr-decision-vault/plans/01-create-git-commit-utility.md → 17-decision-vault/plans/1-create-git-commit-utility.md} +0 -0
  300. /package/RAF/{aaaabs-workflow-forge → 18-workflow-forge}/decisions.md +0 -0
  301. /package/RAF/{aaaabs-workflow-forge → 18-workflow-forge}/input.md +0 -0
  302. /package/RAF/{aaaabs-workflow-forge/outcomes/01-add-task-number-progress.md → 18-workflow-forge/outcomes/1-add-task-number-progress.md} +0 -0
  303. /package/RAF/{aaaabs-workflow-forge/outcomes/02-update-plan-do-prompts.md → 18-workflow-forge/outcomes/2-update-plan-do-prompts.md} +0 -0
  304. /package/RAF/{aaaabs-workflow-forge/plans/01-add-task-number-progress.md → 18-workflow-forge/plans/1-add-task-number-progress.md} +0 -0
  305. /package/RAF/{aaaabs-workflow-forge/plans/02-update-plan-do-prompts.md → 18-workflow-forge/plans/2-update-plan-do-prompts.md} +0 -0
  306. /package/RAF/{aaaabt-verbose-chronicle → 19-verbose-chronicle}/decisions.md +0 -0
  307. /package/RAF/{aaaabt-verbose-chronicle → 19-verbose-chronicle}/input.md +0 -0
  308. /package/RAF/{aaaabt-verbose-chronicle/outcomes/01-amend-iteration-references.md → 19-verbose-chronicle/outcomes/1-amend-iteration-references.md} +0 -0
  309. /package/RAF/{aaaabt-verbose-chronicle/outcomes/02-verbose-task-name-display.md → 19-verbose-chronicle/outcomes/2-verbose-task-name-display.md} +0 -0
  310. /package/RAF/{aaaabt-verbose-chronicle/outcomes/03-verbose-streaming-fix.md → 19-verbose-chronicle/outcomes/3-verbose-streaming-fix.md} +0 -0
  311. /package/RAF/{aaaabt-verbose-chronicle/outcomes/04-commit-verification-before-halt.md → 19-verbose-chronicle/outcomes/4-commit-verification-before-halt.md} +0 -0
  312. /package/RAF/{aaaabt-verbose-chronicle/plans/01-amend-iteration-references.md → 19-verbose-chronicle/plans/1-amend-iteration-references.md} +0 -0
  313. /package/RAF/{aaaabt-verbose-chronicle/plans/02-verbose-task-name-display.md → 19-verbose-chronicle/plans/2-verbose-task-name-display.md} +0 -0
  314. /package/RAF/{aaaabt-verbose-chronicle/plans/03-verbose-streaming-fix.md → 19-verbose-chronicle/plans/3-verbose-streaming-fix.md} +0 -0
  315. /package/RAF/{aaaaac-raf-task-improvements-execution → 2-raf-task-improvements-execution}/decisions/DECISIONS.md +0 -0
  316. /package/RAF/{aaaaac-raf-task-improvements-execution → 2-raf-task-improvements-execution}/input.md +0 -0
  317. /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
  318. /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
  319. /package/RAF/{aaaaac-raf-task-improvements-execution → 2-raf-task-improvements-execution}/outcomes/SUMMARY.md +0 -0
  320. /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
  321. /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
  322. /package/RAF/{aaaacu-worktree-weaver → 20-worktree-weaver}/decisions.md +0 -0
  323. /package/RAF/{aaaacu-worktree-weaver → 20-worktree-weaver}/input.md +0 -0
  324. /package/RAF/{aaaacu-worktree-weaver/outcomes/01-git-worktree-utilities.md → 20-worktree-weaver/outcomes/1-git-worktree-utilities.md} +0 -0
  325. /package/RAF/{aaaacu-worktree-weaver/outcomes/02-worktree-plan-command.md → 20-worktree-weaver/outcomes/2-worktree-plan-command.md} +0 -0
  326. /package/RAF/{aaaacu-worktree-weaver/outcomes/03-worktree-do-command.md → 20-worktree-weaver/outcomes/3-worktree-do-command.md} +0 -0
  327. /package/RAF/{aaaacu-worktree-weaver/outcomes/04-auto-merge-and-cleanup.md → 20-worktree-weaver/outcomes/4-auto-merge-and-cleanup.md} +0 -0
  328. /package/RAF/{aaaacu-worktree-weaver/outcomes/05-worktree-tests.md → 20-worktree-weaver/outcomes/5-worktree-tests.md} +0 -0
  329. /package/RAF/{aaaacu-worktree-weaver/outcomes/06-update-documentation.md → 20-worktree-weaver/outcomes/6-update-documentation.md} +0 -0
  330. /package/RAF/{aaaacu-worktree-weaver/plans/01-git-worktree-utilities.md → 20-worktree-weaver/plans/1-git-worktree-utilities.md} +0 -0
  331. /package/RAF/{aaaacv-trim-the-fat → 21-trim-the-fat}/decisions.md +0 -0
  332. /package/RAF/{aaaacv-trim-the-fat → 21-trim-the-fat}/input.md +0 -0
  333. /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
  334. /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
  335. /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
  336. /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
  337. /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
  338. /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
  339. /package/RAF/{aaaacw-prune-cycle → 22-prune-cycle}/decisions.md +0 -0
  340. /package/RAF/{aaaacw-prune-cycle → 22-prune-cycle}/input.md +0 -0
  341. /package/RAF/{aaaacw-prune-cycle/outcomes/01-create-worktree-from-branch.md → 22-prune-cycle/outcomes/1-create-worktree-from-branch.md} +0 -0
  342. /package/RAF/{aaaacw-prune-cycle/outcomes/02-cleanup-worktree-on-success.md → 22-prune-cycle/outcomes/2-cleanup-worktree-on-success.md} +0 -0
  343. /package/RAF/{aaaacw-prune-cycle/outcomes/03-amend-recreate-worktree.md → 22-prune-cycle/outcomes/3-amend-recreate-worktree.md} +0 -0
  344. /package/RAF/{aaaacw-prune-cycle/plans/01-create-worktree-from-branch.md → 22-prune-cycle/plans/1-create-worktree-from-branch.md} +0 -0
  345. /package/RAF/{aaaacx-epoch-shift → 23-epoch-shift}/decisions.md +0 -0
  346. /package/RAF/{aaaacx-epoch-shift → 23-epoch-shift}/input.md +0 -0
  347. /package/RAF/{aaaacx-epoch-shift/outcomes/01-epoch-id-generation.md → 23-epoch-shift/outcomes/1-epoch-id-generation.md} +0 -0
  348. /package/RAF/{aaaacx-epoch-shift/outcomes/02-update-pattern-matching.md → 23-epoch-shift/outcomes/2-update-pattern-matching.md} +0 -0
  349. /package/RAF/{aaaacx-epoch-shift/outcomes/03-update-tests.md → 23-epoch-shift/outcomes/3-update-tests.md} +0 -0
  350. /package/RAF/{aaaacx-epoch-shift/outcomes/04-update-documentation.md → 23-epoch-shift/outcomes/4-update-documentation.md} +0 -0
  351. /package/RAF/{aaaacx-epoch-shift/plans/01-epoch-id-generation.md → 23-epoch-shift/plans/1-epoch-id-generation.md} +0 -0
  352. /package/RAF/{ahmpro-merge-guardian → 24-merge-guardian}/decisions.md +0 -0
  353. /package/RAF/{ahmpro-merge-guardian → 24-merge-guardian}/input.md +0 -0
  354. /package/RAF/{ahmpro-merge-guardian/outcomes/001-fix-amend-worktree-commit.md → 24-merge-guardian/outcomes/1-fix-amend-worktree-commit.md} +0 -0
  355. /package/RAF/{ahmpro-merge-guardian/outcomes/002-base36-task-ids.md → 24-merge-guardian/outcomes/2-base36-task-ids.md} +0 -0
  356. /package/RAF/{ahmpro-merge-guardian/outcomes/003-worktree-pr-creation.md → 24-merge-guardian/outcomes/3-worktree-pr-creation.md} +0 -0
  357. /package/RAF/{ahmpro-merge-guardian/outcomes/004-post-execution-picker.md → 24-merge-guardian/outcomes/4-post-execution-picker.md} +0 -0
  358. /package/RAF/{ahmpro-merge-guardian/plans/001-fix-amend-worktree-commit.md → 24-merge-guardian/plans/1-fix-amend-worktree-commit.md} +0 -0
  359. /package/RAF/{ahmpro-merge-guardian/plans/002-base36-task-ids.md → 24-merge-guardian/plans/2-base36-task-ids.md} +0 -0
  360. /package/RAF/{ahnbcu-letterjam → 25-letterjam}/decisions.md +0 -0
  361. /package/RAF/{ahnbcu-letterjam → 25-letterjam}/input.md +0 -0
  362. /package/RAF/{ahnbcu-letterjam/outcomes/01-base26-encoding.md → 25-letterjam/outcomes/1-base26-encoding.md} +0 -0
  363. /package/RAF/{ahnbcu-letterjam/outcomes/02-update-tests.md → 25-letterjam/outcomes/2-update-tests.md} +0 -0
  364. /package/RAF/{ahnbcu-letterjam/outcomes/03-migrate-command.md → 25-letterjam/outcomes/3-migrate-command.md} +0 -0
  365. /package/RAF/{ahnbcu-letterjam/outcomes/04-update-documentation.md → 25-letterjam/outcomes/4-update-documentation.md} +0 -0
  366. /package/RAF/{ahnbcu-letterjam/plans/01-base26-encoding.md → 25-letterjam/plans/1-base26-encoding.md} +0 -0
  367. /package/RAF/{ahnwrk-worktree-weaver → 26-worktree-weaver}/decisions.md +0 -0
  368. /package/RAF/{ahnwrk-worktree-weaver → 26-worktree-weaver}/input.md +0 -0
  369. /package/RAF/{ahnwrk-worktree-weaver/outcomes/01-remove-co-authored-by.md → 26-worktree-weaver/outcomes/1-remove-co-authored-by.md} +0 -0
  370. /package/RAF/{ahnwrk-worktree-weaver/outcomes/02-update-task-status-format.md → 26-worktree-weaver/outcomes/2-update-task-status-format.md} +0 -0
  371. /package/RAF/{ahnwrk-worktree-weaver/outcomes/03-worktree-auto-discovery.md → 26-worktree-weaver/outcomes/3-worktree-auto-discovery.md} +0 -0
  372. /package/RAF/{ahnwrk-worktree-weaver/outcomes/04-fix-pr-description.md → 26-worktree-weaver/outcomes/4-fix-pr-description.md} +0 -0
  373. /package/RAF/{ahnwrk-worktree-weaver/plans/01-remove-co-authored-by.md → 26-worktree-weaver/plans/1-remove-co-authored-by.md} +0 -0
  374. /package/RAF/{ahnwrk-worktree-weaver/plans/02-update-task-status-format.md → 26-worktree-weaver/plans/2-update-task-status-format.md} +0 -0
  375. /package/RAF/{ahnwrk-worktree-weaver/plans/03-worktree-auto-discovery.md → 26-worktree-weaver/plans/3-worktree-auto-discovery.md} +0 -0
  376. /package/RAF/{ahrren-turbo-finder → 27-turbo-finder}/decisions.md +0 -0
  377. /package/RAF/{ahrren-turbo-finder → 27-turbo-finder}/input.md +0 -0
  378. /package/RAF/{ahrren-turbo-finder/outcomes/01-worktree-auto-detect.md → 27-turbo-finder/outcomes/1-worktree-auto-detect.md} +0 -0
  379. /package/RAF/{ahrren-turbo-finder/outcomes/02-medium-effort-do.md → 27-turbo-finder/outcomes/2-medium-effort-do.md} +0 -0
  380. /package/RAF/{ahrren-turbo-finder/plans/01-worktree-auto-detect.md → 27-turbo-finder/plans/1-worktree-auto-detect.md} +0 -0
  381. /package/RAF/{ahslfe-config-wizard → 28-config-wizard}/decisions.md +0 -0
  382. /package/RAF/{ahslfe-config-wizard → 28-config-wizard}/input.md +0 -0
  383. /package/RAF/{ahslfe-config-wizard/outcomes/01-define-config-schema.md → 28-config-wizard/outcomes/1-define-config-schema.md} +0 -0
  384. /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
  385. /package/RAF/{ahslfe-config-wizard/outcomes/03-create-config-documentation.md → 28-config-wizard/outcomes/3-create-config-documentation.md} +0 -0
  386. /package/RAF/{ahslfe-config-wizard/outcomes/04-implement-raf-config-command.md → 28-config-wizard/outcomes/4-implement-raf-config-command.md} +0 -0
  387. /package/RAF/{ahslfe-config-wizard/outcomes/05-update-claude-md.md → 28-config-wizard/outcomes/5-update-claude-md.md} +0 -0
  388. /package/RAF/{ahslfe-config-wizard/plans/01-define-config-schema.md → 28-config-wizard/plans/1-define-config-schema.md} +0 -0
  389. /package/RAF/{ahstvo-token-tracker → 29-token-tracker}/decisions.md +0 -0
  390. /package/RAF/{ahstvo-token-tracker → 29-token-tracker}/input.md +0 -0
  391. /package/RAF/{ahstvo-token-tracker/outcomes/01-full-model-id-support.md → 29-token-tracker/outcomes/1-full-model-id-support.md} +0 -0
  392. /package/RAF/{ahstvo-token-tracker/outcomes/02-name-generation-no-session.md → 29-token-tracker/outcomes/2-name-generation-no-session.md} +0 -0
  393. /package/RAF/{ahstvo-token-tracker/outcomes/03-unify-stream-json-execution.md → 29-token-tracker/outcomes/3-unify-stream-json-execution.md} +0 -0
  394. /package/RAF/{ahstvo-token-tracker/outcomes/04-token-tracking-cost-calculation.md → 29-token-tracker/outcomes/4-token-tracking-cost-calculation.md} +0 -0
  395. /package/RAF/{ahstvo-token-tracker/outcomes/05-token-cost-console-reporting.md → 29-token-tracker/outcomes/5-token-cost-console-reporting.md} +0 -0
  396. /package/RAF/{ahstvo-token-tracker/outcomes/06-runtime-verbose-toggle.md → 29-token-tracker/outcomes/6-runtime-verbose-toggle.md} +0 -0
  397. /package/RAF/{ahstvo-token-tracker/outcomes/07-readme-config-docs.md → 29-token-tracker/outcomes/7-readme-config-docs.md} +0 -0
  398. /package/RAF/{ahstvo-token-tracker/plans/01-full-model-id-support.md → 29-token-tracker/plans/1-full-model-id-support.md} +0 -0
  399. /package/RAF/{ahstvo-token-tracker/plans/02-name-generation-no-session.md → 29-token-tracker/plans/2-name-generation-no-session.md} +0 -0
  400. /package/RAF/{ahstvo-token-tracker/plans/07-readme-config-docs.md → 29-token-tracker/plans/7-readme-config-docs.md} +0 -0
  401. /package/RAF/{aaaaad-multi-project-execution → 3-multi-project-execution}/decisions/DECISIONS.md +0 -0
  402. /package/RAF/{aaaaad-multi-project-execution → 3-multi-project-execution}/input.md +0 -0
  403. /package/RAF/{aaaaad-multi-project-execution/outcomes/01-remove-state-json.md → 3-multi-project-execution/outcomes/1-remove-state-json.md} +0 -0
  404. /package/RAF/{aaaaad-multi-project-execution/outcomes/02-update-raf-status.md → 3-multi-project-execution/outcomes/2-update-raf-status.md} +0 -0
  405. /package/RAF/{aaaaad-multi-project-execution/outcomes/03-simplify-git-logic.md → 3-multi-project-execution/outcomes/3-simplify-git-logic.md} +0 -0
  406. /package/RAF/{aaaaad-multi-project-execution/outcomes/04-auto-commit-planning.md → 3-multi-project-execution/outcomes/4-auto-commit-planning.md} +0 -0
  407. /package/RAF/{aaaaad-multi-project-execution/outcomes/05-rerun-failed-tasks.md → 3-multi-project-execution/outcomes/5-rerun-failed-tasks.md} +0 -0
  408. /package/RAF/{aaaaad-multi-project-execution/outcomes/06-multi-project-execution.md → 3-multi-project-execution/outcomes/6-multi-project-execution.md} +0 -0
  409. /package/RAF/{aaaaad-multi-project-execution/outcomes/07-verify-timeout.md → 3-multi-project-execution/outcomes/7-verify-timeout.md} +0 -0
  410. /package/RAF/{aaaaad-multi-project-execution/outcomes/08-move-decisions-file.md → 3-multi-project-execution/outcomes/8-move-decisions-file.md} +0 -0
  411. /package/RAF/{aaaaad-multi-project-execution → 3-multi-project-execution}/outcomes/SUMMARY.md +0 -0
  412. /package/RAF/{aaaaad-multi-project-execution/plans/01-remove-state-json.md → 3-multi-project-execution/plans/1-remove-state-json.md} +0 -0
  413. /package/RAF/{aaaaad-multi-project-execution/plans/02-update-raf-status.md → 3-multi-project-execution/plans/2-update-raf-status.md} +0 -0
  414. /package/RAF/{aaaaad-multi-project-execution/plans/03-simplify-git-logic.md → 3-multi-project-execution/plans/3-simplify-git-logic.md} +0 -0
  415. /package/RAF/{aaaaad-multi-project-execution/plans/04-auto-commit-planning.md → 3-multi-project-execution/plans/4-auto-commit-planning.md} +0 -0
  416. /package/RAF/{aaaaad-multi-project-execution/plans/05-rerun-failed-tasks.md → 3-multi-project-execution/plans/5-rerun-failed-tasks.md} +0 -0
  417. /package/RAF/{aaaaad-multi-project-execution/plans/06-multi-project-execution.md → 3-multi-project-execution/plans/6-multi-project-execution.md} +0 -0
  418. /package/RAF/{aaaaad-multi-project-execution/plans/07-verify-timeout.md → 3-multi-project-execution/plans/7-verify-timeout.md} +0 -0
  419. /package/RAF/{aaaaad-multi-project-execution/plans/08-move-decisions-file.md → 3-multi-project-execution/plans/8-move-decisions-file.md} +0 -0
  420. /package/RAF/{ahtahs-token-reaper → 30-token-reaper}/decisions.md +0 -0
  421. /package/RAF/{ahtahs-token-reaper → 30-token-reaper}/input.md +0 -0
  422. /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
  423. /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
  424. /package/RAF/{ahtahs-token-reaper/outcomes/03-per-attempt-display-formatting.md → 30-token-reaper/outcomes/3-per-attempt-display-formatting.md} +0 -0
  425. /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
  426. /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
  427. /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
  428. /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
  429. /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
  430. /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
  431. /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
  432. /package/RAF/{ahvrih-rate-forge → 31-rate-forge}/decisions.md +0 -0
  433. /package/RAF/{ahvrih-rate-forge → 31-rate-forge}/input.md +0 -0
  434. /package/RAF/{ahvrih-rate-forge/outcomes/01-remove-claude-command-config.md → 31-rate-forge/outcomes/1-remove-claude-command-config.md} +0 -0
  435. /package/RAF/{ahvrih-rate-forge/outcomes/02-fix-mixed-attempt-cost.md → 31-rate-forge/outcomes/2-fix-mixed-attempt-cost.md} +0 -0
  436. /package/RAF/{ahvrih-rate-forge/outcomes/03-rate-limit-estimation.md → 31-rate-forge/outcomes/3-rate-limit-estimation.md} +0 -0
  437. /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
  438. /package/RAF/{ahvrih-rate-forge/outcomes/05-sync-main-before-worktree.md → 31-rate-forge/outcomes/5-sync-main-before-worktree.md} +0 -0
  439. /package/RAF/{ahvrih-rate-forge/outcomes/06-sync-readme-with-codebase.md → 31-rate-forge/outcomes/6-sync-readme-with-codebase.md} +0 -0
  440. /package/RAF/{ahvrih-rate-forge/outcomes/07-no-session-persistence.md → 31-rate-forge/outcomes/7-no-session-persistence.md} +0 -0
  441. /package/RAF/{ahvrih-rate-forge/outcomes/08-plan-execution-metadata.md → 31-rate-forge/outcomes/8-plan-execution-metadata.md} +0 -0
  442. /package/RAF/{ahvrih-rate-forge/plans/01-remove-claude-command-config.md → 31-rate-forge/plans/1-remove-claude-command-config.md} +0 -0
  443. /package/RAF/{ahvrih-rate-forge/plans/02-fix-mixed-attempt-cost.md → 31-rate-forge/plans/2-fix-mixed-attempt-cost.md} +0 -0
  444. /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
  445. /package/RAF/{ahvrih-rate-forge/plans/05-sync-main-before-worktree.md → 31-rate-forge/plans/5-sync-main-before-worktree.md} +0 -0
  446. /package/RAF/{ahvrih-rate-forge/plans/07-no-session-persistence.md → 31-rate-forge/plans/7-no-session-persistence.md} +0 -0
  447. /package/RAF/{ahwidh-quick-fix-gremlin → 32-quick-fix-gremlin}/decisions.md +0 -0
  448. /package/RAF/{ahwidh-quick-fix-gremlin → 32-quick-fix-gremlin}/input.md +0 -0
  449. /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
  450. /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
  451. /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
  452. /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
  453. /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
  454. /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
  455. /package/RAF/{ahwidh-quick-fix-gremlin/outcomes/07-update-frontmatter-format.md → 32-quick-fix-gremlin/outcomes/7-update-frontmatter-format.md} +0 -0
  456. /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
  457. /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
  458. /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
  459. /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
  460. /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
  461. /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
  462. /package/RAF/{ahwidh-quick-fix-gremlin/plans/07-update-frontmatter-format.md → 32-quick-fix-gremlin/plans/7-update-frontmatter-format.md} +0 -0
  463. /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
  464. /package/RAF/{ahwqwq-model-whisperer → 33-model-whisperer}/decisions.md +0 -0
  465. /package/RAF/{ahwqwq-model-whisperer → 33-model-whisperer}/input.md +0 -0
  466. /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
  467. /package/RAF/{ahwqwq-model-whisperer/outcomes/02-use-claude-cost-estimation.md → 33-model-whisperer/outcomes/2-use-claude-cost-estimation.md} +0 -0
  468. /package/RAF/{ahwqwq-model-whisperer/outcomes/03-add-plan-resume-flag.md → 33-model-whisperer/outcomes/3-add-plan-resume-flag.md} +0 -0
  469. /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
  470. /package/RAF/{ahwqwq-model-whisperer/plans/02-use-claude-cost-estimation.md → 33-model-whisperer/plans/2-use-claude-cost-estimation.md} +0 -0
  471. /package/RAF/{ahwvrz-legacy-sunset → 34-legacy-sunset}/decisions.md +0 -0
  472. /package/RAF/{ahwvrz-legacy-sunset → 34-legacy-sunset}/input.md +0 -0
  473. /package/RAF/{ahwvrz-legacy-sunset/outcomes/01-remove-migrate-command.md → 34-legacy-sunset/outcomes/1-remove-migrate-command.md} +0 -0
  474. /package/RAF/{ahwvrz-legacy-sunset/outcomes/02-fix-resume-worktree-resolution.md → 34-legacy-sunset/outcomes/2-fix-resume-worktree-resolution.md} +0 -0
  475. /package/RAF/{ahwvrz-legacy-sunset/plans/01-remove-migrate-command.md → 34-legacy-sunset/plans/1-remove-migrate-command.md} +0 -0
  476. /package/RAF/{ahwzmc-echo-forge → 35-echo-forge}/decisions.md +0 -0
  477. /package/RAF/{ahwzmc-echo-forge → 35-echo-forge}/input.md +0 -0
  478. /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
  479. /package/RAF/{ahwzmc-echo-forge/outcomes/02-add-no-worktree-flag.md → 35-echo-forge/outcomes/2-add-no-worktree-flag.md} +0 -0
  480. /package/RAF/{ahwzmc-echo-forge/outcomes/03-update-readme.md → 35-echo-forge/outcomes/3-update-readme.md} +0 -0
  481. /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
  482. /package/RAF/{ahwzmc-echo-forge/plans/02-add-no-worktree-flag.md → 35-echo-forge/plans/2-add-no-worktree-flag.md} +0 -0
  483. /package/RAF/{aifqwf-fix-amend-commit-again → 36-fix-amend-commit-again}/decisions.md +0 -0
  484. /package/RAF/{aifqwf-fix-amend-commit-again → 36-fix-amend-commit-again}/input.md +0 -0
  485. /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
  486. /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
  487. /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
  488. /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
  489. /package/RAF/{aaaaae-task-naming-optimization → 4-task-naming-optimization}/decisions.md +0 -0
  490. /package/RAF/{aaaaae-task-naming-optimization → 4-task-naming-optimization}/input.md +0 -0
  491. /package/RAF/{aaaaae-task-naming-optimization/outcomes/01-remove-summary-file.md → 4-task-naming-optimization/outcomes/1-remove-summary-file.md} +0 -0
  492. /package/RAF/{aaaaae-task-naming-optimization/outcomes/02-base36-project-numbering.md → 4-task-naming-optimization/outcomes/2-base36-project-numbering.md} +0 -0
  493. /package/RAF/{aaaaae-task-naming-optimization/outcomes/03-improve-haiku-prompt.md → 4-task-naming-optimization/outcomes/3-improve-haiku-prompt.md} +0 -0
  494. /package/RAF/{aaaaae-task-naming-optimization → 4-task-naming-optimization}/outcomes/SUMMARY.md +0 -0
  495. /package/RAF/{aaaaae-task-naming-optimization/plans/01-remove-summary-file.md → 4-task-naming-optimization/plans/1-remove-summary-file.md} +0 -0
  496. /package/RAF/{aaaaae-task-naming-optimization/plans/02-base36-project-numbering.md → 4-task-naming-optimization/plans/2-base36-project-numbering.md} +0 -0
  497. /package/RAF/{aaaaae-task-naming-optimization/plans/03-improve-haiku-prompt.md → 4-task-naming-optimization/plans/3-improve-haiku-prompt.md} +0 -0
  498. /package/RAF/{aaaaaf-task-naming-improvements → 5-task-naming-improvements}/decisions.md +0 -0
  499. /package/RAF/{aaaaaf-task-naming-improvements → 5-task-naming-improvements}/input.md +0 -0
  500. /package/RAF/{aaaaaf-task-naming-improvements/outcomes/01-enhance-identifier-resolution.md → 5-task-naming-improvements/outcomes/1-enhance-identifier-resolution.md} +0 -0
  501. /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
  502. /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
  503. /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
  504. /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
  505. /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
  506. /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
  507. /package/RAF/{aaaaaf-task-naming-improvements/outcomes/08-fix-timeout-label.md → 5-task-naming-improvements/outcomes/8-fix-timeout-label.md} +0 -0
  508. /package/RAF/{aaaaaf-task-naming-improvements/plans/01-enhance-identifier-resolution.md → 5-task-naming-improvements/plans/1-enhance-identifier-resolution.md} +0 -0
  509. /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
  510. /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
  511. /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
  512. /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
  513. /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
  514. /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
  515. /package/RAF/{aaaaaf-task-naming-improvements/plans/08-fix-timeout-label.md → 5-task-naming-improvements/plans/8-fix-timeout-label.md} +0 -0
  516. /package/RAF/{aaaaag-fix-double-summary-headers → 6-fix-double-summary-headers}/decisions.md +0 -0
  517. /package/RAF/{aaaaag-fix-double-summary-headers → 6-fix-double-summary-headers}/input.md +0 -0
  518. /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
  519. /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
  520. /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
  521. /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
  522. /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
  523. /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
  524. /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
  525. /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
  526. /package/RAF/{aaaaah-improve-outcome-format → 7-improve-outcome-format}/decisions.md +0 -0
  527. /package/RAF/{aaaaah-improve-outcome-format → 7-improve-outcome-format}/input.md +0 -0
  528. /package/RAF/{aaaaah-improve-outcome-format/outcomes/01-update-execution-prompt.md → 7-improve-outcome-format/outcomes/1-update-execution-prompt.md} +0 -0
  529. /package/RAF/{aaaaah-improve-outcome-format/outcomes/02-update-state-derivation.md → 7-improve-outcome-format/outcomes/2-update-state-derivation.md} +0 -0
  530. /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
  531. /package/RAF/{aaaaah-improve-outcome-format/outcomes/04-implement-failure-analysis.md → 7-improve-outcome-format/outcomes/4-implement-failure-analysis.md} +0 -0
  532. /package/RAF/{aaaaah-improve-outcome-format/outcomes/05-update-documentation.md → 7-improve-outcome-format/outcomes/5-update-documentation.md} +0 -0
  533. /package/RAF/{aaaaah-improve-outcome-format/plans/01-update-execution-prompt.md → 7-improve-outcome-format/plans/1-update-execution-prompt.md} +0 -0
  534. /package/RAF/{aaaaah-improve-outcome-format/plans/02-update-state-derivation.md → 7-improve-outcome-format/plans/2-update-state-derivation.md} +0 -0
  535. /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
  536. /package/RAF/{aaaaah-improve-outcome-format/plans/04-implement-failure-analysis.md → 7-improve-outcome-format/plans/4-implement-failure-analysis.md} +0 -0
  537. /package/RAF/{aaaaah-improve-outcome-format/plans/05-update-documentation.md → 7-improve-outcome-format/plans/5-update-documentation.md} +0 -0
  538. /package/RAF/{aaaaai-beautiful-do → 8-beautiful-do}/decisions.md +0 -0
  539. /package/RAF/{aaaaai-beautiful-do → 8-beautiful-do}/input.md +0 -0
  540. /package/RAF/{aaaaai-beautiful-do/outcomes/01-terminal-symbols.md → 8-beautiful-do/outcomes/1-terminal-symbols.md} +0 -0
  541. /package/RAF/{aaaaai-beautiful-do/outcomes/02-refactor-do-output.md → 8-beautiful-do/outcomes/2-refactor-do-output.md} +0 -0
  542. /package/RAF/{aaaaai-beautiful-do/outcomes/03-refactor-status-output.md → 8-beautiful-do/outcomes/3-refactor-status-output.md} +0 -0
  543. /package/RAF/{aaaaai-beautiful-do/outcomes/04-simplify-logger.md → 8-beautiful-do/outcomes/4-simplify-logger.md} +0 -0
  544. /package/RAF/{aaaaai-beautiful-do/outcomes/05-add-tests.md → 8-beautiful-do/outcomes/5-add-tests.md} +0 -0
  545. /package/RAF/{aaaaai-beautiful-do/plans/01-terminal-symbols.md → 8-beautiful-do/plans/1-terminal-symbols.md} +0 -0
  546. /package/RAF/{aaaaai-beautiful-do/plans/02-refactor-do-output.md → 8-beautiful-do/plans/2-refactor-do-output.md} +0 -0
  547. /package/RAF/{aaaaai-beautiful-do/plans/03-refactor-status-output.md → 8-beautiful-do/plans/3-refactor-status-output.md} +0 -0
  548. /package/RAF/{aaaaai-beautiful-do/plans/04-simplify-logger.md → 8-beautiful-do/plans/4-simplify-logger.md} +0 -0
  549. /package/RAF/{aaaaai-beautiful-do/plans/05-add-tests.md → 8-beautiful-do/plans/5-add-tests.md} +0 -0
  550. /package/RAF/{aaaaaj-system-promt-ammend → 9-system-promt-ammend}/decisions.md +0 -0
  551. /package/RAF/{aaaaaj-system-promt-ammend → 9-system-promt-ammend}/input.md +0 -0
  552. /package/RAF/{aaaaaj-system-promt-ammend/outcomes/01-model-override.md → 9-system-promt-ammend/outcomes/1-model-override.md} +0 -0
  553. /package/RAF/{aaaaaj-system-promt-ammend/outcomes/02-system-prompt-append.md → 9-system-promt-ammend/outcomes/2-system-prompt-append.md} +0 -0
  554. /package/RAF/{aaaaaj-system-promt-ammend/outcomes/03-retry-context.md → 9-system-promt-ammend/outcomes/3-retry-context.md} +0 -0
  555. /package/RAF/{aaaaaj-system-promt-ammend/plans/01-model-override.md → 9-system-promt-ammend/plans/1-model-override.md} +0 -0
  556. /package/RAF/{aaaaaj-system-promt-ammend/plans/02-system-prompt-append.md → 9-system-promt-ammend/plans/2-system-prompt-append.md} +0 -0
  557. /package/RAF/{aaaaaj-system-promt-ammend/plans/03-retry-context.md → 9-system-promt-ammend/plans/3-retry-context.md} +0 -0
@@ -0,0 +1,47 @@
1
+ # Task 1: Config Schema & Provider Types
2
+
3
+ ## Summary
4
+ Extended the config system to support multiple CLI providers (claude, codex) with harness-prefixed model names and provider-specific model mappings.
5
+
6
+ ## Changes Made
7
+
8
+ ### `src/types/config.ts`
9
+ - Added `HarnessProvider` type (`'claude' | 'codex'`)
10
+ - Added `CodexModelAlias` type (`'spark' | 'codex' | 'gpt54'`)
11
+ - Added `ModelAlias` and `ModelName` types (provider-agnostic unions)
12
+ - Added `provider: HarnessProvider` to `RafConfig` with default `'claude'`
13
+ - Added `codexModels` and `codexEffortMapping` config sections parallel to Claude ones
14
+ - Added `VALID_CODEX_MODEL_ALIASES` and `VALID_HARNESS_PROVIDERS` constants
15
+ - Added `provider?: HarnessProvider` to `PlanCommandOptions` and `DoCommandOptions`
16
+ - Kept backward-compatible `ClaudeModelAlias` and `ClaudeModelName` types
17
+
18
+ ### `src/utils/config.ts`
19
+ - Added `CODEX_MODEL_ID_PATTERN` for Codex model validation
20
+ - Updated `isValidModelName()` to accept Claude aliases, Codex aliases, raw Codex IDs, and harness-prefixed format (`claude/opus`, `codex/gpt-5.4`)
21
+ - Added `parseModelSpec()` function to parse harness-prefixed model specs
22
+ - Updated `getModel()` and `resolveEffortToModel()` to accept optional provider parameter
23
+ - Added Codex model tier ordering (`CODEX_MODEL_TIER_ORDER`)
24
+ - Updated `getModelTier()`, `getModelShortName()`, `resolveFullModelId()` for Codex models
25
+ - Updated `MODEL_ALIAS_TO_FULL_ID` with Codex alias mappings
26
+ - Updated `VALID_TOP_LEVEL_KEYS`, `validateConfig()`, `deepMerge()`, `resolveConfig()` for new fields
27
+
28
+ ### `src/utils/validation.ts`
29
+ - Updated `validateModelName()` to delegate to `isValidModelName()` (DRY)
30
+ - Updated error message in `resolveModelOption()` to mention harness-prefixed format
31
+
32
+ ### `src/commands/plan.ts` and `src/commands/do.ts`
33
+ - Added `--provider` / `-p` CLI flag to both commands
34
+
35
+ ## Acceptance Criteria
36
+ - [x] `provider` field exists in config with `'claude'` default
37
+ - [x] Harness-prefixed model names parse correctly (e.g., `codex/gpt-5.4`)
38
+ - [x] Unprefixed aliases still work and default to claude
39
+ - [x] Codex model defaults are defined
40
+ - [x] Config validation accepts new fields and rejects invalid ones
41
+ - [x] `--provider` flag available on `raf plan` and `raf do`
42
+ - [x] TypeScript compiles without errors
43
+
44
+ ## Notes
45
+ - One pre-existing test failure in `name-generator.test.ts` (hardcoded `haiku` expectation vs config default `sonnet` for `nameGeneration`) — not related to this task.
46
+
47
+ <promise>COMPLETE</promise>
@@ -0,0 +1,33 @@
1
+ # Task 2: Abstract CLI Runner Interface
2
+
3
+ ## Summary
4
+ Extracted a provider-agnostic runner interface from `ClaudeRunner`, separating CLI-specific logic from shared orchestration concerns. Both Claude and future Codex runners can now be used interchangeably through the `ICliRunner` interface and `createRunner()` factory.
5
+
6
+ ## Changes Made
7
+
8
+ ### New Files
9
+ - **`src/core/runner-types.ts`**: Shared types — `RunnerOptions` (renamed from `ClaudeRunnerOptions`), `RunnerConfig` (renamed from `ClaudeRunnerConfig`), `RunResult`
10
+ - **`src/core/runner-interface.ts`**: `ICliRunner` interface with `run()`, `runVerbose()`, `runInteractive()`, `runResume()`, `kill()`, `isRunning()`
11
+ - **`src/core/completion-detector.ts`**: Extracted `createCompletionDetector()`, `verifyCommit()`, `CompletionDetector` interface, and timing constants from `claude-runner.ts`
12
+ - **`src/core/runner-factory.ts`**: `createRunner(config)` factory function and `getProviderBinaryName()` utility; Codex throws "not yet implemented"
13
+
14
+ ### Modified Files
15
+ - **`src/core/claude-runner.ts`**: `ClaudeRunner` now implements `ICliRunner`; imports shared types from `runner-types.ts` and completion detection from `completion-detector.ts`; backward-compatible re-exports for `ClaudeRunnerOptions`, `ClaudeRunnerConfig`, `RunResult`, `CommitContext`, `CompletionDetector`, and timing constants
16
+ - **`src/core/shutdown-handler.ts`**: Changed from `ClaudeRunner` type to `ICliRunner`; added `registerRunner()` method with `registerClaudeRunner()` as deprecated alias
17
+ - **`src/commands/do.ts`**: Uses `createRunner()` instead of `new ClaudeRunner()`
18
+ - **`src/commands/plan.ts`**: Uses `createRunner()` instead of `new ClaudeRunner()`
19
+ - **`src/commands/config.ts`**: Uses `createRunner()` instead of `new ClaudeRunner()`
20
+
21
+ ## Acceptance Criteria
22
+ - [x] `ICliRunner` interface is defined and `ClaudeRunner` implements it
23
+ - [x] `createRunner()` factory works for claude provider
24
+ - [x] `do.ts` and `plan.ts` use the factory instead of direct `ClaudeRunner` construction
25
+ - [x] Completion detection is extracted and shared
26
+ - [x] All existing functionality works identically (no behavior changes)
27
+ - [x] TypeScript compiles without errors
28
+
29
+ ## Notes
30
+ - Backward-compatible re-exports in `claude-runner.ts` ensure existing tests continue to work without modification.
31
+ - The pre-existing `name-generator.test.ts` failure (hardcoded `haiku` expectation) remains — unrelated to this task.
32
+
33
+ <promise>COMPLETE</promise>
@@ -0,0 +1,38 @@
1
+ # Task 3: Implement Codex Runner
2
+
3
+ ## Summary
4
+ Implemented `CodexRunner` class that wraps the Codex CLI binary, providing the same `ICliRunner` interface as `ClaudeRunner`. Includes a dedicated JSONL stream renderer for Codex event types and factory integration.
5
+
6
+ ## Changes Made
7
+
8
+ ### New Files
9
+ - **`src/parsers/codex-stream-renderer.ts`**: Parses Codex JSONL events (`AgentMessage`, `CommandExecution`, `FileChange`, `McpToolCall`, `TodoList`) into `RenderResult` format shared with Claude's renderer. Unknown event types are skipped gracefully.
10
+ - **`src/core/codex-runner.ts`**: `CodexRunner` implementing `ICliRunner` with:
11
+ - `runInteractive()`: Spawns `codex -m <model> <combined_prompt>` via PTY with stdin/stdout passthrough
12
+ - `run()` / `runVerbose()`: Spawns `codex exec --full-auto --json --ephemeral -m <model> <prompt>` and parses JSONL output
13
+ - `runResume()`: Throws error (not supported by Codex CLI)
14
+ - `kill()` / `isRunning()`: Same graceful shutdown pattern as ClaudeRunner
15
+ - System prompt prepended to user message as `[System Instructions]...[User Request]...` format
16
+ - Shared completion detector for outcome file monitoring
17
+ - Context overflow detection
18
+ - Usage data gracefully omitted (Codex doesn't provide it in the same format)
19
+
20
+ ### Modified Files
21
+ - **`src/core/runner-factory.ts`**: Imports `CodexRunner` and returns `new CodexRunner(config)` for `provider: 'codex'` (replaces the "not yet implemented" error)
22
+
23
+ ## Acceptance Criteria
24
+ - [x] `CodexRunner` implements `ICliRunner` fully
25
+ - [x] `codex exec` spawns correctly with proper flags (`--full-auto --json --ephemeral -m`)
26
+ - [x] System prompt is prepended to user message correctly
27
+ - [x] JSONL events are parsed and displayed properly in verbose mode
28
+ - [x] Interactive mode works via PTY
29
+ - [x] Timeout and completion detection work
30
+ - [x] `createRunner({ provider: 'codex' })` returns a working CodexRunner
31
+ - [x] TypeScript compiles without errors
32
+
33
+ ## Notes
34
+ - Codex usage data is omitted (returns `undefined`) since Codex doesn't provide token usage in the same format as Claude's stream-json.
35
+ - The `--ephemeral` flag is used in non-interactive mode to avoid session persistence pollution.
36
+ - The pre-existing `name-generator.test.ts` failure remains — unrelated to this task.
37
+
38
+ <promise>COMPLETE</promise>
@@ -0,0 +1,50 @@
1
+ # Task 4: Update Prompts to be LLM-Agnostic
2
+
3
+ ## Summary
4
+ Removed Claude-specific language from all user-facing prompt templates, log messages, CLI descriptions, error messages, and doc comments so they work with any LLM provider.
5
+
6
+ ## Changes Made
7
+
8
+ ### Prompt Files
9
+ - **`src/prompts/planning.ts`**: Removed "for Claude" from task sizing guidance, changed "Claude model" to "model", updated doc comment
10
+ - **`src/prompts/amend.ts`**: Same changes as planning.ts — removed "Claude model" references, updated doc comment
11
+ - **`src/prompts/execution.ts`**: Already generic, no changes needed
12
+ - **`src/prompts/config-docs.md`**: Updated "Claude Model Selection" → "Model Selection", "Claude models" → "models", "Claude automatically commits" → "RAF automatically commits", "For Claude — Config Editing" → "Config Editing Session Instructions"
13
+
14
+ ### Core Files
15
+ - **`src/core/claude-runner.ts`**: Made all log messages generic ("Starting interactive session", "Session timed out", "Process exited", "Process stderr"), updated all doc comments
16
+ - **`src/core/pull-request.ts`**: Updated error messages ("CLI not found", "Process exited with code", "LLM returned empty output"), updated doc comments
17
+ - **`src/core/failure-analyzer.ts`**: Updated user-facing failure analysis text ("The API returned", "The LLM is stuck", "context grew too large for the LLM"), updated doc comments
18
+ - **`src/core/runner-interface.ts`**: No changes needed (already mentions both runners by class name)
19
+
20
+ ### Command Files
21
+ - **`src/index.ts`**: `'RAF - Automated Task Planning & Execution with Claude Code'` → `'RAF - Automated Task Planning & Execution'`
22
+ - **`src/commands/plan.ts`**: Updated description, option help text (`'Model to use'`, `'Skip permission prompts'`), log messages (`'Starting planning session...'`, `'The planner will interview you'`)
23
+ - **`src/commands/do.ts`**: Updated option help text (`'Show full LLM output'`, `'Model to use'`), updated comments
24
+ - **`src/commands/config.ts`**: Updated description (`'View and edit RAF configuration interactively'`), log messages, doc comments
25
+
26
+ ### Parser & Utility Files
27
+ - **`src/parsers/stream-renderer.ts`**: Updated doc comment ("LLM response" instead of "Claude's response")
28
+ - **`src/parsers/output-parser.ts`**: Updated doc comments
29
+ - **`src/utils/name-generator.ts`**: Updated all doc comments and debug log messages
30
+ - **`src/utils/validation.ts`**: Updated error message for missing CLI
31
+ - **`src/utils/token-tracker.ts`**: Updated comments ("CLI-provided" instead of "Claude-provided")
32
+
33
+ ## What Was NOT Changed (By Design)
34
+ - Internal variable/type names (`ClaudeRunner`, `claudeRunner`, `ClaudeModelAlias`, `callClaudeForPrBody`, etc.) — these are internal implementation details
35
+ - Literal `'claude'` as a provider value — it's a valid provider name
36
+ - Claude model ID strings/patterns (`claude-opus-4-6`) — these are actual model identifiers
37
+ - File names (`claude-runner.ts`) — internal implementation files for the Claude provider
38
+ - Backward-compatible re-exports
39
+
40
+ ## Acceptance Criteria
41
+ - [x] No user-facing prompt text mentions "Claude" specifically
42
+ - [x] Log messages are provider-generic or include provider name dynamically
43
+ - [x] CLI description is LLM-agnostic
44
+ - [x] All prompts still function correctly (no broken templates)
45
+ - [x] TypeScript compiles without errors
46
+
47
+ ## Notes
48
+ - The pre-existing `name-generator.test.ts` failure (hardcoded `haiku` expectation vs config default `sonnet`) remains — unrelated to this task.
49
+
50
+ <promise>COMPLETE</promise>
@@ -0,0 +1,33 @@
1
+ # Task 5: Update README and Documentation
2
+
3
+ ## Summary
4
+ Updated README.md to reflect dual-provider support for Claude Code CLI and OpenAI Codex CLI.
5
+
6
+ ## Changes Made
7
+
8
+ ### `README.md`
9
+ - Updated title: "RAF - Automated Task Planning & Execution with Claude Code" → "RAF - Automated Task Planning & Execution"
10
+ - Updated description to mention both Claude Code CLI and OpenAI Codex CLI
11
+ - Updated Requirements section to list both providers
12
+ - Updated Features list to add "Multi-Provider" bullet
13
+ - Updated generic language ("the model needs" instead of "Claude needs")
14
+ - Updated Quick Start comment from "Claude will interview you" to be generic
15
+ - Added `"provider": "claude"` to the config example
16
+ - Added **Provider Configuration** section with:
17
+ - `--provider codex` CLI usage examples
18
+ - Model spec format (plain aliases and `<provider>/<alias>` prefix)
19
+ - Codex-specific config example (`codexModels`, `codexEffortMapping`)
20
+ - Codex limitations (`--resume` not supported, system prompt prepend behavior)
21
+ - Updated Command Reference tables for `raf plan` and `raf do`:
22
+ - Added `-p, --provider <name>` row
23
+ - Added `-m, --model <name>` row to `raf plan`
24
+ - Updated model description to show harness-prefixed examples
25
+ - Updated the dangerous-mode note to be provider-generic
26
+
27
+ ## Acceptance Criteria
28
+ - [x] README reflects multi-provider support
29
+ - [x] New config fields are documented (`provider`, `codexModels`, `codexEffortMapping`)
30
+ - [x] `--provider` flag is documented for `raf do` and `raf plan`
31
+ - [x] Existing documentation is updated (not just appended)
32
+
33
+ <promise>COMPLETE</promise>
@@ -0,0 +1,25 @@
1
+ # Task 6: Unified Project Scanning in `raf do` Worktree Mode
2
+
3
+ ## Summary
4
+ Made `raf do --worktree` show both worktree and main-repo pending projects in the interactive picker, instead of only worktree projects.
5
+
6
+ ## Changes Made
7
+
8
+ ### `src/commands/do.ts`
9
+ - Rewrote `discoverAndPickWorktreeProject()` to use `getPendingWorktreeProjects()` and `getPendingProjects()` from `project-picker.ts` instead of reimplementing scanning logic
10
+ - Added main-repo pending projects to the picker (no threshold filter on main-repo projects)
11
+ - Threshold filter still applies to worktree projects only
12
+ - Deduplication: worktree versions take precedence over main-repo versions (same logic as `pickPendingProject()`)
13
+ - Uses `formatProjectChoice()` for consistent display with `[worktree]` suffix on worktree projects
14
+ - Changed return type to `{ worktreeRoot?: string; projectFolder: string }` — when a main-repo project is selected, `worktreeRoot` is undefined and the downstream worktree creation flow kicks in as normal
15
+ - Removed unused `parseProjectPrefix` import
16
+ - Added `formatProjectChoice` to static imports
17
+
18
+ ## Acceptance Criteria
19
+ - [x] `raf do --worktree` shows pending projects from both worktree and main repo
20
+ - [x] Duplicate projects are deduped with worktree version taking precedence
21
+ - [x] Selecting a main-repo project in worktree mode correctly creates/uses a worktree (worktreeRoot is undefined, falls through to existing worktree creation logic)
22
+ - [x] Existing worktree-only scanning behavior is replaced by unified scanning
23
+ - [x] No regressions in standard (non-worktree) mode — that code path is untouched
24
+
25
+ <promise>COMPLETE</promise>
@@ -0,0 +1,28 @@
1
+ # Task 7: Fix Plan Amend Prompt and Add Numeric ID Resolution
2
+
3
+ ## Summary
4
+ Removed the `!autoMode` gate from the existing-project detection check in `runPlanCommand()`, so `raf plan -y <name-or-id>` now correctly detects existing projects and prompts to amend instead of silently creating duplicates.
5
+
6
+ ## Changes Made
7
+
8
+ ### `src/commands/plan.ts`
9
+ - Removed `!autoMode` from the condition on line 121: `if (projectName && !autoMode)` → `if (projectName)`
10
+ - The existing project detection now runs regardless of `-y` flag
11
+ - The interactive prompt (`select()`) intentionally breaks out of auto mode for this safety check
12
+ - Numeric ID resolution was already supported by both `resolveProjectIdentifierWithDetails()` and `resolveWorktreeProjectByIdentifier()` — no additional changes needed
13
+
14
+ ## Acceptance Criteria
15
+ - [x] `raf plan -y <existing-project-name>` detects the existing project and prompts to amend
16
+ - [x] `raf plan -y <numeric-id>` (e.g., `raf plan -y 38`) detects the existing project and prompts to amend
17
+ - [x] `raf plan --amend <numeric-id>` resolves the project correctly and enters amend mode
18
+ - [x] `raf plan --amend <project-name>` continues to work as before
19
+ - [x] Resolution checks both main-repo and worktree projects in all cases
20
+ - [x] If user selects "amend", the amend flow runs correctly
21
+ - [x] If user selects "create new", a new project is created as before
22
+ - [x] Non-auto-mode behavior is unchanged
23
+
24
+ ## Notes
25
+ - The fix was a one-line change — the resolution utilities already supported numeric IDs; only the auto-mode guard was preventing the check from running.
26
+ - The `select()` prompt intentionally breaks auto mode for this safety check, as silently duplicating a project is almost always a mistake.
27
+
28
+ <promise>COMPLETE</promise>
@@ -0,0 +1,90 @@
1
+ ---
2
+ effort: high
3
+ ---
4
+ # Task: Config Schema & Provider Types
5
+
6
+ ## Objective
7
+ Extend the config system to support multiple CLI providers (claude, codex) with harness-prefixed model names and provider-specific model mappings.
8
+
9
+ ## Context
10
+ RAF currently hardcodes Claude as the only CLI provider. To support Codex CLI alongside Claude, we need to introduce a provider abstraction at the config/type level first. This is the foundation task — all other tasks depend on it.
11
+
12
+ ## Requirements
13
+ - Add a `provider` field to `RafConfig` (default: `'claude'`)
14
+ - Support harness-prefixed model format: `claude/opus`, `codex/gpt-5.4`, etc.
15
+ - Unprefixed aliases (`opus`, `sonnet`, `haiku`) default to `claude/` prefix — existing configs keep working
16
+ - Add Codex-specific model mappings and effort mappings
17
+ - Add provider to CLI command options (`--provider` flag)
18
+ - Config validation must accept both old (unprefixed) and new (prefixed) model formats
19
+
20
+ ## Implementation Steps
21
+
22
+ 1. **Update `src/types/config.ts`**:
23
+ - Add `HarnessProvider` type: `'claude' | 'codex'`
24
+ - Add `provider: HarnessProvider` to `RafConfig` with default `'claude'`
25
+ - Add `provider` to `DEFAULT_CONFIG`
26
+ - Rename `ClaudeModelAlias` to `ModelAlias` (keep backward-compat re-export)
27
+ - Rename `ClaudeModelName` to `ModelName` (keep backward-compat re-export)
28
+ - Add `CodexModelAlias` type for codex shorthand names (e.g., `'spark'`, `'codex'`, `'gpt54'`)
29
+ - Update `PlanCommandOptions` and `DoCommandOptions` to include `provider?: HarnessProvider`
30
+ - Add a `codexModels` config section parallel to `models`, with same scenario keys but codex model defaults
31
+ - Add a `codexEffortMapping` config section parallel to `effortMapping`
32
+
33
+ 2. **Add Codex model constants and defaults**:
34
+ - Default codex models config:
35
+ ```
36
+ codexModels: {
37
+ plan: 'gpt-5.3-codex',
38
+ execute: 'gpt-5.4',
39
+ nameGeneration: 'gpt-5.3-codex-spark',
40
+ failureAnalysis: 'gpt-5.3-codex-spark',
41
+ prGeneration: 'gpt-5.3-codex',
42
+ config: 'gpt-5.3-codex',
43
+ }
44
+ ```
45
+ - Default codex effort mapping:
46
+ ```
47
+ codexEffortMapping: {
48
+ low: 'gpt-5.3-codex-spark',
49
+ medium: 'gpt-5.3-codex',
50
+ high: 'gpt-5.4',
51
+ }
52
+ ```
53
+
54
+ 3. **Update `src/utils/config.ts`**:
55
+ - Update `isValidModelName()` to accept:
56
+ - Existing Claude aliases and full IDs (backward compat)
57
+ - Harness-prefixed format: `claude/<alias-or-full-id>` or `codex/<model-id>`
58
+ - Raw Codex model IDs (e.g., `gpt-5.4`, `gpt-5.3-codex-spark`)
59
+ - Update `resolveFullModelId()` to handle prefixed format — strip prefix and resolve
60
+ - Add `parseModelSpec(modelSpec: string): { provider: HarnessProvider; model: string }` that parses `codex/gpt-5.4` into parts
61
+ - Update `getModel()` to accept optional provider parameter and return from the right config section
62
+ - Update `resolveEffortToModel()` similarly
63
+ - Add Codex model tier ordering for ceiling comparison
64
+ - Update `getModelShortName()` to handle Codex models
65
+ - Update `MODEL_ALIAS_TO_FULL_ID` to include codex aliases if any
66
+ - Update `VALID_TOP_LEVEL_KEYS` set to include `'provider'`, `'codexModels'`, `'codexEffortMapping'`
67
+ - Update `validateConfig()` to validate the new fields
68
+ - Update `deepMerge()` to merge the new config sections
69
+
70
+ 4. **Update `src/index.ts`**:
71
+ - Add `--provider <provider>` option to `plan` and `do` commands
72
+ - Pass provider through to command handlers
73
+
74
+ 5. **Update `src/commands/do.ts`** and `src/commands/plan.ts`** (only the option plumbing):
75
+ - Accept `provider` from CLI options
76
+ - Thread it through to where model resolution happens
77
+
78
+ ## Acceptance Criteria
79
+ - [ ] `provider` field exists in config with `'claude'` default
80
+ - [ ] Harness-prefixed model names parse correctly (e.g., `codex/gpt-5.4`)
81
+ - [ ] Unprefixed aliases still work and default to claude
82
+ - [ ] Codex model defaults are defined
83
+ - [ ] Config validation accepts new fields and rejects invalid ones
84
+ - [ ] `--provider` flag available on `raf plan` and `raf do`
85
+ - [ ] TypeScript compiles without errors
86
+
87
+ ## Notes
88
+ - This task focuses on types, config, and validation only. The actual CLI runner abstraction is in the next task.
89
+ - Keep backward-compat re-exports for renamed types so other modules don't need immediate changes.
90
+ - The `codexModels` and `codexEffortMapping` config sections mirror the claude ones structurally, making the config symmetric.
@@ -0,0 +1,76 @@
1
+ ---
2
+ effort: high
3
+ ---
4
+ # Task: Abstract CLI Runner Interface
5
+
6
+ ## Objective
7
+ Extract a provider-agnostic runner interface from `ClaudeRunner` so both Claude and Codex can be used interchangeably.
8
+
9
+ ## Context
10
+ `ClaudeRunner` in `src/core/claude-runner.ts` currently contains both Claude-specific logic (CLI args, path discovery) and generic orchestration logic (timeout management, completion detection, PTY handling). We need to separate these concerns so Codex can plug in with its own CLI-specific logic while reusing the orchestration.
11
+
12
+ ## Dependencies
13
+ 1
14
+
15
+ ## Requirements
16
+ - Create an abstract `CliRunner` interface/base class that both providers implement
17
+ - The interface must support: `run()`, `runVerbose()`, `runInteractive()`, `runResume()`, `kill()`, `isRunning()`
18
+ - Keep `RunResult` and `ClaudeRunnerOptions` as shared types (rename options to `RunnerOptions`)
19
+ - Completion detection logic (grace period, commit verification) should remain shared
20
+ - Create a factory function that returns the correct runner based on provider config
21
+ - Existing code that uses `ClaudeRunner` should work with minimal changes (ideally just type changes)
22
+
23
+ ## Implementation Steps
24
+
25
+ 1. **Create `src/core/runner-types.ts`**:
26
+ - Move shared types here: `RunnerOptions` (renamed from `ClaudeRunnerOptions`), `RunnerConfig` (renamed from `ClaudeRunnerConfig`), `RunResult`
27
+ - Add `provider: HarnessProvider` to `RunnerConfig`
28
+ - Re-export from `claude-runner.ts` for backward compat
29
+
30
+ 2. **Create `src/core/runner-interface.ts`**:
31
+ - Define the `ICliRunner` interface:
32
+ ```typescript
33
+ export interface ICliRunner {
34
+ runInteractive(systemPrompt: string, userMessage: string, options?: RunnerOptions): Promise<number>;
35
+ runResume(options?: RunnerOptions): Promise<number>;
36
+ run(prompt: string, options?: RunnerOptions): Promise<RunResult>;
37
+ runVerbose(prompt: string, options?: RunnerOptions): Promise<RunResult>;
38
+ kill(): void;
39
+ isRunning(): boolean;
40
+ }
41
+ ```
42
+
43
+ 3. **Refactor `src/core/claude-runner.ts`**:
44
+ - `ClaudeRunner` implements `ICliRunner`
45
+ - Keep all existing Claude-specific logic (arg building, `which claude`, stream-json parsing)
46
+ - Import shared types from `runner-types.ts`
47
+ - The completion detection helpers (`createCompletionDetector`, `verifyCommit`, etc.) stay in this file or move to a shared utils file since Codex will need them too
48
+
49
+ 4. **Create `src/core/runner-factory.ts`**:
50
+ - Export `createRunner(config: RunnerConfig): ICliRunner`
51
+ - For `provider: 'claude'` → return `new ClaudeRunner(config)`
52
+ - For `provider: 'codex'` → throw for now with "Codex runner not yet implemented" (task 3 will implement it)
53
+ - Export `getProviderBinaryName(provider: HarnessProvider): string` utility
54
+
55
+ 5. **Extract completion detection to `src/core/completion-detector.ts`**:
56
+ - Move `createCompletionDetector`, `verifyCommit`, `CompletionDetector` interface, and related constants
57
+ - Both Claude and Codex runners will import from here
58
+
59
+ 6. **Update consumers**:
60
+ - `src/commands/do.ts`: Use `createRunner()` instead of `new ClaudeRunner()`; pass provider from options
61
+ - `src/commands/plan.ts`: Same
62
+ - `src/core/pull-request.ts`: Will need provider-aware runner creation (can stay claude-only for now with a TODO)
63
+ - Update imports as needed
64
+
65
+ ## Acceptance Criteria
66
+ - [ ] `ICliRunner` interface is defined and `ClaudeRunner` implements it
67
+ - [ ] `createRunner()` factory works for claude provider
68
+ - [ ] `do.ts` and `plan.ts` use the factory instead of direct `ClaudeRunner` construction
69
+ - [ ] Completion detection is extracted and shared
70
+ - [ ] All existing functionality works identically (no behavior changes)
71
+ - [ ] TypeScript compiles without errors
72
+
73
+ ## Notes
74
+ - This is a refactoring task — no new features, just structural changes to enable task 3.
75
+ - The `runResume()` method is Claude-specific (Codex may not support session resume). The Codex implementation can throw "not supported" for this method.
76
+ - Keep the refactoring minimal — don't redesign the whole API, just extract the interface.
@@ -0,0 +1,94 @@
1
+ ---
2
+ effort: high
3
+ ---
4
+ # Task: Implement Codex Runner
5
+
6
+ ## Objective
7
+ Implement `CodexRunner` that wraps the Codex CLI (`codex` binary) with the same interface as `ClaudeRunner`.
8
+
9
+ ## Context
10
+ With the runner interface extracted in task 2, we can now implement the Codex-specific runner. Codex CLI has different flags, output formats, and interaction patterns than Claude CLI. Key differences:
11
+ - Non-interactive: `codex exec --full-auto --json` (vs Claude's `-p --output-format stream-json`)
12
+ - Interactive: `codex` TUI via PTY (vs Claude's PTY)
13
+ - No `--system-prompt` flag — system prompt must be prepended to user message
14
+ - JSONL output with different event types (CommandExecution, FileChange, AgentMessage, etc.)
15
+ - Model flag: `-m` (vs `--model`)
16
+ - Permission bypass: `--full-auto` (vs `--dangerously-skip-permissions`)
17
+
18
+ ## Dependencies
19
+ 1, 2
20
+
21
+ ## Requirements
22
+ - Implement `CodexRunner` class implementing `ICliRunner`
23
+ - Handle system prompt by prepending it to the user message
24
+ - Parse Codex JSONL events into the shared `RunResult` format
25
+ - Support both interactive (PTY) and non-interactive (exec) modes
26
+ - Discover `codex` binary via `which codex`
27
+ - Build correct CLI arguments for Codex
28
+ - Stream renderer for Codex JSONL events (separate from Claude's stream-renderer)
29
+
30
+ ## Implementation Steps
31
+
32
+ 1. **Create `src/parsers/codex-stream-renderer.ts`**:
33
+ - Parse Codex JSONL events (one JSON object per line)
34
+ - Map Codex event types to `RenderResult` (same interface as Claude's renderer):
35
+ - `AgentMessage` → text content + display
36
+ - `CommandExecution` → tool display (show command + exit code)
37
+ - `FileChange` → tool display (show file path + change kind)
38
+ - `McpToolCall` → tool display
39
+ - `TodoList` → skip or minimal display
40
+ - Extract any usage/cost data from Codex events if available
41
+ - Export `renderCodexStreamEvent(line: string): RenderResult`
42
+
43
+ 2. **Create `src/core/codex-runner.ts`**:
44
+ - Implement `ICliRunner` interface
45
+ - `getCodexPath()`: `execSync('which codex', ...)`
46
+ - Constructor takes `RunnerConfig` (model, provider)
47
+
48
+ 3. **Implement `runInteractive()`**:
49
+ - Spawn `codex` (no `exec` subcommand) via PTY
50
+ - Build args: `-m <model>`
51
+ - Combine system prompt and user message: `"[System Instructions]\n\n{systemPrompt}\n\n[User Request]\n\n{userMessage}"`
52
+ - Pass combined message as positional argument
53
+ - Handle PTY stdin/stdout passthrough (same pattern as ClaudeRunner)
54
+ - Handle cleanup on exit
55
+
56
+ 4. **Implement `run()` / `runVerbose()` (non-interactive execution)**:
57
+ - Spawn: `codex exec --full-auto --json -m <model> <combined_prompt>`
58
+ - Build the combined prompt (system + user prompt prepended)
59
+ - Parse JSONL stdout line by line using `renderCodexStreamEvent()`
60
+ - Accumulate text content for output
61
+ - Apply timeout logic (same pattern as ClaudeRunner)
62
+ - Use shared completion detector for outcome file monitoring
63
+ - Return `RunResult` with output, exitCode, timedOut, contextOverflow
64
+
65
+ 5. **Implement `runResume()`**:
66
+ - Throw `Error('Session resume is not supported by Codex CLI')`
67
+
68
+ 6. **Implement `kill()` and `isRunning()`**:
69
+ - Same pattern as ClaudeRunner (Ctrl+C via PTY write, SIGTERM fallback)
70
+
71
+ 7. **Update `src/core/runner-factory.ts`**:
72
+ - Import `CodexRunner`
73
+ - Return `new CodexRunner(config)` for `provider: 'codex'`
74
+
75
+ 8. **Handle Codex-specific edge cases**:
76
+ - Codex may not report token usage in the same way — handle missing usage data gracefully
77
+ - Codex `--json` output might include events we don't care about — filter/skip unknown types
78
+ - `--ephemeral` flag to avoid session persistence pollution
79
+
80
+ ## Acceptance Criteria
81
+ - [ ] `CodexRunner` implements `ICliRunner` fully
82
+ - [ ] `codex exec` spawns correctly with proper flags
83
+ - [ ] System prompt is prepended to user message correctly
84
+ - [ ] JSONL events are parsed and displayed properly in verbose mode
85
+ - [ ] Interactive mode works via PTY
86
+ - [ ] Timeout and completion detection work
87
+ - [ ] `createRunner({ provider: 'codex' })` returns a working CodexRunner
88
+ - [ ] TypeScript compiles without errors
89
+
90
+ ## Notes
91
+ - Test by running `raf do <project> --provider codex` once integrated
92
+ - Codex may not provide `total_cost_usd` in the same format — handle gracefully with zeros
93
+ - The combined prompt approach (prepending system prompt) means Codex sees one large message. This is simpler but less structured than Claude's separate system prompt. It was chosen for simplicity per user decision.
94
+ - Use `--ephemeral` flag in non-interactive mode to keep things clean
@@ -0,0 +1,70 @@
1
+ ---
2
+ effort: medium
3
+ ---
4
+ # Task: Update Prompts to be LLM-Agnostic
5
+
6
+ ## Objective
7
+ Remove Claude-specific language from all prompt templates so they work with any LLM provider.
8
+
9
+ ## Context
10
+ The prompts in `src/prompts/` contain Claude-specific references like "Claude Code", "Claude CLI", "Claude session", and "Claude model". These need to be made generic since the prompts will now be sent to either Claude or Codex.
11
+
12
+ ## Dependencies
13
+ 1
14
+
15
+ ## Requirements
16
+ - Replace Claude-specific references in all prompt files with generic alternatives
17
+ - Update the execution prompt, planning prompt, and amend prompt
18
+ - Keep the prompts' functional content identical — only change naming/branding
19
+ - Update any log messages that reference "Claude" in the runner and command files
20
+
21
+ ## Implementation Steps
22
+
23
+ 1. **Update `src/prompts/execution.ts`**:
24
+ - Replace "Claude" references in prompt text with generic terms
25
+ - `"You are executing a planned task for RAF"` — already generic, keep as-is
26
+ - Check for any Claude-specific tool names or behaviors mentioned in the prompt
27
+
28
+ 2. **Update `src/prompts/planning.ts`**:
29
+ - `"Take roughly 10-30 minutes of work for Claude"` → `"Take roughly 10-30 minutes of work"`
30
+ - `"which Claude model will execute the task"` → `"which model will execute the task"`
31
+ - Review entire planning prompt for Claude-specific language
32
+
33
+ 3. **Update `src/prompts/amend.ts`**:
34
+ - Same treatment as planning prompt
35
+ - `"which Claude model will execute the task"` → `"which model will execute the task"`
36
+
37
+ 4. **Update log messages in `src/core/claude-runner.ts`**:
38
+ - `"Starting interactive Claude session"` → `"Starting interactive session"` or include provider name dynamically
39
+ - `"Starting Claude execution session"` → `"Starting execution session"`
40
+ - `"Claude session timed out"` → `"Session timed out"`
41
+ - `"terminating Claude process"` → `"terminating process"`
42
+ - `"Claude exited with code"` → `"Process exited with code"`
43
+ - `"Claude stderr"` → `"Process stderr"`
44
+
45
+ 5. **Update `src/core/pull-request.ts`**:
46
+ - `callClaudeForPrBody` → `callLlmForPrBody` (or keep internal name, just update error messages)
47
+ - `"Claude CLI not found"` → make provider-aware or generic
48
+
49
+ 6. **Update `src/index.ts`**:
50
+ - `.description('RAF - Automated Task Planning & Execution with Claude Code')` → `'RAF - Automated Task Planning & Execution'`
51
+
52
+ 7. **Update `src/parsers/stream-renderer.ts`** doc comments:
53
+ - `"Event types from claude -p --output-format stream-json --verbose"` → make generic or note it's Claude-specific
54
+
55
+ 8. **Scan for remaining references**:
56
+ - Search entire `src/` for strings containing "claude" (case-insensitive)
57
+ - Skip: file names that will be addressed by the runner refactoring, type names with backward-compat re-exports
58
+ - Update any user-facing messages, error messages, and comments
59
+
60
+ ## Acceptance Criteria
61
+ - [ ] No user-facing prompt text mentions "Claude" specifically
62
+ - [ ] Log messages are provider-generic or include provider name dynamically
63
+ - [ ] CLI description is LLM-agnostic
64
+ - [ ] All prompts still function correctly (no broken templates)
65
+ - [ ] TypeScript compiles without errors
66
+
67
+ ## Notes
68
+ - Internal code comments mentioning "Claude" are lower priority but should be updated where easy
69
+ - File names like `claude-runner.ts` don't need to change — they're internal implementation files for the Claude provider
70
+ - The planning prompt is also used as the system prompt for this very planning session, but that's fine — it's a template, not a runtime concern
@@ -0,0 +1,52 @@
1
+ ---
2
+ effort: low
3
+ ---
4
+ # Task: Update README and Documentation
5
+
6
+ ## Objective
7
+ Update README.md to reflect multi-provider support, new config options, and the `--provider` CLI flag.
8
+
9
+ ## Context
10
+ The README currently describes RAF as a Claude Code-only tool. With Codex support added, documentation needs to reflect the dual-provider capability.
11
+
12
+ ## Dependencies
13
+ 1, 2, 3, 4
14
+
15
+ ## Requirements
16
+ - Document the `provider` config field and `--provider` CLI flag
17
+ - Document harness-prefixed model format (`claude/opus`, `codex/gpt-5.4`)
18
+ - Document Codex-specific configuration (codexModels, codexEffortMapping)
19
+ - Update existing examples that reference Claude-only setup
20
+ - Keep README concise — don't over-document
21
+
22
+ ## Implementation Steps
23
+
24
+ 1. **Update the project description** at the top of README.md:
25
+ - Mention support for both Claude Code CLI and OpenAI Codex CLI
26
+
27
+ 2. **Add a Provider Configuration section**:
28
+ - Explain `provider` config field (default: `claude`)
29
+ - Show `--provider codex` CLI usage
30
+ - Explain model prefix format with examples
31
+
32
+ 3. **Update the Configuration section**:
33
+ - Add `codexModels` and `codexEffortMapping` to config example
34
+ - Show harness-prefixed model examples
35
+
36
+ 4. **Update command examples**:
37
+ - Add `--provider` flag to `raf do` and `raf plan` examples
38
+ - Show mixed provider usage
39
+
40
+ 5. **Note limitations**:
41
+ - Codex doesn't support `--resume` (session resume)
42
+ - System prompt is prepended to user message for Codex
43
+
44
+ ## Acceptance Criteria
45
+ - [ ] README reflects multi-provider support
46
+ - [ ] New config fields are documented
47
+ - [ ] `--provider` flag is documented for relevant commands
48
+ - [ ] Existing documentation is updated (not just appended)
49
+
50
+ ## Notes
51
+ - Keep the README focused on usage, not implementation details
52
+ - Don't document internal architecture changes (runner interface, etc.)