phase-loop-runtime 0.2.0__py3-none-any.whl

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 (370) hide show
  1. phase_loop_runtime/__init__.py +20 -0
  2. phase_loop_runtime/_contract_docs/phase-loop/extraction-readiness.md +90 -0
  3. phase_loop_runtime/_contract_docs/phase-loop/granular-execution-policy.md +137 -0
  4. phase_loop_runtime/_contract_docs/phase-loop/harness-capability-matrix.md +510 -0
  5. phase_loop_runtime/_contract_docs/phase-loop/harness-skill-matrix.md +125 -0
  6. phase_loop_runtime/_contract_docs/phase-loop/harness-substrate-manifest.md +232 -0
  7. phase_loop_runtime/_contract_docs/phase-loop/pi-loop-control.md +247 -0
  8. phase_loop_runtime/_contract_docs/phase-loop/protocol.md +2759 -0
  9. phase_loop_runtime/_contract_docs/phase-loop/runtime-boundary.md +289 -0
  10. phase_loop_runtime/_contract_docs/phase-loop/spec-discovery-roots.md +47 -0
  11. phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-governed-pipeline.md +42 -0
  12. phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-portal-projection.md +34 -0
  13. phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-regenesis.md +29 -0
  14. phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-report.md +32 -0
  15. phase_loop_runtime/_contract_docs/runtime/verification-evidence-contract.md +52 -0
  16. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/commands.txt +2 -0
  17. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/manifest.json +16 -0
  18. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/mixed.json +5 -0
  19. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-provider-timeout/manifest.json +16 -0
  20. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-provider-timeout/timeout-note.txt +2 -0
  21. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-redacted-summary/manifest.json +16 -0
  22. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-redacted-summary/redacted-summary.json +6 -0
  23. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-small-sample/manifest.json +16 -0
  24. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-small-sample/sample.json +7 -0
  25. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-threshold-edge/edge.txt +2 -0
  26. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-threshold-edge/manifest.json +16 -0
  27. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/manifest.json +16 -0
  28. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-a.txt +1 -0
  29. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-b.txt +1 -0
  30. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-c.txt +1 -0
  31. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-missing-references/claimed-results.json +5 -0
  32. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-missing-references/manifest.json +16 -0
  33. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-subtle-low-variance/manifest.json +16 -0
  34. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-subtle-low-variance/metrics.json +9 -0
  35. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-templated-prose/findings.md +10 -0
  36. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-templated-prose/manifest.json +16 -0
  37. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/manifest.json +16 -0
  38. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/scores.json +4 -0
  39. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/summary.txt +1 -0
  40. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/bundle-check.json +8 -0
  41. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/manifest.json +16 -0
  42. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/operator-note.txt +2 -0
  43. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/events-sample.jsonl +3 -0
  44. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/manifest.json +16 -0
  45. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/receipt.txt +1 -0
  46. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/evidence.json +13 -0
  47. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/manifest.json +16 -0
  48. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/summary.txt +2 -0
  49. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/manifest.json +16 -0
  50. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/matrix.json +9 -0
  51. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/notes.md +4 -0
  52. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/console-summary.txt +2 -0
  53. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/manifest.json +16 -0
  54. phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/screenshot-standin.ppm +5 -0
  55. phase_loop_runtime/adoption_bundle.py +273 -0
  56. phase_loop_runtime/advisor_board/CONTRACTS.md +257 -0
  57. phase_loop_runtime/advisor_board/__init__.py +288 -0
  58. phase_loop_runtime/advisor_board/backing.py +137 -0
  59. phase_loop_runtime/advisor_board/backing_omnigent.py +498 -0
  60. phase_loop_runtime/advisor_board/config.py +225 -0
  61. phase_loop_runtime/advisor_board/events.py +115 -0
  62. phase_loop_runtime/advisor_board/fixtures/advisor-boards.example.toml +59 -0
  63. phase_loop_runtime/advisor_board/fixtures.py +91 -0
  64. phase_loop_runtime/advisor_board/harness_mapping.py +125 -0
  65. phase_loop_runtime/advisor_board/matrix.py +146 -0
  66. phase_loop_runtime/advisor_board/observability.py +481 -0
  67. phase_loop_runtime/advisor_board/presets.py +188 -0
  68. phase_loop_runtime/advisor_board/registries.py +309 -0
  69. phase_loop_runtime/advisor_board/resolver.py +253 -0
  70. phase_loop_runtime/advisor_board/schema.py +269 -0
  71. phase_loop_runtime/advisor_board/standin.py +166 -0
  72. phase_loop_runtime/advisor_board/validation.py +159 -0
  73. phase_loop_runtime/agent_runtime_provider.py +676 -0
  74. phase_loop_runtime/baml_modular.py +656 -0
  75. phase_loop_runtime/baml_src/dotfiles_adoption_manifest.baml +37 -0
  76. phase_loop_runtime/baml_src/dotfiles_c4_document.baml +14 -0
  77. phase_loop_runtime/baml_src/dotfiles_plan_manifest.baml +50 -0
  78. phase_loop_runtime/baml_src/dotfiles_runtime_projection.baml +16 -0
  79. phase_loop_runtime/baml_src/dotfiles_task_catalog.baml +20 -0
  80. phase_loop_runtime/baml_src/emit_phase_closeout.baml +86 -0
  81. phase_loop_runtime/baml_src/evaluate_suspected_fake_evidence.baml +36 -0
  82. phase_loop_runtime/baml_src/verification_evidence.baml +40 -0
  83. phase_loop_runtime/broker.py +181 -0
  84. phase_loop_runtime/build_bundle.py +294 -0
  85. phase_loop_runtime/capability_registry.py +835 -0
  86. phase_loop_runtime/classifier.py +87 -0
  87. phase_loop_runtime/claude_agent_view.py +625 -0
  88. phase_loop_runtime/claude_channel_sidecar.py +1086 -0
  89. phase_loop_runtime/cli.py +2599 -0
  90. phase_loop_runtime/closeout.py +865 -0
  91. phase_loop_runtime/closeout_classifier.py +120 -0
  92. phase_loop_runtime/closeout_evidence_audit.py +112 -0
  93. phase_loop_runtime/closeout_validation.py +144 -0
  94. phase_loop_runtime/closeout_validators.py +203 -0
  95. phase_loop_runtime/consiliency_gates.py +374 -0
  96. phase_loop_runtime/consiliency_ingest.py +399 -0
  97. phase_loop_runtime/consiliency_layout.py +176 -0
  98. phase_loop_runtime/consiliency_scaffold.py +305 -0
  99. phase_loop_runtime/cross_repo_channel.py +331 -0
  100. phase_loop_runtime/discovery.py +2368 -0
  101. phase_loop_runtime/dispatch_lock.py +167 -0
  102. phase_loop_runtime/doc_delta_validator.py +98 -0
  103. phase_loop_runtime/docs_audit.py +285 -0
  104. phase_loop_runtime/docs_freshness.py +468 -0
  105. phase_loop_runtime/docs_surfaces.py +150 -0
  106. phase_loop_runtime/dotfiles_profile_plugin.py +96 -0
  107. phase_loop_runtime/events.py +154 -0
  108. phase_loop_runtime/events_migration.py +96 -0
  109. phase_loop_runtime/evidence_audit.py +1082 -0
  110. phase_loop_runtime/evidence_audit_config.py +172 -0
  111. phase_loop_runtime/fleet_map.py +426 -0
  112. phase_loop_runtime/fleet_metrics.py +298 -0
  113. phase_loop_runtime/fleet_metrics_export.py +196 -0
  114. phase_loop_runtime/git_discipline.py +479 -0
  115. phase_loop_runtime/git_ops.py +122 -0
  116. phase_loop_runtime/git_topology.py +252 -0
  117. phase_loop_runtime/governed_bundle.py +137 -0
  118. phase_loop_runtime/governed_premerge.py +219 -0
  119. phase_loop_runtime/governed_review.py +264 -0
  120. phase_loop_runtime/handoff.py +932 -0
  121. phase_loop_runtime/handoff_path.py +14 -0
  122. phase_loop_runtime/injection.py +740 -0
  123. phase_loop_runtime/install_status.py +88 -0
  124. phase_loop_runtime/lane_scheduler.py +317 -0
  125. phase_loop_runtime/launcher.py +2760 -0
  126. phase_loop_runtime/lease_store.py +553 -0
  127. phase_loop_runtime/maintenance.py +401 -0
  128. phase_loop_runtime/migrate_handoffs.py +201 -0
  129. phase_loop_runtime/models.py +2144 -0
  130. phase_loop_runtime/observability.py +1290 -0
  131. phase_loop_runtime/panel_invoker.py +1638 -0
  132. phase_loop_runtime/phase_loop_drift_audit.py +388 -0
  133. phase_loop_runtime/phase_worktree_executor.py +433 -0
  134. phase_loop_runtime/pipeline_adapter/__init__.py +12 -0
  135. phase_loop_runtime/pipeline_adapter/branch_ops.py +274 -0
  136. phase_loop_runtime/pipeline_adapter/flag.py +55 -0
  137. phase_loop_runtime/pipeline_adapter/markers.py +13 -0
  138. phase_loop_runtime/pipeline_adapter/merge_policy.py +72 -0
  139. phase_loop_runtime/pipeline_adapter/ratification.py +100 -0
  140. phase_loop_runtime/pipeline_adapter/sibling_matcher.py +123 -0
  141. phase_loop_runtime/plan_ir.py +523 -0
  142. phase_loop_runtime/plan_manifest.py +415 -0
  143. phase_loop_runtime/planner_validation.py +176 -0
  144. phase_loop_runtime/profiles.py +462 -0
  145. phase_loop_runtime/prompts.py +365 -0
  146. phase_loop_runtime/provenance.py +165 -0
  147. phase_loop_runtime/publishing.py +339 -0
  148. phase_loop_runtime/py.typed +1 -0
  149. phase_loop_runtime/reconcile.py +1550 -0
  150. phase_loop_runtime/redaction.py +184 -0
  151. phase_loop_runtime/reflection_sync.py +293 -0
  152. phase_loop_runtime/release_guard.py +186 -0
  153. phase_loop_runtime/render.py +432 -0
  154. phase_loop_runtime/repo_validation.py +427 -0
  155. phase_loop_runtime/review_summary.py +150 -0
  156. phase_loop_runtime/roadmap_lint.py +425 -0
  157. phase_loop_runtime/route_log.py +59 -0
  158. phase_loop_runtime/route_policy/__init__.py +11 -0
  159. phase_loop_runtime/route_policy/fixtures/route_selection.golden.json +263 -0
  160. phase_loop_runtime/runner.py +8400 -0
  161. phase_loop_runtime/runtime_paths.py +225 -0
  162. phase_loop_runtime/runtime_projection.py +113 -0
  163. phase_loop_runtime/runtime_resources.py +36 -0
  164. phase_loop_runtime/schema_export.py +292 -0
  165. phase_loop_runtime/schemas/phase_loop_closeout.schema.json +366 -0
  166. phase_loop_runtime/skill_install.py +176 -0
  167. phase_loop_runtime/skill_inventory.py +662 -0
  168. phase_loop_runtime/skill_paths.py +42 -0
  169. phase_loop_runtime/skill_sources_plugin.py +37 -0
  170. phase_loop_runtime/skills_bundle/claude-advisor-board/README.md +1 -0
  171. phase_loop_runtime/skills_bundle/claude-advisor-board/SKILL.md +38 -0
  172. phase_loop_runtime/skills_bundle/claude-advisor-panel/README.md +1 -0
  173. phase_loop_runtime/skills_bundle/claude-advisor-panel/SKILL.md +38 -0
  174. phase_loop_runtime/skills_bundle/claude-execute-detailed/README.md +1 -0
  175. phase_loop_runtime/skills_bundle/claude-execute-detailed/SKILL.md +152 -0
  176. phase_loop_runtime/skills_bundle/claude-execute-phase/README.md +1 -0
  177. phase_loop_runtime/skills_bundle/claude-execute-phase/SKILL.md +745 -0
  178. phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/allocate_worktree_name.sh +33 -0
  179. phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/audit_lane_file_touches.py +197 -0
  180. phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/cleanup_lane_worktrees.sh +103 -0
  181. phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/parent_tree_leakage_check.sh +125 -0
  182. phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/post_merge_import_smoke.sh +62 -0
  183. phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/pre_merge_destructiveness_check.sh +127 -0
  184. phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/resolve_branch_from_sha.sh +51 -0
  185. phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/state.py +274 -0
  186. phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/sweep_stale_worktrees.sh +62 -0
  187. phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/team_teardown.sh +32 -0
  188. phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/validate_plan_doc.py +642 -0
  189. phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/verify_harness.sh +96 -0
  190. phase_loop_runtime/skills_bundle/claude-phase-loop/README.md +1 -0
  191. phase_loop_runtime/skills_bundle/claude-phase-loop/SKILL.md +115 -0
  192. phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/README.md +1 -0
  193. phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/SKILL.md +439 -0
  194. phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/assets/review_prompt.md +19 -0
  195. phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/parallelization-heuristics.md +111 -0
  196. phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/roadmap-template.md +193 -0
  197. phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/scripts/validate_roadmap.py +32 -0
  198. phase_loop_runtime/skills_bundle/claude-plan-detailed/README.md +1 -0
  199. phase_loop_runtime/skills_bundle/claude-plan-detailed/SKILL.md +334 -0
  200. phase_loop_runtime/skills_bundle/claude-plan-detailed/assets/review_prompt.md +25 -0
  201. phase_loop_runtime/skills_bundle/claude-plan-phase/README.md +1 -0
  202. phase_loop_runtime/skills_bundle/claude-plan-phase/SKILL.md +776 -0
  203. phase_loop_runtime/skills_bundle/claude-plan-phase/assets/review_prompt.md +17 -0
  204. phase_loop_runtime/skills_bundle/claude-plan-phase/scripts/validate_plan_doc.py +1092 -0
  205. phase_loop_runtime/skills_bundle/claude-run-train/README.md +1 -0
  206. phase_loop_runtime/skills_bundle/claude-run-train/SKILL.md +75 -0
  207. phase_loop_runtime/skills_bundle/claude-skill-editor/README.md +1 -0
  208. phase_loop_runtime/skills_bundle/claude-skill-editor/SKILL.md +243 -0
  209. phase_loop_runtime/skills_bundle/claude-skill-editor/assets/editor_prompt.md +72 -0
  210. phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/README.md +1 -0
  211. phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/SKILL.md +249 -0
  212. phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/assets/aggregator_prompt.md +79 -0
  213. phase_loop_runtime/skills_bundle/claude-task-contextualizer/README.md +1 -0
  214. phase_loop_runtime/skills_bundle/claude-task-contextualizer/SKILL.md +74 -0
  215. phase_loop_runtime/skills_bundle/claude-task-contextualizer/references/task-templates.md +103 -0
  216. phase_loop_runtime/skills_bundle/codex-advisor-board/README.md +1 -0
  217. phase_loop_runtime/skills_bundle/codex-advisor-board/SKILL.md +38 -0
  218. phase_loop_runtime/skills_bundle/codex-advisor-panel/README.md +1 -0
  219. phase_loop_runtime/skills_bundle/codex-advisor-panel/SKILL.md +38 -0
  220. phase_loop_runtime/skills_bundle/codex-execute-detailed/README.md +1 -0
  221. phase_loop_runtime/skills_bundle/codex-execute-detailed/SKILL.md +154 -0
  222. phase_loop_runtime/skills_bundle/codex-execute-phase/README.md +1 -0
  223. phase_loop_runtime/skills_bundle/codex-execute-phase/SKILL.md +231 -0
  224. phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/allocate_worktree_name.sh +33 -0
  225. phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/audit_lane_file_touches.py +197 -0
  226. phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/cleanup_lane_worktrees.sh +103 -0
  227. phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/parent_tree_leakage_check.sh +125 -0
  228. phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/post_merge_import_smoke.sh +62 -0
  229. phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/pre_merge_destructiveness_check.sh +127 -0
  230. phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/resolve_branch_from_sha.sh +51 -0
  231. phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/state.py +274 -0
  232. phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/sweep_stale_worktrees.sh +62 -0
  233. phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/team_teardown.sh +32 -0
  234. phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/validate_plan_doc.py +642 -0
  235. phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/verify_harness.sh +96 -0
  236. phase_loop_runtime/skills_bundle/codex-phase-loop/README.md +1 -0
  237. phase_loop_runtime/skills_bundle/codex-phase-loop/SKILL.md +248 -0
  238. phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/README.md +1 -0
  239. phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/SKILL.md +150 -0
  240. phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/assets/review_prompt.md +19 -0
  241. phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/references/parallelization-heuristics.md +111 -0
  242. phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/references/roadmap-template.md +193 -0
  243. phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/scripts/validate_roadmap.py +32 -0
  244. phase_loop_runtime/skills_bundle/codex-plan-detailed/README.md +1 -0
  245. phase_loop_runtime/skills_bundle/codex-plan-detailed/SKILL.md +119 -0
  246. phase_loop_runtime/skills_bundle/codex-plan-detailed/assets/review_prompt.md +25 -0
  247. phase_loop_runtime/skills_bundle/codex-plan-phase/README.md +1 -0
  248. phase_loop_runtime/skills_bundle/codex-plan-phase/SKILL.md +307 -0
  249. phase_loop_runtime/skills_bundle/codex-plan-phase/assets/review_prompt.md +17 -0
  250. phase_loop_runtime/skills_bundle/codex-plan-phase/scripts/validate_plan_doc.py +1092 -0
  251. phase_loop_runtime/skills_bundle/codex-run-train/README.md +1 -0
  252. phase_loop_runtime/skills_bundle/codex-run-train/SKILL.md +75 -0
  253. phase_loop_runtime/skills_bundle/codex-skill-editor/README.md +1 -0
  254. phase_loop_runtime/skills_bundle/codex-skill-editor/SKILL.md +94 -0
  255. phase_loop_runtime/skills_bundle/codex-skill-editor/assets/editor_prompt.md +72 -0
  256. phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/README.md +1 -0
  257. phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/SKILL.md +114 -0
  258. phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/assets/aggregator_prompt.md +79 -0
  259. phase_loop_runtime/skills_bundle/codex-task-contextualizer/README.md +1 -0
  260. phase_loop_runtime/skills_bundle/codex-task-contextualizer/SKILL.md +102 -0
  261. phase_loop_runtime/skills_bundle/codex-task-contextualizer/references/task-templates.md +103 -0
  262. phase_loop_runtime/skills_bundle/gemini-advisor-board/README.md +1 -0
  263. phase_loop_runtime/skills_bundle/gemini-advisor-board/SKILL.md +38 -0
  264. phase_loop_runtime/skills_bundle/gemini-advisor-panel/README.md +1 -0
  265. phase_loop_runtime/skills_bundle/gemini-advisor-panel/SKILL.md +38 -0
  266. phase_loop_runtime/skills_bundle/gemini-execute-detailed/README.md +1 -0
  267. phase_loop_runtime/skills_bundle/gemini-execute-detailed/SKILL.md +144 -0
  268. phase_loop_runtime/skills_bundle/gemini-execute-phase/README.md +1 -0
  269. phase_loop_runtime/skills_bundle/gemini-execute-phase/SKILL.md +198 -0
  270. phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/allocate_worktree_name.sh +33 -0
  271. phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/audit_lane_file_touches.py +197 -0
  272. phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/cleanup_lane_worktrees.sh +103 -0
  273. phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/parent_tree_leakage_check.sh +125 -0
  274. phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/post_merge_import_smoke.sh +62 -0
  275. phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/pre_merge_destructiveness_check.sh +127 -0
  276. phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/resolve_branch_from_sha.sh +51 -0
  277. phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/state.py +274 -0
  278. phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/sweep_stale_worktrees.sh +62 -0
  279. phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/team_teardown.sh +32 -0
  280. phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/validate_plan_doc.py +642 -0
  281. phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/verify_harness.sh +96 -0
  282. phase_loop_runtime/skills_bundle/gemini-phase-loop/README.md +1 -0
  283. phase_loop_runtime/skills_bundle/gemini-phase-loop/SKILL.md +111 -0
  284. phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/README.md +1 -0
  285. phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/SKILL.md +147 -0
  286. phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/assets/review_prompt.md +19 -0
  287. phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/references/parallelization-heuristics.md +111 -0
  288. phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/references/roadmap-template.md +193 -0
  289. phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/scripts/validate_roadmap.py +32 -0
  290. phase_loop_runtime/skills_bundle/gemini-plan-detailed/README.md +1 -0
  291. phase_loop_runtime/skills_bundle/gemini-plan-detailed/SKILL.md +119 -0
  292. phase_loop_runtime/skills_bundle/gemini-plan-detailed/assets/review_prompt.md +25 -0
  293. phase_loop_runtime/skills_bundle/gemini-plan-phase/README.md +1 -0
  294. phase_loop_runtime/skills_bundle/gemini-plan-phase/SKILL.md +217 -0
  295. phase_loop_runtime/skills_bundle/gemini-plan-phase/assets/review_prompt.md +17 -0
  296. phase_loop_runtime/skills_bundle/gemini-plan-phase/scripts/validate_plan_doc.py +1092 -0
  297. phase_loop_runtime/skills_bundle/gemini-run-train/README.md +1 -0
  298. phase_loop_runtime/skills_bundle/gemini-run-train/SKILL.md +75 -0
  299. phase_loop_runtime/skills_bundle/gemini-skill-editor/README.md +1 -0
  300. phase_loop_runtime/skills_bundle/gemini-skill-editor/SKILL.md +87 -0
  301. phase_loop_runtime/skills_bundle/gemini-skill-editor/assets/editor_prompt.md +72 -0
  302. phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/README.md +1 -0
  303. phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/SKILL.md +109 -0
  304. phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/assets/aggregator_prompt.md +79 -0
  305. phase_loop_runtime/skills_bundle/gemini-task-contextualizer/README.md +1 -0
  306. phase_loop_runtime/skills_bundle/gemini-task-contextualizer/SKILL.md +98 -0
  307. phase_loop_runtime/skills_bundle/gemini-task-contextualizer/references/task-templates.md +103 -0
  308. phase_loop_runtime/skills_bundle/opencode-advisor-board/README.md +1 -0
  309. phase_loop_runtime/skills_bundle/opencode-advisor-board/SKILL.md +38 -0
  310. phase_loop_runtime/skills_bundle/opencode-advisor-panel/README.md +1 -0
  311. phase_loop_runtime/skills_bundle/opencode-advisor-panel/SKILL.md +38 -0
  312. phase_loop_runtime/skills_bundle/opencode-execute-detailed/README.md +1 -0
  313. phase_loop_runtime/skills_bundle/opencode-execute-detailed/SKILL.md +144 -0
  314. phase_loop_runtime/skills_bundle/opencode-execute-phase/README.md +1 -0
  315. phase_loop_runtime/skills_bundle/opencode-execute-phase/SKILL.md +196 -0
  316. phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/allocate_worktree_name.sh +33 -0
  317. phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/audit_lane_file_touches.py +197 -0
  318. phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/cleanup_lane_worktrees.sh +103 -0
  319. phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/parent_tree_leakage_check.sh +125 -0
  320. phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/post_merge_import_smoke.sh +62 -0
  321. phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/pre_merge_destructiveness_check.sh +127 -0
  322. phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/resolve_branch_from_sha.sh +51 -0
  323. phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/state.py +274 -0
  324. phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/sweep_stale_worktrees.sh +62 -0
  325. phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/team_teardown.sh +32 -0
  326. phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/validate_plan_doc.py +642 -0
  327. phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/verify_harness.sh +96 -0
  328. phase_loop_runtime/skills_bundle/opencode-phase-loop/README.md +1 -0
  329. phase_loop_runtime/skills_bundle/opencode-phase-loop/SKILL.md +113 -0
  330. phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/README.md +1 -0
  331. phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/SKILL.md +147 -0
  332. phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/assets/review_prompt.md +19 -0
  333. phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/references/parallelization-heuristics.md +111 -0
  334. phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/references/roadmap-template.md +193 -0
  335. phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/scripts/validate_roadmap.py +32 -0
  336. phase_loop_runtime/skills_bundle/opencode-plan-detailed/README.md +1 -0
  337. phase_loop_runtime/skills_bundle/opencode-plan-detailed/SKILL.md +119 -0
  338. phase_loop_runtime/skills_bundle/opencode-plan-detailed/assets/review_prompt.md +25 -0
  339. phase_loop_runtime/skills_bundle/opencode-plan-phase/README.md +1 -0
  340. phase_loop_runtime/skills_bundle/opencode-plan-phase/SKILL.md +211 -0
  341. phase_loop_runtime/skills_bundle/opencode-plan-phase/assets/review_prompt.md +17 -0
  342. phase_loop_runtime/skills_bundle/opencode-plan-phase/scripts/validate_plan_doc.py +1092 -0
  343. phase_loop_runtime/skills_bundle/opencode-run-train/README.md +1 -0
  344. phase_loop_runtime/skills_bundle/opencode-run-train/SKILL.md +75 -0
  345. phase_loop_runtime/skills_bundle/opencode-skill-editor/README.md +1 -0
  346. phase_loop_runtime/skills_bundle/opencode-skill-editor/SKILL.md +87 -0
  347. phase_loop_runtime/skills_bundle/opencode-skill-editor/assets/editor_prompt.md +72 -0
  348. phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/README.md +1 -0
  349. phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/SKILL.md +109 -0
  350. phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/assets/aggregator_prompt.md +79 -0
  351. phase_loop_runtime/skills_bundle/opencode-task-contextualizer/README.md +1 -0
  352. phase_loop_runtime/skills_bundle/opencode-task-contextualizer/SKILL.md +98 -0
  353. phase_loop_runtime/skills_bundle/opencode-task-contextualizer/references/task-templates.md +103 -0
  354. phase_loop_runtime/state.py +156 -0
  355. phase_loop_runtime/state_degradation.py +136 -0
  356. phase_loop_runtime/state_ops.py +676 -0
  357. phase_loop_runtime/train_ledger.py +215 -0
  358. phase_loop_runtime/train_roadmap.py +339 -0
  359. phase_loop_runtime/train_runner.py +1197 -0
  360. phase_loop_runtime/verification_evidence.py +650 -0
  361. phase_loop_runtime/verification_evidence_validator.py +75 -0
  362. phase_loop_runtime/visual_evidence_validator.py +36 -0
  363. phase_loop_runtime/worker_pool.py +123 -0
  364. phase_loop_runtime/worktree_index.py +270 -0
  365. phase_loop_runtime-0.2.0.data/data/share/phase-loop-runtime/protocol/protocol.md +2475 -0
  366. phase_loop_runtime-0.2.0.dist-info/METADATA +106 -0
  367. phase_loop_runtime-0.2.0.dist-info/RECORD +370 -0
  368. phase_loop_runtime-0.2.0.dist-info/WHEEL +5 -0
  369. phase_loop_runtime-0.2.0.dist-info/entry_points.txt +9 -0
  370. phase_loop_runtime-0.2.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,20 @@
1
+ """Codex phase loop runner."""
2
+
3
+ __all__ = [
4
+ "__version__",
5
+ "cli",
6
+ "discovery",
7
+ "handoff",
8
+ "maintenance",
9
+ "models",
10
+ "observability",
11
+ "profiles",
12
+ "reconcile",
13
+ "render",
14
+ "runtime_paths",
15
+ "runner",
16
+ "state",
17
+ "state_ops",
18
+ ]
19
+
20
+ __version__ = "0.2.0"
@@ -0,0 +1,90 @@
1
+ # Phase-Loop Extraction Readiness
2
+
3
+ This document evaluates whether the phase-loop runtime should be extracted from the `dotfiles` repository into a standalone shared agent runtime repo.
4
+
5
+ ## Decision Summary
6
+
7
+ **Current Status**: Package-ready boundary, extraction not yet performed.
8
+
9
+ The phase-loop runtime has achieved sufficient architectural maturity and interface stability to be prepared for a standalone repository. The boundary between personal machine configuration (dotfiles) and shared agent orchestration (phase-loop) is now clearly defined, but this roadmap does not move code, create a submodule, or rewrite installation.
10
+ The concrete path boundary is recorded in
11
+ `docs/phase-loop/harness-substrate-manifest.md`; extraction readiness depends
12
+ on that manifest rather than an implicit dotfiles-wide ownership claim.
13
+ If extraction happens later, the standalone repository and package identity is
14
+ `phase-loop-runtime`; it keeps the Python import package `phase_loop_runtime`, the
15
+ neutral command `phase-loop`, and the backward-compatible alias
16
+ `codex-phase-loop`.
17
+
18
+ Extraction is not required for governed-pipeline v7 execution. Governed-pipeline
19
+ may continue using the current documented CLI, schema, bridge fixture, closeout,
20
+ and canonical `.phase-loop/` state surfaces before and after extraction.
21
+
22
+ ## Evaluation Criteria
23
+
24
+ | Criterion | Evaluation | Status |
25
+ | :--- | :--- | :--- |
26
+ | **Interface Stability** | The `phase_loop_closeout.v1` schema and CLI surface are frozen in `shared/phase-loop/protocol.md`. | **Passed** |
27
+ | **API Boundary** | A public Python API and CLI entrypoint are documented in `docs/phase-loop/runtime-boundary.md`. | **Passed** |
28
+ | **Cross-Repo Compatibility** | Fixtures for downstream ingestion exist under `vendor/phase-loop-runtime/tests/fixtures/phase_loop_pipeline_bridge/`. | **Passed** |
29
+ | **Independence** | Proven mechanically by the DECOUPLE Gate-A clean-room harness (`vendor/phase-loop-runtime/scripts/gate_a_cleanroom.sh`, `tests/test_gate_a_wheel_isolation.py`), which builds a wheel and installs it into an isolated venv with no dotfiles checkout reachable + user-site disabled, in BOTH plugin configurations. (1) Default fleet install (the in-tree dotfiles profile registered under `phase_loop_runtime.profile_commands`): `adoption-bundle`/`sync-skills`/`build-bundle`/`hotfix` are present (each exactly once) and `version`/`status`/`dry-run`/`execute --bundle` + the gp bridge smoke run. (2) The seam (the `profile_commands` group stripped from the installed dist-info): those commands are absent. In BOTH, no resolved import / BAML / skill-root / manifest / command path points under the dotfiles checkout, and `baml_src` resolves via `importlib.resources` package-data. DECOUPLE proves path-independence + the plugin seam in place; physically splitting the dotfiles profile (and its skill roots) into a separate distribution is EXTRACT. | **Passed (Gate A, both configs)** |
30
+ | **Installation Parity** | `bootstrap.sh` can still install phase-loop (as a submodule or package) without breaking dotfiles. | **Passed** |
31
+ | **Substrate Manifest** | `docs/phase-loop/harness-substrate-manifest.md` separates phase-loop substrate paths from host bootstrap, shell, terminal, SSH, generic 1Password, MCP gateway, and unrelated editor configuration. | **Passed** |
32
+
33
+ ## Remaining Package Prerequisites
34
+
35
+ Before a standalone repository or package move, the extraction owner must:
36
+
37
+ - Use `phase-loop-runtime` as the package/repository name and choose only the
38
+ publish strategy.
39
+ - Move only the manifest-listed substrate paths; do not include host bootstrap,
40
+ shell profile setup, terminal setup, SSH config, generic 1Password setup, MCP
41
+ gateway setup, unrelated editor configuration, private data, ignored raw data,
42
+ credentials, evidence-source files, or runner state.
43
+ - Preserve the neutral `phase-loop` command and the backward-compatible
44
+ `codex-phase-loop` alias.
45
+ - Preserve canonical `.phase-loop/` writes and legacy `.codex/phase-loop/`
46
+ read fallback behavior.
47
+ - Preserve `phase_loop_closeout.v1`, `phase-source-bundle.v1`, and direct
48
+ `execute <phase> --bundle --output --mode execute|repair|review` behavior.
49
+ - Add package metadata and CI that run the runtime-boundary, CLI, docs, bridge
50
+ fixture, adapter proof, and py_compile checks without shell profile sourcing,
51
+ dotfiles-specific credentials, provider live credentials by default, or
52
+ ambient `~/.codex` state.
53
+
54
+ ## Extraction Risks and Mitigations
55
+
56
+ | Risk | Mitigation |
57
+ | :--- | :--- |
58
+ | **Drift** | Use the standalone repo as a git submodule in `dotfiles` to ensure local testing remains valid. |
59
+ | **Dependency Management** | Maintain a strict `requirements.txt` or `pyproject.toml` that doesn't assume dotfiles environments. |
60
+ | **Secret Management** | Keep core imports, parser construction, status rendering, direct bridge diagnostics, and runtime path helpers independent of 1Password, Vercel, Supabase, and other dotfiles-specific credentials. |
61
+
62
+ ## Migration Path
63
+
64
+ 1. **Confirm Move Set**: Use `docs/phase-loop/harness-substrate-manifest.md` and `docs/phase-loop/runtime-boundary.md` as the exact allowlist for source, tests, fixtures, docs, scripts, and wrapper files.
65
+ 2. **Move Source**: Relocate only `vendor/phase-loop-runtime/src/phase_loop_runtime/**`, `phase-loop`, `codex-phase-loop`, `shared/phase-loop/protocol.md`, `tests/test_phase_loop*.py`, `vendor/phase-loop-runtime/tests/fixtures/phase_loop_pipeline_bridge/**`, `scripts/smoke-codex-phase-loop`, `scripts/smoke-phase-loop-live-adapters`, and the in-scope `docs/phase-loop/*.md` runtime docs named by the manifest.
66
+ 3. **Exclude Dotfiles Environment State**: Do not move host bootstrap outside the listed wrappers, shell config, terminal or Zellij config, SSH config, generic 1Password setup, MCP gateway setup, unrelated editor config, private data, ignored raw data, credentials, evidence-source files, `.phase-loop/**` runner state, or `.codex/phase-loop/**` legacy state.
67
+ 4. **Submodule or Package Integration**: Integrate `phase-loop-runtime` back into `dotfiles` as a submodule or package while preserving existing bootstrap behavior.
68
+ 5. **Alias Compatibility**: Maintain `phase-loop` and `codex-phase-loop` as separate backward-compatible entrypoints over the same `phase_loop_runtime.cli` parser.
69
+ 6. **CI Handoff**: Run runtime-boundary, CLI, docs, bridge fixture, adapter proof, and py_compile checks in default CI without provider credentials; keep authenticated live adapter proof opt-in.
70
+
71
+ ## Downstream Expectations
72
+
73
+ Downstream repositories (e.g., `governed-pipeline`) should consume the phase-loop runtime via:
74
+ - The frozen `phase_loop_closeout.v1` schema.
75
+ - The standard CLI `execute` command with `--bundle`, `--output`, and
76
+ `--mode execute|repair|review`; unsupported modes and stale
77
+ `phase-source-bundle.v1` inputs fail as typed non-human contract blockers.
78
+ - The cross-repo fixtures provided for integration testing.
79
+ - The path inventory in `docs/phase-loop/harness-substrate-manifest.md` when
80
+ they need to cite dotfiles-hosted harness substrate files.
81
+
82
+ For governed-pipeline v7, extraction is a non-blocking deployment choice rather
83
+ than a prerequisite. SUBSTRATESOAK may continue against the dotfiles-hosted
84
+ runtime boundary and the same documented surfaces.
85
+
86
+ ## Decision Record
87
+
88
+ - **Isolated vs. Extracted**: Extraction remains a future option to allow the agent runtime to evolve independently of personal machine setup.
89
+ - **Impact on Dotfiles**: No impact on existing installation flows. `bootstrap.sh` remains the authoritative entrypoint for local setup.
90
+ - **Current Roadmap Boundary**: RUNNERPACK records package prerequisites only; it does not create a submodule, move code, or rewrite bootstrap installation behavior.
@@ -0,0 +1,137 @@
1
+ # Granular Execution Policy
2
+
3
+ PROFILEDOC freezes the v8 policy posture: high -> medium -> high. Roadmap and phase planning use high or xhigh-capable heavy profiles, lane execution uses medium effort by default, repair remains medium, and reducer, review, verify, skill-maintenance, and runner-owned closeout guidance use high effort. This document is the operator source of truth until v9 moves lane scheduling into runner-owned work units.
4
+
5
+ ## Default profiles
6
+
7
+ | Product action | Work unit | Default posture | Gemini CLI default model |
8
+ | --- | --- | --- | --- |
9
+ | `roadmap` | `roadmap_build` | high planning | `pro` |
10
+ | `plan` | `phase_plan` | high planning | `pro` |
11
+ | `execute` | `lane_execute` | medium implementation | `auto` |
12
+ | `repair` | `repair` | medium repair | `auto` |
13
+ | `review` | `lane_review` | high review | `pro` |
14
+ | `maintain-skills` | `phase_verify` | high reducer/verify | `pro` |
15
+
16
+ Closeout stays runner-owned. Manual closeout remains the default, commit-only is the bounded preservation mode after verification, and automatic push is not promoted by PROFILEDOC.
17
+
18
+ ## Policy precedence
19
+
20
+ Execution policy resolution is deliberately boring and fail-closed:
21
+
22
+ 1. CLI/operator override.
23
+ 2. phase-plan policy.
24
+ 3. roadmap policy.
25
+ 4. `Dispatch Hints`.
26
+ 5. registry defaults.
27
+
28
+ An unsupported model, effort, executor, or capability blocks unless the active policy names an explicit fallback or says to inherit the provider default. Silent provider fallback is not allowed.
29
+
30
+ ## Provider selection
31
+
32
+ Codex is the default live-supported executor for roadmap, plan, repair, review, and skill-maintenance work. It accepts normalized model and effort metadata directly through the phase-loop launcher.
33
+
34
+ Simple bounded scheduler-assigned lane execution defaults to Pi Agent. Claude or Anthropic model lanes are the exception: they default to Claude Code CLI unless a phase plan, roadmap, or operator policy explicitly selects a Pi-wrapped Claude route and records the override reason.
35
+
36
+ Claude Code is proof-blocked for autonomous live closeout. Operators may use Claude Code bridge skills for manual reentry, and runner-brokered Claude child work must stay typed, bounded, and limited to approved `execute`, `repair`, or `review` work.
37
+
38
+ Gemini CLI is live-supported through the GEMPROBE result `gemini_cli_config_unverified_but_usable`. Default Gemini dispatch uses the CLI's built-in routing aliases: `pro` for planning/review and `auto` for execution/repair. This preserves Gemini CLI fallback behavior and avoids hard-pinning `gemini-3.1-pro-preview` for normal runs. Run-local user-scope `modelConfigs.customAliases` with `thinkingConfig.thinkingLevel` remain available only for explicit phase-loop proof or policy runs that need that stronger thinking-level assertion. Codex and Gemini fallback routes are CLI-based and reason-coded; they must not silently switch to API-key command adapters unless policy explicitly selects `executor=command`. Future Gemini API adapter work is a separate roadmap decision if the CLI route stops meeting the contract.
39
+
40
+ Pi Agent is the preferred simple bounded lane runner when the phase-loop policy
41
+ selects `executor=pi`. It consumes repo-local `phase-loop-pi/**` and
42
+ `pi-config/**` material through a context-file launch, supports low/medium/high
43
+ effort mapping, and fails closed for unsupported effort or tool-policy requests
44
+ unless the phase policy explicitly provides fallback behavior.
45
+
46
+ OpenCode is live-supported with explicit permission posture and model provenance recorded in launch metadata. Use it for bounded child work only when the phase policy allows that executor.
47
+
48
+ The generic command adapter is experimental. It is context-file only, opt-in, and must not pretend arbitrary subprocesses support the same model, effort, auth, or closeout semantics as first-class harnesses.
49
+
50
+ ## Provider rotation examples
51
+
52
+ Use Codex for the normal bounded path:
53
+
54
+ ```bash
55
+ phase-loop run --repo <repo> --roadmap <roadmap> --executor codex --max-phases 1
56
+ ```
57
+
58
+ Use Gemini CLI with the default routing contract:
59
+
60
+ ```bash
61
+ phase-loop run --repo <repo> --roadmap <roadmap> --executor gemini --max-phases 1 --closeout-mode manual
62
+ ```
63
+
64
+ Use OpenCode for an explicitly allowed phase:
65
+
66
+ ```bash
67
+ phase-loop run --repo <repo> --roadmap <roadmap> --executor opencode --max-phases 1 --closeout-mode commit
68
+ ```
69
+
70
+ Use Claude Code only with the current proof-blocked closeout posture:
71
+
72
+ ```bash
73
+ phase-loop run --repo <repo> --roadmap <roadmap> --executor claude --max-phases 1 --closeout-mode manual
74
+ ```
75
+
76
+ Use a generic command adapter only when the roadmap or phase plan names the wrapper and owned files:
77
+
78
+ ```bash
79
+ phase-loop run --repo <repo> --roadmap <roadmap> --executor command --max-phases 1 --closeout-mode manual
80
+ ```
81
+
82
+ ## Metrics and provenance
83
+
84
+ Every launched work unit records selected harness, model, effort, profile source, policy source, override reason, fallback status, fallback reason, duration, and blocker class in `.phase-loop/metrics.jsonl` and run launch metadata. The metrics prove what was attempted; they do not expose prompts, secrets, OAuth material, command stdout that may contain credentials, or raw provider payloads.
85
+
86
+ During MIGRATELOOP, review `.phase-loop/metrics.jsonl` before provider
87
+ rotation or scheduler promotion. Serialized lane scheduling may compare
88
+ executor outcomes, but push remains explicit and must not become an automatic
89
+ result of a clean metric row.
90
+
91
+ ## Dispatch Hints
92
+
93
+ `Dispatch Hints` remain valid when no richer execution policy is present. They may select allowed executors and required capabilities, but they do not authorize unmanaged parallel write targets, dangerous fallback credentials, or silent provider fallback.
94
+
95
+ `Execution Policy` is limited to model, effort, work-unit defaults,
96
+ lane-specific policy, fallback, policy source, and override reason. Supported
97
+ selectors are `work-unit defaults`, `roadmap`, `plan`, `execute`, `repair`,
98
+ `review`, `maintain-skills`, and lane selectors such as `SL-2`; reducer and
99
+ verification work uses lane selectors with `work-unit=phase_reducer` or
100
+ `work-unit=phase_verify`. Selectors such as `reduce` and `verify` remain
101
+ invalid, and policy precedence stays CLI/operator override, phase-plan policy,
102
+ roadmap policy, `Dispatch Hints`, then registry defaults. A silent downgrade
103
+ or silent provider fallback is forbidden without explicit policy support.
104
+
105
+ Policy examples must preserve standalone dotfiles workflows and keep
106
+ governed-pipeline closeout ingest, Portal projection, and Greenfield metadata-only authority refs as mediated boundaries, not direct dotfiles write targets. Executor policy never authorizes inferred writes to `.pipeline/**`,
107
+ governed-pipeline specs, Portal contracts, Greenfield authority files, provider
108
+ payloads, credentials, raw evidence, or legacy `.codex/phase-loop/` state.
109
+
110
+ DFTRUTHSOAK reducer and verification work use lane selectors with
111
+ `work-unit=phase_verify`; execution policy still only carries model, effort,
112
+ work-unit defaults, lane-specific policy, fallback, policy source, and override
113
+ reason. The final truth soak may report standalone closeout, pipeline-required
114
+ closeout, stale-input blockers, source-truth advisory hints, bridge fixtures,
115
+ and downstream mirror refs, but governed-pipeline remains the canonical
116
+ authority for refresh, replan, preflight block, Portal projection, and
117
+ Greenfield metadata-only authority decisions.
118
+
119
+ DFPROMPTSYNC freezes the prompt-safe field map in
120
+ `docs/phase-loop/dfpromptsync-contract-map.md` and the readiness receipt in
121
+ `docs/phase-loop/dfpromptsync-readiness.md`. Execution policy examples should
122
+ preserve machine-verified disjoint lanes, scheduler-owned worktree assignments,
123
+ Claude Code CLI exception wording, and CLI-based reason-coded Codex/Gemini
124
+ fallback without introducing API-key fallback or prompt-only containment
125
+ claims.
126
+
127
+ ## V9 boundary
128
+
129
+ PROFILEDOC does not add runner-owned lane scheduling. v9 consumes this default profile and provenance contract before changing lane waves, review reducers, or child work-unit scheduling.
130
+
131
+ ## DFPARSOAK Integrated Soak
132
+
133
+ DFPARSOAK policy examples use `docs/phase-loop/dfparsoak-receipt.md` and
134
+ `docs/phase-loop/dfparsoak-runbook.md` for final integrated soak evidence
135
+ instead of older downstream plan examples. The receipt preserves Pi default,
136
+ Claude Code CLI exception, Codex CLI fallback, and Gemini CLI fallback metadata
137
+ without introducing API-key fallback or prompt-only containment claims.