phase-loop-runtime 0.7.27__tar.gz → 0.7.29__tar.gz

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 (1437) hide show
  1. phase_loop_runtime-0.7.29/MANIFEST.in +8 -0
  2. phase_loop_runtime-0.7.29/PKG-INFO +453 -0
  3. phase_loop_runtime-0.7.29/README.md +414 -0
  4. phase_loop_runtime-0.7.29/pyproject.toml +199 -0
  5. phase_loop_runtime-0.7.29/src/phase_loop_runtime/__init__.py +21 -0
  6. phase_loop_runtime-0.7.29/src/phase_loop_runtime/_baml_worker.py +211 -0
  7. phase_loop_runtime-0.7.29/src/phase_loop_runtime/adoption_bundle.py +279 -0
  8. phase_loop_runtime-0.7.29/src/phase_loop_runtime/advisor_board/CONTRACTS.md +2272 -0
  9. phase_loop_runtime-0.7.29/src/phase_loop_runtime/advisor_board/composition.py +530 -0
  10. phase_loop_runtime-0.7.29/src/phase_loop_runtime/advisor_board/config.py +618 -0
  11. phase_loop_runtime-0.7.29/src/phase_loop_runtime/advisor_board/fixtures/advisor-boards.example.toml +70 -0
  12. phase_loop_runtime-0.7.29/src/phase_loop_runtime/advisor_board/fixtures/placement-driver.defaults.toml +8 -0
  13. phase_loop_runtime-0.7.29/src/phase_loop_runtime/agy_canary_evidence.py +8754 -0
  14. phase_loop_runtime-0.7.29/src/phase_loop_runtime/agy_qualification.py +1841 -0
  15. phase_loop_runtime-0.7.29/src/phase_loop_runtime/baml_src/phase_loop_bridge.baml +43 -0
  16. phase_loop_runtime-0.7.29/src/phase_loop_runtime/baml_src/placement_contract.baml +209 -0
  17. phase_loop_runtime-0.7.29/src/phase_loop_runtime/claude_bakeoff.py +1673 -0
  18. phase_loop_runtime-0.7.29/src/phase_loop_runtime/claude_bakeoff_recorder.mjs +216 -0
  19. phase_loop_runtime-0.7.29/src/phase_loop_runtime/claude_print_observations.py +386 -0
  20. phase_loop_runtime-0.7.29/src/phase_loop_runtime/claude_seat_print.py +597 -0
  21. phase_loop_runtime-0.7.29/src/phase_loop_runtime/claude_seat_sdk.py +1549 -0
  22. phase_loop_runtime-0.7.29/src/phase_loop_runtime/claude_seat_transport.py +1538 -0
  23. phase_loop_runtime-0.7.29/src/phase_loop_runtime/cli.py +5719 -0
  24. phase_loop_runtime-0.7.29/src/phase_loop_runtime/contracts/placement/README.md +128 -0
  25. phase_loop_runtime-0.7.29/src/phase_loop_runtime/contracts/placement/coordinator-v1.schema.json +587 -0
  26. phase_loop_runtime-0.7.29/src/phase_loop_runtime/contracts/placement/placement_contract.gen.ts +155 -0
  27. phase_loop_runtime-0.7.29/src/phase_loop_runtime/contracts/placement/vectors/policies.json +121 -0
  28. phase_loop_runtime-0.7.29/src/phase_loop_runtime/contracts/placement/vectors/policy-digests.json +60 -0
  29. phase_loop_runtime-0.7.29/src/phase_loop_runtime/contracts/placement/vectors/wire.json +1501 -0
  30. phase_loop_runtime-0.7.29/src/phase_loop_runtime/convergence/broker/admission.py +608 -0
  31. phase_loop_runtime-0.7.29/src/phase_loop_runtime/convergence/broker/credsep.py +709 -0
  32. phase_loop_runtime-0.7.29/src/phase_loop_runtime/convergence/broker/evidence.py +694 -0
  33. phase_loop_runtime-0.7.29/src/phase_loop_runtime/convergence/broker/exact_pr_reconciliation.py +1457 -0
  34. phase_loop_runtime-0.7.29/src/phase_loop_runtime/convergence/broker/live.py +6474 -0
  35. phase_loop_runtime-0.7.29/src/phase_loop_runtime/convergence/broker/verbs.py +1888 -0
  36. phase_loop_runtime-0.7.29/src/phase_loop_runtime/convergence/contracts.py +359 -0
  37. phase_loop_runtime-0.7.29/src/phase_loop_runtime/convergence/dispatch.py +121 -0
  38. phase_loop_runtime-0.7.29/src/phase_loop_runtime/convergence/provider_contracts.py +163 -0
  39. phase_loop_runtime-0.7.29/src/phase_loop_runtime/data/claude_sdk/closure-linux-x86_64-cp314-v1.json +4490 -0
  40. phase_loop_runtime-0.7.29/src/phase_loop_runtime/data/claude_sdk/launch-v1.json +707 -0
  41. phase_loop_runtime-0.7.29/src/phase_loop_runtime/data/claude_sdk/requirements-v1.txt +395 -0
  42. phase_loop_runtime-0.7.29/src/phase_loop_runtime/data/claude_sdk/worker/claude_sdk_adapter.py +277 -0
  43. phase_loop_runtime-0.7.29/src/phase_loop_runtime/data/claude_sdk/worker/claude_sdk_bootstrap.py +413 -0
  44. phase_loop_runtime-0.7.29/src/phase_loop_runtime/data/claude_sdk/worker/claude_sdk_worker.py +76 -0
  45. phase_loop_runtime-0.7.29/src/phase_loop_runtime/discovery.py +2603 -0
  46. phase_loop_runtime-0.7.29/src/phase_loop_runtime/doctor.py +618 -0
  47. phase_loop_runtime-0.7.29/src/phase_loop_runtime/executable_dependency.py +1258 -0
  48. phase_loop_runtime-0.7.29/src/phase_loop_runtime/executable_dependency_startup.py +734 -0
  49. phase_loop_runtime-0.7.29/src/phase_loop_runtime/fleet_map.py +438 -0
  50. phase_loop_runtime-0.7.29/src/phase_loop_runtime/fleet_map_artifact.py +405 -0
  51. phase_loop_runtime-0.7.29/src/phase_loop_runtime/gemini_heartbeat.py +429 -0
  52. phase_loop_runtime-0.7.29/src/phase_loop_runtime/governed_review.py +935 -0
  53. phase_loop_runtime-0.7.29/src/phase_loop_runtime/launcher.py +4281 -0
  54. phase_loop_runtime-0.7.29/src/phase_loop_runtime/legible_evidence.py +2418 -0
  55. phase_loop_runtime-0.7.29/src/phase_loop_runtime/openshell_artifacts.py +593 -0
  56. phase_loop_runtime-0.7.29/src/phase_loop_runtime/openshell_backend.py +454 -0
  57. phase_loop_runtime-0.7.29/src/phase_loop_runtime/openshell_channel.py +177 -0
  58. phase_loop_runtime-0.7.29/src/phase_loop_runtime/openshell_journal.py +336 -0
  59. phase_loop_runtime-0.7.29/src/phase_loop_runtime/openshell_transport.py +585 -0
  60. phase_loop_runtime-0.7.29/src/phase_loop_runtime/openshell_worker.py +687 -0
  61. phase_loop_runtime-0.7.29/src/phase_loop_runtime/output_retention.py +389 -0
  62. phase_loop_runtime-0.7.29/src/phase_loop_runtime/panel_invoker.py +19095 -0
  63. phase_loop_runtime-0.7.29/src/phase_loop_runtime/placement_contract.py +63 -0
  64. phase_loop_runtime-0.7.29/src/phase_loop_runtime/placement_lease.py +739 -0
  65. phase_loop_runtime-0.7.29/src/phase_loop_runtime/president_adapter.py +809 -0
  66. phase_loop_runtime-0.7.29/src/phase_loop_runtime/publish_scope_correction.py +236 -0
  67. phase_loop_runtime-0.7.29/src/phase_loop_runtime/publishing.py +2583 -0
  68. phase_loop_runtime-0.7.29/src/phase_loop_runtime/review_stage.py +1326 -0
  69. phase_loop_runtime-0.7.29/src/phase_loop_runtime/roadmap_assumptions.py +802 -0
  70. phase_loop_runtime-0.7.29/src/phase_loop_runtime/roadmap_lint.py +1239 -0
  71. phase_loop_runtime-0.7.29/src/phase_loop_runtime/roadmap_ownership.py +1396 -0
  72. phase_loop_runtime-0.7.29/src/phase_loop_runtime/runner.py +13405 -0
  73. phase_loop_runtime-0.7.29/src/phase_loop_runtime/sandbox_egress.py +756 -0
  74. phase_loop_runtime-0.7.29/src/phase_loop_runtime/sandbox_placement.py +2159 -0
  75. phase_loop_runtime-0.7.29/src/phase_loop_runtime/sandbox_policy.py +1167 -0
  76. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/__init__.py +1 -0
  77. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/dependency-requirement-v1.schema.json +114 -0
  78. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/executable-dependency-authority-v1.schema.json +346 -0
  79. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/executable-dependency-declaration-v1.schema.json +356 -0
  80. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/fleet_map.v1.schema.json +732 -0
  81. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/phase-loop-doctor.v1.golden.json +117 -0
  82. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/phase-loop-doctor.v1.schema.json +144 -0
  83. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/supervised-worker-v1/admitted-launch-envelope.schema.json +226 -0
  84. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/supervised-worker-v1/conformance/README.md +55 -0
  85. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/supervised-worker-v1/conformance/SHA256SUMS +5 -0
  86. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/supervised-worker-v1/conformance/envelope.vectors.json +557 -0
  87. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/supervised-worker-v1/conformance/run-status.vectors.json +2150 -0
  88. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/supervised-worker-v1/harness-provenance.json +40 -0
  89. phase_loop_runtime-0.7.29/src/phase_loop_runtime/schemas/supervised-worker-v1/run-status.schema.json +768 -0
  90. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_admission.py +339 -0
  91. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_credentials.py +965 -0
  92. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_egress/proxy.mjs +347 -0
  93. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_egress_proxy.py +801 -0
  94. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_host_admin.py +86 -0
  95. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_host_namespace.py +306 -0
  96. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_jail.py +2240 -0
  97. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_jail_autoqualify.py +299 -0
  98. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_jail_prerequisites.py +144 -0
  99. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_jail_qualification.py +2732 -0
  100. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_preflight.py +350 -0
  101. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_profiles.py +446 -0
  102. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_qualification_key.py +103 -0
  103. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_resource_caps.py +677 -0
  104. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_resource_caps_enter.py +124 -0
  105. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_route.py +580 -0
  106. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_route_contract.py +469 -0
  107. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_subject.py +526 -0
  108. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_uid.py +981 -0
  109. phase_loop_runtime-0.7.29/src/phase_loop_runtime/seat_window.py +816 -0
  110. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skill_eval.py +684 -0
  111. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skill_eval_access.py +99 -0
  112. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skill_eval_runner.py +267 -0
  113. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/claude-advisor-board/SKILL.md +201 -0
  114. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/claude-advisor-panel/SKILL.md +201 -0
  115. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/claude-execute-phase/SKILL.md +251 -0
  116. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/claude-execute-phase/references/interactive-path.md +48 -0
  117. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/claude-execute-phase/references/lane-dispatch.md +156 -0
  118. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/claude-execute-phase/references/merge-and-verify.md +217 -0
  119. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/codex-execute-phase/SKILL.md +271 -0
  120. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/codex-execute-phase/references/interactive-path.md +56 -0
  121. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/codex-execute-phase/references/worker-fanout.md +14 -0
  122. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/codex-plan-phase/SKILL.md +319 -0
  123. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/SKILL.md +218 -0
  124. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/references/interactive-path.md +52 -0
  125. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/references/worker-fanout.md +14 -0
  126. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/references/worktree-pruning.md +16 -0
  127. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/SKILL.md +229 -0
  128. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/SKILL.md +229 -0
  129. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/references/interactive-publication.md +40 -0
  130. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/references/worktree-pruning.md +12 -0
  131. phase_loop_runtime-0.7.29/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/SKILL.md +223 -0
  132. phase_loop_runtime-0.7.29/src/phase_loop_runtime/supervised_contracts.py +304 -0
  133. phase_loop_runtime-0.7.29/src/phase_loop_runtime/supervised_dependency.py +20 -0
  134. phase_loop_runtime-0.7.29/src/phase_loop_runtime/supervised_launch.py +488 -0
  135. phase_loop_runtime-0.7.29/src/phase_loop_runtime/supervised_launch_binding.py +67 -0
  136. phase_loop_runtime-0.7.29/src/phase_loop_runtime/worker_pool.py +170 -0
  137. phase_loop_runtime-0.7.29/src/phase_loop_runtime.egg-info/PKG-INFO +453 -0
  138. phase_loop_runtime-0.7.29/src/phase_loop_runtime.egg-info/SOURCES.txt +1279 -0
  139. phase_loop_runtime-0.7.29/src/phase_loop_runtime.egg-info/entry_points.txt +12 -0
  140. phase_loop_runtime-0.7.29/src/phase_loop_runtime.egg-info/requires.txt +23 -0
  141. phase_loop_runtime-0.7.29/tests/test_adapter_skill_references.py +367 -0
  142. phase_loop_runtime-0.7.29/tests/test_advisor_board_composition.py +1938 -0
  143. phase_loop_runtime-0.7.29/tests/test_advisor_board_config.py +580 -0
  144. phase_loop_runtime-0.7.29/tests/test_advisory_roadmap_status.py +419 -0
  145. phase_loop_runtime-0.7.29/tests/test_agent_cli_scratch_inventory_1147.py +918 -0
  146. phase_loop_runtime-0.7.29/tests/test_agy_canary_evidence.py +8089 -0
  147. phase_loop_runtime-0.7.29/tests/test_agy_integrity_seat_admission.py +669 -0
  148. phase_loop_runtime-0.7.29/tests/test_agy_self_qualification.py +2800 -0
  149. phase_loop_runtime-0.7.29/tests/test_broker_staged_tree_delivery.py +652 -0
  150. phase_loop_runtime-0.7.29/tests/test_ci_xdist_adoption.py +416 -0
  151. phase_loop_runtime-0.7.29/tests/test_claude_delivery_refusal_1433.py +435 -0
  152. phase_loop_runtime-0.7.29/tests/test_codex_seat_tool_sandbox_1335.py +640 -0
  153. phase_loop_runtime-0.7.29/tests/test_codex_seat_writable_tree_1470.py +581 -0
  154. phase_loop_runtime-0.7.29/tests/test_conform_tar_metadata.py +62 -0
  155. phase_loop_runtime-0.7.29/tests/test_convergence_broker_evidence.py +75 -0
  156. phase_loop_runtime-0.7.29/tests/test_convergence_runtime_imports.py +521 -0
  157. phase_loop_runtime-0.7.29/tests/test_dependency_task_propagation.py +139 -0
  158. phase_loop_runtime-0.7.29/tests/test_doctor_bom.py +257 -0
  159. phase_loop_runtime-0.7.29/tests/test_executable_dependency.py +251 -0
  160. phase_loop_runtime-0.7.29/tests/test_executable_dependency_integration.py +254 -0
  161. phase_loop_runtime-0.7.29/tests/test_executable_dependency_production_lifecycle.py +684 -0
  162. phase_loop_runtime-0.7.29/tests/test_executable_dependency_review_repairs.py +562 -0
  163. phase_loop_runtime-0.7.29/tests/test_executable_dependency_startup.py +432 -0
  164. phase_loop_runtime-0.7.29/tests/test_executor_availability.py +156 -0
  165. phase_loop_runtime-0.7.29/tests/test_executor_exited_without_closeout_785.py +345 -0
  166. phase_loop_runtime-0.7.29/tests/test_fabpub_exact_pr_reconciliation.py +2068 -0
  167. phase_loop_runtime-0.7.29/tests/test_fabpub_partition_rotation_789d.py +5510 -0
  168. phase_loop_runtime-0.7.29/tests/test_fabpub_typed_handoffs.py +872 -0
  169. phase_loop_runtime-0.7.29/tests/test_fleet_map_artifact.py +427 -0
  170. phase_loop_runtime-0.7.29/tests/test_gate_a_wheel_isolation.py +149 -0
  171. phase_loop_runtime-0.7.29/tests/test_gemini_heartbeat_bootstrap.py +1638 -0
  172. phase_loop_runtime-0.7.29/tests/test_gemini_login_wait_1407.py +815 -0
  173. phase_loop_runtime-0.7.29/tests/test_gemini_seat_egress_1170.py +759 -0
  174. phase_loop_runtime-0.7.29/tests/test_grok_sandbox_seat_approval.py +496 -0
  175. phase_loop_runtime-0.7.29/tests/test_launch_audit_inventory.py +121 -0
  176. phase_loop_runtime-0.7.29/tests/test_leg_liveness_monitor.py +410 -0
  177. phase_loop_runtime-0.7.29/tests/test_legible_roadmap_contract.py +2668 -0
  178. phase_loop_runtime-0.7.29/tests/test_local_check.py +210 -0
  179. phase_loop_runtime-0.7.29/tests/test_openshell_artifacts.py +433 -0
  180. phase_loop_runtime-0.7.29/tests/test_openshell_backend.py +841 -0
  181. phase_loop_runtime-0.7.29/tests/test_openshell_channel.py +196 -0
  182. phase_loop_runtime-0.7.29/tests/test_openshell_journal.py +607 -0
  183. phase_loop_runtime-0.7.29/tests/test_openshell_sdk_qualification.py +77 -0
  184. phase_loop_runtime-0.7.29/tests/test_openshell_transport.py +409 -0
  185. phase_loop_runtime-0.7.29/tests/test_openshell_transport_grpc.py +170 -0
  186. phase_loop_runtime-0.7.29/tests/test_openshell_worker.py +684 -0
  187. phase_loop_runtime-0.7.29/tests/test_output_retention.py +489 -0
  188. phase_loop_runtime-0.7.29/tests/test_outside_agent_conform_evidence.py +7100 -0
  189. phase_loop_runtime-0.7.29/tests/test_panel_claude_print_route.py +664 -0
  190. phase_loop_runtime-0.7.29/tests/test_panel_claude_review_output.py +1273 -0
  191. phase_loop_runtime-0.7.29/tests/test_panel_codex_auth_signature_body_252.py +149 -0
  192. phase_loop_runtime-0.7.29/tests/test_panel_gemini_no_command_preamble.py +74 -0
  193. phase_loop_runtime-0.7.29/tests/test_panel_invoker.py +1548 -0
  194. phase_loop_runtime-0.7.29/tests/test_panel_invoker_timeout_argv.py +2469 -0
  195. phase_loop_runtime-0.7.29/tests/test_panel_leg_status_detail_1096.py +1338 -0
  196. phase_loop_runtime-0.7.29/tests/test_panel_tui_eof_48.py +75 -0
  197. phase_loop_runtime-0.7.29/tests/test_panel_tui_liveness_188.py +673 -0
  198. phase_loop_runtime-0.7.29/tests/test_panel_tui_workspace_trust_223.py +533 -0
  199. phase_loop_runtime-0.7.29/tests/test_phase_loop_baml_dependency.py +70 -0
  200. phase_loop_runtime-0.7.29/tests/test_phase_loop_baml_v1_runtime.py +5364 -0
  201. phase_loop_runtime-0.7.29/tests/test_phase_loop_v22_principles.py +153 -0
  202. phase_loop_runtime-0.7.29/tests/test_placement_contract.py +266 -0
  203. phase_loop_runtime-0.7.29/tests/test_placement_driver.py +1542 -0
  204. phase_loop_runtime-0.7.29/tests/test_placement_ladder_model.py +1221 -0
  205. phase_loop_runtime-0.7.29/tests/test_placement_lease.py +977 -0
  206. phase_loop_runtime-0.7.29/tests/test_president_heartbeat_1001.py +810 -0
  207. phase_loop_runtime-0.7.29/tests/test_president_ladder_config.py +604 -0
  208. phase_loop_runtime-0.7.29/tests/test_president_wiring.py +1254 -0
  209. phase_loop_runtime-0.7.29/tests/test_publish_scope_correction.py +389 -0
  210. phase_loop_runtime-0.7.29/tests/test_publishing.py +1995 -0
  211. phase_loop_runtime-0.7.29/tests/test_qualified_agy_image_set.py +157 -0
  212. phase_loop_runtime-0.7.29/tests/test_review_leg_sandbox.py +517 -0
  213. phase_loop_runtime-0.7.29/tests/test_review_monitor_policy.py +1394 -0
  214. phase_loop_runtime-0.7.29/tests/test_review_policy_govlean_repairs.py +173 -0
  215. phase_loop_runtime-0.7.29/tests/test_review_seat_stall_1176.py +1508 -0
  216. phase_loop_runtime-0.7.29/tests/test_sandbox_egress.py +886 -0
  217. phase_loop_runtime-0.7.29/tests/test_sandbox_placement.py +2155 -0
  218. phase_loop_runtime-0.7.29/tests/test_sandbox_policy.py +448 -0
  219. phase_loop_runtime-0.7.29/tests/test_sandbox_staging_1147.py +1426 -0
  220. phase_loop_runtime-0.7.29/tests/test_sealed_seat_never_counts.py +444 -0
  221. phase_loop_runtime-0.7.29/tests/test_seat_argv_bound_paths_1441.py +244 -0
  222. phase_loop_runtime-0.7.29/tests/test_seat_caller_ancestry.py +158 -0
  223. phase_loop_runtime-0.7.29/tests/test_seat_caller_owner.py +159 -0
  224. phase_loop_runtime-0.7.29/tests/test_seat_codex_vocabulary.py +276 -0
  225. phase_loop_runtime-0.7.29/tests/test_seat_credential_refresh.py +257 -0
  226. phase_loop_runtime-0.7.29/tests/test_seat_egress_allowlists_jailcore.py +326 -0
  227. phase_loop_runtime-0.7.29/tests/test_seat_egress_rules.py +140 -0
  228. phase_loop_runtime-0.7.29/tests/test_seat_frontdoor_1798.py +239 -0
  229. phase_loop_runtime-0.7.29/tests/test_seat_host_git.py +324 -0
  230. phase_loop_runtime-0.7.29/tests/test_seat_ipc.py +98 -0
  231. phase_loop_runtime-0.7.29/tests/test_seat_jail.py +1587 -0
  232. phase_loop_runtime-0.7.29/tests/test_seat_jail_live_d8.py +474 -0
  233. phase_loop_runtime-0.7.29/tests/test_seat_jail_prerequisites_1357.py +477 -0
  234. phase_loop_runtime-0.7.29/tests/test_seat_jail_qualification_bracket_steps.py +234 -0
  235. phase_loop_runtime-0.7.29/tests/test_seat_jail_qualification_entry.py +872 -0
  236. phase_loop_runtime-0.7.29/tests/test_seat_journal_collection.py +233 -0
  237. phase_loop_runtime-0.7.29/tests/test_seat_launch_helpers_trusted.py +280 -0
  238. phase_loop_runtime-0.7.29/tests/test_seat_login_wait_a3_1166.py +430 -0
  239. phase_loop_runtime-0.7.29/tests/test_seat_login_wait_board_context_r12.py +174 -0
  240. phase_loop_runtime-0.7.29/tests/test_seat_notices.py +1478 -0
  241. phase_loop_runtime-0.7.29/tests/test_seat_output_atomic_write_1433.py +1094 -0
  242. phase_loop_runtime-0.7.29/tests/test_seat_owner_round1_1282.py +150 -0
  243. phase_loop_runtime-0.7.29/tests/test_seat_owner_setup_clock_1282.py +88 -0
  244. phase_loop_runtime-0.7.29/tests/test_seat_owner_view.py +317 -0
  245. phase_loop_runtime-0.7.29/tests/test_seat_preflight_1204.py +580 -0
  246. phase_loop_runtime-0.7.29/tests/test_seat_prereq_gates.py +312 -0
  247. phase_loop_runtime-0.7.29/tests/test_seat_profiles.py +444 -0
  248. phase_loop_runtime-0.7.29/tests/test_seat_qualification_host_context.py +717 -0
  249. phase_loop_runtime-0.7.29/tests/test_seat_qualification_key.py +240 -0
  250. phase_loop_runtime-0.7.29/tests/test_seat_resource_caps.py +1491 -0
  251. phase_loop_runtime-0.7.29/tests/test_seat_review_refusals.py +40 -0
  252. phase_loop_runtime-0.7.29/tests/test_seat_route.py +1154 -0
  253. phase_loop_runtime-0.7.29/tests/test_seat_route_contract.py +149 -0
  254. phase_loop_runtime-0.7.29/tests/test_seat_sandbox_permissions.py +1120 -0
  255. phase_loop_runtime-0.7.29/tests/test_seat_transcript_io.py +228 -0
  256. phase_loop_runtime-0.7.29/tests/test_seat_tui_owner_refusal.py +34 -0
  257. phase_loop_runtime-0.7.29/tests/test_seats_claude_bakeoff.py +1366 -0
  258. phase_loop_runtime-0.7.29/tests/test_seats_claude_login_proof.py +366 -0
  259. phase_loop_runtime-0.7.29/tests/test_seats_claude_order.py +1041 -0
  260. phase_loop_runtime-0.7.29/tests/test_seats_claude_print.py +611 -0
  261. phase_loop_runtime-0.7.29/tests/test_seats_claude_print_observations.py +126 -0
  262. phase_loop_runtime-0.7.29/tests/test_seats_claude_sdk.py +1823 -0
  263. phase_loop_runtime-0.7.29/tests/test_seats_claude_sdk_adapter.py +366 -0
  264. phase_loop_runtime-0.7.29/tests/test_seats_claude_transport.py +1773 -0
  265. phase_loop_runtime-0.7.29/tests/test_seats_teamhost_accounts.py +403 -0
  266. phase_loop_runtime-0.7.29/tests/test_seats_teamhost_doctor.py +719 -0
  267. phase_loop_runtime-0.7.29/tests/test_seats_teamhost_gemini.py +681 -0
  268. phase_loop_runtime-0.7.29/tests/test_seats_teamhost_integration.py +421 -0
  269. phase_loop_runtime-0.7.29/tests/test_seats_teamhost_overlay.py +182 -0
  270. phase_loop_runtime-0.7.29/tests/test_seats_teamhost_subject.py +464 -0
  271. phase_loop_runtime-0.7.29/tests/test_seats_teamhost_switchon.py +397 -0
  272. phase_loop_runtime-0.7.29/tests/test_skill_eval.py +618 -0
  273. phase_loop_runtime-0.7.29/tests/test_skill_eval_runner.py +498 -0
  274. phase_loop_runtime-0.7.29/tests/test_skill_size_gate.py +213 -0
  275. phase_loop_runtime-0.7.29/tests/test_supervised_contracts.py +453 -0
  276. phase_loop_runtime-0.7.29/tests/test_supervised_contracts_mutations.py +207 -0
  277. phase_loop_runtime-0.7.29/tests/test_supervised_contracts_receipt.py +368 -0
  278. phase_loop_runtime-0.7.29/tests/test_supervised_contracts_vectors.py +334 -0
  279. phase_loop_runtime-0.7.29/tests/test_supervised_launch.py +693 -0
  280. phase_loop_runtime-0.7.29/tests/test_supervised_launch_binding.py +183 -0
  281. phase_loop_runtime-0.7.29/tests/test_supervised_launch_mutations.py +177 -0
  282. phase_loop_runtime-0.7.29/tests/test_supervised_launch_receipt.py +137 -0
  283. phase_loop_runtime-0.7.29/tests/test_supervised_launch_route.py +114 -0
  284. phase_loop_runtime-0.7.29/tests/test_the_real_launch_carries_the_prefix.py +414 -0
  285. phase_loop_runtime-0.7.29/tests/test_unadmitted_prebuilt_recovery.py +750 -0
  286. phase_loop_runtime-0.7.27/MANIFEST.in +0 -7
  287. phase_loop_runtime-0.7.27/PKG-INFO +0 -391
  288. phase_loop_runtime-0.7.27/README.md +0 -357
  289. phase_loop_runtime-0.7.27/pyproject.toml +0 -182
  290. phase_loop_runtime-0.7.27/src/phase_loop_runtime/__init__.py +0 -21
  291. phase_loop_runtime-0.7.27/src/phase_loop_runtime/_baml_worker.py +0 -202
  292. phase_loop_runtime-0.7.27/src/phase_loop_runtime/adoption_bundle.py +0 -275
  293. phase_loop_runtime-0.7.27/src/phase_loop_runtime/advisor_board/CONTRACTS.md +0 -2095
  294. phase_loop_runtime-0.7.27/src/phase_loop_runtime/advisor_board/composition.py +0 -504
  295. phase_loop_runtime-0.7.27/src/phase_loop_runtime/advisor_board/config.py +0 -533
  296. phase_loop_runtime-0.7.27/src/phase_loop_runtime/advisor_board/fixtures/advisor-boards.example.toml +0 -65
  297. phase_loop_runtime-0.7.27/src/phase_loop_runtime/agy_canary_evidence.py +0 -8750
  298. phase_loop_runtime-0.7.27/src/phase_loop_runtime/agy_qualification.py +0 -1565
  299. phase_loop_runtime-0.7.27/src/phase_loop_runtime/baml_src/phase_loop_bridge.baml +0 -43
  300. phase_loop_runtime-0.7.27/src/phase_loop_runtime/cli.py +0 -5590
  301. phase_loop_runtime-0.7.27/src/phase_loop_runtime/convergence/broker/admission.py +0 -607
  302. phase_loop_runtime-0.7.27/src/phase_loop_runtime/convergence/broker/credsep.py +0 -560
  303. phase_loop_runtime-0.7.27/src/phase_loop_runtime/convergence/broker/evidence.py +0 -667
  304. phase_loop_runtime-0.7.27/src/phase_loop_runtime/convergence/broker/live.py +0 -6213
  305. phase_loop_runtime-0.7.27/src/phase_loop_runtime/convergence/broker/verbs.py +0 -1485
  306. phase_loop_runtime-0.7.27/src/phase_loop_runtime/convergence/contracts.py +0 -355
  307. phase_loop_runtime-0.7.27/src/phase_loop_runtime/convergence/dispatch.py +0 -100
  308. phase_loop_runtime-0.7.27/src/phase_loop_runtime/convergence/provider_contracts.py +0 -153
  309. phase_loop_runtime-0.7.27/src/phase_loop_runtime/discovery.py +0 -2600
  310. phase_loop_runtime-0.7.27/src/phase_loop_runtime/doctor.py +0 -594
  311. phase_loop_runtime-0.7.27/src/phase_loop_runtime/fleet_map.py +0 -426
  312. phase_loop_runtime-0.7.27/src/phase_loop_runtime/gemini_heartbeat.py +0 -457
  313. phase_loop_runtime-0.7.27/src/phase_loop_runtime/governed_review.py +0 -919
  314. phase_loop_runtime-0.7.27/src/phase_loop_runtime/launcher.py +0 -4222
  315. phase_loop_runtime-0.7.27/src/phase_loop_runtime/legible_evidence.py +0 -2416
  316. phase_loop_runtime-0.7.27/src/phase_loop_runtime/panel_invoker.py +0 -15802
  317. phase_loop_runtime-0.7.27/src/phase_loop_runtime/placement_lease.py +0 -429
  318. phase_loop_runtime-0.7.27/src/phase_loop_runtime/president_adapter.py +0 -621
  319. phase_loop_runtime-0.7.27/src/phase_loop_runtime/publishing.py +0 -2287
  320. phase_loop_runtime-0.7.27/src/phase_loop_runtime/review_stage.py +0 -1310
  321. phase_loop_runtime-0.7.27/src/phase_loop_runtime/roadmap_assumptions.py +0 -802
  322. phase_loop_runtime-0.7.27/src/phase_loop_runtime/roadmap_lint.py +0 -1193
  323. phase_loop_runtime-0.7.27/src/phase_loop_runtime/roadmap_ownership.py +0 -1395
  324. phase_loop_runtime-0.7.27/src/phase_loop_runtime/runner.py +0 -13391
  325. phase_loop_runtime-0.7.27/src/phase_loop_runtime/sandbox_egress.py +0 -684
  326. phase_loop_runtime-0.7.27/src/phase_loop_runtime/sandbox_placement.py +0 -1739
  327. phase_loop_runtime-0.7.27/src/phase_loop_runtime/sandbox_policy.py +0 -1102
  328. phase_loop_runtime-0.7.27/src/phase_loop_runtime/schemas/phase-loop-doctor.v1.golden.json +0 -103
  329. phase_loop_runtime-0.7.27/src/phase_loop_runtime/schemas/phase-loop-doctor.v1.schema.json +0 -126
  330. phase_loop_runtime-0.7.27/src/phase_loop_runtime/seat_credentials.py +0 -817
  331. phase_loop_runtime-0.7.27/src/phase_loop_runtime/seat_egress/proxy.mjs +0 -232
  332. phase_loop_runtime-0.7.27/src/phase_loop_runtime/seat_egress_proxy.py +0 -398
  333. phase_loop_runtime-0.7.27/src/phase_loop_runtime/seat_jail.py +0 -1923
  334. phase_loop_runtime-0.7.27/src/phase_loop_runtime/seat_jail_autoqualify.py +0 -293
  335. phase_loop_runtime-0.7.27/src/phase_loop_runtime/seat_jail_prerequisites.py +0 -54
  336. phase_loop_runtime-0.7.27/src/phase_loop_runtime/seat_jail_qualification.py +0 -490
  337. phase_loop_runtime-0.7.27/src/phase_loop_runtime/seat_preflight.py +0 -244
  338. phase_loop_runtime-0.7.27/src/phase_loop_runtime/seat_uid.py +0 -591
  339. phase_loop_runtime-0.7.27/src/phase_loop_runtime/skills_bundle/claude-advisor-board/SKILL.md +0 -195
  340. phase_loop_runtime-0.7.27/src/phase_loop_runtime/skills_bundle/claude-advisor-panel/SKILL.md +0 -195
  341. phase_loop_runtime-0.7.27/src/phase_loop_runtime/skills_bundle/claude-execute-phase/SKILL.md +0 -316
  342. phase_loop_runtime-0.7.27/src/phase_loop_runtime/skills_bundle/claude-execute-phase/references/lane-dispatch.md +0 -121
  343. phase_loop_runtime-0.7.27/src/phase_loop_runtime/skills_bundle/claude-execute-phase/references/merge-and-verify.md +0 -204
  344. phase_loop_runtime-0.7.27/src/phase_loop_runtime/skills_bundle/codex-execute-phase/SKILL.md +0 -307
  345. phase_loop_runtime-0.7.27/src/phase_loop_runtime/skills_bundle/codex-plan-phase/SKILL.md +0 -316
  346. phase_loop_runtime-0.7.27/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/SKILL.md +0 -274
  347. phase_loop_runtime-0.7.27/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/SKILL.md +0 -226
  348. phase_loop_runtime-0.7.27/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/SKILL.md +0 -258
  349. phase_loop_runtime-0.7.27/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/SKILL.md +0 -220
  350. phase_loop_runtime-0.7.27/src/phase_loop_runtime/worker_pool.py +0 -160
  351. phase_loop_runtime-0.7.27/src/phase_loop_runtime.egg-info/PKG-INFO +0 -391
  352. phase_loop_runtime-0.7.27/src/phase_loop_runtime.egg-info/SOURCES.txt +0 -1150
  353. phase_loop_runtime-0.7.27/src/phase_loop_runtime.egg-info/entry_points.txt +0 -11
  354. phase_loop_runtime-0.7.27/src/phase_loop_runtime.egg-info/requires.txt +0 -17
  355. phase_loop_runtime-0.7.27/tests/test_adapter_skill_references.py +0 -117
  356. phase_loop_runtime-0.7.27/tests/test_advisor_board_composition.py +0 -1913
  357. phase_loop_runtime-0.7.27/tests/test_advisor_board_config.py +0 -412
  358. phase_loop_runtime-0.7.27/tests/test_agent_cli_scratch_inventory_1147.py +0 -884
  359. phase_loop_runtime-0.7.27/tests/test_agy_canary_evidence.py +0 -8058
  360. phase_loop_runtime-0.7.27/tests/test_agy_integrity_seat_admission.py +0 -669
  361. phase_loop_runtime-0.7.27/tests/test_agy_self_qualification.py +0 -2761
  362. phase_loop_runtime-0.7.27/tests/test_broker_staged_tree_delivery.py +0 -650
  363. phase_loop_runtime-0.7.27/tests/test_ci_xdist_adoption.py +0 -416
  364. phase_loop_runtime-0.7.27/tests/test_claude_delivery_refusal_1433.py +0 -433
  365. phase_loop_runtime-0.7.27/tests/test_codex_seat_tool_sandbox_1335.py +0 -633
  366. phase_loop_runtime-0.7.27/tests/test_codex_seat_writable_tree_1470.py +0 -578
  367. phase_loop_runtime-0.7.27/tests/test_convergence_broker_evidence.py +0 -35
  368. phase_loop_runtime-0.7.27/tests/test_convergence_runtime_imports.py +0 -504
  369. phase_loop_runtime-0.7.27/tests/test_doctor_bom.py +0 -229
  370. phase_loop_runtime-0.7.27/tests/test_executor_availability.py +0 -151
  371. phase_loop_runtime-0.7.27/tests/test_executor_exited_without_closeout_785.py +0 -338
  372. phase_loop_runtime-0.7.27/tests/test_fabpub_partition_rotation_789d.py +0 -5504
  373. phase_loop_runtime-0.7.27/tests/test_fabpub_typed_handoffs.py +0 -872
  374. phase_loop_runtime-0.7.27/tests/test_gate_a_wheel_isolation.py +0 -147
  375. phase_loop_runtime-0.7.27/tests/test_gemini_heartbeat_bootstrap.py +0 -1586
  376. phase_loop_runtime-0.7.27/tests/test_gemini_login_wait_1407.py +0 -811
  377. phase_loop_runtime-0.7.27/tests/test_gemini_seat_egress_1170.py +0 -646
  378. phase_loop_runtime-0.7.27/tests/test_grok_sandbox_seat_approval.py +0 -194
  379. phase_loop_runtime-0.7.27/tests/test_launch_audit_inventory.py +0 -121
  380. phase_loop_runtime-0.7.27/tests/test_leg_liveness_monitor.py +0 -401
  381. phase_loop_runtime-0.7.27/tests/test_legible_roadmap_contract.py +0 -2668
  382. phase_loop_runtime-0.7.27/tests/test_local_check.py +0 -210
  383. phase_loop_runtime-0.7.27/tests/test_outside_agent_conform_evidence.py +0 -7097
  384. phase_loop_runtime-0.7.27/tests/test_panel_claude_print_route.py +0 -663
  385. phase_loop_runtime-0.7.27/tests/test_panel_claude_review_output.py +0 -1271
  386. phase_loop_runtime-0.7.27/tests/test_panel_codex_auth_signature_body_252.py +0 -150
  387. phase_loop_runtime-0.7.27/tests/test_panel_gemini_no_command_preamble.py +0 -73
  388. phase_loop_runtime-0.7.27/tests/test_panel_invoker.py +0 -181
  389. phase_loop_runtime-0.7.27/tests/test_panel_invoker_timeout_argv.py +0 -2464
  390. phase_loop_runtime-0.7.27/tests/test_panel_leg_status_detail_1096.py +0 -1336
  391. phase_loop_runtime-0.7.27/tests/test_panel_tui_eof_48.py +0 -75
  392. phase_loop_runtime-0.7.27/tests/test_panel_tui_liveness_188.py +0 -673
  393. phase_loop_runtime-0.7.27/tests/test_panel_tui_workspace_trust_223.py +0 -533
  394. phase_loop_runtime-0.7.27/tests/test_phase_loop_baml_dependency.py +0 -70
  395. phase_loop_runtime-0.7.27/tests/test_phase_loop_baml_v1_runtime.py +0 -5321
  396. phase_loop_runtime-0.7.27/tests/test_phase_loop_v22_principles.py +0 -149
  397. phase_loop_runtime-0.7.27/tests/test_placement_driver.py +0 -1210
  398. phase_loop_runtime-0.7.27/tests/test_placement_ladder_model.py +0 -1183
  399. phase_loop_runtime-0.7.27/tests/test_placement_lease.py +0 -643
  400. phase_loop_runtime-0.7.27/tests/test_president_heartbeat_1001.py +0 -589
  401. phase_loop_runtime-0.7.27/tests/test_president_ladder_config.py +0 -595
  402. phase_loop_runtime-0.7.27/tests/test_president_wiring.py +0 -1253
  403. phase_loop_runtime-0.7.27/tests/test_publishing.py +0 -1532
  404. phase_loop_runtime-0.7.27/tests/test_qualified_agy_image_set.py +0 -166
  405. phase_loop_runtime-0.7.27/tests/test_review_leg_sandbox.py +0 -511
  406. phase_loop_runtime-0.7.27/tests/test_review_monitor_policy.py +0 -1378
  407. phase_loop_runtime-0.7.27/tests/test_review_policy_govlean_repairs.py +0 -172
  408. phase_loop_runtime-0.7.27/tests/test_review_seat_stall_1176.py +0 -1506
  409. phase_loop_runtime-0.7.27/tests/test_sandbox_egress.py +0 -873
  410. phase_loop_runtime-0.7.27/tests/test_sandbox_placement.py +0 -1423
  411. phase_loop_runtime-0.7.27/tests/test_sandbox_policy.py +0 -392
  412. phase_loop_runtime-0.7.27/tests/test_sandbox_staging_1147.py +0 -1423
  413. phase_loop_runtime-0.7.27/tests/test_sealed_seat_never_counts.py +0 -407
  414. phase_loop_runtime-0.7.27/tests/test_seat_argv_bound_paths_1441.py +0 -239
  415. phase_loop_runtime-0.7.27/tests/test_seat_caller_ancestry.py +0 -156
  416. phase_loop_runtime-0.7.27/tests/test_seat_caller_owner.py +0 -156
  417. phase_loop_runtime-0.7.27/tests/test_seat_credential_refresh.py +0 -189
  418. phase_loop_runtime-0.7.27/tests/test_seat_egress_rules.py +0 -138
  419. phase_loop_runtime-0.7.27/tests/test_seat_host_git.py +0 -313
  420. phase_loop_runtime-0.7.27/tests/test_seat_ipc.py +0 -95
  421. phase_loop_runtime-0.7.27/tests/test_seat_jail.py +0 -750
  422. phase_loop_runtime-0.7.27/tests/test_seat_jail_live_d8.py +0 -454
  423. phase_loop_runtime-0.7.27/tests/test_seat_jail_prerequisites_1357.py +0 -439
  424. phase_loop_runtime-0.7.27/tests/test_seat_journal_collection.py +0 -233
  425. phase_loop_runtime-0.7.27/tests/test_seat_launch_helpers_trusted.py +0 -276
  426. phase_loop_runtime-0.7.27/tests/test_seat_login_wait_a3_1166.py +0 -346
  427. phase_loop_runtime-0.7.27/tests/test_seat_login_wait_board_context_r12.py +0 -172
  428. phase_loop_runtime-0.7.27/tests/test_seat_notices.py +0 -1243
  429. phase_loop_runtime-0.7.27/tests/test_seat_output_atomic_write_1433.py +0 -1094
  430. phase_loop_runtime-0.7.27/tests/test_seat_owner_round1_1282.py +0 -149
  431. phase_loop_runtime-0.7.27/tests/test_seat_owner_setup_clock_1282.py +0 -86
  432. phase_loop_runtime-0.7.27/tests/test_seat_owner_view.py +0 -314
  433. phase_loop_runtime-0.7.27/tests/test_seat_preflight_1204.py +0 -579
  434. phase_loop_runtime-0.7.27/tests/test_seat_profiles.py +0 -266
  435. phase_loop_runtime-0.7.27/tests/test_seat_qualification_host_context.py +0 -68
  436. phase_loop_runtime-0.7.27/tests/test_seat_review_refusals.py +0 -40
  437. phase_loop_runtime-0.7.27/tests/test_seat_sandbox_permissions.py +0 -1101
  438. phase_loop_runtime-0.7.27/tests/test_seat_transcript_io.py +0 -226
  439. phase_loop_runtime-0.7.27/tests/test_seat_tui_owner_refusal.py +0 -34
  440. phase_loop_runtime-0.7.27/tests/test_skill_size_gate.py +0 -224
  441. phase_loop_runtime-0.7.27/tests/test_the_real_launch_carries_the_prefix.py +0 -372
  442. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/protocol/protocol.md +0 -0
  443. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/setup.cfg +0 -0
  444. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/phase-loop/extraction-readiness.md +0 -0
  445. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/phase-loop/granular-execution-policy.md +0 -0
  446. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-capability-matrix.md +0 -0
  447. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-skill-matrix.md +0 -0
  448. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-substrate-manifest.md +0 -0
  449. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/phase-loop/pi-loop-control.md +0 -0
  450. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/phase-loop/protocol.md +0 -0
  451. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/phase-loop/runtime-boundary.md +0 -0
  452. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/phase-loop/spec-discovery-roots.md +0 -0
  453. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-governed-pipeline.md +0 -0
  454. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-portal-projection.md +0 -0
  455. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-regenesis.md +0 -0
  456. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-report.md +0 -0
  457. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_contract_docs/runtime/verification-evidence-contract.md +0 -0
  458. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_proc_cpu.py +0 -0
  459. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/commands.txt +0 -0
  460. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/manifest.json +0 -0
  461. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/mixed.json +0 -0
  462. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-provider-timeout/manifest.json +0 -0
  463. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-provider-timeout/timeout-note.txt +0 -0
  464. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-redacted-summary/manifest.json +0 -0
  465. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-redacted-summary/redacted-summary.json +0 -0
  466. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-small-sample/manifest.json +0 -0
  467. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-small-sample/sample.json +0 -0
  468. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-threshold-edge/edge.txt +0 -0
  469. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-threshold-edge/manifest.json +0 -0
  470. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/manifest.json +0 -0
  471. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-a.txt +0 -0
  472. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-b.txt +0 -0
  473. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-c.txt +0 -0
  474. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-missing-references/claimed-results.json +0 -0
  475. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-missing-references/manifest.json +0 -0
  476. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-subtle-low-variance/manifest.json +0 -0
  477. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-subtle-low-variance/metrics.json +0 -0
  478. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-templated-prose/findings.md +0 -0
  479. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-templated-prose/manifest.json +0 -0
  480. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/manifest.json +0 -0
  481. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/scores.json +0 -0
  482. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/summary.txt +0 -0
  483. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/bundle-check.json +0 -0
  484. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/manifest.json +0 -0
  485. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/operator-note.txt +0 -0
  486. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/events-sample.jsonl +0 -0
  487. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/manifest.json +0 -0
  488. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/receipt.txt +0 -0
  489. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/evidence.json +0 -0
  490. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/manifest.json +0 -0
  491. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/summary.txt +0 -0
  492. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/manifest.json +0 -0
  493. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/matrix.json +0 -0
  494. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/notes.md +0 -0
  495. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/console-summary.txt +0 -0
  496. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/manifest.json +0 -0
  497. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/screenshot-standin.ppm +0 -0
  498. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/__init__.py +0 -0
  499. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/advisory_contract.py +0 -0
  500. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/backing.py +0 -0
  501. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/backing_omnigent.py +0 -0
  502. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/events.py +0 -0
  503. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/fixtures.py +0 -0
  504. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/harness_mapping.py +0 -0
  505. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/matrix.py +0 -0
  506. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/observability.py +0 -0
  507. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/presets.py +0 -0
  508. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/registries.py +0 -0
  509. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/research.py +0 -0
  510. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/resolver.py +0 -0
  511. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/schema.py +0 -0
  512. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/standin.py +0 -0
  513. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/advisor_board/validation.py +0 -0
  514. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/agent_runtime_provider.py +0 -0
  515. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/agent_view_cleanup.py +0 -0
  516. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/agy_integrity.py +0 -0
  517. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/agy_provenance.py +0 -0
  518. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/agy_watch.py +0 -0
  519. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/baml_modular.py +0 -0
  520. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/baml_src/dotfiles_adoption_manifest.baml +0 -0
  521. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/baml_src/dotfiles_c4_document.baml +0 -0
  522. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/baml_src/dotfiles_plan_manifest.baml +0 -0
  523. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/baml_src/dotfiles_runtime_projection.baml +0 -0
  524. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/baml_src/dotfiles_task_catalog.baml +0 -0
  525. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/baml_src/emit_phase_closeout.baml +0 -0
  526. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/baml_src/evaluate_suspected_fake_evidence.baml +0 -0
  527. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/baml_src/verification_evidence.baml +0 -0
  528. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/broker.py +0 -0
  529. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/build_bundle.py +0 -0
  530. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/capability_registry.py +0 -0
  531. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/classifier.py +0 -0
  532. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/claude_agent_view.py +0 -0
  533. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/claude_channel_sidecar.py +0 -0
  534. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/cli_qualification.py +0 -0
  535. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/closeout.py +0 -0
  536. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/closeout_classifier.py +0 -0
  537. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/closeout_evidence_audit.py +0 -0
  538. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/closeout_validation.py +0 -0
  539. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/closeout_validators.py +0 -0
  540. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/__init__.py +0 -0
  541. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/VENDOR.json +0 -0
  542. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/consiliency_spec/outside_agent_router.py +0 -0
  543. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/schemas/outside-agent-route-verdict.schema.json +0 -0
  544. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/schemas/outside-agent-submission.schema.json +0 -0
  545. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-empty-evidence-refs.json +0 -0
  546. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-git-object-id-length.json +0 -0
  547. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-missing-digest.json +0 -0
  548. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-path-traversal.json +0 -0
  549. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-raw-payload.json +0 -0
  550. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-source-bundle-mismatch.json +0 -0
  551. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-unknown-producer-identity-posture.json +0 -0
  552. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-unsupported-verdict.json +0 -0
  553. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/manifest.json +0 -0
  554. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-ambiguity-report.json +0 -0
  555. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-implementation-submission.json +0 -0
  556. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-work-request.json +0 -0
  557. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/certificate_tier.py +0 -0
  558. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/git_grounded_projection.py +0 -0
  559. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/outside_agent_advisory.py +0 -0
  560. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/outside_agent_conform_evidence.py +0 -0
  561. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/outside_agent_core.py +0 -0
  562. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/outside_agent_imports.py +0 -0
  563. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/outside_agent_pin.py +0 -0
  564. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/outside_agent_provenance.py +0 -0
  565. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/outside_agent_real.py +0 -0
  566. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/outside_agent_real_output.py +0 -0
  567. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/outside_agent_redaction.py +0 -0
  568. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/outside_agent_schema.py +0 -0
  569. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/conformance/outside_agent_vectors.py +0 -0
  570. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/consiliency_gates.py +0 -0
  571. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/consiliency_ingest.py +0 -0
  572. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/consiliency_layout.py +0 -0
  573. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/consiliency_scaffold.py +0 -0
  574. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/convergence/__init__.py +0 -0
  575. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/convergence/adapters/__init__.py +0 -0
  576. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/convergence/adapters/base.py +0 -0
  577. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/convergence/adapters/claude.py +0 -0
  578. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/convergence/adapters/codex.py +0 -0
  579. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/convergence/adapters/outside_agent.py +0 -0
  580. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/convergence/broker/__init__.py +0 -0
  581. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/convergence/event_log.py +0 -0
  582. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/convergence/fencing.py +0 -0
  583. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/convergence/reconcile.py +0 -0
  584. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/convergence/refresh.py +0 -0
  585. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/convergence/status.py +0 -0
  586. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/credential_redaction.py +0 -0
  587. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/cross_repo_channel.py +0 -0
  588. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/declared_identity.py +0 -0
  589. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/default_executor_resolver.py +0 -0
  590. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/deploy/phase-loop-task-message-broker.service +0 -0
  591. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/dispatch_lock.py +0 -0
  592. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/doc_delta_validator.py +0 -0
  593. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/docs_audit.py +0 -0
  594. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/docs_freshness.py +0 -0
  595. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/docs_surfaces.py +0 -0
  596. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/dotfiles_profile_plugin.py +0 -0
  597. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/entry_doc_check.py +0 -0
  598. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/events.py +0 -0
  599. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/events_migration.py +0 -0
  600. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/evidence_audit.py +0 -0
  601. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/evidence_audit_config.py +0 -0
  602. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/executor_availability.py +0 -0
  603. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/fab_canonical.py +0 -0
  604. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/fab_delta.py +0 -0
  605. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/fab_gate.py +0 -0
  606. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/fab_producer.py +0 -0
  607. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/fab_provenance.py +0 -0
  608. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/fabpub_capability.py +0 -0
  609. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/fabpub_tdd_chronology.py +0 -0
  610. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/fabreadmit_capability.py +0 -0
  611. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/falsifier.py +0 -0
  612. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/fleet_metrics.py +0 -0
  613. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/fleet_metrics_export.py +0 -0
  614. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/gate_posture.py +0 -0
  615. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/generated_outputs.py +0 -0
  616. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/git_discipline.py +0 -0
  617. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/git_ops.py +0 -0
  618. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/git_topology.py +0 -0
  619. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/goal_coverage.py +0 -0
  620. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/governed_bundle.py +0 -0
  621. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/governed_premerge.py +0 -0
  622. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/handoff.py +0 -0
  623. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/handoff_path.py +0 -0
  624. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/harness_env_signatures.py +0 -0
  625. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/injection.py +0 -0
  626. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/install_status.py +0 -0
  627. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/lane_scheduler.py +0 -0
  628. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/lease_store.py +0 -0
  629. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/lease_supervisor.py +0 -0
  630. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/maintenance.py +0 -0
  631. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/migrate_handoffs.py +0 -0
  632. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/models.py +0 -0
  633. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/observability.py +0 -0
  634. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/panel_reply.py +0 -0
  635. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/phase_loop_drift_audit.py +0 -0
  636. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/phase_worktree_executor.py +0 -0
  637. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/pipeline_adapter/__init__.py +0 -0
  638. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/pipeline_adapter/branch_ops.py +0 -0
  639. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/pipeline_adapter/flag.py +0 -0
  640. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/pipeline_adapter/markers.py +0 -0
  641. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/pipeline_adapter/merge_policy.py +0 -0
  642. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/pipeline_adapter/ratification.py +0 -0
  643. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/pipeline_adapter/sibling_matcher.py +0 -0
  644. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/plan_ir.py +0 -0
  645. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/plan_manifest.py +0 -0
  646. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/plan_pin_lint.py +0 -0
  647. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/planner_validation.py +0 -0
  648. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/president_operation.py +0 -0
  649. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/producer_manifest.py +0 -0
  650. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/profiles.py +0 -0
  651. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/prompts.py +0 -0
  652. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/proof_stages.py +0 -0
  653. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/provenance.py +0 -0
  654. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/publication_mode.py +0 -0
  655. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/py.typed +0 -0
  656. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/ratification_policy.py +0 -0
  657. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/reconcile.py +0 -0
  658. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/redaction.py +0 -0
  659. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/reflection_corpus.py +0 -0
  660. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/reflection_sync.py +0 -0
  661. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/release_guard.py +0 -0
  662. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/render.py +0 -0
  663. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/repo_validation.py +0 -0
  664. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/review_summary.py +0 -0
  665. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/reviewtruth_native_fill_capability.py +0 -0
  666. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/roadmap_authority.py +0 -0
  667. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/roadmap_representation_check.py +0 -0
  668. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/roadmap_reseal.py +0 -0
  669. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/route_log.py +0 -0
  670. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/route_policy/__init__.py +0 -0
  671. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/route_policy/fixtures/route_selection.golden.json +0 -0
  672. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/rule_enforcement.json +0 -0
  673. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/rule_enforcement.py +0 -0
  674. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/runtime_paths.py +0 -0
  675. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/runtime_projection.py +0 -0
  676. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/runtime_resources.py +0 -0
  677. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/sandbox_retention.py +0 -0
  678. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/schema_export.py +0 -0
  679. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/schemas/phase_loop_closeout.schema.json +0 -0
  680. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/seat_egress/ca.mjs +0 -0
  681. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/seat_egress/gemini-allowlist.json +0 -0
  682. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/seat_egress/package-lock.json +0 -0
  683. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/seat_egress/package.json +0 -0
  684. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/seat_jail_apparmor.py +0 -0
  685. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/seat_keyring_exec.py +0 -0
  686. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/seat_seccomp.py +0 -0
  687. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/seat_session_label.py +0 -0
  688. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/seat_tool_evidence.py +0 -0
  689. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skill_install.py +0 -0
  690. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skill_inventory.py +0 -0
  691. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skill_paths.py +0 -0
  692. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skill_sources_plugin.py +0 -0
  693. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-advisor-board/README.md +0 -0
  694. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-advisor-panel/README.md +0 -0
  695. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-detailed/README.md +0 -0
  696. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-detailed/SKILL.md +0 -0
  697. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-detailed/references/pr-writing.md +0 -0
  698. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/README.md +0 -0
  699. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/references/closeout-reflection-handoff.md +0 -0
  700. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/references/interactive-steps.md +0 -0
  701. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  702. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  703. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  704. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  705. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  706. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  707. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  708. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  709. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/state.py +0 -0
  710. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  711. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/team_teardown.sh +0 -0
  712. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/validate_plan_doc.py +0 -0
  713. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/verify_harness.sh +0 -0
  714. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-phase-loop/README.md +0 -0
  715. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-phase-loop/SKILL.md +0 -0
  716. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/README.md +0 -0
  717. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/SKILL.md +0 -0
  718. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/assets/review_prompt.md +0 -0
  719. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/handoff-review-closeout.md +0 -0
  720. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
  721. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/roadmap-template.md +0 -0
  722. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/validator-format-contract.md +0 -0
  723. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  724. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/README.md +0 -0
  725. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/SKILL.md +0 -0
  726. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/assets/review_prompt.md +0 -0
  727. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/references/closeout-reflection-handoff.md +0 -0
  728. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/README.md +0 -0
  729. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/SKILL.md +0 -0
  730. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/assets/review_prompt.md +0 -0
  731. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/references/closeout-reflection-handoff.md +0 -0
  732. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/references/interactive-workflow.md +0 -0
  733. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/references/lane-templates.md +0 -0
  734. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/references/lane-validation-checklist.md +0 -0
  735. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/references/model-effort-tiering.md +0 -0
  736. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/references/plan-document-template.md +0 -0
  737. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/scripts/validate_plan_doc.py +0 -0
  738. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-run-train/README.md +0 -0
  739. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-run-train/SKILL.md +0 -0
  740. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/README.md +0 -0
  741. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/SKILL.md +0 -0
  742. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/assets/editor_prompt.md +0 -0
  743. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/README.md +0 -0
  744. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/SKILL.md +0 -0
  745. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  746. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/README.md +0 -0
  747. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/SKILL.md +0 -0
  748. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/references/task-templates.md +0 -0
  749. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-advisor-board/README.md +0 -0
  750. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-advisor-board/SKILL.md +0 -0
  751. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-advisor-panel/README.md +0 -0
  752. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-advisor-panel/SKILL.md +0 -0
  753. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-detailed/README.md +0 -0
  754. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-detailed/SKILL.md +0 -0
  755. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-detailed/references/pr-writing.md +0 -0
  756. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/README.md +0 -0
  757. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  758. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  759. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  760. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  761. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  762. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  763. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  764. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  765. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/state.py +0 -0
  766. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  767. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/team_teardown.sh +0 -0
  768. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/validate_plan_doc.py +0 -0
  769. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/verify_harness.sh +0 -0
  770. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-phase-loop/README.md +0 -0
  771. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-phase-loop/SKILL.md +0 -0
  772. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/README.md +0 -0
  773. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/SKILL.md +0 -0
  774. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/assets/review_prompt.md +0 -0
  775. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  776. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/README.md +0 -0
  777. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/SKILL.md +0 -0
  778. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/assets/review_prompt.md +0 -0
  779. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/README.md +0 -0
  780. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/assets/review_prompt.md +0 -0
  781. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/scripts/validate_plan_doc.py +0 -0
  782. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-run-train/README.md +0 -0
  783. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-run-train/SKILL.md +0 -0
  784. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/README.md +0 -0
  785. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/SKILL.md +0 -0
  786. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/assets/editor_prompt.md +0 -0
  787. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/README.md +0 -0
  788. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/SKILL.md +0 -0
  789. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  790. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/README.md +0 -0
  791. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/SKILL.md +0 -0
  792. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/references/task-templates.md +0 -0
  793. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-advisor-board/README.md +0 -0
  794. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-advisor-board/SKILL.md +0 -0
  795. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-advisor-panel/README.md +0 -0
  796. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-advisor-panel/SKILL.md +0 -0
  797. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-detailed/README.md +0 -0
  798. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-detailed/SKILL.md +0 -0
  799. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-detailed/references/pr-writing.md +0 -0
  800. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/README.md +0 -0
  801. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  802. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  803. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  804. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  805. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  806. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  807. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  808. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  809. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/state.py +0 -0
  810. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  811. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/team_teardown.sh +0 -0
  812. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/validate_plan_doc.py +0 -0
  813. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/verify_harness.sh +0 -0
  814. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-phase-loop/README.md +0 -0
  815. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-phase-loop/SKILL.md +0 -0
  816. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/README.md +0 -0
  817. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/SKILL.md +0 -0
  818. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/assets/review_prompt.md +0 -0
  819. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  820. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/README.md +0 -0
  821. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/SKILL.md +0 -0
  822. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/assets/review_prompt.md +0 -0
  823. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/README.md +0 -0
  824. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/assets/review_prompt.md +0 -0
  825. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/scripts/validate_plan_doc.py +0 -0
  826. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-run-train/README.md +0 -0
  827. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-run-train/SKILL.md +0 -0
  828. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/README.md +0 -0
  829. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/SKILL.md +0 -0
  830. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/assets/editor_prompt.md +0 -0
  831. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/README.md +0 -0
  832. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/SKILL.md +0 -0
  833. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  834. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/README.md +0 -0
  835. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/SKILL.md +0 -0
  836. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/references/task-templates.md +0 -0
  837. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-advisor-board/README.md +0 -0
  838. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-advisor-board/SKILL.md +0 -0
  839. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-advisor-panel/README.md +0 -0
  840. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-advisor-panel/SKILL.md +0 -0
  841. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-detailed/README.md +0 -0
  842. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-detailed/SKILL.md +0 -0
  843. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-detailed/references/pr-writing.md +0 -0
  844. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/README.md +0 -0
  845. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  846. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  847. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  848. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  849. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  850. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  851. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  852. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  853. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/state.py +0 -0
  854. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  855. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/team_teardown.sh +0 -0
  856. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/validate_plan_doc.py +0 -0
  857. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/verify_harness.sh +0 -0
  858. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-phase-loop/README.md +0 -0
  859. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-phase-loop/SKILL.md +0 -0
  860. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/README.md +0 -0
  861. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/SKILL.md +0 -0
  862. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/assets/review_prompt.md +0 -0
  863. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  864. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/README.md +0 -0
  865. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/SKILL.md +0 -0
  866. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/assets/review_prompt.md +0 -0
  867. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/README.md +0 -0
  868. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/assets/review_prompt.md +0 -0
  869. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/scripts/validate_plan_doc.py +0 -0
  870. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-run-train/README.md +0 -0
  871. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-run-train/SKILL.md +0 -0
  872. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/README.md +0 -0
  873. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/SKILL.md +0 -0
  874. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/assets/editor_prompt.md +0 -0
  875. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/README.md +0 -0
  876. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/SKILL.md +0 -0
  877. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  878. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/README.md +0 -0
  879. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/SKILL.md +0 -0
  880. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/references/task-templates.md +0 -0
  881. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/state.py +0 -0
  882. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/state_degradation.py +0 -0
  883. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/state_ops.py +0 -0
  884. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/task_message_broker.py +0 -0
  885. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/task_message_broker_client.py +0 -0
  886. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/task_message_resolver.py +0 -0
  887. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/tdd_receipts.py +0 -0
  888. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/train_ledger.py +0 -0
  889. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/train_review_packet.py +0 -0
  890. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/train_roadmap.py +0 -0
  891. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/train_runner.py +0 -0
  892. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/verification_evidence.py +0 -0
  893. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/verification_evidence_validator.py +0 -0
  894. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/visual_avatar_evidence_validator.py +0 -0
  895. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/visual_evidence_validator.py +0 -0
  896. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime/worktree_index.py +0 -0
  897. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime.egg-info/dependency_links.txt +0 -0
  898. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/src/phase_loop_runtime.egg-info/top_level.txt +0 -0
  899. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_acceptance_falsifier_contract.py +0 -0
  900. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_advisory_cli_802.py +0 -0
  901. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_advisory_mode.py +0 -0
  902. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_alias_install.py +0 -0
  903. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_backcompat.py +0 -0
  904. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_backing_homebrew.py +0 -0
  905. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_backing_omnigent.py +0 -0
  906. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_cli_legacy.py +0 -0
  907. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_concurrency.py +0 -0
  908. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_golden.py +0 -0
  909. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_ingestion.py +0 -0
  910. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_integration.py +0 -0
  911. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_live_research.py +0 -0
  912. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_matrix.py +0 -0
  913. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_observability.py +0 -0
  914. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_presets.py +0 -0
  915. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_registries.py +0 -0
  916. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_research.py +0 -0
  917. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_resolver.py +0 -0
  918. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_schema.py +0 -0
  919. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_board_static_import_862.py +0 -0
  920. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_advisor_twin_alias_legacy.py +0 -0
  921. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_agent_runtime_provider_cs08.py +0 -0
  922. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_agent_view_cleanup.py +0 -0
  923. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_agy_single_event_transport_1175.py +0 -0
  924. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_agy_static_integrity.py +0 -0
  925. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_agy_upstream_advisory.py +0 -0
  926. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_autosel.py +0 -0
  927. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_board_seat_exclusion_1431.py +0 -0
  928. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_branchgov_preflight.py +0 -0
  929. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_broker_command_builders.py +0 -0
  930. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_broker_evidence_schema_drift_789.py +0 -0
  931. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_certificate_tier.py +0 -0
  932. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_ci_chronology_scope.py +0 -0
  933. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_ci_gate_metrics.py +0 -0
  934. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_ci_main_red.py +0 -0
  935. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_ci_offload_lock.py +0 -0
  936. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_ci_quarantine.py +0 -0
  937. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_ci_workflow_concurrency.py +0 -0
  938. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_ci_xdist_witness.py +0 -0
  939. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_claude_bundle_reference_reads.py +0 -0
  940. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_claude_journal_segments_1434.py +0 -0
  941. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_claude_json_schema_metaschema_291.py +0 -0
  942. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_claude_seat_subscription_proof_1444.py +0 -0
  943. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_claude_transport_seam.py +0 -0
  944. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_cli_qualification_contract.py +0 -0
  945. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_cli_train_status_45.py +0 -0
  946. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_closeout_break_glass_cli.py +0 -0
  947. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_closeout_classifier.py +0 -0
  948. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_closeout_convergence_fixes.py +0 -0
  949. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_closeout_exception_vocab.py +0 -0
  950. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_closeout_generated_outputs.py +0 -0
  951. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_closeout_gitignored_disposable_186b.py +0 -0
  952. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_closeout_import_cycle_819.py +0 -0
  953. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_closeout_new_owned_directory_closes_clean.py +0 -0
  954. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_closeout_validator_hook.py +0 -0
  955. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_closeout_verification_gate.py +0 -0
  956. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_codex_effort_max_clamp_49.py +0 -0
  957. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_committed_range_diff.py +0 -0
  958. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_common_directory_leases_807.py +0 -0
  959. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_conform_timing_instrumentation.py +0 -0
  960. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_conformance_golden.py +0 -0
  961. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_conftest_isolation.py +0 -0
  962. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_consiliency_dual_layout.py +0 -0
  963. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_consiliency_gates.py +0 -0
  964. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_consiliency_ingest.py +0 -0
  965. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_consiliency_scaffold.py +0 -0
  966. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_console_scripts_are_declared.py +0 -0
  967. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_contract_floor_guard_378.py +0 -0
  968. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_adapters.py +0 -0
  969. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_broker_admission.py +0 -0
  970. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_broker_api.py +0 -0
  971. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_broker_credsep.py +0 -0
  972. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_broker_revocation_race.py +0 -0
  973. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_broker_verbs.py +0 -0
  974. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_cli_integration.py +0 -0
  975. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_coordination_contracts.py +0 -0
  976. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_dispatch.py +0 -0
  977. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_event_contracts.py +0 -0
  978. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_event_log.py +0 -0
  979. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_fencing.py +0 -0
  980. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_fixture_contracts.py +0 -0
  981. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_invalidation.py +0 -0
  982. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_live_enable.py +0 -0
  983. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_provider_contracts.py +0 -0
  984. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_reconcile.py +0 -0
  985. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_refresh.py +0 -0
  986. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_seat_lifecycle.py +0 -0
  987. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_status.py +0 -0
  988. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_convergence_train_integration.py +0 -0
  989. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_coordinator_wave_loop.py +0 -0
  990. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_cr_fixes_pr220.py +0 -0
  991. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_credential_redaction_shapes.py +0 -0
  992. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_delegated_visual_evidence_91.py +0 -0
  993. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_discovery_hygiene_legacy.py +0 -0
  994. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_dispatch_hold_guard.py +0 -0
  995. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_dispatch_lock_cross_roadmap.py +0 -0
  996. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_dispatch_lock_helper.py +0 -0
  997. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_dispatch_lock_reentrancy.py +0 -0
  998. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_dispatch_lock_same_roadmap.py +0 -0
  999. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_doc_delta_validator.py +0 -0
  1000. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_docs_audit.py +0 -0
  1001. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_docs_freshness.py +0 -0
  1002. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_dotfiles_tree.py +0 -0
  1003. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_egress_prefix_crosses_the_broker_thread.py +0 -0
  1004. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_entry_doc_check.py +0 -0
  1005. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_execfind_falsifier.py +0 -0
  1006. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_execfind_governed_promotion.py +0 -0
  1007. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_execgov.py +0 -0
  1008. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_execreg_launch_registry.py +0 -0
  1009. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_execute_phase_handoff_mode.py +0 -0
  1010. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_execution_policy_tiering.py +0 -0
  1011. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_export_schema.py +0 -0
  1012. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fab_activation_promotion.py +0 -0
  1013. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fab_canonical_b.py +0 -0
  1014. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fab_closeout_crash_safety.py +0 -0
  1015. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fab_closeout_wiring.py +0 -0
  1016. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fab_delta_c.py +0 -0
  1017. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fab_delta_consumer.py +0 -0
  1018. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fab_flag_off_recovery_leak_299.py +0 -0
  1019. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fab_gate_d.py +0 -0
  1020. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fab_producer.py +0 -0
  1021. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fab_provenance_a.py +0 -0
  1022. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_admission_compat_789.py +0 -0
  1023. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_ambiguous_handoff_1312.py +0 -0
  1024. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_bootstrap_writer_lock_1115.py +0 -0
  1025. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_inventory_worktree_lifecycle_789.py +0 -0
  1026. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_observed_after_ambiguity_1591.py +0 -0
  1027. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_owner_section_1314_1313_1311.py +0 -0
  1028. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_recovery_chain_1310.py +0 -0
  1029. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_recovery_controls_789.py +0 -0
  1030. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_recovery_record_compat_1576.py +0 -0
  1031. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_rotate_partition_cli_789d.py +0 -0
  1032. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_sealed_head_recovery_1296.py +0 -0
  1033. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_shared_epoch.py +0 -0
  1034. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_stale_client_1315.py +0 -0
  1035. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabpub_zero_history_bootstrap.py +0 -0
  1036. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabreadmit_authority_digest_v2.py +0 -0
  1037. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fabreadmit_broker.py +0 -0
  1038. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_finding_F001.py +0 -0
  1039. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_finding_F002.py +0 -0
  1040. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_finding_F004.py +0 -0
  1041. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_finding_F005.py +0 -0
  1042. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fleet_map.py +0 -0
  1043. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fleet_metrics.py +0 -0
  1044. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_fleet_metrics_export.py +0 -0
  1045. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_frozen_blob_batch_parse.py +0 -0
  1046. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_gate_fail_open_visibility.py +0 -0
  1047. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_gate_parity_244_245.py +0 -0
  1048. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_gate_posture.py +0 -0
  1049. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_gemini_argon_default.py +0 -0
  1050. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_gemini_argon_planning.py +0 -0
  1051. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_gemini_credential_expiry_parse.py +0 -0
  1052. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_gemini_heartbeat_filesystem_view.py +0 -0
  1053. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_gemini_model_preference_1604.py +0 -0
  1054. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_git_discipline.py +0 -0
  1055. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_git_grounded_projection.py +0 -0
  1056. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_goal_coverage.py +0 -0
  1057. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_governed_cross_vendor_floor_358.py +0 -0
  1058. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_governed_disjointness_model_first.py +0 -0
  1059. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_governed_e2e.py +0 -0
  1060. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_governed_gate_crfixes.py +0 -0
  1061. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_governed_planning_gate.py +0 -0
  1062. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_governed_premerge.py +0 -0
  1063. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_governed_premerge_live.py +0 -0
  1064. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_governed_review.py +0 -0
  1065. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_govlean_declared_identity.py +0 -0
  1066. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_govlean_panel_policy.py +0 -0
  1067. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_govlean_plan_manifest_issue_dispositions.py +0 -0
  1068. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_govlean_plan_pin_lint.py +0 -0
  1069. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_govlean_producer_manifest.py +0 -0
  1070. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_govlean_proof_stages.py +0 -0
  1071. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_govlean_roadmap_reseal.py +0 -0
  1072. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_govlean_skill_policy_parity.py +0 -0
  1073. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_govlean_tdd_receipts.py +0 -0
  1074. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_grok_narrow_reject_231.py +0 -0
  1075. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_grokexec.py +0 -0
  1076. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_harden_evidence_producer.py +0 -0
  1077. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_harden_evidence_verifier.py +0 -0
  1078. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_harden_json_depth_825.py +0 -0
  1079. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_hotfix_lane.py +0 -0
  1080. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_implementer_roster_0727.py +0 -0
  1081. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_injection_skill_failloud.py +0 -0
  1082. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_lane_ir_override.py +0 -0
  1083. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_launch_audit_exemption_scope_1282.py +0 -0
  1084. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_launch_audit_live_marker_1282.py +0 -0
  1085. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_launcher_exec_supervisor.py +0 -0
  1086. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_launcher_liveness.py +0 -0
  1087. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_launchspec_golden.py +0 -0
  1088. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_lease_store.py +0 -0
  1089. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_lease_store_conformance.py +0 -0
  1090. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_ledger_serialization.py +0 -0
  1091. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_legible_evidence.py +0 -0
  1092. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_legible_review_repairs.py +0 -0
  1093. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_live_smoke_gate_executes.py +0 -0
  1094. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_manifest_per_entry_164.py +0 -0
  1095. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_model_class_policy.py +0 -0
  1096. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_model_id_source_guard.py +0 -0
  1097. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_model_tier_taxonomy.py +0 -0
  1098. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_native_claude_seat_fill.py +0 -0
  1099. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_native_claude_seat_fill_green.py +0 -0
  1100. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_native_fill_refusal_cause.py +0 -0
  1101. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_nonzero_suite_command_fails_closed.py +0 -0
  1102. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_observability_alerting.py +0 -0
  1103. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_advisory.py +0 -0
  1104. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_advisory_cli.py +0 -0
  1105. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_advisory_fixtures.py +0 -0
  1106. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_authority_boundary.py +0 -0
  1107. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_canonical_corpus.py +0 -0
  1108. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_contract_drift.py +0 -0
  1109. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_contract_imports.py +0 -0
  1110. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_contract_pin.py +0 -0
  1111. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_core_api.py +0 -0
  1112. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_provenance.py +0 -0
  1113. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_real_ci.py +0 -0
  1114. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_real_cli.py +0 -0
  1115. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_real_output.py +0 -0
  1116. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_real_runtime.py +0 -0
  1117. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_redaction.py +0 -0
  1118. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_redaction_separation.py +0 -0
  1119. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_release_surface.py +0 -0
  1120. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_schema_validation.py +0 -0
  1121. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_outside_agent_vectors.py +0 -0
  1122. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_owned_command_procfs_1003.py +0 -0
  1123. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_packaged_vector_manifest_pin.py +0 -0
  1124. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_advisory_mode_63.py +0 -0
  1125. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_context_refs_114.py +0 -0
  1126. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_doc_contract.py +0 -0
  1127. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_invoker_spawn.py +0 -0
  1128. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_invoker_windows_import.py +0 -0
  1129. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_lanes.py +0 -0
  1130. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_leg_auth_preflight_64.py +0 -0
  1131. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_leg_failure_diagnostic.py +0 -0
  1132. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_lens_delivery.py +0 -0
  1133. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_native_fill_183.py +0 -0
  1134. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_per_leg_model_66.py +0 -0
  1135. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_reply.py +0 -0
  1136. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_streaming_verdicts.py +0 -0
  1137. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_panel_verdict_summary.py +0 -0
  1138. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_parallel_dispatch_backcompat.py +0 -0
  1139. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_parallel_dispatch_cli.py +0 -0
  1140. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_adoption_bundle.py +0 -0
  1141. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_adoption_bundle_cli.py +0 -0
  1142. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_baml_end_to_end.py +0 -0
  1143. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_baml_injection.py +0 -0
  1144. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_baml_modular.py +0 -0
  1145. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_baml_prompt_taxonomy.py +0 -0
  1146. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_baml_runner_closeout.py +0 -0
  1147. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_baml_schema_export.py +0 -0
  1148. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_baml_schema_source.py +0 -0
  1149. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_baml_v1_callers.py +0 -0
  1150. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_baml_v1_supervisor_slot.py +0 -0
  1151. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_branch_divergence_event.py +0 -0
  1152. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_break_glass_rerun.py +0 -0
  1153. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_build_bundle.py +0 -0
  1154. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_classifier.py +0 -0
  1155. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_claude_agent_view_adapter.py +0 -0
  1156. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_claude_agent_view_dispatch_409.py +0 -0
  1157. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_claude_agent_view_lifecycle.py +0 -0
  1158. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_claude_channel_hooks.py +0 -0
  1159. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_claude_channel_mcp.py +0 -0
  1160. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_claude_channel_security.py +0 -0
  1161. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_claude_channel_session_launch.py +0 -0
  1162. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_claude_channel_sidecar.py +0 -0
  1163. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_claude_channel_smoke_suite.py +0 -0
  1164. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_claude_route_selection.py +0 -0
  1165. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_cli.py +0 -0
  1166. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_cli_plugin_load.py +0 -0
  1167. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_closeout_control_only.py +0 -0
  1168. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_closeout_event.py +0 -0
  1169. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_closeout_evidence_audit.py +0 -0
  1170. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_closeout_hardening.py +0 -0
  1171. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_closeout_owned_dirty_fallback.py +0 -0
  1172. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_closeout_schema.py +0 -0
  1173. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_closeout_validation.py +0 -0
  1174. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_collaborator_citation.py +0 -0
  1175. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_collaborator_docs.py +0 -0
  1176. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_collaborator_rollback.py +0 -0
  1177. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_concurrent_phase_dispatch.py +0 -0
  1178. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_def4_writer_namespacing.py +0 -0
  1179. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_dirty_path_classify_phase_owned_tests.py +0 -0
  1180. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_dirty_path_classify_previous_phase_owned.py +0 -0
  1181. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_discovery.py +0 -0
  1182. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_docs.py +0 -0
  1183. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_dotfiles_schemas.py +0 -0
  1184. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_dotfiles_sources.py +0 -0
  1185. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_downstream_governed_pipeline.py +0 -0
  1186. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_downstream_instruction_scope_readme.py +0 -0
  1187. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_downstream_portal.py +0 -0
  1188. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_downstream_regenesis.py +0 -0
  1189. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_drift_audit.py +0 -0
  1190. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_dry_run_closeout_guard.py +0 -0
  1191. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_dry_run_then_run.py +0 -0
  1192. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_events_migration.py +0 -0
  1193. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_evidence_audit.py +0 -0
  1194. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_evidence_audit_runner.py +0 -0
  1195. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_evidence_audit_tier2.py +0 -0
  1196. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_evidence_audit_tier3.py +0 -0
  1197. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_evidence_audit_tuning.py +0 -0
  1198. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_execution_policy.py +0 -0
  1199. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_executor_degradation.py +0 -0
  1200. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_full_phase_mode.py +0 -0
  1201. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_handoff.py +0 -0
  1202. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_handoff_migration.py +0 -0
  1203. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_init.py +0 -0
  1204. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_injection.py +0 -0
  1205. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_install_status.py +0 -0
  1206. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_issue_84_explicit_phase.py +0 -0
  1207. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_lane_harnesses.py +0 -0
  1208. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_lane_ir.py +0 -0
  1209. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_lane_ir_fixtures.py +0 -0
  1210. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_lane_scheduler.py +0 -0
  1211. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_launcher.py +0 -0
  1212. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_ledger_debug.py +0 -0
  1213. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_ledger_dedup.py +0 -0
  1214. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_live_adapters.py +0 -0
  1215. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_maintenance.py +0 -0
  1216. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_metrics.py +0 -0
  1217. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_migration_regressions.py +0 -0
  1218. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_mixedrun_dispatch.py +0 -0
  1219. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_mixedrun_matrix.py +0 -0
  1220. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_mixedrun_observability.py +0 -0
  1221. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_models.py +0 -0
  1222. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_native_flags.py +0 -0
  1223. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_parallel_plan_safe.py +0 -0
  1224. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_pi_executor.py +0 -0
  1225. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_pipeline_boundaries.py +0 -0
  1226. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_pipeline_bridge.py +0 -0
  1227. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_pipeline_bundle.py +0 -0
  1228. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_pipeline_closeout.py +0 -0
  1229. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_pipeline_freshness.py +0 -0
  1230. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_pipeline_mode.py +0 -0
  1231. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_plan_doc_skip.py +0 -0
  1232. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_plan_manifest.py +0 -0
  1233. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_planner_redispatch_when_plan_current.py +0 -0
  1234. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_planner_validation.py +0 -0
  1235. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_policy.py +0 -0
  1236. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_protocol_contract.py +0 -0
  1237. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_provenance.py +0 -0
  1238. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_reconcile.py +0 -0
  1239. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_reconcile_blocker_self_clear.py +0 -0
  1240. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_reconcile_recovery_mode.py +0 -0
  1241. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_reconcile_to_status_planned_recovery.py +0 -0
  1242. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_reducers.py +0 -0
  1243. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_repair_precondition_planned_closeout.py +0 -0
  1244. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_repair_skipped_when_blocker_cleared.py +0 -0
  1245. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_roadmap_amendments.py +0 -0
  1246. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_roadmap_validate.py +0 -0
  1247. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_rotation.py +0 -0
  1248. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_runner.py +0 -0
  1249. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_runner_closeout_validation.py +0 -0
  1250. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_runtime_boundary.py +0 -0
  1251. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_runtime_decouple.py +0 -0
  1252. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_runtime_package_data.py +0 -0
  1253. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_runtime_projection.py +0 -0
  1254. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_schema_flow.py +0 -0
  1255. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_skill_baml_closeout.py +0 -0
  1256. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_skill_bridge_contract.py +0 -0
  1257. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_skill_contract.py +0 -0
  1258. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_skill_execute_contract.py +0 -0
  1259. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_skill_install.py +0 -0
  1260. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_skill_planner_contract.py +0 -0
  1261. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_smoke_blockers.py +0 -0
  1262. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_smoke_exhaustion.py +0 -0
  1263. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_smoke_reentry.py +0 -0
  1264. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_spurious_completion_rejection.py +0 -0
  1265. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_start_gate_phase_status.py +0 -0
  1266. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_start_gate_refuses_cross_phase_dirty.py +0 -0
  1267. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_state.py +0 -0
  1268. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_status_transition_events_emitted.py +0 -0
  1269. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_substrate_soak_docs.py +0 -0
  1270. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_substrate_soak_governed.py +0 -0
  1271. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_substrate_soak_portal.py +0 -0
  1272. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_terminal_summary_mirrors_baml_closeout.py +0 -0
  1273. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_v22_e2e.py +0 -0
  1274. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_v45_found_contracts.py +0 -0
  1275. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_v45_reconcile.py +0 -0
  1276. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_v45_sched.py +0 -0
  1277. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_v45_schedharden.py +0 -0
  1278. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_wave_runner.py +0 -0
  1279. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_work_unit_observability.py +0 -0
  1280. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_work_unit_runner.py +0 -0
  1281. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_work_unit_state.py +0 -0
  1282. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_loop_worktrees.py +0 -0
  1283. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_owned_dirty_relaxation.py +0 -0
  1284. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_state_disagreement_312.py +0 -0
  1285. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_phase_worktree_executor.py +0 -0
  1286. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pipeline_adapter_branch_ops_create.py +0 -0
  1287. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pipeline_adapter_branch_ops_rebase_conflict.py +0 -0
  1288. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pipeline_adapter_branch_ops_refuse_default.py +0 -0
  1289. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pipeline_adapter_flag.py +0 -0
  1290. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pipeline_adapter_markers.py +0 -0
  1291. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pipeline_adapter_merge_policy_parse.py +0 -0
  1292. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pipeline_adapter_ratification_event_payload.py +0 -0
  1293. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pipeline_adapter_ratification_runner.py +0 -0
  1294. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pipeline_adapter_ratification_skipped_standalone.py +0 -0
  1295. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pipeline_adapter_standalone_regression.py +0 -0
  1296. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pkg_layout_freeze.py +0 -0
  1297. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_plan_ir_iter_waves.py +0 -0
  1298. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_plan_manifest_append_order_1174.py +0 -0
  1299. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pr1161_r2_F001.py +0 -0
  1300. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pr1161_r2_F002.py +0 -0
  1301. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pr1161_r2_F003.py +0 -0
  1302. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pr1161_r2_F004.py +0 -0
  1303. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pr1161_r4_F001.py +0 -0
  1304. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pr1161_r4_F002.py +0 -0
  1305. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pr1161_r4_F003.py +0 -0
  1306. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pr1161_r5_F001.py +0 -0
  1307. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pr1161_r6_F001.py +0 -0
  1308. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pr1161_r7_F001.py +0 -0
  1309. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pr1161_r9_F002.py +0 -0
  1310. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pr_readback_789.py +0 -0
  1311. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_preflight_verification.py +0 -0
  1312. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_presroute_cli.py +0 -0
  1313. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_presroute_hardening.py +0 -0
  1314. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_presroute_landed.py +0 -0
  1315. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_proc_cpu.py +0 -0
  1316. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_proofgate_attestation_workflow.py +0 -0
  1317. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_proofgate_cleanup.py +0 -0
  1318. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_proofgate_isolation.py +0 -0
  1319. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_proofgate_mutation_worktree_parent.py +0 -0
  1320. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_proofgate_receipts.py +0 -0
  1321. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_prune_merged_worktrees_script.py +0 -0
  1322. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_public_installer.py +0 -0
  1323. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_publication_mode_1392.py +0 -0
  1324. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_pushflow.py +0 -0
  1325. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_python_floor_1546.py +0 -0
  1326. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_qualify_network_owner.py +0 -0
  1327. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_ratification_policy.py +0 -0
  1328. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_reconcile_manifest_dedup_46.py +0 -0
  1329. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_reconcile_portability_85c.py +0 -0
  1330. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_reconcile_tracked_closeout_recovery_90.py +0 -0
  1331. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_reconcile_verification_log.py +0 -0
  1332. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_reconcile_visual_avatar_evidence_91.py +0 -0
  1333. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_redaction_channel_control_isolation.py +0 -0
  1334. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_redaction_main_coverage_cases.py +0 -0
  1335. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_reflection_corpus.py +0 -0
  1336. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_reflection_sync.py +0 -0
  1337. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_release_dispatch_operator_approval_145.py +0 -0
  1338. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_release_pin_autotrack.py +0 -0
  1339. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_repo_validation.py +0 -0
  1340. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_review_stage_binding.py +0 -0
  1341. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_review_stage_board_findings.py +0 -0
  1342. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_review_staged_tree_authorization.py +0 -0
  1343. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_review_summary.py +0 -0
  1344. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_roadmap_authority.py +0 -0
  1345. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_roadmap_ownership.py +0 -0
  1346. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_roadmap_representation_consistency.py +0 -0
  1347. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_route_log.py +0 -0
  1348. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_route_policy_conformance.py +0 -0
  1349. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_routing_invariants.py +0 -0
  1350. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_rule_enforcement_controls.py +0 -0
  1351. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_rule_enforcement_demotion_text.py +0 -0
  1352. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_rule_enforcement_registry.py +0 -0
  1353. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_runner_visual_evidence_authoritative_91.py +0 -0
  1354. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_runtime_adapter_output_720.py +0 -0
  1355. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_runtime_event_log_hardening_720.py +0 -0
  1356. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_runtime_procfs_identity_870.py +0 -0
  1357. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_runtime_state_mirror_agreement.py +0 -0
  1358. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_sandbox_clone.py +0 -0
  1359. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_sandbox_preamble.py +0 -0
  1360. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_sandbox_retention.py +0 -0
  1361. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_scratch_runtime_audit_1147.py +0 -0
  1362. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_admin_cleanup.py +0 -0
  1363. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_credentials.py +0 -0
  1364. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_executor_review.py +0 -0
  1365. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_host_path_links.py +0 -0
  1366. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_host_uid_1098.py +0 -0
  1367. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_io.py +0 -0
  1368. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_jail_apparmor.py +0 -0
  1369. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_jail_autoqualify.py +0 -0
  1370. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_keyring.py +0 -0
  1371. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_keyring_order_control.py +0 -0
  1372. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_launch_guard.py +0 -0
  1373. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_output_rewrite_1282.py +0 -0
  1374. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_owner_composition.py +0 -0
  1375. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_owner_notices.py +0 -0
  1376. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_reference_inventory.py +0 -0
  1377. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_review_base_unavailable.py +0 -0
  1378. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_review_output_redaction.py +0 -0
  1379. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_session_label.py +0 -0
  1380. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_tool_approvals.py +0 -0
  1381. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_seat_wrapper_cli_1318.py +0 -0
  1382. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_self_asserted_passed_without_evidence_is_gated.py +0 -0
  1383. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_sibling_matcher_patterns.py +0 -0
  1384. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_skill_bundle_pinned.py +0 -0
  1385. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_skill_install_body_expansion.py +0 -0
  1386. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_skill_liveness_contract.py +0 -0
  1387. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_skill_plan_manifest_write.py +0 -0
  1388. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_skill_sources_seam.py +0 -0
  1389. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_skills_bundle_drift.py +0 -0
  1390. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_skills_canon_parity.py +0 -0
  1391. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_skills_src_claude_literal_lint.py +0 -0
  1392. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_spec_conformance_gate.py +0 -0
  1393. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_specpkgmin_wheel.py +0 -0
  1394. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_stale_roadmap_dispatch_guard.py +0 -0
  1395. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_status_read_only_62.py +0 -0
  1396. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_subscription_scrub_xai_864.py +0 -0
  1397. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_suite_interpreter_satisfies_requires_python.py +0 -0
  1398. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_sweep_fleet_worktrees_script.py +0 -0
  1399. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_sync_skills_apply_failloud.py +0 -0
  1400. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_task_message_broker.py +0 -0
  1401. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_task_message_broker_cli.py +0 -0
  1402. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_task_message_resolver.py +0 -0
  1403. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_tdd_chronology.py +0 -0
  1404. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_train_authority_import_811.py +0 -0
  1405. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_train_e2e.py +0 -0
  1406. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_train_invariants.py +0 -0
  1407. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_train_merge.py +0 -0
  1408. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_train_order_only_deps_47.py +0 -0
  1409. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_train_prebuilt.py +0 -0
  1410. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_train_review_authorization.py +0 -0
  1411. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_train_review_monitoring_policy.py +0 -0
  1412. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_train_review_packet.py +0 -0
  1413. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_train_roadmap.py +0 -0
  1414. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_train_runner.py +0 -0
  1415. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_unattended_release.py +0 -0
  1416. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_v34_parallel_dispatch_soak.py +0 -0
  1417. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_validate_plan_doc_docs_lane.py +0 -0
  1418. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_validate_plan_doc_fail_closed.py +0 -0
  1419. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_validate_plan_doc_goal_coverage.py +0 -0
  1420. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_validate_plan_doc_owned_companions.py +0 -0
  1421. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_validate_plan_doc_producer_dependency.py +0 -0
  1422. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_validate_plan_doc_proofgate.py +0 -0
  1423. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_validate_plan_doc_spec_closeout.py +0 -0
  1424. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_validate_plan_doc_word_budget.py +0 -0
  1425. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_verification_dotdot_execution_428.py +0 -0
  1426. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_verification_evidence.py +0 -0
  1427. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_verification_evidence_validator.py +0 -0
  1428. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_verification_interpreter_guard_221.py +0 -0
  1429. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_verification_venv_identity_428.py +0 -0
  1430. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_verify_qualified_agy_route_core.py +0 -0
  1431. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_visual_avatar_evidence_validator.py +0 -0
  1432. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_visual_evidence_validator.py +0 -0
  1433. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_workerpool_failure_isolation.py +0 -0
  1434. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_workerpool_parallel.py +0 -0
  1435. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_workerpool_worktree_alloc.py +0 -0
  1436. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_worktree_cleanup_dirty_gate.py +0 -0
  1437. {phase_loop_runtime-0.7.27 → phase_loop_runtime-0.7.29}/tests/test_worktree_index.py +0 -0
@@ -0,0 +1,8 @@
1
+ include README.md
2
+ include protocol/protocol.md
3
+ recursive-include src/phase_loop_runtime *.py py.typed
4
+ recursive-include src/phase_loop_runtime/schemas *.json
5
+ recursive-include src/phase_loop_runtime/baml_src *.baml
6
+ recursive-include src/phase_loop_runtime/advisor_board *.toml *.md
7
+ recursive-include src/phase_loop_runtime/deploy *.service
8
+ recursive-include src/phase_loop_runtime/conformance/_contract *
@@ -0,0 +1,453 @@
1
+ Metadata-Version: 2.4
2
+ Name: phase-loop-runtime
3
+ Version: 0.7.29
4
+ Summary: Harness-neutral phase-loop orchestration runtime and CLI
5
+ Author-email: ViperJuice <viperjuice@users.noreply.github.com>
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://github.com/Consiliency/agent-harness
8
+ Project-URL: Repository, https://github.com/Consiliency/agent-harness
9
+ Project-URL: Issues, https://github.com/Consiliency/agent-harness/issues
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: Programming Language :: Python :: 3.13
13
+ Classifier: Programming Language :: Python :: 3.14
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Topic :: Software Development :: Build Tools
16
+ Requires-Python: >=3.12
17
+ Description-Content-Type: text/markdown
18
+ Requires-Dist: detect-secrets==1.5.0
19
+ Requires-Dist: tree-sitter==0.25.2
20
+ Requires-Dist: tree-sitter-typescript==0.23.2
21
+ Requires-Dist: baml-bridge==0.23.0
22
+ Requires-Dist: protobuf<8,>=6.31.1
23
+ Requires-Dist: pydantic<3,>=2
24
+ Requires-Dist: PyYAML<7,>=6
25
+ Requires-Dist: consiliency-contract<0.7,>=0.6.5
26
+ Requires-Dist: jsonschema<5,>=4
27
+ Requires-Dist: pytest<9,>=8
28
+ Requires-Dist: exceptiongroup>=1
29
+ Requires-Dist: typing-extensions>=4.6
30
+ Requires-Dist: packaging>=21
31
+ Requires-Dist: websockets<16,>=12
32
+ Requires-Dist: rfc8785<0.2,>=0.1.4
33
+ Requires-Dist: tomli<3,>=2
34
+ Provides-Extra: visual
35
+ Requires-Dist: Pillow<13,>=10; extra == "visual"
36
+ Provides-Extra: claude-sdk
37
+ Requires-Dist: claude-agent-sdk==0.2.167; extra == "claude-sdk"
38
+ Requires-Dist: markdown-it-py==4.2.0; extra == "claude-sdk"
39
+
40
+ # phase-loop-runtime
41
+
42
+ The harness-neutral **phase-loop** orchestration runtime and CLI. It drives the
43
+ roadmap → plan → execute workflow by dispatching each phase to whatever harness you
44
+ choose (Claude / Codex / Gemini / Grok / OpenCode / Pi); the runtime itself makes no model calls.
45
+ Part of the public [`agent-harness`](https://github.com/Consiliency/agent-harness)
46
+ monorepo (Apache-2.0).
47
+
48
+ ## Install
49
+
50
+ Version 0.7.29 requires Python 3.12+ (agent-harness#1549). The host-side jail helpers
51
+ remain 3.10-compatible, but a governed-review falsifier node importing the runtime
52
+ under an older host interpreter ends in `error` and remains a blocking receipt.
53
+ The agy live qualification is renewed on the exact 0.7.29 release-cut commit.
54
+ Exact-candidate package and compatibility checks remain release-cut gates;
55
+ qualification evidence and historical runtime smoke limitations are recorded in the
56
+ [release handoff](https://github.com/Consiliency/agent-harness/blob/main/docs/releases/outside-agent-release-handoff.md).
57
+
58
+ Most users should use the repo's installer (it also installs the workflow skills):
59
+
60
+ ```sh
61
+ git clone https://github.com/Consiliency/agent-harness
62
+ agent-harness/install-agent-harness.sh --harness claude
63
+ ```
64
+
65
+ To install just this runtime package directly (0.7.29 is an unpublished candidate;
66
+ the exact pin below becomes available only after publication):
67
+
68
+ ```sh
69
+ pip install phase-loop-runtime # latest compatible release
70
+ pip install phase-loop-runtime==0.7.29 # candidate pin; unavailable before publication
71
+ ```
72
+
73
+ To pin a specific tag from source instead, substitute a tag from
74
+ [Releases](https://github.com/Consiliency/agent-harness/releases):
75
+
76
+ ```sh
77
+ uv tool install "git+https://github.com/Consiliency/agent-harness@<TAG>#subdirectory=phase-loop-runtime"
78
+ ```
79
+
80
+ This exposes five console scripts: `phase-loop` and `codex-phase-loop` (both calling
81
+ `phase_loop_runtime.cli:main`), `phase-loop-closeout-audit` (the closeout
82
+ ignored-output audit), `phase-loop-skill-eval` (the opt-in diagnostic planning
83
+ evaluator; see [the guide](https://github.com/Consiliency/agent-harness/blob/main/docs/phase-loop/skill-eval.md)) and
84
+ `roadmap-ownership` (the roadmap-ownership preflight). The
85
+ canonical protocol document ships in the wheel as package data
86
+ (from `src/phase_loop_runtime/_contract_docs/phase-loop/protocol.md`); an older copy is also
87
+ installed to `share/phase-loop-runtime/protocol/protocol.md`.
88
+
89
+ ## Offline repository-map artifacts
90
+
91
+ Legacy `phase-loop fleet-map --repo <path> --json` output remains unchanged.
92
+ Artifact mode accepts a closed `fleet_scan_input.v1` manifest and explicit
93
+ provenance:
94
+
95
+ ```sh
96
+ phase-loop fleet-map --manifest scan-input.json \
97
+ --producer-commit <producer-source-sha> --generated-at <UTC-timestamp> \
98
+ --output fleet-map.json
99
+ ```
100
+
101
+ The packaged [artifact schema](https://github.com/Consiliency/agent-harness/blob/main/phase-loop-runtime/src/phase_loop_runtime/schemas/fleet_map.v1.schema.json) defines the output and the input
102
+ and source-pin `$defs`. Input repository entries use qualified identities such
103
+ as Example/source, numeric provider IDs, captured default-branch SHAs,
104
+ collection states and paths relative to an absolute clone root. Account counts
105
+ must describe the complete declared enumeration. Failed collection or file
106
+ inspection stays explicit and never becomes covered zero relationships.
107
+
108
+ The extractor runs offline, reads regular files through a no-follow boundary,
109
+ and executes no repository code. It emits pin presence, undirected paired-file
110
+ drift and host-path observations. Supplied pin observations must bind the exact
111
+ declaration and captured target SHA; unequal SHAs alone never prove ancestry.
112
+ Versions are as of the supplied scan timestamp. Missing/ambiguous targets and
113
+ unresolved comparisons remain explicit. Local paths and source lines are not
114
+ output. The caller owns collection, dependency installation, credential handling,
115
+ freshness policy and reviewed artifact adoption; this command performs none of
116
+ those operations. Artifact mode requires descriptor-based no-follow file access.
117
+ The identity adapter is intended for this strict artifact path. Scanning omits
118
+ VCS, dependency and build directories named `.git`, `node_modules`, `__pycache__`,
119
+ `.venv`, `venv`, `.mypy_cache`, `.pytest_cache`, `dist` and `build`; coverage applies
120
+ to the supported file kinds outside those directories. Unsupported host-path
121
+ identities fail that repository's scan. Branch names and pin refs must satisfy
122
+ the bounded Git-ref rules in the packaged schema.
123
+
124
+ ## Contributor test environment
125
+
126
+ From the repository root, install the declared test tools and visual extra, then
127
+ run the packaging and visual-evidence tests with the project environment:
128
+
129
+ ```sh
130
+ uv sync --project phase-loop-runtime --group test --extra visual --python 3.14 --locked
131
+ PYTHONPATH=phase-loop-runtime/src:phase-loop-runtime/tests phase-loop-runtime/.venv/bin/python -m pytest -q phase-loop-runtime/tests/test_outside_agent_contract_drift.py phase-loop-runtime/tests/test_visual_avatar_evidence_validator.py
132
+ ```
133
+
134
+ The test group supplies pytest and package build/install tools, including pip;
135
+ the visual extra supplies Pillow for image decoding. Both are opt-in. The native
136
+ repository-wide interpreter guard includes the dagger subproject's Python 3.14
137
+ floor, which is separate from this runtime package's Python 3.12 minimum and CI's
138
+ interpreter matrix. These commands verify the two selected files; they do not
139
+ establish complete CI equivalence, behavior without Pillow, full-suite acceptance
140
+ or production readiness.
141
+
142
+ ## Python verification environments
143
+
144
+ An explicit `automation.python` pin to a virtual environment preserves that
145
+ environment for bare `python`/`python3` commands and Python pip refresh. The
146
+ interpreter still must satisfy the repository's `requires-python` constraints.
147
+ The verification shim uses an exec launcher so interpreter symlinks retain their
148
+ venv identity and installed packages.
149
+
150
+ During guarded discovery, version probes and verification, relative or empty PATH
151
+ entries anchor to the invoking process's working directory. This deliberately
152
+ changes empty-PATH discovery to search that directory. Missing PATH retains the
153
+ C-library discovery default (with Python's default fallback); guarded execution
154
+ uses that same default instead of its previous trailing-empty cwd search. Entry
155
+ order and duplicates remain intact. Leading `PATH=` overrides
156
+ consumed by the verification command parser anchor to the target repository,
157
+ including overrides equal to the inherited value. Shell payloads and external
158
+ `env` arguments are not parsed. Execution without a constraint or pin is unchanged.
159
+
160
+ Discovery and log metadata preserve the lexical interpreter selection. For
161
+ execution, traversable directory components containing `..` are resolved before
162
+ version probes, launchers, pip refresh and guarded child PATH lookup. The final
163
+ Python executable symlink is retained. This preserves the physical virtual
164
+ environment reached through a symlink/`..` path, even when direct Python startup
165
+ would normalize that spelling to another environment. Recorded pip argv uses
166
+ the execution spelling while the log retains the declared selection. Missing,
167
+ looping, non-directory or inaccessible entries retain their original spelling;
168
+ they cannot become new search directories through normalization. Absolute PATH
169
+ entries without `..` keep their exact strings, including repeated separators.
170
+
171
+ Post-aggregate commands reuse the absolute pinned launcher, while inherited PATH
172
+ anchors to the later invoking process's directory and consumed overrides to the
173
+ repository. They do not reconstruct historical PATH or revalidate every name in
174
+ a reused shim. Without an explicit pin, distinct satisfying `python` and `python3`
175
+ aliases keep their environments; metadata and pip prefer `python3`, then `python`.
176
+ Login profiles and explicit overrides can select another environment. Known
177
+ nested-discovery and diagnostic-redaction test failures remain separate work under
178
+ agent-harness#428; this repair does not establish full-suite success or completion
179
+ of agent-harness#841's dependency repair.
180
+
181
+ ## Publication source audit
182
+
183
+ Normal FABPUB publication can distinguish an existing Python implementation such
184
+ as `credentials.py` from a credential artifact (Consiliency/agent-harness#893).
185
+ The path must be owned, regular Python source in both the frozen parent and staged
186
+ tree, parse and compile without warnings, and contain a top-level function or class.
187
+ New Python files still do not receive this exception.
188
+
189
+ Regular `.ts` files whose first path component is `src`, `test` or `tests` may
190
+ qualify through a separate frozen source check. Both revisions of an existing
191
+ file must be strict UTF-8 without NUL and parse without warnings, error or missing
192
+ nodes (`has_error` must be false). A new file requires proven parent absence and
193
+ membership in the frozen changed-path set. Each present revision must contain a named
194
+ function, generator-function or class declaration with a body, optionally wrapped
195
+ in one top-level export; imports, interfaces and type aliases may coexist.
196
+ Other forms alone do not qualify. Declaration files (`.d.ts`), other roots,
197
+ TSX/JavaScript and other languages, data-only files, nonregular entries, deletions,
198
+ and `.env*`, `.key`, `.pem`, `.p12` and `.pfx` path components stay refused.
199
+
200
+ The complete staged blob is scanned with pinned `detect-secrets` 1.5.0 built-in
201
+ detectors. Repository configuration, inline suppressions, filter exemptions and
202
+ online verification are not consulted. Findings and scanner failures block the
203
+ exception without printing matched data. Parsing/compilation warnings reject the
204
+ candidate rather than rendering source lines. No candidate code is executed.
205
+ This heuristic scan is not proof that secrets are absent; source review remains
206
+ required. For example, the quote-required TypeScript keyword rules can miss typed
207
+ assignments or a keyword split from its literal across lines unless another
208
+ detector fires. Encoded, obfuscated or separator-split values can also evade
209
+ detection. New heuristic-named TypeScript files expose those detector limitations
210
+ on the same basis as the existing Python exception; ordinary filenames already
211
+ publish without this scan.
212
+
213
+ Metadata-only evidence (parent/tree and blob identifiers, content hash and policy
214
+ version) is retained in the local publication checkpoint and checked again on
215
+ recovery against the frozen Git objects. The existing FABPUB tree binding and
216
+ transaction identity are unchanged. Legacy and prebuilt publication do not gain
217
+ the source exception; there is no caller-controlled path allowlist.
218
+
219
+ The TypeScript parser pins are `tree-sitter==0.25.2` and
220
+ `tree-sitter-typescript==0.23.2`. Its flat JSON evidence records both versions and
221
+ a null parent blob only for a proven addition. Python evidence is unchanged.
222
+
223
+ Fresh FABPUB publication refuses unstaged or untracked workspace changes with
224
+ `publication_workspace_invalid` before creating a transaction or advancing the
225
+ branch. Private plan, verification and handoff files under the .dev-skills
226
+ directory must be Git-ignored: `phase-loop init` adds the /.dev-skills/ rule to
227
+ `.gitignore`, or a local Git info/exclude rule can keep this setup out of
228
+ committed source. The publisher
229
+ does not add ignore rules or suppress workspace changes itself.
230
+
231
+ If a previous attempt already committed and then refused, repair the workspace
232
+ and retry the same normal publication with its original plan and verification
233
+ artifact. The exact committed transaction resumes without another commit.
234
+ Conflicted transactions refuse before staging; switching to prebuilt mode does
235
+ not repair a normal transaction. Authority and recovery checks still apply.
236
+
237
+ ## Roadmap validation
238
+
239
+ Lint a phase-plan roadmap spec (required headings, unique aliases, acyclic dependency
240
+ DAG, IF-gate reconciliation, lane-count hints) via the always-installed runtime:
241
+
242
+ ```sh
243
+ phase-loop validate-roadmap specs/phase-plans-v1.md
244
+ # module form — only when phase_loop_runtime is on the ACTIVE python's path (a pip
245
+ # install into your env); under `uv tool install` isolation use the console command:
246
+ python3 -m phase_loop_runtime.roadmap_lint specs/phase-plans-v1.md
247
+ ```
248
+
249
+ Both wrap `phase_loop_runtime.roadmap_lint` (the single source of truth). Exit 0 =
250
+ clean; non-zero prints each issue on stderr.
251
+
252
+ ## Local Gemini model preference
253
+
254
+ The shipped Gemini planning and review defaults use Gemini 4 Argon. To use that
255
+ family for all local Gemini role defaults, add this to the environment that runs
256
+ `phase-loop`:
257
+
258
+ ```sh
259
+ export PHASE_LOOP_GEMINI_MODEL=gemini-4-argon
260
+ ```
261
+
262
+ Use a registered canonical base model without an effort suffix. The runtime
263
+ preserves action and seat effort: executor policy normalizes unsupported max
264
+ requests to high, and the default review board keeps medium. Explicit task models,
265
+ plan/roadmap model pins and configured board seats take precedence. Other providers,
266
+ subscription authentication and sandbox admission retain their existing behavior.
267
+ Invalid preferences fail without model fallback. Unsetting the variable restores
268
+ the shipped role defaults, including regular/lite Flash routing. This setting
269
+ does not change the standalone `agy` CLI's own local configuration.
270
+
271
+ ## Attended agy canary evidence
272
+
273
+ The six `phase-loop agy-canary-*` commands are an opt-in, attended evidence
274
+ pipeline for the Gemini/`agy` review seat. They never add an Antigravity allow
275
+ rule or use a permission-bypass flag. `agy-canary-clean-settings` is the sole
276
+ writer for removing the historical `command(pwd)` rule; it requires a direct,
277
+ mode-0700 child of `/tmp`, a quiescent settings tree, and an exclusive maintenance
278
+ lock. The later probe, prepare, verify, and finalize steps fail closed until an
279
+ attended agy 1.1.13 `stream-json` schema probe has selected a complete authority.
280
+ That probe and every capture-enabled Gemini launch use `/usr/bin/bwrap`, a fresh
281
+ `/tmp`, `/run`, and `/proc`, the fixed `/run/phase-loop-review` stage mapping,
282
+ and a reducer-generated minimal HOME. A missing effective namespace, active
283
+ customization source, unsupported stream schema, or absent direct bootstrap
284
+ attestation blocks the canary rather than falling back to the operator HOME.
285
+
286
+ When `PHASE_LOOP_AGY_CANARY_EVIDENCE_DIR` is set, `advisor-board --json` consumes
287
+ that variable before spawning any seat. The complete board JSON must be written
288
+ through `--agy-canary-private-board-name <basename>` into that private directory;
289
+ stdout contains only the redacted ledger binding. Capture requires exactly one
290
+ resolved Gemini seat and retains the two staged review inputs using descriptor
291
+ relative, no-follow writes. A normal board has no new output field or capture work.
292
+
293
+ ## Workflow skills bundle
294
+
295
+ The runtime also installs the harness-neutral workflow-skills bundle. The skill
296
+ sources live in the [`phase-loop-skills/`](https://github.com/Consiliency/agent-harness/tree/main/phase-loop-skills)
297
+ directory of the monorepo,
298
+ with unprefixed base directories and optional `_overrides/<harness>/` overlays.
299
+
300
+ ```sh
301
+ phase-loop install --harness codex --source <path-to>/phase-loop-skills --copy --dry-run
302
+ phase-loop install --harness codex --source <path-to>/phase-loop-skills --copy --apply
303
+ ```
304
+
305
+ These commands install copies and replace existing managed skill directories.
306
+ Back up customizations before applying. See [Team onboarding](https://github.com/Consiliency/agent-harness/blob/main/docs/TEAM-ONBOARDING.md)
307
+ for provider prerequisites, governance choices and the first-run check.
308
+
309
+ Path resolution is provided by `phase_loop_runtime.skill_paths`, which keeps handoffs
310
+ repo-local, preserves harness-specific reflection roots, and documents the default
311
+ install roots for Claude, Codex, Gemini, and OpenCode.
312
+
313
+ ## Zero-history FABPUB bootstrap
314
+
315
+ When FABPUB is active on a host that has no compatible legacy run-train broker
316
+ ledger, create its persistent authority with a read-only probe followed by an
317
+ explicit apply:
318
+
319
+ ```sh
320
+ phase-loop fabpub-bootstrap --probe \
321
+ --inventory /secure/operator/fabpub-probe.json \
322
+ --worktree /path/to/repo \
323
+ --legacy-root /path/to/declared/ledger/broker \
324
+ --search-root /path/to/workspaces \
325
+ --historical-evidence-root /path/to/standalone/receipt
326
+
327
+ phase-loop fabpub-bootstrap --apply \
328
+ --inventory /secure/operator/fabpub-probe.json \
329
+ --confirm-zero-history
330
+ ```
331
+
332
+ The default authority is
333
+ `$XDG_STATE_HOME/phase-loop/fabpub/authority-v1`, falling back to
334
+ `~/.local/state/phase-loop/fabpub/authority-v1`. Override it with
335
+ `PHASE_LOOP_FABPUB_AUTHORITY_ROOT` or `--authority-root` during the probe.
336
+ Receipts created by apply retain that custom authority location for later
337
+ fresh-process validation; keep the environment override configured when
338
+ onboarding repositories that were not named by the original probe.
339
+ Apply is irreversible and refuses changed bytes, symlinks, live allocator
340
+ state, held generation leases, or an authority owned by another bootstrap.
341
+
342
+ A failed `run-train` on a repository with no partition receipt leaves an empty
343
+ `<git-common-dir>/phase-loop-fabpub-broker-v1/run-train-writer.lock` behind.
344
+ The probe treats that file as runtime lock residue, not inventory state, only
345
+ when it is a regular, 0-byte, singly linked file owned by the operator; the
346
+ sealed inventory is identical with or without it. Anything else under that name
347
+ (content, a directory, a socket or FIFO, a symlink, a hardlink, a foreign owner)
348
+ is refused, as is a namespace root that is a symlink (dangling or not) or not a
349
+ directory. The refusal names the entry and what it is. It is not runtime residue:
350
+ inspect it, and remove it yourself only after confirming it is not yours, then
351
+ re-run the probe. The runtime never deletes it. The probe classifies the
352
+ namespace through one descriptor opened without following symlinks and refuses
353
+ if the root is replaced while it is inspected. These checks keep an honest
354
+ operator from mis-sealing; they are not a boundary against the operator's own
355
+ account, since a same-uid actor who can rewrite the namespace can already forge
356
+ broker state directly. Apply always holds every repository's writer lock, creating it if
357
+ absent, from before its re-probe until it returns, and refuses while a
358
+ `run-train` or another apply holds it. Never delete broker files to clear a
359
+ refusal.
360
+
361
+ Before apply, stop every `run-train` on the host, not only those for the named
362
+ repositories: the drain counts live `run-train` processes host-wide. A train that
363
+ starts during apply waits behind the writer lock, is counted as live, and makes
364
+ apply fail after DRAINING with `WriterGenerationBlocked`. To recover, stop the
365
+ trains and re-run the same `--apply --inventory <same file>`; that resumes the
366
+ sealed bootstrap and must not be preceded by a new probe. Until the resume
367
+ completes, trains in those repositories obtain generation leases but no
368
+ admission or provider effects.
369
+
370
+ Inventory completeness is bounded to the named worktrees, explicit and
371
+ environment-declared legacy roots, historical-evidence roots, and hashed broker
372
+ directories directly beneath `.train-ledger` directories under each
373
+ `--search-root`. The confirmation attests that no compatible allocator exists
374
+ outside that inspected universe.
375
+ Standalone historical receipts are hashed and left in place; they are not
376
+ silently adopted as current allocator authority.
377
+
378
+ ## Closeout ownership gate & operator break-glass
379
+
380
+ When a phase verifies green but the executor touched files outside the plan's declared
381
+ owned-files globs, the **graduated closeout gate** classifies the beyond-ownership
382
+ remainder (`closeout_classifier.classify_unowned_path`):
383
+
384
+ - SAFE classes (`docs`, `plans`, `handoffs`, `config_nonsource`) auto-commit as a
385
+ recorded `soft` exception.
386
+ - UNSAFE classes (`source`, `ci`, `secrets`, `lockfile`) block with
387
+ `closeout_scope_violation`.
388
+
389
+ The operator escape is `phase-loop run --phase <P> --closeout-allow-unowned "<reason>"`
390
+ (also valid on `resume`/`dry-run`; reason required and non-empty; `--phase` required,
391
+ bounding the override to a single phase). It folds the `source`/`ci`/`lockfile`
392
+ remainder into the closeout commit as a recorded `break_glass` exception carrying the
393
+ reason. **`secrets` are never break-glassable** — a `.env*`/`*.pem`/`secrets/**` path
394
+ blocks regardless of the reason. See `protocol.md` → "Closeout Exceptions".
395
+
396
+ The closeout verdict is runner-authoritative: when the runner rejects a child's
397
+ closeout, the persisted `terminal-summary.json` reflects the runner's blocking verdict
398
+ (the child's self-reported `complete`/`passed` is not overlaid back), preventing a
399
+ stale "complete" summary from reconcile-skipping the work on the next run.
400
+
401
+ The `phase-loop-closeout-audit --repo .` command grades **ignored** paths by producer. It
402
+ accepts harness handoffs that carry the handoff contract, and a project's declared build
403
+ outputs backed by a recorded producer run. Declare those outputs in a committed
404
+ `.phase-loop-generated-outputs.json`; anything else still blocks. See
405
+ `docs/phase-loop/closeout-generated-outputs.md` (agent-harness#1139).
406
+
407
+ ## Conformance library (one library, two roles)
408
+
409
+ `phase_loop_runtime.conformance` is the named, stable, importable surface for the
410
+ deterministic `.consiliency/` conformance evaluator. It is a re-export (not a
411
+ re-implementation) of the same function the actor already runs, so an **external
412
+ CR-fence** — in gp CI, a git-host pre-merge check, anywhere — can import and run
413
+ the identical check:
414
+
415
+ ```python
416
+ from phase_loop_runtime.conformance import scan_consiliency_gates
417
+
418
+ verdict = scan_consiliency_gates("/path/to/repo") # {"status": "passed" | "warn" | "blocked" | "skipped", "gates": {...}, ...}
419
+ ```
420
+
421
+ The surface also exposes the pure cores (`evaluate_git_discipline`,
422
+ `self_heal_partition`, `evaluate_governance_scope`) for consumers that already
423
+ hold the injected facts.
424
+
425
+ **Two roles, one library.** This is meant to be mounted BOTH as the actor-side
426
+ self-check (a pre-PR sanity pass the author runs locally) AND as the
427
+ authoritative CR-fence (the real validator). The actor-side result is **never
428
+ authoritative** — the fence always re-runs the check itself. Because it is the
429
+ same function versioned with the same `consiliency_contract` dependency, the honest
430
+ actor sees exactly the verdict the fence will; a stale or dishonest actor result
431
+ simply does not matter.
432
+
433
+ **Scope.** The surface spans the shape + governance tier and the certificate /
434
+ projection / outside-agent tiers it re-exports (see the module docstring for the
435
+ authoritative tier list). Authority and provenance *verification* remain out of
436
+ scope, delegated downstream.
437
+
438
+ ### `consiliency-ingest --check-only`
439
+
440
+ `--check-only` decouples "run the check" from "is this repo adopted". It is
441
+ strictly read-only (never shapes; ignores `--adopt`). It makes the exit code
442
+ verdict-significant so a pre-PR actor is never misled into reading a no-op — or a
443
+ failing verify — as a pass:
444
+
445
+ | Repo state | mode | exit |
446
+ |---|---|---|
447
+ | adopted, verify clean (or `warn`) | `verify` | `0` |
448
+ | adopted, gate scan `blocked` | `verify` | `1` |
449
+ | un-adopted (no `.consiliency/manifest`) | `not-adopted` | `3` |
450
+ | usage error | — | `2` |
451
+
452
+ The plain (non-`--check-only`) path is unchanged — it keeps the silent green
453
+ `skipped` no-op on an un-adopted repo and its existing exit `0`.