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,125 @@
1
+ # Phase-Loop Harness Skill Matrix
2
+
3
+ This document is the SKILLPACK manifest and canonical skill namespace contract
4
+ for dotfiles-hosted phase-loop workflow skills. It freezes the active harness
5
+ workflow names, source roots, and recommended install roots before bootstrap,
6
+ sync, cleanup, parity, and bridge-soak phases change install behavior or remove
7
+ vestigial paths.
8
+ The path inventory for the public harness substrate is
9
+ `docs/phase-loop/harness-substrate-manifest.md`; this matrix owns workflow
10
+ names only.
11
+
12
+ Harness workflow skill names follow:
13
+
14
+ `<harness>-<workflow>`
15
+
16
+ The rule applies to harness-local workflow skills for Codex, Claude Code,
17
+ Gemini CLI, and OpenCode. Pi Agent role-style skills and governed-pipeline
18
+ `.pipeline/skills/**` are explicit namespace exceptions.
19
+
20
+ ## Canonical Workflow Skills
21
+
22
+ | Workflow | Codex | Claude Code | Gemini CLI | OpenCode |
23
+ | --- | --- | --- | --- | --- |
24
+ | advisor-board | `codex-advisor-board` | `claude-advisor-board` | `gemini-advisor-board` | `opencode-advisor-board` |
25
+ | phase-roadmap-builder | `codex-phase-roadmap-builder` | `claude-phase-roadmap-builder` | `gemini-phase-roadmap-builder` | `opencode-phase-roadmap-builder` |
26
+ | plan-phase | `codex-plan-phase` | `claude-plan-phase` | `gemini-plan-phase` | `opencode-plan-phase` |
27
+ | execute-phase | `codex-execute-phase` | `claude-execute-phase` | `gemini-execute-phase` | `opencode-execute-phase` |
28
+ | phase-loop | `codex-phase-loop` | `claude-phase-loop` | `gemini-phase-loop` | `opencode-phase-loop` |
29
+ | plan-detailed | `codex-plan-detailed` | `claude-plan-detailed` | `gemini-plan-detailed` | `opencode-plan-detailed` |
30
+ | execute-detailed | `codex-execute-detailed` | `claude-execute-detailed` | `gemini-execute-detailed` | `opencode-execute-detailed` |
31
+ | task-contextualizer | `codex-task-contextualizer` | `claude-task-contextualizer` | `gemini-task-contextualizer` | `opencode-task-contextualizer` |
32
+ | skill-improvement-planner | `codex-skill-improvement-planner` | `claude-skill-improvement-planner` | `gemini-skill-improvement-planner` | `opencode-skill-improvement-planner` |
33
+ | skill-editor | `codex-skill-editor` | `claude-skill-editor` | `gemini-skill-editor` | `opencode-skill-editor` |
34
+ | run-train | `codex-run-train` | `claude-run-train` | `gemini-run-train` | `opencode-run-train` |
35
+
36
+ Canonical source roots (CANON / IF-0-CANON-1 — the authored skill *sources* now
37
+ live in this repo under `skills-src/<harness>/`; the dotfiles `*-config` roots
38
+ remain valid build inputs during the cutover via an explicit `--source`):
39
+
40
+ - Codex: `skills-src/codex/**`
41
+ - Claude Code: `skills-src/claude/**`
42
+ - Gemini CLI: `skills-src/gemini/**`
43
+ - OpenCode: `skills-src/opencode/**`
44
+
45
+ Recommended install roots:
46
+
47
+ - Codex: `~/.codex/skills`
48
+ - Claude Code: `~/.claude/skills`
49
+ - Gemini CLI: `~/.gemini/skills`
50
+ - OpenCode: `~/.config/opencode/skills`
51
+
52
+ ## Pi Agent Exception
53
+
54
+ Pi Agent uses role-style skills rather than the `<harness>-<workflow>` harness
55
+ matrix. The intentional exceptions are:
56
+
57
+ - `phase-loop-supervisor`
58
+ - `phase-loop-repair`
59
+ - `phase-loop-closeout`
60
+
61
+ These names are allowed because Pi Agent consumes repo-local
62
+ `phase-loop-pi/**` prompts, skills, extensions, and `pi-config/**` installation
63
+ metadata as an adapter role surface. They are not an unnormalized harness
64
+ workflow family.
65
+
66
+ ## Route Compatibility
67
+
68
+ Direct Codex, direct Gemini, and direct OpenCode launcher routes remain
69
+ compatibility-supported during this roadmap. This contract normalizes workflow
70
+ skill names and metadata; it does not collapse those routes into Pi Agent.
71
+
72
+ Claude Code execution continues to use the first-party non-interactive
73
+ `claude -p` path. Claude Code bridge and workflow skills describe that route;
74
+ they do not imply Anthropic API-key execution or Pi provider fallback.
75
+
76
+ ## Vestigial Workflow Candidates
77
+
78
+ Historical unprefixed `claude-config/skills/plan-phase/**` and
79
+ `claude-config/skills/execute-phase/**` are vestigial workflow candidates.
80
+ Current inventory shows handoff and reflection residue under those paths, not
81
+ active `SKILL.md` definitions. They are not deleted, archived, or promoted by
82
+ DFSKILLCONTRACT.
83
+
84
+ Later cleanup may classify those paths as archived history or remove them only
85
+ after source lookup, bootstrap, sync-skills, expected skill packs, docs, and
86
+ downstream governed-pipeline compatibility proof agree.
87
+
88
+ DFSKILLCLEAN records the current cleanup classifications and canonical
89
+ replacement names in `docs/phase-loop/legacy-skill-cleanup.md`.
90
+
91
+ DFSKILLGOVSOAK records the governed bridge compatibility release gate in
92
+ `docs/phase-loop/dfskillgovsoak.md`, including governed-pipeline mirrored
93
+ scenarios, dotfiles-only scenarios, temporary legacy alias rejection coverage,
94
+ and the optional live adapter proof boundary.
95
+
96
+ ## Downstream Namespace Boundary
97
+
98
+ Governed-pipeline `.pipeline/skills/**` is a separate product/runtime
99
+ namespace. Those skills are governed-pipeline-owned pipeline overlays, not
100
+ dotfiles harness workflow skills, and dotfiles normalization must not rewrite,
101
+ rename, install, or validate them as `<harness>-<workflow>` skills.
102
+
103
+ Dotfiles closeout and launch metadata may mention canonical harness workflow
104
+ skill names as bridge vocabulary, expected skill pack metadata, or next-action
105
+ metadata. Governed-pipeline remains responsible for `.pipeline/skills/**`
106
+ manifest policy, source-bundle emission, closeout ingest, mirror updates,
107
+ canonical refresh, replan, and projection decisions.
108
+ Downstream consumers must not treat Host bootstrap, Shell config, SSH setup,
109
+ MCP gateway setup, generic 1Password setup, raw/private evidence, provider
110
+ payloads, or local environment values as prerequisites for these workflow skill
111
+ names.
112
+
113
+ ## DFSKILLCONTRACT Gates
114
+
115
+ - IF-0-DFSKILLCONTRACT-1: this matrix freezes the active
116
+ `<harness>-<workflow>` names and the Pi role-style exception.
117
+ - IF-0-DFSKILLCONTRACT-2: governed-pipeline `.pipeline/skills/**` is a
118
+ separate namespace that dotfiles normalization must not rewrite.
119
+ - IF-0-DFSKILLCONTRACT-3: historical unprefixed `plan-phase` and
120
+ `execute-phase` paths are vestigial workflow candidates for later cleanup.
121
+ - IF-0-DFSKILLCONTRACT-4: direct Codex, direct Gemini, and direct OpenCode
122
+ routes remain compatibility-supported, and Claude Code continues through
123
+ `claude -p`.
124
+ - IF-0-SKILLPACK-1: this SKILLPACK manifest freezes the active workflow skill
125
+ names and install targets for Codex, Claude Code, Gemini, and OpenCode.
@@ -0,0 +1,232 @@
1
+ # Phase-Loop Harness Substrate Manifest
2
+
3
+ This manifest defines the dotfiles paths that downstream repositories may cite
4
+ as the phase-loop harness substrate. It is a path ownership inventory, not a
5
+ schema contract. Shared artifact shapes remain frozen in
6
+ `shared/phase-loop/protocol.md`, and public runtime interfaces remain listed in
7
+ `docs/phase-loop/runtime-boundary.md`.
8
+ Harness workflow skill names, recommended install roots, Pi Agent role-style
9
+ exceptions, and direct route compatibility are frozen in the SKILLPACK manifest
10
+ at `docs/phase-loop/harness-skill-matrix.md`.
11
+ Downstream repositories may cite only the substrate paths listed here; they
12
+ must not treat broad dotfiles paths as Pipeline-owned authority surfaces.
13
+ IF-0-SUBSTRATE-1 freezes that public substrate inventory as only
14
+ `vendor/phase-loop-runtime/**`, CLI wrappers, bridge skills, shared runner
15
+ skills, protocol docs, fixtures, tests, scripts, and canonical `.phase-loop/**`
16
+ state.
17
+
18
+ ## In-Scope Substrate Paths
19
+
20
+ Downstream harness and pipeline integrations may cite these paths when they
21
+ need a stable reference to the dotfiles-hosted phase-loop substrate.
22
+
23
+ ### Runtime Code
24
+
25
+ - `vendor/phase-loop-runtime/src/phase_loop_runtime/**`: phase-loop CLI, discovery, runner,
26
+ reconciliation, launch, state, profile, maintenance, and rendering code.
27
+ - `phase-loop`: neutral CLI wrapper.
28
+ - `codex-phase-loop`: Codex-compatible CLI alias.
29
+
30
+ ### Bridge Skills
31
+
32
+ - `codex-config/skills/codex-phase-loop/**`: Codex TUI bridge for phase-loop
33
+ status, resume, dry-run, and bounded runner workflows.
34
+ - `codex-config/skills/codex-plan-phase/**`: Codex phase planning workflow.
35
+ - `codex-config/skills/codex-execute-phase/**`: Codex phase execution workflow.
36
+ - `codex-config/skills/codex-phase-roadmap-builder/**`: Codex roadmap builder
37
+ workflow.
38
+ - `codex-config/skills/codex-task-contextualizer/**`: Codex subagent briefing
39
+ workflow.
40
+
41
+ ### Shared Runner Skills
42
+
43
+ - `shared/skills/code-cli-runner/**`: shared CLI runner substrate for
44
+ provider-specific execution skills.
45
+ - `shared/skills/codex-cli-runner/**`: Codex CLI runner guidance.
46
+ - `shared/skills/gemini-cli-runner/**`: Gemini runner guidance — drives the
47
+ Antigravity (`agy`) CLI (the standalone `gemini` CLI was sunset; the phase-loop
48
+ gemini executor and this runner both target `agy`).
49
+
50
+ ### Protocol and Runtime Docs
51
+
52
+ - `shared/phase-loop/protocol.md`: canonical shared artifact, closeout,
53
+ delegation, state, and execution-policy protocol.
54
+ - `docs/phase-loop/runtime-boundary.md`: public CLI, Python API, artifact, and
55
+ state boundary.
56
+ - `docs/phase-loop/harness-skill-matrix.md`: canonical harness workflow skill
57
+ naming matrix, Pi Agent exception list, route compatibility statement, and
58
+ governed-pipeline `.pipeline/skills/**` namespace guard.
59
+ - `docs/phase-loop/spec-discovery-roots.md`: standalone root `specs/**`
60
+ discovery and legacy `Specs/**` explicit-input guidance.
61
+ - `docs/phase-loop/dfadoptbridge-fixtures.md`: governed-pipeline v11 adoption
62
+ bridge fixture matrix and SHA-256 metadata field reference.
63
+ - `docs/phase-loop/dfskillgovsoak.md`: governed bridge compatibility release
64
+ gate, fixture classification, downstream GPSKILLSOAK evidence summary, and
65
+ optional live proof boundary.
66
+ - `docs/phase-loop/extraction-readiness.md`: optional future extraction record.
67
+ - `docs/phase-loop/granular-execution-policy.md`: runner-owned model and
68
+ effort policy guidance.
69
+ - `docs/phase-loop/harness-capability-matrix.md`: adapter capability and proof
70
+ status.
71
+ - `docs/phase-loop/lane-scheduler.md`: lane-scheduler operator contract.
72
+ - `docs/phase-loop/pi-loop-control.md`: PI loop-control integration boundary.
73
+ - `docs/phase-loop/collaborator-bootstrap.md`: collaborator-safe runtime and
74
+ harness workflow skill install surface for downstream citation.
75
+ - `docs/phase-loop/collaborator-skill-rollback.md`: rollback and uninstall
76
+ guidance for installed workflow skill packs.
77
+
78
+ ### Fixtures, Tests, and Scripts
79
+
80
+ - `tests/test_phase_loop*.py`: phase-loop runtime, bridge, policy, adapter,
81
+ documentation, and protocol contract tests.
82
+ - `vendor/phase-loop-runtime/tests/fixtures/phase_loop_pipeline_bridge/**`: canonical closeout and
83
+ pipeline bridge fixtures. Downstream repositories may cite this path as
84
+ dotfiles-owned fixture substrate.
85
+ - `scripts/smoke-codex-phase-loop`: offline phase-loop resume and reentry
86
+ smoke.
87
+ - `scripts/smoke-phase-loop-live-adapters`: authenticated disposable live
88
+ adapter proof script.
89
+
90
+ ### Runner State Paths
91
+
92
+ - `.phase-loop/state.json`: canonical current runtime state.
93
+ - `.phase-loop/events.jsonl`: canonical append-only runtime event ledger.
94
+ - `.phase-loop/active-loop.json`: canonical active-loop metadata.
95
+ - `.phase-loop/runs/<run-id>/`: run-local context, launch metadata, logs, and
96
+ closeout artifacts.
97
+ - `.phase-loop/tui-handoff.md`: operator-readable handoff.
98
+ - `.codex/phase-loop/**`: legacy read fallback only; new writes use
99
+ `.phase-loop/**`.
100
+
101
+ ## Out-of-Scope Dotfiles Surfaces
102
+
103
+ The paths and domains below are environment-normalization surfaces. Downstream
104
+ pipeline and harness integrations must not cite them as phase-loop substrate or
105
+ require them for phase-loop compatibility.
106
+
107
+ - Host bootstrap outside the listed CLI wrappers, including broad
108
+ `bootstrap.sh` behavior and machine package setup.
109
+ - Shell config such as `.zshrc`, `.bashrc`, aliases, prompts, completions, and
110
+ profile fragments.
111
+ - Terminal and Zellij config, including terminal themes, panes, layouts, and
112
+ local session defaults.
113
+ - SSH configuration, host aliases, private keys, agent setup, and tailnet
114
+ machine access.
115
+ - Generic 1Password setup, vault layout, personal item names, and credential
116
+ material.
117
+ - MCP gateway setup and personal gateway server configuration outside an
118
+ explicit phase-loop bridge contract.
119
+ - Unrelated editor configuration, formatters, language-server preferences, and
120
+ personal IDE state.
121
+ - Private, ignored, raw-data, credential, and evidence-source files unless a
122
+ phase plan or source bundle explicitly allowlists the exact path or glob.
123
+ - Provider payloads, raw provider transcripts, raw model outputs, and local
124
+ environment values.
125
+
126
+ ## Downstream Citation Rules
127
+
128
+ - Cite this manifest for dotfiles path ownership and in-scope substrate
129
+ inventory.
130
+ - Cite `shared/phase-loop/protocol.md` for artifact schemas, closeout fields,
131
+ blocker vocabulary, delegation requests, and execution-policy protocol.
132
+ - Cite `docs/phase-loop/runtime-boundary.md` for public CLI, Python API, state,
133
+ and artifact paths.
134
+ - Cite `docs/phase-loop/harness-skill-matrix.md` for canonical workflow skill
135
+ names, Pi Agent exceptions, direct launcher compatibility, and the
136
+ governed-pipeline `.pipeline/skills/**` namespace boundary.
137
+ - Cite `docs/phase-loop/collaborator-bootstrap.md` when a downstream repo needs
138
+ the collaborator-safe runtime and workflow skill installation contract
139
+ without inheriting owner-machine bootstrap behavior.
140
+ - Treat any path not listed in the in-scope substrate section as private to the
141
+ dotfiles repository unless a future roadmap phase adds it here.
142
+ - Treat governed-pipeline downstream mirror location
143
+ `packages/pipeline-runtime/test/fixtures/phase-loop-bridge/` as a consumer
144
+ path. Downstream mirror updates, closeout ingest, canonical refresh, replan, and
145
+ preflight block decisions are governed-pipeline-owned.
146
+ - Do not treat governed-pipeline mirror paths as dotfiles write targets; the
147
+ mirror is not a dotfiles write target.
148
+ - Treat root `specs/**` as the default standalone future-spec discovery root
149
+ only when a plan, source bundle, or repo-local config does not override it.
150
+ Legacy or project-specific seed roots such as `Specs/**` are explicit input
151
+ roots only.
152
+ - Treat canonical spec adoption, archive manifests, managed mirror manifests,
153
+ mirror writes, source-truth reconciliation, source-bundle emission, canonical
154
+ refresh, replan, and preflight block decisions as governed-pipeline-owned.
155
+ - Treat closeout spec-root citations as metadata-only. Dotfiles may emit
156
+ repo-relative paths, changed-path categories, hashes, source-bundle identity,
157
+ protected-source roles, advisory reason codes, and evidence refs, but not raw
158
+ spec bodies, raw diffs, private evidence bytes, credentials, provider
159
+ payloads, or local environment values.
160
+ - Do not infer Pipeline ownership, protected-source authority, or permission to
161
+ read or write `.pipeline/**`, governed-pipeline specs, Portal contracts,
162
+ Greenfield authority files, private evidence, raw data, credentials, ignored
163
+ outputs, provider-supplied data, legacy `.codex/phase-loop/` state, or local
164
+ environment files from a broad dotfiles checkout path.
165
+ - Shared runner skill examples must keep Portal and Greenfield mediated through
166
+ governed-pipeline closeout ingest, Portal projection, and Greenfield metadata-only authority refs. Governed Pipeline owns that closeout ingest boundary. Those references are not direct dotfiles write targets, and they do not make governed-pipeline, Portal, Greenfield,
167
+ `.pipeline/**`, or a source bundle mandatory for standalone dotfiles
168
+ planning, execution, bridge, or CLI runner use.
169
+
170
+ ## DFTRUTHSOAK Evidence Surface
171
+
172
+ DFTRUTHSOAK consumes only the listed substrate paths as dotfiles-owned
173
+ evidence: local standalone closeout behavior, pipeline-required source-bundle
174
+ diagnostics, stale-input blockers, source-truth advisory hints, bridge
175
+ fixtures, and downstream mirror refs. Governed-pipeline remains the owner of
176
+ mirror updates, closeout ingest, canonical refresh, replan, and preflight block
177
+ decisions. Portal projection and Greenfield metadata-only authority refs stay
178
+ contract-mediated downstream evidence and are not direct dotfiles write
179
+ targets.
180
+
181
+ ## DFADOPTBRIDGE Fixture Surface
182
+
183
+ DFADOPTBRIDGE adds adoption complete, blocked adoption metadata, stale source
184
+ bundle, stale mirror manifest, unmanaged spec input, archive manifest touched,
185
+ standalone non-adoption, deprecated-alias rejection, and redaction rejection
186
+ fixtures under `vendor/phase-loop-runtime/tests/fixtures/phase_loop_pipeline_bridge/`. The fixtures are
187
+ metadata-only `phase_loop_closeout.v1` examples for governed-pipeline v11
188
+ adoption ingest. They may be mirrored by governed-pipeline under
189
+ `packages/pipeline-runtime/test/fixtures/phase-loop-bridge/`, but dotfiles does
190
+ not write that downstream mirror path.
191
+
192
+ Pipeline-required DFADOPTBRIDGE fixtures cite `source_bundle.path`,
193
+ `source_bundle.sha256`, `source_bundle.phase_id`,
194
+ `source_bundle.protected_sources[].path`,
195
+ `source_bundle.protected_sources[].sha256`,
196
+ `source_bundle.protected_sources[].role`, `artifacts.plan_sha256`, and
197
+ `artifacts.evidence_refs[].sha256`. Standalone non-adoption coverage omits
198
+ Pipeline-only bundle identity. The fixtures do not include raw spec bodies, raw
199
+ diffs, provider-supplied data, credentials, local environment values, private
200
+ evidence, or absolute private paths.
201
+
202
+ ## DFADOPTSOAK Release-Gate Boundary
203
+
204
+ DFADOPTSOAK is the local integration soak for this substrate. It covers
205
+ standalone root `specs/**` advisory closeout hints, explicit non-default
206
+ spec-root intake metadata, unconfigured non-default root non-advisory behavior,
207
+ pipeline-required source-bundle echo, stale-input blockers, v14 bridge fixture
208
+ retention, DFADOPTBRIDGE fixture parity, and unittest-first verification.
209
+
210
+ The phase consumes governed-pipeline `CADOPTSOAK` as read-only upstream
211
+ metadata. Governed-pipeline remains responsible for mirror copies, adoption
212
+ decisions, archive creation, managed mirror refresh, source-truth
213
+ reconciliation, source-bundle emission, canonical refresh, replan, and preflight
214
+ block decisions. DFADOPTSOAK does not make governed-pipeline, Portal,
215
+ Greenfield, `.pipeline/**`, raw source evidence, raw data, credentials, local
216
+ environment values, ignored outputs, or legacy `.codex/phase-loop/**` state
217
+ dotfiles write targets.
218
+
219
+ ## DFSKILLGOVSOAK Release-Gate Boundary
220
+
221
+ DFSKILLGOVSOAK is the final v16 normalization release gate for this substrate.
222
+ It consumes dotfiles bridge fixtures, expected skill-pack metadata, launcher
223
+ dry-run proof, documentation checks, and governed-pipeline GPSKILLSOAK as
224
+ read-only evidence. Governed-pipeline mirrored scenarios and dotfiles-only
225
+ scenarios are classified in `vendor/phase-loop-runtime/tests/fixtures/phase_loop_pipeline_bridge/README.md`
226
+ and `docs/phase-loop/dfskillgovsoak.md`.
227
+
228
+ The phase does not require optional live adapter proof and does not authorize
229
+ dotfiles writes to governed-pipeline mirror fixtures, `.pipeline/**`, Portal
230
+ files, Greenfield files, raw/private evidence, credential material, local
231
+ environment values, provider-supplied data, `.phase-loop/**`, or legacy
232
+ `.codex/phase-loop/**` state.
@@ -0,0 +1,247 @@
1
+ # PI Loop Control
2
+
3
+ The PI package in `phase-loop-pi/` is a minimal operator harness for the neutral phase-loop runner. PI does not own the state machine. The Python `phase-loop` CLI remains authoritative for roadmap selection, phase reconciliation, closeout policy, blockers, handoffs, and monitor events.
4
+
5
+ ## Roles
6
+
7
+ - `phase-loop`: neutral runner command for CLI, TUI, PI, and other harnesses.
8
+ - `codex-phase-loop`: Codex bridge alias for existing Codex skills and scripts.
9
+ - `.phase-loop/`: canonical runtime artifact root for state, events, runs, stop files, handoffs, active-loop locks, and archives.
10
+ - `.codex/phase-loop/`: legacy compatibility root that remains readable and excluded from git during migration.
11
+ - PI loop control: observes state, runs bounded loop steps, triages non-human blockers, and performs commit-only closeout when explicitly selected.
12
+ - Child harnesses: Codex, Claude Code, Gemini, OpenCode, Pi Agent, or command adapters implement individual roadmap/plan/execute turns.
13
+
14
+ Pi Agent as `executor=pi` is the preferred simple bounded lane runner. It is
15
+ still a child executor, not the global scheduler, runtime ledger owner,
16
+ worktree allocator, or merge reducer.
17
+
18
+ Granular execution policy lives at
19
+ `docs/phase-loop/granular-execution-policy.md`. PI should preserve the runner's high -> medium -> high posture: high planning, medium lane execution and repair, and high reducer/review/verify work.
20
+
21
+ ## Install Or Load
22
+
23
+ Local install:
24
+
25
+ ```bash
26
+ pi install <HOME-REDACTED>/code/dotfiles/phase-loop-pi -l
27
+ ```
28
+
29
+ Direct load when supported by the PI CLI:
30
+
31
+ ```bash
32
+ pi -e <HOME-REDACTED>/code/dotfiles/phase-loop-pi/extensions/phase-loop-tools.ts \
33
+ -e <HOME-REDACTED>/code/dotfiles/phase-loop-pi/extensions/phase-loop-guardrails.ts \
34
+ --skill <HOME-REDACTED>/code/dotfiles/phase-loop-pi/skills/phase-loop-supervisor
35
+ ```
36
+
37
+ ## Run
38
+
39
+ Inspect before launch:
40
+
41
+ ```bash
42
+ phase-loop state --repo /path/to/repo --roadmap specs/phase-plans-v1.md --json
43
+ phase-loop monitor --repo /path/to/repo --roadmap specs/phase-plans-v1.md --once --json
44
+ ```
45
+
46
+ Bounded supervised run:
47
+
48
+ ```bash
49
+ phase-loop run --repo /path/to/repo --roadmap specs/phase-plans-v1.md --max-phases 1 --observe
50
+ ```
51
+
52
+ PI wrapper run for an existing roadmap:
53
+
54
+ ```bash
55
+ pi-agent-watch \
56
+ --repo /path/to/repo \
57
+ --roadmap specs/phase-plans-v1.md \
58
+ --phase-executor codex \
59
+ --max-phases 10 \
60
+ --closeout-mode commit \
61
+ --timeout-seconds 14400 \
62
+ --json
63
+ ```
64
+
65
+ Bounded provider rotation keeps PI's provider model separate from the nested
66
+ child executor. Examples:
67
+
68
+ ```bash
69
+ pi-agent-watch --repo /path/to/repo --roadmap specs/phase-plans-v1.md --phase-executor gemini --closeout-mode manual --json
70
+ pi-agent-watch --repo /path/to/repo --roadmap specs/phase-plans-v1.md --phase-executor opencode --closeout-mode commit --json
71
+ pi-agent-watch --repo /path/to/repo --roadmap specs/phase-plans-v1.md --phase-executor pi --closeout-mode manual --json
72
+ pi-agent-watch --repo /path/to/repo --roadmap specs/phase-plans-v1.md --phase-executor command --closeout-mode manual --json
73
+ ```
74
+
75
+ Automatic push is not a published default. Use manual closeout for inspection
76
+ and commit-only closeout when verified phase-owned output should be preserved
77
+ locally.
78
+
79
+ `pi-agent-watch` is the appropriate PI entrypoint when a roadmap already
80
+ exists. Roadmap-builder commands are only for creating or extending roadmap
81
+ artifacts, not for consuming an execution-ready roadmap.
82
+
83
+ PI supervisor prompt:
84
+
85
+ ```text
86
+ Use the phase-loop-supervisor skill. Inspect phase-loop state for /path/to/repo and specs/phase-plans-v1.md. If no active run or human blocker exists, run the existing roadmap through phase_loop_run and report the monitor outcome.
87
+ ```
88
+
89
+ ## Watch And Callbacks
90
+
91
+ Use `phase_loop_monitor` for a one-shot state check. Use `phase_loop_watch` when
92
+ the operator wants PI to wait by exception, a check-by-exception pattern, instead of repeatedly polling by
93
+ hand. Watch mode calls the neutral runner monitor without `--once`, exits on a
94
+ terminal or exception event, and can invoke a local notification command.
95
+
96
+ Equivalent CLI:
97
+
98
+ ```bash
99
+ phase-loop monitor \
100
+ --repo /path/to/repo \
101
+ --roadmap specs/phase-plans-v1.md \
102
+ --poll-seconds 60 \
103
+ --timeout-seconds 3600 \
104
+ --notify-on blocked \
105
+ --notify-on stale \
106
+ --notify-on complete \
107
+ --notify-command 'python3 /path/to/write-phase-loop-event.py' \
108
+ --json
109
+ ```
110
+
111
+ `notifyCommand` receives the runner notification payload on stdin. Keep
112
+ notification commands local and metadata-only: write an event file, send a
113
+ desktop notification, or call a harness-specific adapter. Watch mode does not guarantee that every TUI can receive an async message unless that TUI provides a
114
+ callback adapter that consumes the notification.
115
+
116
+ ## PI Agent Observability
117
+
118
+ `phase_loop_watch` lets PI watch the phase loop. `pi-agent-watch` lets an
119
+ outside supervisor watch PI itself. It launches PI with this package loaded and
120
+ writes neutral controller-process artifacts under the target repo:
121
+
122
+ - `.phase-loop/pi-agent.json`
123
+ - `.phase-loop/pi-agent.log`
124
+ - `.phase-loop/pi-agent-terminal.json`
125
+
126
+ Example:
127
+
128
+ ```bash
129
+ pi-agent-watch \
130
+ --repo /path/to/repo \
131
+ --roadmap specs/phase-plans-v1.md \
132
+ --provider anthropic \
133
+ --model claude-opus-4-8 \
134
+ --thinking high \
135
+ --max-phases 1 \
136
+ --closeout-mode commit \
137
+ --poll-seconds 30 \
138
+ --timeout-seconds 3600 \
139
+ --json
140
+ ```
141
+
142
+ PI's provider is independent from the nested phase executor. To supervise with
143
+ PI on an available provider while running phase work through Claude Code CLI,
144
+ set `--phase-executor claude`:
145
+
146
+ ```bash
147
+ pi-agent-watch \
148
+ --repo /path/to/repo \
149
+ --roadmap specs/phase-plans-v1.md \
150
+ --provider openai-codex \
151
+ --model gpt-5.5 \
152
+ --thinking high \
153
+ --phase-executor claude \
154
+ --claude-execution-mode agent_team \
155
+ --timeout-seconds 3600 \
156
+ --json
157
+ ```
158
+
159
+ When PI is launched with `--provider anthropic` and no explicit model, the
160
+ wrapper defaults to `claude-opus-4-8` with `--thinking high` so Anthropic-backed
161
+ supervision uses the heavy model tier by default.
162
+
163
+ The PI provider model and the nested phase executor model are separate knobs.
164
+ Use `--model` for the model backing PI's loop-control reasoning. Use
165
+ `--phase-model` when the child phase-loop executor must receive an explicit
166
+ model. For Gemini child execution, prefer `--phase-executor gemini` with no
167
+ `--phase-model` so phase-loop can use Gemini CLI routing defaults: `pro` for
168
+ planning/review and `auto` for execution/repair. Use `--phase-model` only for
169
+ explicit proof runs that intentionally pin a custom phase-loop alias or concrete
170
+ model.
171
+
172
+ Read `.phase-loop/pi-agent.json` before tailing PI logs. It reports PI process
173
+ PID, liveness, elapsed time, seconds since PI output, quiet level, terminal
174
+ status, and the log/terminal artifact paths. `.phase-loop/pi-agent.log` captures
175
+ PI stdout/stderr with secret-shaped values redacted when surfaced through the
176
+ wrapper. These artifacts describe PI controller-process health only; the Python
177
+ `phase-loop` state remains authoritative for roadmap state.
178
+
179
+ The wrapper launches PI with an explicit `phase_loop_*` tool allowlist, session
180
+ persistence disabled, and ambient context-file loading disabled. That keeps the
181
+ controller focused on the injected phase-loop tools instead of shell-searching
182
+ for runner binaries or carrying state between repos. It also passes
183
+ `PHASE_LOOP_DEFAULT_REPO` and
184
+ `PHASE_LOOP_DEFAULT_ROADMAP` into the extension environment so the tools can
185
+ fall back to the wrapper target if PI emits an empty or nested argument object.
186
+ When `--phase-executor` is provided, it also passes
187
+ `PHASE_LOOP_DEFAULT_EXECUTOR` so `phase_loop_run` deterministically launches the
188
+ requested child harness. When `--claude-execution-mode` is provided, it passes
189
+ `PHASE_LOOP_DEFAULT_CLAUDE_EXECUTION_MODE` so Claude Code can run in `solo`,
190
+ `subagent`, or `agent_team` mode through the phase-loop launcher. Native
191
+ subagents, task lists, teammates, and team delegation remain gated by the
192
+ runner's TEAMGOV eligibility checks; the wrapper only requests the mode.
193
+ When `--max-phases` or `--closeout-mode` is provided, it also passes
194
+ `PHASE_LOOP_DEFAULT_MAX_PHASES` and `PHASE_LOOP_DEFAULT_CLOSEOUT_MODE` so the
195
+ supervisor can call `phase_loop_run` with deterministic loop depth and closeout
196
+ policy instead of relying on prompt prose.
197
+
198
+ For `executor=pi` lane launches, the phase-loop launcher writes a context-file
199
+ prompt from repo-local `phase-loop-pi/**` and `pi-config/**` sources. That
200
+ prompt must carry the explicit system prompt, tool policy, allowed writes,
201
+ read-only refs, forbidden refs, output roots, verification intent, Greenfield
202
+ authority citations when present, governed-pipeline assignment fields
203
+ (`lane_id`, `wave_id`, `worktree_path`, `base_sha`, `isolation_mode`,
204
+ `owned_files`, `read_only_refs`, `harness_route`, `model`, `effort`, and
205
+ `fallback_reason`), and the shared `automation:` / `phase_loop_closeout.v1`
206
+ closeout requirements. DFPROMPTSYNC records the prompt-safe contract map at
207
+ `docs/phase-loop/dfpromptsync-contract-map.md`.
208
+
209
+ If `pi --provider anthropic` fails because PI lacks Anthropic API or OAuth
210
+ environment credentials, that does not imply Claude Code CLI is unavailable.
211
+ Use another PI provider for supervision and `--phase-executor claude` when the
212
+ desired child work should use the local `claude` CLI subscription session.
213
+ Validate that child path with metadata-only `claude auth status`.
214
+
215
+ ## Blocker Handling
216
+
217
+ Use `phase_loop_state` first, then `phase_loop_handoff`, `phase_loop_monitor`, and bounded `tail_run_log` only when the state points to a specific log. PI must not infer completion from narrative logs. `human_required=true` is never bypassed.
218
+
219
+ For `human_required=false` blockers, PI can propose or perform mechanical repair using the `phase-loop-repair` skill, then call `phase_loop_resume` and re-check machine state.
220
+
221
+ ## Closeout
222
+
223
+ Default policy is manual. Commit-only closeout is the middle ground for preserving verified phase-owned output without triggering remote CI/CD. Push remains explicit operator policy.
224
+
225
+ Before closeout, confirm:
226
+
227
+ - `verification_status=passed`
228
+ - `human_required=false`
229
+ - dirty paths are phase-owned
230
+ - `git diff --check` passes
231
+
232
+ ## Decoupling
233
+
234
+ The PI package calls `phase-loop`, not `codex-phase-loop`. It does not require Codex skills, Codex TUI state, or `.codex/phase-loop/` as the canonical artifact root. Repos with legacy `.codex/phase-loop/` state remain readable so existing loops are not stranded during migration.
235
+
236
+ For MIGRATELOOP lane scheduling, PI must read canonical `.phase-loop/` state
237
+ and pass `--lane-scheduler serialized` only when the operator intentionally
238
+ opts into runner-owned lane work units. Plain `phase-loop run --max-phases 1`
239
+ remains the coarse compatibility path.
240
+
241
+ ## DFPARSOAK Integrated Soak
242
+
243
+ DFPARSOAK consumes the Pi default route through
244
+ `docs/phase-loop/dfparsoak-receipt.md` and
245
+ `docs/phase-loop/dfparsoak-runbook.md`. Pi remains a bounded child runner for
246
+ scheduler-assigned lanes; it does not own scheduling, merge reduction, or
247
+ destructive worktree cleanup.