phase-loop-runtime 0.7.16__tar.gz → 0.7.18__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 (970) hide show
  1. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/PKG-INFO +2 -2
  2. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/README.md +1 -1
  3. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/pyproject.toml +2 -1
  4. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/__init__.py +1 -1
  5. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/protocol.md +67 -0
  6. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/CONTRACTS.md +203 -20
  7. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/backing.py +290 -4
  8. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/composition.py +4 -4
  9. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/config.py +99 -1
  10. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/fixtures.py +14 -11
  11. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/harness_mapping.py +25 -12
  12. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/presets.py +10 -8
  13. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/registries.py +2 -0
  14. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/schema.py +1 -1
  15. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/agy_canary_evidence.py +237 -15
  16. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/build_bundle.py +10 -4
  17. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/capability_registry.py +11 -7
  18. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/cli.py +199 -13
  19. phase_loop_runtime-0.7.18/src/phase_loop_runtime/gemini_heartbeat.py +292 -0
  20. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/governed_review.py +57 -1
  21. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/launcher.py +21 -12
  22. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/panel_invoker.py +939 -119
  23. phase_loop_runtime-0.7.18/src/phase_loop_runtime/president_adapter.py +572 -0
  24. phase_loop_runtime-0.7.18/src/phase_loop_runtime/president_operation.py +173 -0
  25. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/profiles.py +9 -8
  26. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/roadmap_assumptions.py +2 -2
  27. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/roadmap_lint.py +57 -15
  28. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/runner.py +10 -1
  29. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/sandbox_egress.py +34 -1
  30. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-advisor-board/SKILL.md +12 -8
  31. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-advisor-panel/SKILL.md +12 -8
  32. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/SKILL.md +3 -3
  33. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/SKILL.md +5 -4
  34. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-run-train/SKILL.md +50 -18
  35. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-advisor-board/SKILL.md +12 -8
  36. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-advisor-panel/SKILL.md +12 -8
  37. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-run-train/SKILL.md +48 -16
  38. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-advisor-board/SKILL.md +12 -8
  39. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-advisor-panel/SKILL.md +12 -8
  40. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-run-train/SKILL.md +48 -16
  41. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-advisor-board/SKILL.md +12 -8
  42. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-advisor-panel/SKILL.md +12 -8
  43. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-run-train/SKILL.md +48 -16
  44. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/train_ledger.py +4 -1
  45. phase_loop_runtime-0.7.18/src/phase_loop_runtime/train_review_packet.py +862 -0
  46. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/train_runner.py +387 -268
  47. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime.egg-info/PKG-INFO +2 -2
  48. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime.egg-info/SOURCES.txt +23 -0
  49. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_composition.py +1 -1
  50. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_golden.py +19 -2
  51. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_presets.py +10 -10
  52. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_registries.py +10 -3
  53. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_static_import_862.py +2 -2
  54. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_agy_canary_evidence.py +1391 -28
  55. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_autosel.py +2 -0
  56. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_broker_command_builders.py +5 -0
  57. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_broker_staged_tree_delivery.py +51 -1
  58. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ci_chronology_scope.py +168 -24
  59. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ci_offload_lock.py +96 -6
  60. phase_loop_runtime-0.7.18/tests/test_ci_quarantine.py +299 -0
  61. phase_loop_runtime-0.7.18/tests/test_ci_xdist_adoption.py +416 -0
  62. phase_loop_runtime-0.7.18/tests/test_ci_xdist_witness.py +142 -0
  63. phase_loop_runtime-0.7.18/tests/test_conform_timing_instrumentation.py +809 -0
  64. phase_loop_runtime-0.7.18/tests/test_execfind_falsifier.py +777 -0
  65. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_activation_promotion.py +35 -13
  66. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_delta_consumer.py +73 -54
  67. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_flag_off_recovery_leak_299.py +15 -10
  68. phase_loop_runtime-0.7.18/tests/test_frozen_blob_batch_parse.py +127 -0
  69. phase_loop_runtime-0.7.18/tests/test_gemini_heartbeat_bootstrap.py +1465 -0
  70. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_premerge.py +65 -1
  71. phase_loop_runtime-0.7.18/tests/test_governed_review.py +642 -0
  72. phase_loop_runtime-0.7.18/tests/test_govlean_panel_policy.py +288 -0
  73. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_grok_narrow_reject_231.py +39 -21
  74. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_grokexec.py +17 -8
  75. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_harden_evidence_verifier.py +54 -0
  76. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_launcher_liveness.py +4 -0
  77. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_legible_review_repairs.py +2 -2
  78. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_legible_roadmap_contract.py +21 -21
  79. phase_loop_runtime-0.7.18/tests/test_local_check.py +210 -0
  80. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_model_class_policy.py +3 -3
  81. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_model_tier_taxonomy.py +11 -6
  82. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_native_claude_seat_fill.py +5 -0
  83. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_conform_evidence.py +97 -3
  84. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_redaction_separation.py +59 -20
  85. phase_loop_runtime-0.7.18/tests/test_owned_command_procfs_1003.py +77 -0
  86. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_invoker_spawn.py +4 -4
  87. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_invoker_timeout_argv.py +19 -5
  88. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_native_fill_183.py +18 -0
  89. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_per_leg_model_66.py +6 -6
  90. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_tui_workspace_trust_223.py +59 -0
  91. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_execution_policy.py +6 -2
  92. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_launcher.py +9 -1
  93. phase_loop_runtime-0.7.18/tests/test_phase_loop_roadmap_validate.py +654 -0
  94. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_v45_schedharden.py +4 -1
  95. phase_loop_runtime-0.7.18/tests/test_president_heartbeat_1001.py +338 -0
  96. phase_loop_runtime-0.7.18/tests/test_president_ladder_config.py +587 -0
  97. phase_loop_runtime-0.7.18/tests/test_president_wiring.py +1232 -0
  98. phase_loop_runtime-0.7.18/tests/test_presroute_cli.py +100 -0
  99. phase_loop_runtime-0.7.18/tests/test_presroute_hardening.py +503 -0
  100. phase_loop_runtime-0.7.18/tests/test_presroute_landed.py +35 -0
  101. phase_loop_runtime-0.7.18/tests/test_proc_cpu.py +99 -0
  102. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_public_installer.py +185 -9
  103. phase_loop_runtime-0.7.18/tests/test_qualify_network_owner.py +135 -0
  104. phase_loop_runtime-0.7.18/tests/test_redaction_channel_control_isolation.py +115 -0
  105. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_monitor_policy.py +278 -35
  106. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_policy_govlean_repairs.py +9 -4
  107. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sandbox_egress.py +76 -0
  108. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skill_liveness_contract.py +4 -1
  109. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skills_canon_parity.py +5 -4
  110. phase_loop_runtime-0.7.18/tests/test_subscription_scrub_xai_864.py +74 -0
  111. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_tdd_chronology.py +220 -0
  112. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_e2e.py +7 -0
  113. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_invariants.py +6 -1
  114. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_merge.py +24 -21
  115. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_prebuilt.py +79 -0
  116. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_review_authorization.py +9 -1
  117. phase_loop_runtime-0.7.18/tests/test_train_review_monitoring_policy.py +325 -0
  118. phase_loop_runtime-0.7.18/tests/test_train_review_packet.py +2532 -0
  119. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_runner.py +14 -6
  120. phase_loop_runtime-0.7.18/tests/test_verify_qualified_agy_route_core.py +218 -0
  121. phase_loop_runtime-0.7.16/src/phase_loop_runtime/president_adapter.py +0 -143
  122. phase_loop_runtime-0.7.16/tests/test_governed_review.py +0 -212
  123. phase_loop_runtime-0.7.16/tests/test_govlean_panel_policy.py +0 -157
  124. phase_loop_runtime-0.7.16/tests/test_phase_loop_roadmap_validate.py +0 -234
  125. phase_loop_runtime-0.7.16/tests/test_president_wiring.py +0 -689
  126. phase_loop_runtime-0.7.16/tests/test_proc_cpu.py +0 -45
  127. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/MANIFEST.in +0 -0
  128. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/protocol/protocol.md +0 -0
  129. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/setup.cfg +0 -0
  130. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/extraction-readiness.md +0 -0
  131. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/granular-execution-policy.md +0 -0
  132. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-capability-matrix.md +0 -0
  133. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-skill-matrix.md +0 -0
  134. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-substrate-manifest.md +0 -0
  135. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/pi-loop-control.md +0 -0
  136. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/runtime-boundary.md +0 -0
  137. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/spec-discovery-roots.md +0 -0
  138. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-governed-pipeline.md +0 -0
  139. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-portal-projection.md +0 -0
  140. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-regenesis.md +0 -0
  141. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-report.md +0 -0
  142. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/runtime/verification-evidence-contract.md +0 -0
  143. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_proc_cpu.py +0 -0
  144. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/commands.txt +0 -0
  145. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/manifest.json +0 -0
  146. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/mixed.json +0 -0
  147. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-provider-timeout/manifest.json +0 -0
  148. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-provider-timeout/timeout-note.txt +0 -0
  149. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-redacted-summary/manifest.json +0 -0
  150. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-redacted-summary/redacted-summary.json +0 -0
  151. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-small-sample/manifest.json +0 -0
  152. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-small-sample/sample.json +0 -0
  153. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-threshold-edge/edge.txt +0 -0
  154. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-threshold-edge/manifest.json +0 -0
  155. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/manifest.json +0 -0
  156. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-a.txt +0 -0
  157. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-b.txt +0 -0
  158. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-c.txt +0 -0
  159. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-missing-references/claimed-results.json +0 -0
  160. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-missing-references/manifest.json +0 -0
  161. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-subtle-low-variance/manifest.json +0 -0
  162. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-subtle-low-variance/metrics.json +0 -0
  163. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-templated-prose/findings.md +0 -0
  164. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-templated-prose/manifest.json +0 -0
  165. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/manifest.json +0 -0
  166. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/scores.json +0 -0
  167. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/summary.txt +0 -0
  168. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/bundle-check.json +0 -0
  169. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/manifest.json +0 -0
  170. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/operator-note.txt +0 -0
  171. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/events-sample.jsonl +0 -0
  172. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/manifest.json +0 -0
  173. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/receipt.txt +0 -0
  174. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/evidence.json +0 -0
  175. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/manifest.json +0 -0
  176. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/summary.txt +0 -0
  177. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/manifest.json +0 -0
  178. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/matrix.json +0 -0
  179. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/notes.md +0 -0
  180. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/console-summary.txt +0 -0
  181. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/manifest.json +0 -0
  182. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/screenshot-standin.ppm +0 -0
  183. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/adoption_bundle.py +0 -0
  184. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/__init__.py +0 -0
  185. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/backing_omnigent.py +0 -0
  186. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/events.py +0 -0
  187. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/fixtures/advisor-boards.example.toml +0 -0
  188. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/matrix.py +0 -0
  189. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/observability.py +0 -0
  190. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/research.py +0 -0
  191. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/resolver.py +0 -0
  192. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/standin.py +0 -0
  193. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/validation.py +0 -0
  194. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/agent_runtime_provider.py +0 -0
  195. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_modular.py +0 -0
  196. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/dotfiles_adoption_manifest.baml +0 -0
  197. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/dotfiles_c4_document.baml +0 -0
  198. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/dotfiles_plan_manifest.baml +0 -0
  199. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/dotfiles_runtime_projection.baml +0 -0
  200. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/dotfiles_task_catalog.baml +0 -0
  201. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/emit_phase_closeout.baml +0 -0
  202. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/evaluate_suspected_fake_evidence.baml +0 -0
  203. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/verification_evidence.baml +0 -0
  204. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/broker.py +0 -0
  205. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/classifier.py +0 -0
  206. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/claude_agent_view.py +0 -0
  207. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/claude_channel_sidecar.py +0 -0
  208. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/closeout.py +0 -0
  209. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/closeout_classifier.py +0 -0
  210. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/closeout_evidence_audit.py +0 -0
  211. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/closeout_validation.py +0 -0
  212. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/closeout_validators.py +0 -0
  213. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/__init__.py +0 -0
  214. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/VENDOR.json +0 -0
  215. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/consiliency_spec/outside_agent_router.py +0 -0
  216. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/schemas/outside-agent-route-verdict.schema.json +0 -0
  217. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/schemas/outside-agent-submission.schema.json +0 -0
  218. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-empty-evidence-refs.json +0 -0
  219. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-git-object-id-length.json +0 -0
  220. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-missing-digest.json +0 -0
  221. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-path-traversal.json +0 -0
  222. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-raw-payload.json +0 -0
  223. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-source-bundle-mismatch.json +0 -0
  224. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-unknown-producer-identity-posture.json +0 -0
  225. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-unsupported-verdict.json +0 -0
  226. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/manifest.json +0 -0
  227. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-ambiguity-report.json +0 -0
  228. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-implementation-submission.json +0 -0
  229. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-work-request.json +0 -0
  230. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/certificate_tier.py +0 -0
  231. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/git_grounded_projection.py +0 -0
  232. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_advisory.py +0 -0
  233. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_conform_evidence.py +0 -0
  234. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_core.py +0 -0
  235. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_imports.py +0 -0
  236. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_pin.py +0 -0
  237. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_provenance.py +0 -0
  238. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_real.py +0 -0
  239. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_real_output.py +0 -0
  240. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_redaction.py +0 -0
  241. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_schema.py +0 -0
  242. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_vectors.py +0 -0
  243. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/consiliency_gates.py +0 -0
  244. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/consiliency_ingest.py +0 -0
  245. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/consiliency_layout.py +0 -0
  246. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/consiliency_scaffold.py +0 -0
  247. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/__init__.py +0 -0
  248. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/adapters/__init__.py +0 -0
  249. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/adapters/base.py +0 -0
  250. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/adapters/claude.py +0 -0
  251. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/adapters/codex.py +0 -0
  252. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/adapters/outside_agent.py +0 -0
  253. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/broker/__init__.py +0 -0
  254. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/broker/admission.py +0 -0
  255. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/broker/credsep.py +0 -0
  256. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/broker/evidence.py +0 -0
  257. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/broker/live.py +0 -0
  258. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/broker/verbs.py +0 -0
  259. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/contracts.py +0 -0
  260. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/dispatch.py +0 -0
  261. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/event_log.py +0 -0
  262. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/fencing.py +0 -0
  263. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/provider_contracts.py +0 -0
  264. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/reconcile.py +0 -0
  265. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/refresh.py +0 -0
  266. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/status.py +0 -0
  267. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/cross_repo_channel.py +0 -0
  268. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/declared_identity.py +0 -0
  269. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/default_executor_resolver.py +0 -0
  270. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/deploy/phase-loop-task-message-broker.service +0 -0
  271. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/discovery.py +0 -0
  272. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/dispatch_lock.py +0 -0
  273. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/doc_delta_validator.py +0 -0
  274. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/docs_audit.py +0 -0
  275. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/docs_freshness.py +0 -0
  276. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/docs_surfaces.py +0 -0
  277. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/doctor.py +0 -0
  278. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/dotfiles_profile_plugin.py +0 -0
  279. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/entry_doc_check.py +0 -0
  280. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/events.py +0 -0
  281. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/events_migration.py +0 -0
  282. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/evidence_audit.py +0 -0
  283. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/evidence_audit_config.py +0 -0
  284. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/executor_availability.py +0 -0
  285. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fab_canonical.py +0 -0
  286. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fab_delta.py +0 -0
  287. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fab_gate.py +0 -0
  288. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fab_producer.py +0 -0
  289. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fab_provenance.py +0 -0
  290. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fabpub_capability.py +0 -0
  291. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fabpub_tdd_chronology.py +0 -0
  292. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fabreadmit_capability.py +0 -0
  293. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fleet_map.py +0 -0
  294. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fleet_metrics.py +0 -0
  295. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fleet_metrics_export.py +0 -0
  296. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/gate_posture.py +0 -0
  297. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/git_discipline.py +0 -0
  298. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/git_ops.py +0 -0
  299. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/git_topology.py +0 -0
  300. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/goal_coverage.py +0 -0
  301. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/governed_bundle.py +0 -0
  302. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/governed_premerge.py +0 -0
  303. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/handoff.py +0 -0
  304. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/handoff_path.py +0 -0
  305. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/harness_env_signatures.py +0 -0
  306. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/injection.py +0 -0
  307. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/install_status.py +0 -0
  308. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/lane_scheduler.py +0 -0
  309. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/lease_store.py +0 -0
  310. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/legible_evidence.py +0 -0
  311. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/maintenance.py +0 -0
  312. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/migrate_handoffs.py +0 -0
  313. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/models.py +0 -0
  314. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/observability.py +0 -0
  315. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/phase_loop_drift_audit.py +0 -0
  316. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/phase_worktree_executor.py +0 -0
  317. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/__init__.py +0 -0
  318. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/branch_ops.py +0 -0
  319. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/flag.py +0 -0
  320. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/markers.py +0 -0
  321. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/merge_policy.py +0 -0
  322. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/ratification.py +0 -0
  323. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/sibling_matcher.py +0 -0
  324. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/plan_ir.py +0 -0
  325. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/plan_manifest.py +0 -0
  326. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/plan_pin_lint.py +0 -0
  327. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/planner_validation.py +0 -0
  328. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/producer_manifest.py +0 -0
  329. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/prompts.py +0 -0
  330. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/proof_stages.py +0 -0
  331. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/provenance.py +0 -0
  332. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/publishing.py +0 -0
  333. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/py.typed +0 -0
  334. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/ratification_policy.py +0 -0
  335. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/reconcile.py +0 -0
  336. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/redaction.py +0 -0
  337. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/reflection_sync.py +0 -0
  338. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/release_guard.py +0 -0
  339. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/render.py +0 -0
  340. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/repo_validation.py +0 -0
  341. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/review_stage.py +0 -0
  342. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/review_summary.py +0 -0
  343. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/reviewtruth_native_fill_capability.py +0 -0
  344. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/roadmap_authority.py +0 -0
  345. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/roadmap_ownership.py +0 -0
  346. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/roadmap_representation_check.py +0 -0
  347. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/roadmap_reseal.py +0 -0
  348. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/route_log.py +0 -0
  349. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/route_policy/__init__.py +0 -0
  350. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/route_policy/fixtures/route_selection.golden.json +0 -0
  351. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/runtime_paths.py +0 -0
  352. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/runtime_projection.py +0 -0
  353. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/runtime_resources.py +0 -0
  354. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/sandbox_policy.py +0 -0
  355. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/sandbox_retention.py +0 -0
  356. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/schema_export.py +0 -0
  357. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/schemas/phase-loop-doctor.v1.golden.json +0 -0
  358. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/schemas/phase-loop-doctor.v1.schema.json +0 -0
  359. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/schemas/phase_loop_closeout.schema.json +0 -0
  360. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skill_install.py +0 -0
  361. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skill_inventory.py +0 -0
  362. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skill_paths.py +0 -0
  363. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skill_sources_plugin.py +0 -0
  364. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-advisor-board/README.md +0 -0
  365. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-advisor-panel/README.md +0 -0
  366. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-detailed/README.md +0 -0
  367. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-detailed/SKILL.md +0 -0
  368. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/README.md +0 -0
  369. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  370. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  371. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  372. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  373. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  374. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  375. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  376. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  377. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/state.py +0 -0
  378. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  379. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/team_teardown.sh +0 -0
  380. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/validate_plan_doc.py +0 -0
  381. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/verify_harness.sh +0 -0
  382. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-loop/README.md +0 -0
  383. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-loop/SKILL.md +0 -0
  384. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/README.md +0 -0
  385. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/SKILL.md +0 -0
  386. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/assets/review_prompt.md +0 -0
  387. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
  388. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/roadmap-template.md +0 -0
  389. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  390. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/README.md +0 -0
  391. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/SKILL.md +0 -0
  392. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/assets/review_prompt.md +0 -0
  393. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/README.md +0 -0
  394. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/assets/review_prompt.md +0 -0
  395. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/scripts/validate_plan_doc.py +0 -0
  396. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-run-train/README.md +0 -0
  397. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/README.md +0 -0
  398. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/SKILL.md +0 -0
  399. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/assets/editor_prompt.md +0 -0
  400. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/README.md +0 -0
  401. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/SKILL.md +0 -0
  402. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  403. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/README.md +0 -0
  404. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/SKILL.md +0 -0
  405. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/references/task-templates.md +0 -0
  406. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-advisor-board/README.md +0 -0
  407. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-advisor-panel/README.md +0 -0
  408. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-detailed/README.md +0 -0
  409. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-detailed/SKILL.md +0 -0
  410. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/README.md +0 -0
  411. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/SKILL.md +0 -0
  412. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  413. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  414. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  415. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  416. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  417. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  418. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  419. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  420. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/state.py +0 -0
  421. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  422. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/team_teardown.sh +0 -0
  423. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/validate_plan_doc.py +0 -0
  424. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/verify_harness.sh +0 -0
  425. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-loop/README.md +0 -0
  426. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-loop/SKILL.md +0 -0
  427. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/README.md +0 -0
  428. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/SKILL.md +0 -0
  429. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/assets/review_prompt.md +0 -0
  430. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
  431. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/references/roadmap-template.md +0 -0
  432. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  433. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/README.md +0 -0
  434. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/SKILL.md +0 -0
  435. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/assets/review_prompt.md +0 -0
  436. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/README.md +0 -0
  437. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/SKILL.md +0 -0
  438. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/assets/review_prompt.md +0 -0
  439. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/scripts/validate_plan_doc.py +0 -0
  440. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-run-train/README.md +0 -0
  441. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/README.md +0 -0
  442. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/SKILL.md +0 -0
  443. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/assets/editor_prompt.md +0 -0
  444. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/README.md +0 -0
  445. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/SKILL.md +0 -0
  446. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  447. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/README.md +0 -0
  448. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/SKILL.md +0 -0
  449. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/references/task-templates.md +0 -0
  450. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-advisor-board/README.md +0 -0
  451. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-advisor-panel/README.md +0 -0
  452. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-detailed/README.md +0 -0
  453. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-detailed/SKILL.md +0 -0
  454. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/README.md +0 -0
  455. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/SKILL.md +0 -0
  456. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  457. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  458. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  459. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  460. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  461. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  462. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  463. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  464. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/state.py +0 -0
  465. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  466. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/team_teardown.sh +0 -0
  467. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/validate_plan_doc.py +0 -0
  468. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/verify_harness.sh +0 -0
  469. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-loop/README.md +0 -0
  470. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-loop/SKILL.md +0 -0
  471. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/README.md +0 -0
  472. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/SKILL.md +0 -0
  473. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/assets/review_prompt.md +0 -0
  474. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
  475. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/references/roadmap-template.md +0 -0
  476. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  477. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/README.md +0 -0
  478. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/SKILL.md +0 -0
  479. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/assets/review_prompt.md +0 -0
  480. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/README.md +0 -0
  481. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/SKILL.md +0 -0
  482. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/assets/review_prompt.md +0 -0
  483. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/scripts/validate_plan_doc.py +0 -0
  484. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-run-train/README.md +0 -0
  485. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/README.md +0 -0
  486. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/SKILL.md +0 -0
  487. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/assets/editor_prompt.md +0 -0
  488. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/README.md +0 -0
  489. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/SKILL.md +0 -0
  490. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  491. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/README.md +0 -0
  492. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/SKILL.md +0 -0
  493. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/references/task-templates.md +0 -0
  494. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-advisor-board/README.md +0 -0
  495. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-advisor-panel/README.md +0 -0
  496. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-detailed/README.md +0 -0
  497. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-detailed/SKILL.md +0 -0
  498. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/README.md +0 -0
  499. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/SKILL.md +0 -0
  500. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  501. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  502. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  503. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  504. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  505. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  506. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  507. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  508. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/state.py +0 -0
  509. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  510. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/team_teardown.sh +0 -0
  511. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/validate_plan_doc.py +0 -0
  512. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/verify_harness.sh +0 -0
  513. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-loop/README.md +0 -0
  514. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-loop/SKILL.md +0 -0
  515. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/README.md +0 -0
  516. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/SKILL.md +0 -0
  517. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/assets/review_prompt.md +0 -0
  518. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
  519. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/references/roadmap-template.md +0 -0
  520. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  521. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/README.md +0 -0
  522. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/SKILL.md +0 -0
  523. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/assets/review_prompt.md +0 -0
  524. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/README.md +0 -0
  525. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/SKILL.md +0 -0
  526. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/assets/review_prompt.md +0 -0
  527. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/scripts/validate_plan_doc.py +0 -0
  528. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-run-train/README.md +0 -0
  529. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/README.md +0 -0
  530. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/SKILL.md +0 -0
  531. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/assets/editor_prompt.md +0 -0
  532. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/README.md +0 -0
  533. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/SKILL.md +0 -0
  534. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  535. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/README.md +0 -0
  536. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/SKILL.md +0 -0
  537. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/references/task-templates.md +0 -0
  538. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/state.py +0 -0
  539. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/state_degradation.py +0 -0
  540. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/state_ops.py +0 -0
  541. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/task_message_broker.py +0 -0
  542. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/task_message_broker_client.py +0 -0
  543. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/task_message_resolver.py +0 -0
  544. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/tdd_receipts.py +0 -0
  545. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/train_roadmap.py +0 -0
  546. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/verification_evidence.py +0 -0
  547. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/verification_evidence_validator.py +0 -0
  548. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/visual_avatar_evidence_validator.py +0 -0
  549. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/visual_evidence_validator.py +0 -0
  550. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/worker_pool.py +0 -0
  551. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/worktree_index.py +0 -0
  552. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime.egg-info/dependency_links.txt +0 -0
  553. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime.egg-info/entry_points.txt +0 -0
  554. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime.egg-info/requires.txt +0 -0
  555. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime.egg-info/top_level.txt +0 -0
  556. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_acceptance_falsifier_contract.py +0 -0
  557. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_advisory_mode.py +0 -0
  558. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_alias_install.py +0 -0
  559. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_backcompat.py +0 -0
  560. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_backing_homebrew.py +0 -0
  561. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_backing_omnigent.py +0 -0
  562. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_cli_legacy.py +0 -0
  563. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_concurrency.py +0 -0
  564. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_config.py +0 -0
  565. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_ingestion.py +0 -0
  566. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_integration.py +0 -0
  567. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_live_research.py +0 -0
  568. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_matrix.py +0 -0
  569. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_observability.py +0 -0
  570. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_research.py +0 -0
  571. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_resolver.py +0 -0
  572. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_schema.py +0 -0
  573. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_twin_alias_legacy.py +0 -0
  574. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_agent_runtime_provider_cs08.py +0 -0
  575. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_branchgov_preflight.py +0 -0
  576. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_broker_evidence_schema_drift_789.py +0 -0
  577. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_certificate_tier.py +0 -0
  578. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ci_gate_metrics.py +0 -0
  579. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ci_main_red.py +0 -0
  580. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ci_workflow_concurrency.py +0 -0
  581. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_claude_json_schema_metaschema_291.py +0 -0
  582. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_cli_train_status_45.py +0 -0
  583. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_break_glass_cli.py +0 -0
  584. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_classifier.py +0 -0
  585. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_convergence_fixes.py +0 -0
  586. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_exception_vocab.py +0 -0
  587. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_gitignored_disposable_186b.py +0 -0
  588. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_import_cycle_819.py +0 -0
  589. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_new_owned_directory_closes_clean.py +0 -0
  590. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_validator_hook.py +0 -0
  591. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_verification_gate.py +0 -0
  592. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_codex_effort_max_clamp_49.py +0 -0
  593. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_committed_range_diff.py +0 -0
  594. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_common_directory_leases_807.py +0 -0
  595. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_conformance_golden.py +0 -0
  596. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_conftest_isolation.py +0 -0
  597. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_consiliency_dual_layout.py +0 -0
  598. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_consiliency_gates.py +0 -0
  599. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_consiliency_ingest.py +0 -0
  600. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_consiliency_scaffold.py +0 -0
  601. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_console_scripts_are_declared.py +0 -0
  602. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_contract_floor_guard_378.py +0 -0
  603. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_adapters.py +0 -0
  604. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_broker_admission.py +0 -0
  605. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_broker_api.py +0 -0
  606. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_broker_credsep.py +0 -0
  607. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_broker_evidence.py +0 -0
  608. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_broker_revocation_race.py +0 -0
  609. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_broker_verbs.py +0 -0
  610. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_cli_integration.py +0 -0
  611. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_coordination_contracts.py +0 -0
  612. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_dispatch.py +0 -0
  613. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_event_contracts.py +0 -0
  614. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_event_log.py +0 -0
  615. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_fencing.py +0 -0
  616. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_fixture_contracts.py +0 -0
  617. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_invalidation.py +0 -0
  618. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_live_enable.py +0 -0
  619. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_provider_contracts.py +0 -0
  620. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_reconcile.py +0 -0
  621. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_refresh.py +0 -0
  622. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_runtime_imports.py +0 -0
  623. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_seat_lifecycle.py +0 -0
  624. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_status.py +0 -0
  625. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_train_integration.py +0 -0
  626. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_coordinator_wave_loop.py +0 -0
  627. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_cr_fixes_pr220.py +0 -0
  628. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_delegated_visual_evidence_91.py +0 -0
  629. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_discovery_hygiene_legacy.py +0 -0
  630. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_dispatch_hold_guard.py +0 -0
  631. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_dispatch_lock_cross_roadmap.py +0 -0
  632. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_dispatch_lock_helper.py +0 -0
  633. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_dispatch_lock_reentrancy.py +0 -0
  634. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_dispatch_lock_same_roadmap.py +0 -0
  635. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_doc_delta_validator.py +0 -0
  636. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_docs_audit.py +0 -0
  637. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_docs_freshness.py +0 -0
  638. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_doctor_bom.py +0 -0
  639. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_dotfiles_tree.py +0 -0
  640. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_egress_prefix_crosses_the_broker_thread.py +0 -0
  641. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_entry_doc_check.py +0 -0
  642. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_execgov.py +0 -0
  643. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_execreg_launch_registry.py +0 -0
  644. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_execute_phase_handoff_mode.py +0 -0
  645. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_execution_policy_tiering.py +0 -0
  646. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_executor_availability.py +0 -0
  647. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_executor_exited_without_closeout_785.py +0 -0
  648. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_export_schema.py +0 -0
  649. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_canonical_b.py +0 -0
  650. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_closeout_crash_safety.py +0 -0
  651. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_closeout_wiring.py +0 -0
  652. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_delta_c.py +0 -0
  653. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_gate_d.py +0 -0
  654. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_producer.py +0 -0
  655. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_provenance_a.py +0 -0
  656. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_admission_compat_789.py +0 -0
  657. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_inventory_worktree_lifecycle_789.py +0 -0
  658. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_partition_rotation_789d.py +0 -0
  659. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_recovery_controls_789.py +0 -0
  660. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_rotate_partition_cli_789d.py +0 -0
  661. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_shared_epoch.py +0 -0
  662. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_zero_history_bootstrap.py +0 -0
  663. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabreadmit_authority_digest_v2.py +0 -0
  664. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabreadmit_broker.py +0 -0
  665. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fleet_map.py +0 -0
  666. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fleet_metrics.py +0 -0
  667. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fleet_metrics_export.py +0 -0
  668. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_gate_a_wheel_isolation.py +0 -0
  669. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_gate_fail_open_visibility.py +0 -0
  670. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_gate_parity_244_245.py +0 -0
  671. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_gate_posture.py +0 -0
  672. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_git_discipline.py +0 -0
  673. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_git_grounded_projection.py +0 -0
  674. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_goal_coverage.py +0 -0
  675. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_cross_vendor_floor_358.py +0 -0
  676. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_disjointness_model_first.py +0 -0
  677. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_e2e.py +0 -0
  678. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_gate_crfixes.py +0 -0
  679. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_planning_gate.py +0 -0
  680. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_premerge_live.py +0 -0
  681. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_declared_identity.py +0 -0
  682. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_plan_manifest_issue_dispositions.py +0 -0
  683. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_plan_pin_lint.py +0 -0
  684. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_producer_manifest.py +0 -0
  685. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_proof_stages.py +0 -0
  686. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_roadmap_reseal.py +0 -0
  687. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_skill_policy_parity.py +0 -0
  688. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_tdd_receipts.py +0 -0
  689. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_harden_evidence_producer.py +0 -0
  690. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_harden_json_depth_825.py +0 -0
  691. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_hotfix_lane.py +0 -0
  692. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_injection_skill_failloud.py +0 -0
  693. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_lane_ir_override.py +0 -0
  694. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_launchspec_golden.py +0 -0
  695. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_lease_store.py +0 -0
  696. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_lease_store_conformance.py +0 -0
  697. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ledger_serialization.py +0 -0
  698. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_leg_liveness_monitor.py +0 -0
  699. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_legible_evidence.py +0 -0
  700. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_live_smoke_gate_executes.py +0 -0
  701. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_manifest_per_entry_164.py +0 -0
  702. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_model_id_source_guard.py +0 -0
  703. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_native_claude_seat_fill_green.py +0 -0
  704. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_nonzero_suite_command_fails_closed.py +0 -0
  705. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_observability_alerting.py +0 -0
  706. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_advisory.py +0 -0
  707. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_advisory_cli.py +0 -0
  708. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_advisory_fixtures.py +0 -0
  709. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_authority_boundary.py +0 -0
  710. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_canonical_corpus.py +0 -0
  711. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_contract_drift.py +0 -0
  712. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_contract_imports.py +0 -0
  713. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_contract_pin.py +0 -0
  714. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_core_api.py +0 -0
  715. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_provenance.py +0 -0
  716. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_real_ci.py +0 -0
  717. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_real_cli.py +0 -0
  718. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_real_output.py +0 -0
  719. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_real_runtime.py +0 -0
  720. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_redaction.py +0 -0
  721. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_release_surface.py +0 -0
  722. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_schema_validation.py +0 -0
  723. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_vectors.py +0 -0
  724. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_packaged_vector_manifest_pin.py +0 -0
  725. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_advisory_mode_63.py +0 -0
  726. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_codex_auth_signature_body_252.py +0 -0
  727. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_context_refs_114.py +0 -0
  728. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_gemini_no_command_preamble.py +0 -0
  729. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_invoker.py +0 -0
  730. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_invoker_windows_import.py +0 -0
  731. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_leg_auth_preflight_64.py +0 -0
  732. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_leg_failure_diagnostic.py +0 -0
  733. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_streaming_verdicts.py +0 -0
  734. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_tui_eof_48.py +0 -0
  735. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_tui_liveness_188.py +0 -0
  736. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_verdict_summary.py +0 -0
  737. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_parallel_dispatch_backcompat.py +0 -0
  738. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_parallel_dispatch_cli.py +0 -0
  739. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_adoption_bundle.py +0 -0
  740. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_adoption_bundle_cli.py +0 -0
  741. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_dependency.py +0 -0
  742. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_end_to_end.py +0 -0
  743. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_injection.py +0 -0
  744. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_modular.py +0 -0
  745. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_prompt_taxonomy.py +0 -0
  746. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_runner_closeout.py +0 -0
  747. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_schema_export.py +0 -0
  748. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_schema_source.py +0 -0
  749. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_branch_divergence_event.py +0 -0
  750. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_break_glass_rerun.py +0 -0
  751. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_build_bundle.py +0 -0
  752. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_classifier.py +0 -0
  753. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_agent_view_adapter.py +0 -0
  754. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_agent_view_lifecycle.py +0 -0
  755. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_channel_hooks.py +0 -0
  756. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_channel_mcp.py +0 -0
  757. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_channel_security.py +0 -0
  758. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_channel_session_launch.py +0 -0
  759. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_channel_sidecar.py +0 -0
  760. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_channel_smoke_suite.py +0 -0
  761. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_route_selection.py +0 -0
  762. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_cli.py +0 -0
  763. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_cli_plugin_load.py +0 -0
  764. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_control_only.py +0 -0
  765. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_event.py +0 -0
  766. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_evidence_audit.py +0 -0
  767. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_hardening.py +0 -0
  768. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_owned_dirty_fallback.py +0 -0
  769. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_schema.py +0 -0
  770. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_validation.py +0 -0
  771. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_collaborator_citation.py +0 -0
  772. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_collaborator_docs.py +0 -0
  773. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_collaborator_rollback.py +0 -0
  774. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_concurrent_phase_dispatch.py +0 -0
  775. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_def4_writer_namespacing.py +0 -0
  776. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_dirty_path_classify_phase_owned_tests.py +0 -0
  777. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_dirty_path_classify_previous_phase_owned.py +0 -0
  778. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_discovery.py +0 -0
  779. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_docs.py +0 -0
  780. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_dotfiles_schemas.py +0 -0
  781. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_dotfiles_sources.py +0 -0
  782. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_downstream_governed_pipeline.py +0 -0
  783. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_downstream_instruction_scope_readme.py +0 -0
  784. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_downstream_portal.py +0 -0
  785. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_downstream_regenesis.py +0 -0
  786. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_drift_audit.py +0 -0
  787. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_dry_run_closeout_guard.py +0 -0
  788. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_dry_run_then_run.py +0 -0
  789. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_events_migration.py +0 -0
  790. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_evidence_audit.py +0 -0
  791. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_evidence_audit_runner.py +0 -0
  792. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_evidence_audit_tier2.py +0 -0
  793. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_evidence_audit_tier3.py +0 -0
  794. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_evidence_audit_tuning.py +0 -0
  795. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_executor_degradation.py +0 -0
  796. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_full_phase_mode.py +0 -0
  797. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_handoff.py +0 -0
  798. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_handoff_migration.py +0 -0
  799. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_init.py +0 -0
  800. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_injection.py +0 -0
  801. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_install_status.py +0 -0
  802. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_issue_84_explicit_phase.py +0 -0
  803. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_lane_harnesses.py +0 -0
  804. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_lane_ir.py +0 -0
  805. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_lane_ir_fixtures.py +0 -0
  806. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_lane_scheduler.py +0 -0
  807. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_ledger_debug.py +0 -0
  808. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_ledger_dedup.py +0 -0
  809. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_live_adapters.py +0 -0
  810. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_maintenance.py +0 -0
  811. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_metrics.py +0 -0
  812. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_migration_regressions.py +0 -0
  813. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_mixedrun_dispatch.py +0 -0
  814. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_mixedrun_matrix.py +0 -0
  815. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_mixedrun_observability.py +0 -0
  816. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_models.py +0 -0
  817. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_native_flags.py +0 -0
  818. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_parallel_plan_safe.py +0 -0
  819. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pi_executor.py +0 -0
  820. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pipeline_boundaries.py +0 -0
  821. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pipeline_bridge.py +0 -0
  822. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pipeline_bundle.py +0 -0
  823. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pipeline_closeout.py +0 -0
  824. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pipeline_freshness.py +0 -0
  825. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pipeline_mode.py +0 -0
  826. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_plan_doc_skip.py +0 -0
  827. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_plan_manifest.py +0 -0
  828. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_planner_redispatch_when_plan_current.py +0 -0
  829. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_planner_validation.py +0 -0
  830. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_policy.py +0 -0
  831. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_protocol_contract.py +0 -0
  832. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_provenance.py +0 -0
  833. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_reconcile.py +0 -0
  834. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_reconcile_blocker_self_clear.py +0 -0
  835. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_reconcile_recovery_mode.py +0 -0
  836. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_reconcile_to_status_planned_recovery.py +0 -0
  837. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_reducers.py +0 -0
  838. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_repair_precondition_planned_closeout.py +0 -0
  839. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_repair_skipped_when_blocker_cleared.py +0 -0
  840. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_roadmap_amendments.py +0 -0
  841. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_rotation.py +0 -0
  842. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_runner.py +0 -0
  843. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_runner_closeout_validation.py +0 -0
  844. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_runtime_boundary.py +0 -0
  845. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_runtime_decouple.py +0 -0
  846. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_runtime_package_data.py +0 -0
  847. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_runtime_projection.py +0 -0
  848. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_schema_flow.py +0 -0
  849. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_skill_baml_closeout.py +0 -0
  850. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_skill_bridge_contract.py +0 -0
  851. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_skill_contract.py +0 -0
  852. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_skill_execute_contract.py +0 -0
  853. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_skill_install.py +0 -0
  854. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_skill_planner_contract.py +0 -0
  855. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_smoke_blockers.py +0 -0
  856. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_smoke_exhaustion.py +0 -0
  857. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_smoke_reentry.py +0 -0
  858. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_spurious_completion_rejection.py +0 -0
  859. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_start_gate_phase_status.py +0 -0
  860. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_start_gate_refuses_cross_phase_dirty.py +0 -0
  861. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_state.py +0 -0
  862. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_status_transition_events_emitted.py +0 -0
  863. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_substrate_soak_docs.py +0 -0
  864. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_substrate_soak_governed.py +0 -0
  865. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_substrate_soak_portal.py +0 -0
  866. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_terminal_summary_mirrors_baml_closeout.py +0 -0
  867. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_v22_e2e.py +0 -0
  868. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_v22_principles.py +0 -0
  869. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_v45_found_contracts.py +0 -0
  870. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_v45_reconcile.py +0 -0
  871. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_v45_sched.py +0 -0
  872. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_wave_runner.py +0 -0
  873. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_work_unit_observability.py +0 -0
  874. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_work_unit_runner.py +0 -0
  875. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_work_unit_state.py +0 -0
  876. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_worktrees.py +0 -0
  877. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_owned_dirty_relaxation.py +0 -0
  878. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_state_disagreement_312.py +0 -0
  879. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_worktree_executor.py +0 -0
  880. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_branch_ops_create.py +0 -0
  881. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_branch_ops_rebase_conflict.py +0 -0
  882. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_branch_ops_refuse_default.py +0 -0
  883. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_flag.py +0 -0
  884. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_markers.py +0 -0
  885. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_merge_policy_parse.py +0 -0
  886. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_ratification_event_payload.py +0 -0
  887. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_ratification_runner.py +0 -0
  888. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_ratification_skipped_standalone.py +0 -0
  889. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_standalone_regression.py +0 -0
  890. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pkg_layout_freeze.py +0 -0
  891. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_plan_ir_iter_waves.py +0 -0
  892. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pr_readback_789.py +0 -0
  893. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_preflight_verification.py +0 -0
  894. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_proofgate_attestation_workflow.py +0 -0
  895. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_proofgate_cleanup.py +0 -0
  896. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_proofgate_isolation.py +0 -0
  897. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_proofgate_receipts.py +0 -0
  898. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_prune_merged_worktrees_script.py +0 -0
  899. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_publishing.py +0 -0
  900. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pushflow.py +0 -0
  901. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ratification_policy.py +0 -0
  902. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_reconcile_manifest_dedup_46.py +0 -0
  903. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_reconcile_portability_85c.py +0 -0
  904. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_reconcile_tracked_closeout_recovery_90.py +0 -0
  905. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_reconcile_verification_log.py +0 -0
  906. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_reconcile_visual_avatar_evidence_91.py +0 -0
  907. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_reflection_sync.py +0 -0
  908. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_release_dispatch_operator_approval_145.py +0 -0
  909. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_release_pin_autotrack.py +0 -0
  910. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_repo_validation.py +0 -0
  911. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_leg_sandbox.py +0 -0
  912. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_stage_binding.py +0 -0
  913. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_stage_board_findings.py +0 -0
  914. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_staged_tree_authorization.py +0 -0
  915. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_summary.py +0 -0
  916. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_roadmap_authority.py +0 -0
  917. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_roadmap_ownership.py +0 -0
  918. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_roadmap_representation_consistency.py +0 -0
  919. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_route_log.py +0 -0
  920. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_route_policy_conformance.py +0 -0
  921. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_routing_invariants.py +0 -0
  922. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_runner_visual_evidence_authoritative_91.py +0 -0
  923. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_runtime_adapter_output_720.py +0 -0
  924. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_runtime_event_log_hardening_720.py +0 -0
  925. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_runtime_procfs_identity_870.py +0 -0
  926. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_runtime_state_mirror_agreement.py +0 -0
  927. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sandbox_clone.py +0 -0
  928. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sandbox_policy.py +0 -0
  929. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sandbox_preamble.py +0 -0
  930. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sandbox_retention.py +0 -0
  931. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_self_asserted_passed_without_evidence_is_gated.py +0 -0
  932. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sibling_matcher_patterns.py +0 -0
  933. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skill_bundle_pinned.py +0 -0
  934. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skill_install_body_expansion.py +0 -0
  935. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skill_plan_manifest_write.py +0 -0
  936. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skill_sources_seam.py +0 -0
  937. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skills_bundle_drift.py +0 -0
  938. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skills_src_claude_literal_lint.py +0 -0
  939. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_spec_conformance_gate.py +0 -0
  940. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_specpkgmin_wheel.py +0 -0
  941. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_stale_roadmap_dispatch_guard.py +0 -0
  942. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_status_read_only_62.py +0 -0
  943. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_suite_interpreter_satisfies_requires_python.py +0 -0
  944. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sweep_fleet_worktrees_script.py +0 -0
  945. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sync_skills_apply_failloud.py +0 -0
  946. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_task_message_broker.py +0 -0
  947. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_task_message_broker_cli.py +0 -0
  948. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_task_message_resolver.py +0 -0
  949. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_the_real_launch_carries_the_prefix.py +0 -0
  950. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_authority_import_811.py +0 -0
  951. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_order_only_deps_47.py +0 -0
  952. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_roadmap.py +0 -0
  953. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_unattended_release.py +0 -0
  954. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_v34_parallel_dispatch_soak.py +0 -0
  955. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_validate_plan_doc_docs_lane.py +0 -0
  956. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_validate_plan_doc_fail_closed.py +0 -0
  957. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_validate_plan_doc_goal_coverage.py +0 -0
  958. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_validate_plan_doc_producer_dependency.py +0 -0
  959. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_validate_plan_doc_proofgate.py +0 -0
  960. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_verification_dotdot_execution_428.py +0 -0
  961. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_verification_evidence.py +0 -0
  962. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_verification_evidence_validator.py +0 -0
  963. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_verification_interpreter_guard_221.py +0 -0
  964. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_verification_venv_identity_428.py +0 -0
  965. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_visual_avatar_evidence_validator.py +0 -0
  966. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_visual_evidence_validator.py +0 -0
  967. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_workerpool_failure_isolation.py +0 -0
  968. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_workerpool_parallel.py +0 -0
  969. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_workerpool_worktree_alloc.py +0 -0
  970. {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_worktree_index.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: phase-loop-runtime
3
- Version: 0.7.16
3
+ Version: 0.7.18
4
4
  Summary: Harness-neutral phase-loop orchestration runtime and CLI
5
5
  Author-email: ViperJuice <viperjuice@users.noreply.github.com>
6
6
  License-Expression: Apache-2.0
@@ -49,7 +49,7 @@ To install just this runtime package directly:
49
49
 
50
50
  ```sh
51
51
  pip install phase-loop-runtime # latest compatible release
52
- pip install phase-loop-runtime==0.7.16 # …or pin an exact version
52
+ pip install phase-loop-runtime==0.7.18 # …or pin an exact version
53
53
  ```
54
54
 
55
55
  To pin a specific tag from source instead, substitute a tag from
@@ -19,7 +19,7 @@ To install just this runtime package directly:
19
19
 
20
20
  ```sh
21
21
  pip install phase-loop-runtime # latest compatible release
22
- pip install phase-loop-runtime==0.7.16 # …or pin an exact version
22
+ pip install phase-loop-runtime==0.7.18 # …or pin an exact version
23
23
  ```
24
24
 
25
25
  To pin a specific tag from source instead, substitute a tag from
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "phase-loop-runtime" # PyPI dist name; NOT "agent-harness" (an unrelated third-party PyPI project)
7
- version = "0.7.16"
7
+ version = "0.7.18"
8
8
  description = "Harness-neutral phase-loop orchestration runtime and CLI"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -154,6 +154,7 @@ phase_loop_runtime = [
154
154
  [tool.pytest.ini_options]
155
155
  markers = [
156
156
  "dotfiles_integration: test requires a dotfiles fleet tree (skipped standalone)",
157
+ "quarantine(reason): known flake tracked by an OPEN issue; deselected on pull-request CI only (agent-harness#1029)",
157
158
  ]
158
159
 
159
160
  [tool.setuptools.data-files]
@@ -18,4 +18,4 @@ __all__ = [
18
18
  "state_ops",
19
19
  ]
20
20
 
21
- __version__ = "0.7.16"
21
+ __version__ = "0.7.18"
@@ -2659,6 +2659,73 @@ Fields:
2659
2659
  A synthetic `_train_review_` record (`node_id="_train_review_"`) is appended
2660
2660
  when the train-level review panel approves. Its `status` is `"approved"`.
2661
2661
 
2662
+ An approval with usable-reviewer evidence may also carry the optional
2663
+ `review_packet_sha256` field, omitted on historical and non-review records.
2664
+ Reuse requires its exact immutable packet bytes and the current usable-reviewer
2665
+ floor; a legacy approval without the digest cannot authorize pending merges.
2666
+
2667
+ The version-1 train review packet binds train order/edges, full admitted heads,
2668
+ PR identities, live base tips, unique merge bases, tree IDs, changed-path/mode/blob
2669
+ inventory, full substantive patches, acceptance and head-bound evidence.
2670
+ `--review-material FILE` declares supporting material for every exact node ID;
2671
+ local command/disposal evidence is labelled operator-supplied attestation.
2672
+ GitHub check runs are fetched by identity and checked against the admitted head.
2673
+ Optional explicit whole-subtree disposal certificates bind full inventories and
2674
+ unabridged diff hashes; they certify deletion mechanics, not generatedness.
2675
+ Operator-only removal sidecars never enter reviewer scratch.
2676
+
2677
+ `run-train --governed --review-only --review-material FILE --preview-review DIR`
2678
+ prepares identical review material before broker construction, leases, recovery,
2679
+ admission or models. A ready receipt is not approval. The rendered prompt,
2680
+ including framing and instructions, must fit 512 KiB; the separate 1 MiB packet
2681
+ parser limit does not establish readiness. There is no truncation fallback.
2682
+
2683
+ `run-train --governed --monitoring-policy heartbeat_only` runs the train-level review
2684
+ under review monitoring policy v1 heartbeat-only: the frozen four-vendor default board
2685
+ (any other composition is refused), no model deadline, no native host seat. The policy
2686
+ is bound into the review authorization and passed to the invoker, which refuses a
2687
+ mismatch. Native emission/fill, a non-governed run or an unqualified Gemini route is
2688
+ refused before ledger, broker, publish or packet effects (CLI and direct callers), and
2689
+ re-checked before any seat launches. The bounded review path is unchanged.
2690
+
2691
+ Trusted-opt-in FAB readmission during ordinary governed merging first freezes
2692
+ the entire prospective packet against proposed-head evidence without granting
2693
+ authority. Existing broker readmission and fresh complete durable bindings must
2694
+ then match before those identical bytes enter review/cache/native sinks. Current
2695
+ readmission eligibility is checked immediately before recovery. While FAB promotion
2696
+ is active, real repository revocation is replayed before recovery, sinks, approval
2697
+ and each merge. Review-only/native emission perform no recovery/readmission; preview
2698
+ does not consult broker evidence. No late head advancement follows train review.
2699
+ Transport readiness does not attest actual provider consumption of all content.
2700
+
2701
+ Production stores read-back packets under `review-packets/<sha256>/` beside the
2702
+ ledger. Missing/corrupt packet storage holds. Explicit fresh material invalidates
2703
+ changed approvals; omitted material retains stored snapshots without asserting
2704
+ checks were refreshed. Native fills retain artifact/brief/composition validation.
2705
+ Partial resumes keep original merged-node sections only after validating their
2706
+ complete admission bindings (node, branch, PR, head and FAB run) and live merge
2707
+ outcomes; unavailable history holds rather than
2708
+ reconstructing scope from current main. Observed pending base/head drift before
2709
+ approval and each merge requires a fresh packet. GitHub's existing head pin
2710
+ remains independent; these reads do not atomically pin the base.
2711
+
2712
+ Direct patch text preserves LF/TAB and reversibly escapes backslashes, CR and
2713
+ disallowed Unicode. JSON sections decode as outer escapes, JSON, then nested
2714
+ `content.text` escapes, including four-digit `\u` and supplementary eight-digit
2715
+ `\U` escapes (the latter are not standard JSON escapes).
2716
+ `raw_sha256` hashes original bytes; `escaped_sha256`
2717
+ hashes intermediate escaped text; preview `presentation_sha256` hashes the
2718
+ final rendered section. Readback integrity is not a power-loss durability
2719
+ guarantee; that recovery work is tracked in agent-harness#977.
2720
+ Packet identity, material and revocation checkpoints, including finalization,
2721
+ storage and checks immediately before review and approval, use `review_halted`
2722
+ before recovery/readmission begins and `merge_halted` afterward. The per-node
2723
+ recovery/readmission handler alone appends a blocked row, and only after that
2724
+ node's helper began; later packet holds retain the latest durable binding.
2725
+ Panel rejections and native-fill refusals remain `review_halted`; merge-loop
2726
+ refusals remain `merge_halted`. All retain the typed reason and prior merges. Malformed
2727
+ stored metadata and excessive JSON nesting yield a typed hold and preview receipt.
2728
+
2662
2729
  Idempotent resume: re-running `run_train` reads the ledger to skip nodes that
2663
2730
  are already `pr_open` (confirmed via a live `_pr_is_open` check) or already
2664
2731
  `merged`. A `blocked` node in the ledger is retried on resume.
@@ -95,14 +95,17 @@ equivalence is proven by a test (not asserted in prose).
95
95
  deferred seat natively and the fill counts only once bound (EC-REVIEWTRUTH-14,
96
96
  agent-harness#921) — the host×seat routing rule above.
97
97
  - **`VENDOR_API_KEY_VARS`** — the flat `_API_KEY_VARS` tuple re-keyed by vendor
98
- family; its union equals today's tuple (proven), so scrubbing stays
99
- byte-equivalent.
98
+ family; its union equals today's tuple (proven). It is also the api-key INJECTION map.
99
+ `scrub_subscription_env` additionally removes `SUBSCRIPTION_SCRUB_ONLY_VARS`
100
+ (`XAI_API_KEY`, `GROK_CODE_XAI_API_KEY`; agent-harness#864): the api-key variables of the
101
+ subscription-only grok harness, scrubbed but never injectable -- and
102
+ `GROK_SUBSCRIPTION_BLOCKED_ENV_VARS`, grok's endpoint redirects.
100
103
 
101
104
  ## IF-0-ABDFREEZE-4 — Back-compat contract · `fixtures.py` + `tests/test_advisor_board_backcompat.py`
102
105
 
103
106
  - The model-first `default` board (`DEFAULT_BOARD`) resolves four vendors in
104
- `DEFAULT_BOARD_VENDOR_ORDER`: Codex/Sol, Gemini/Flash high, Claude/Fable, and
105
- Grok 4.6. The separate legacy `PANEL_LEGS` tuple and explicit `invoke_panel`
107
+ `DEFAULT_BOARD_VENDOR_ORDER`: Codex/Sol, Gemini/Flash high, Claude/Opus 5.5, and
108
+ Grok 4.7. The separate legacy `PANEL_LEGS` tuple and explicit `invoke_panel`
106
109
  API remain the frozen three-leg Codex/Gemini/Claude boundary.
107
110
  - `advisor-panel` stays a working alias of `advisor-board` — the rename + alias is
108
111
  ABDRESOLVE; this contract only *states* the invariant.
@@ -184,24 +187,27 @@ The seven built-in presets (`presets.PRESETS`). Every preset self-validates agai
184
187
  the real matrix at `load_boards()` time (`tests/test_advisor_board_config.py`,
185
188
  `tests/test_advisor_board_integration.py`).
186
189
 
187
- - **Review-class = Fable, decoupled from the implementer.** Pre-merge and legal
188
- review are mid-tier decisions where being wrong is expensive, so the review-class
189
- boards (`default`, `code-review`, `legal-review`, `legal-strategy-review`) seat
190
- Fable (`claude-fable-5-1`) on the claude lane — NOT the implementer model
190
+ - **Review-class = Opus 5.5 (for now), decoupled from the implementer.** Pre-merge
191
+ and legal review are mid-tier decisions where being wrong is expensive, so the
192
+ review-class boards (`default`, `code-review`, `legal-review`,
193
+ `legal-strategy-review`) seat Opus 5.5 (`claude-opus-5-5`) on the claude lane — the
194
+ maintainer's review default "for now" (2026-09-23), Fable (`claude-fable-5-1`)
195
+ before that and still selectable — NOT the implementer model
191
196
  `profiles.CLAUDE_IMPLEMENTER_MODEL` (`claude-sonnet-5`). `panel_invoker.DEFAULT_LEG_MODELS["claude"]`
192
197
  is the SINGLE source of truth for the panel's default claude model: the claude
193
198
  leg builder (`_claude_tui_command`) and the Agent-View attempt both read it, so
194
199
  the *legacy* `invoke_panel` path AND the live governed gates
195
200
  (`governed_review` / `governed_premerge`, which call `invoke_panel` with no model
196
- override) review on Fable. `CLAUDE_IMPLEMENTER_MODEL` is untouched — the
201
+ override) review on Opus 5.5. `CLAUDE_IMPLEMENTER_MODEL` is untouched — the
197
202
  implementer stays Sonnet. The `default` board (`fixtures.DEFAULT_BOARD`) is
198
- byte-pinned to this Fable `invoke_panel` panel by the golden proof
203
+ byte-pinned to this `invoke_panel` panel by the golden proof
199
204
  (`tests/test_advisor_board_golden.py`); the sole sanctioned delta stays `seat_key`.
200
205
  - **`default` and `code-review` are four-vendor frontier boards.** Gemini uses
201
- `gemini-3.8-flash` at its `high` ceiling alongside Sol, Fable, and Grok 4.6;
206
+ `gemini-3.8-flash` at its `high` ceiling alongside Sol, Opus 5.5, and Grok 4.7;
202
207
  `code-review` preserves availability-aware backfill and distinct lenses.
203
- - **President availability ladder.** Review findings go first to Fable, then
204
- Sol, Grok 4.6, and Gemini 3.8 Flash. Descent occurs only for a typed
208
+ - **President availability ladder.** Review findings go first to the `fable` seat
209
+ (Opus 5.5 by default — the rung names the seat, not the model), then
210
+ Sol, Grok 4.7, and Gemini 3.8 Flash. Descent occurs only for a typed
205
211
  `president_unavailable` result, never because a president dissents. The ladder
206
212
  is EXECUTED (not merely declared) by every `requires_president` landing policy —
207
213
  see ABDPRES below.
@@ -214,8 +220,8 @@ the real matrix at `load_boards()` time (`tests/test_advisor_board_config.py`,
214
220
  - **Catch-alls for unmodeled tasks (`general`, `solo`).** So the board library is not
215
221
  limited to the pre-modeled domains: `general` is the domain-agnostic top-tier PANEL
216
222
  (three frontier vendors — gpt-6-astra/adversarial, gemini-3.8-flash/alternative,
217
- claude-fable-5-1/completeness — hand it any task + brief), and `solo` is the
218
- single-MEMBER form (one `claude-fable-5-1` seat) for a quick top-end opinion when a
223
+ claude-opus-5-5/completeness — hand it any task + brief), and `solo` is the
224
+ single-MEMBER form (one `claude-opus-5-5` seat) for a quick top-end opinion when a
219
225
  panel is overkill. A ONE-seat board validates + resolves through `invoke_board` like
220
226
  any other (bare/single seats are supported). Both default to TOP-END models: an
221
227
  unanticipated task cannot be assumed low-stakes, so the safe default is frontier —
@@ -450,7 +456,9 @@ a landing decision. `tests/test_president_wiring.py`.
450
456
  seated rung with it: the governed caller must receive that as a board result it
451
457
  persists, not as an error it never records. Only a caller-contract error
452
458
  (`president_round_limit`) propagates as `PresidentPolicyError`.
453
- - **Execution route (fail-closed by design).** `president_adapter.build_president_invoke`
459
+ - **Execution route — SUPERSEDED by ABDPRESROUTE below** (agent-harness#952): a seated
460
+ rung now runs through `public_board_president.v1`. The text of this bullet records the
461
+ pre-PRESROUTE route. `president_adapter.build_president_invoke`
454
462
  binds the ladder to a board's seats (`seat_for_rung`: rung alias → seat model →
455
463
  harness). An UNSEATED rung answers typed `president_unavailable` (the ladder
456
464
  descends). A SEATED rung answers `failed` / `president_execution_route_unavailable`
@@ -486,13 +494,139 @@ a landing decision. `tests/test_president_wiring.py`.
486
494
  president passes an explicit `review_policy=ReviewLandingPolicy(required_seats=...,
487
495
  requires_president=False)` rather than a president-requiring tier.
488
496
 
497
+ ## ABDPRESROUTE — The president operation · `president_operation.py`, `president_adapter.py`, `advisor_board/backing.py`, `panel_invoker.invoke_board` (IF-0-PRESROUTE-1, Consiliency/agent-harness#952)
498
+
499
+ The president's OWN HARDEN-authorized operation, `public_board_president.v1`, beside —
500
+ never through — the review operation `public_board_review.v1`. Frozen falsifiers:
501
+ `tests/test_president_wiring.py`, `tests/test_govlean_panel_policy.py` (SL-0,
502
+ `content_tdd_receipt.v1`), golden `tests/data/president_ruling_v1.golden.json`.
503
+
504
+ - **Callable.** `president_operation.run_president_operation(*, brief, findings,
505
+ authorization, invoke, max_substantive_rounds) -> PresidentOperationResult(ruling,
506
+ authorization_identity, rung_index, brief_digest, findings_digest)`. It refuses an
507
+ authorization whose `operation` is not exactly `public_board_president.v1`
508
+ (`PresidentPolicyError("president_operation_authorization_mismatch")`) BEFORE any rung
509
+ is invoked, then walks `PRESIDENT_LADDER` through `invoke` with the president prompt
510
+ built from the findings; the brief is digested, not sent.
511
+ - **Digests.** `brief_digest = sha256(brief)`; `findings_digest =
512
+ sha256("\n".join(findings))` in prompt order; lowercase hex. On a board, the brief is
513
+ the composed president prompt `_president_prompt(findings)`.
514
+ - **Completion grammar.** Per-finding `FINDING <id>: BLOCKING|DEFERRED — <reason>`,
515
+ terminal `FORCING DECISION: <decision>` (`_valid_president_grammar`); a launched rung's
516
+ turn is complete when its last line is a non-empty `FORCING DECISION:`
517
+ (`_completion_ok(text, "president")`), never a review verdict.
518
+ - **Authorization.** `backing.prepare_president_isolation_authorization(board, brief)`
519
+ mints `PresidentIsolationAuthorization` (same seal as review isolation;
520
+ `child_credentialless=True`, `child_network_egress=False`, `live_tree_exposed=False`,
521
+ `api_fallback=False`; subscription routes; brief digest; repository identity when the
522
+ launch has one — the operation reads no tree). The adapter revalidates it
523
+ (`revalidate_president_isolation_authorization`) immediately before a rung launches and
524
+ launches that authorization's route; a seat the authorization does not route (Claude
525
+ included) is refused without launching.
526
+ - **Rung routes** (`president_adapter.build_president_invoke(..., monitoring_policy=)`).
527
+ Unseated rung → typed `president_unavailable` (descend). `sol` / `grok` → the brokered
528
+ `_exec_leg` in a throwaway directory, whose only launch is `launch_provider`. `gemini` →
529
+ the broker's acknowledged agy stream with the PRESIDENT's own final instruction (a ruling,
530
+ not a review verdict), launched through `_run_leg_with_liveness` → `launch_provider` and
531
+ decoded by `_broker_gemini_stream_result`; with the agy subscription credential it runs in
532
+ the broker's agy profile, without one in an empty private HOME (no credential of any kind),
533
+ so the provider itself refuses and the failure is typed. `fable` under Claude Code (from the passed `base_env`; the adapter
534
+ falls back to the process environment only when none is passed, so it never spawns a
535
+ second TUI) → a deferred native fill `{"status": "native_fill_deferred", rung,
536
+ brief_digest, findings_digest}`, refused with `president_fill_heartbeat_refused` under
537
+ `heartbeat_only`. `fable` elsewhere → the brokered self-PTY session
538
+ (`_run_claude_tui_session`, tools off, no directory grant). A failed launch is a typed
539
+ `failed` (`president_invocation_failed`, no descent).
540
+ - **Ladder** (EC-PRESROUTE-3). `PRESIDENT_LADDER` is the seat-alias tuple; each alias
541
+ resolves to its vendor's registry PIN through `DEFAULT_REVIEW_SEAT_ALIASES` (where the
542
+ `model-id-source:` markers live). No model id is spelled in the ladder.
543
+ - **Brokered, monitored launch** (agent-harness#1001). Every non-native rung launch runs
544
+ under the isolation a review seat gets: `isolated_network` egress (no retained
545
+ capabilities), a single-use broker capability minted by
546
+ `backing.derive_president_leg_authorization` from the operation's lease
547
+ (`prepare_president_isolation_authorization(..., monitoring_policy=)` registers it;
548
+ `activate_/close_president_isolation_authorization` bracket each launch) carrying the
549
+ PRESIDENT operation identity, and the `ParentUnixBroker` over read-only staged bytes (the
550
+ brief and a fixed president instruction marker). Under `heartbeat_only` the transport runs
551
+ with a `_ReviewMonitor` -- no model-thinking deadline, no silence kill; cancellation (the
552
+ board's `cancel_event`) and owner loss are the only stops -- and the gemini rung uses the
553
+ owned heartbeat agy profile, and the Claude rung hands the broker's quiescence latch to its
554
+ TUI session. A missing canonical repository, an empty egress prefix (always -- the
555
+ authorization declares no network egress) or a cancelled operation
556
+ (`president_operation_cancelled`, which stops the walk) is a typed refusal before any provider
557
+ starts. Under BOUNDED monitoring only, a patched transport or launch site is the in-process
558
+ control seam and is not brokered (never evidence), as for review seats; `heartbeat_only` is
559
+ always brokered.
560
+ - **Configured ladder** (agent-harness#998 follow-up). `PRESIDENT_LADDER` is the BUILT-IN
561
+ order; the effective order is `advisor_board.config.load_president_ladder(repo_dir, *,
562
+ env, path)`: built-in < the user file's `[president] ladder`
563
+ (`$XDG_CONFIG_HOME/agent-harness/advisor-boards.toml`) < the repository's
564
+ `<repo>/.agent-harness/advisor-boards.toml` (`[president]` only; `[[boards]]` there is
565
+ refused). A ladder is a non-empty list of distinct seat aliases or alias-table model ids
566
+ (`validate_president_ladder`); a malformed one or an unknown key is `BoardConfigError`,
567
+ never a silent fall-back. The seam carries it (`build_president_invoke(..., ladder=)`,
568
+ `PresidentInvoke.ladder`); `invoke_president` walks `effective_president_ladder(invoke)`
569
+ (the seam's ladder, else the built-in), and `rung_index` is the rung's position in THAT
570
+ ladder. The phase-loop runner (`_run_legible_panel`), `advisor-board --landing-tier` and
571
+ `invoke_board`'s auto-wired seam load it; a malformed ladder is refused before any seat
572
+ (`president_ladder_invalid` / CLI exit 2). The user layer follows the environment it is
573
+ given: the auto-wired seam reads it from the passed `base_env` (its `XDG_CONFIG_HOME`,
574
+ else its `HOME`; neither ⇒ no user layer), never from the process HOME.
575
+ - **Defer → resume** (EC-PRESROUTE-2). A deferred Fable rung makes `invoke_board` return
576
+ the seats with `PanelResult.needs_native_president` = `{rung, brief_digest,
577
+ findings_digest, prompt}` and no ruling, persisting `president.pending.json`
578
+ (`president.pending.v1`: the request plus the findings and seat verdicts it was built
579
+ from) to `stream_dir`; a deferral without `stream_dir` is refused
580
+ (`president_native_fill_stream_required`). `invoke_board(..., native_president_fill=
581
+ {rung, brief_digest, findings_digest, text})` RESUMES after the same factory /
582
+ revalidation gate and before any seat launches -- no seat is re-run, so seats that would
583
+ word things differently cannot strand the route. The pending request is BOUND to its run
584
+ (resolved-artifact digest, the review-brief digest captured ONCE before any seat runs,
585
+ the board's ordered seat keys, mode, landing policy, president ladder and the seat each
586
+ rung resolves to under the run's `review_seat_aliases`) and the resume
587
+ refuses any difference. A new deferral removes any `president.ruling.json` an earlier
588
+ run left in the stream (after its pending request is written); every persisted ruling
589
+ removes any pending request (so an older request cannot later resume over it). The
590
+ resume and the ruling record resolve the rung through the run's `review_seat_aliases`. The fill is accepted only when that binding matches, the
591
+ stored verdicts are this board's seats in order and re-derive the stored findings, the
592
+ pending rung is this board's natively filled (Claude) rung, the persisted digests
593
+ recompute from the stored findings, the fill's rung and BOTH digests equal them, and the
594
+ text passes the ruling grammar for those findings. An accepted request is CONSUMED (it
595
+ answers once). This guards against a stale or mismatched stream, not a caller who forges
596
+ its own stream directory (the stream is the caller's durable context); otherwise `president_fill_digest_mismatch` (or
597
+ `president_ruling_format_missing` / `president_native_fill_stream_required`) and nothing
598
+ is persisted. The resumed result carries the deferred seats' verdicts (republished to the
599
+ stream) and the ruling. Under Claude Code, `invoke_board` wires the adapter itself when no
600
+ seam is passed -- keyed on the PASSED `base_env` only, never the process environment.
601
+ - **Ruling record** (EC-PRESROUTE-5). Every president ruling a board obtains on a call that
602
+ has a review stream (`stream_dir`; the runner and the CLI always pass one, and the native
603
+ path refuses without one) is written atomically to `<stream_dir>/president.ruling.json`.
604
+ A stream-less call -- which the frozen SL-0 corpus exercises on several president nodes --
605
+ returns its ruling unrecorded, since there is no stream to record it in. Schema
606
+ `president.ruling.v1`:
607
+ `schema`, `authorization_identity` (`public_board_president.v1`), `rung_index`,
608
+ `model_id` (the ruling rung's registry PIN on the board), `format_reask_count`,
609
+ `brief_digest`, `findings_digest`, `forcing_decision`, `finding_rulings`
610
+ (`[{id, disposition, reason}]`). `president_operation.president_ruling_record(result)`
611
+ builds the same shape from a `PresidentOperationResult`.
612
+ - **Override expiry** (EC-PRESROUTE-4). `panel_invoker.enforce_requires_president(tier,
613
+ *, requires_president)` refuses a `plan`/`production_code` landing carrying
614
+ `requires_president=False` (`requires_president_override_refused`); `invoke_board`
615
+ calls it whenever a `landing_tier` is given. The interim ratification note is EXPIRED.
616
+ - **CLI.** `advisor-board --landing-tier <tier>` runs the board under a tier (a president
617
+ tier binds the seam to the driving process's environment);
618
+ `--native-president FILL.json` resumes a deferred rung against the pending request
619
+ under `--native-fill-dir`/`native-fill/president/`.
620
+
489
621
  ## Review monitoring policy v1 (agent-harness#892)
490
622
 
491
623
  The opt-in policy vocabulary is `bounded | heartbeat_only`; omission is bounded.
492
- Heartbeat-only permits only brokered subscription/homebrew Claude TUI, Codex,
493
- and Grok, with no timeout overrides, capture, research, API fallback, gateway,
494
- or native host seat. Whole-board capability preflight precedes availability,
495
- auth, session creation, and provider dispatch. Gemini/agy remains unsupported.
624
+ Heartbeat-only permits brokered subscription/homebrew Claude TUI, Codex and
625
+ Grok, plus the qualified Gemini extension below. It permits no timeout overrides,
626
+ capture, research, API fallback, gateway or native host seat. Whole-board
627
+ capability preflight precedes availability, auth, session creation and provider
628
+ dispatch. Missing or changed Gemini capability refuses the requested whole board;
629
+ its membership is never reduced or backfilled to satisfy this policy.
496
630
 
497
631
  The requested/effective policy is bound to the operation lease and minted leg.
498
632
  Heartbeat-only admission expires 10 seconds after minting and is single-use;
@@ -523,3 +657,52 @@ PID ownership is established after network entry but before the capability bound
523
657
  set is emptied. Every launch retains the common provider launch seam and broker
524
658
  threads inherit its ContextVar prefix. EgressUnavailable stays DEGRADED with empty
525
659
  review text and the exception in detail; sandbox facts describe actual enforcement.
660
+
661
+ ### Qualified Gemini extension (agent-harness#905)
662
+
663
+ The Linux x64 subscription `agy` 1.2.10 entry image must match SHA256
664
+ `aea7ed8df1e79b716c0ccd14c7d8086db75b14da535ffb7febdec9a488deff67`.
665
+ The running Python/kernel must support sealed memfds, pidfds and pidfd signaling;
666
+ Python version alone is not a capability check. Unknown images or missing
667
+ capabilities refuse before availability/auth effects. Required bwrap mount/gate
668
+ flags are checked at admission, before inference. Measure help through the
669
+ admitted `agy` filename: the usage line includes that name, while the same
670
+ archive member invoked as `antigravity` produces different help bytes. The
671
+ measured help defines literal `--print-timeout 0` as waiting for completion.
672
+ A quick real completion establishes compatibility; clock controls establish
673
+ that old runtime deadlines and silence cannot terminate a healthy heartbeat-only
674
+ operation.
675
+
676
+ The sealed image and deny-all settings are read-only mounts inside a private
677
+ HOME owned by the existing PID/mount namespace. A private symlink references the
678
+ subscription credential; no credential payload is copied, logged or restored.
679
+ Heartbeat credential lookup uses the supplied scrubbed HOME, recording a process
680
+ HOME fallback truthfully if HOME is absent. Legitimate refresh writes survive.
681
+ The real qualification driver requires an explicit HOME and checks target
682
+ presence before and after, without reading its contents.
683
+
684
+ The broker transports same-session acknowledged input over stdin, with no tree
685
+ attachment, `--add-dir`, permission bypass, retry or native thinking timer. Empty,
686
+ rejected and nonzero-exit streams remain non-votes with fixed diagnostics;
687
+ provider stdout/stderr and arbitrary exception strings are not substituted for
688
+ review prose. Native timeout under zero has a distinct diagnostic. Bounded
689
+ retry timing and supported positive deadline argv remain unchanged; accepted
690
+ Gemini review prose excludes stderr.
691
+
692
+ Namespace init identity is held before execution is released. Cancellation
693
+ reaps before closing a blocked execution gate; abrupt owner death can release
694
+ its EOF gate shortly before the parent-death signal takes effect. There is no
695
+ strict zero-exec claim for abrupt loss. Cleanup requires namespace-init exit
696
+ and corroborating observations, including detached/nested descendants. Failed
697
+ quiescence cannot yield a usable vote. No receipt proves remote billing settlement.
698
+
699
+ `phase-loop-runtime/scripts/qualify_gemini_heartbeat.py` separately qualifies
700
+ completion, cancellation after observed progress, and abrupt owner loss. Its
701
+ receipts bind package source, image/help/profile/helper hashes, inputs, argv,
702
+ monitoring, broker records and local cleanup observations. Helper evidence is
703
+ sampled, not a complete exec audit; the entry image pin does not freeze helper
704
+ images. Directory validation accounts for every attempt in the declared series
705
+ root, rejecting failures, omissions and terminal/admission mismatches. Preserve
706
+ failed series; diagnose a changed candidate before another attempt. Validation
707
+ uses that host's measured helper images. These receipts do not replace the
708
+ historical bounded-success evidence verifier.