phase-loop-runtime 0.7.15__tar.gz → 0.7.17__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 (960) hide show
  1. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/PKG-INFO +2 -2
  2. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/README.md +1 -1
  3. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/pyproject.toml +1 -1
  4. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/__init__.py +1 -1
  5. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/CONTRACTS.md +237 -16
  6. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/backing.py +518 -62
  7. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/composition.py +4 -4
  8. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/config.py +99 -1
  9. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/fixtures.py +14 -11
  10. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/harness_mapping.py +25 -12
  11. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/presets.py +10 -8
  12. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/registries.py +2 -0
  13. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/schema.py +1 -1
  14. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/agy_canary_evidence.py +237 -15
  15. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/build_bundle.py +10 -4
  16. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/capability_registry.py +11 -7
  17. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/cli.py +152 -8
  18. phase_loop_runtime-0.7.17/src/phase_loop_runtime/gemini_heartbeat.py +292 -0
  19. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/launcher.py +21 -12
  20. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/panel_invoker.py +1090 -129
  21. phase_loop_runtime-0.7.17/src/phase_loop_runtime/president_adapter.py +572 -0
  22. phase_loop_runtime-0.7.17/src/phase_loop_runtime/president_operation.py +173 -0
  23. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/profiles.py +9 -8
  24. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/roadmap_assumptions.py +2 -2
  25. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/roadmap_lint.py +57 -15
  26. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/runner.py +10 -1
  27. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/sandbox_egress.py +82 -14
  28. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-advisor-board/SKILL.md +24 -3
  29. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-advisor-panel/SKILL.md +24 -3
  30. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/SKILL.md +3 -3
  31. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/SKILL.md +5 -4
  32. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-advisor-board/SKILL.md +24 -3
  33. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-advisor-panel/SKILL.md +24 -3
  34. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-advisor-board/SKILL.md +24 -3
  35. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-advisor-panel/SKILL.md +24 -3
  36. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-advisor-board/SKILL.md +24 -3
  37. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-advisor-panel/SKILL.md +24 -3
  38. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime.egg-info/PKG-INFO +2 -2
  39. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime.egg-info/SOURCES.txt +16 -0
  40. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_composition.py +1 -1
  41. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_golden.py +2 -2
  42. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_presets.py +10 -10
  43. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_registries.py +10 -3
  44. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_static_import_862.py +2 -2
  45. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_agy_canary_evidence.py +1391 -28
  46. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_autosel.py +2 -0
  47. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_broker_command_builders.py +5 -0
  48. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_broker_staged_tree_delivery.py +51 -1
  49. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_ci_chronology_scope.py +48 -0
  50. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_ci_offload_lock.py +75 -0
  51. phase_loop_runtime-0.7.17/tests/test_ci_xdist_adoption.py +416 -0
  52. phase_loop_runtime-0.7.17/tests/test_ci_xdist_witness.py +142 -0
  53. phase_loop_runtime-0.7.17/tests/test_conform_timing_instrumentation.py +809 -0
  54. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_runtime_imports.py +9 -1
  55. phase_loop_runtime-0.7.17/tests/test_frozen_blob_batch_parse.py +127 -0
  56. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_gate_fail_open_visibility.py +34 -0
  57. phase_loop_runtime-0.7.17/tests/test_gemini_heartbeat_bootstrap.py +1288 -0
  58. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_governed_premerge.py +65 -1
  59. phase_loop_runtime-0.7.17/tests/test_govlean_panel_policy.py +288 -0
  60. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_grok_narrow_reject_231.py +39 -21
  61. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_grokexec.py +17 -8
  62. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_harden_evidence_verifier.py +106 -0
  63. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_launcher_liveness.py +4 -0
  64. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_legible_review_repairs.py +2 -2
  65. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_legible_roadmap_contract.py +21 -21
  66. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_model_class_policy.py +3 -3
  67. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_model_tier_taxonomy.py +4 -4
  68. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_conform_evidence.py +97 -3
  69. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_redaction_separation.py +59 -20
  70. phase_loop_runtime-0.7.17/tests/test_owned_command_procfs_1003.py +77 -0
  71. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_invoker_spawn.py +4 -4
  72. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_invoker_timeout_argv.py +19 -5
  73. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_native_fill_183.py +18 -0
  74. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_per_leg_model_66.py +6 -6
  75. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_tui_workspace_trust_223.py +99 -4
  76. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_execution_policy.py +6 -2
  77. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_launcher.py +9 -1
  78. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_roadmap_validate.py +213 -4
  79. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_v45_schedharden.py +4 -1
  80. phase_loop_runtime-0.7.17/tests/test_president_heartbeat_1001.py +338 -0
  81. phase_loop_runtime-0.7.17/tests/test_president_ladder_config.py +585 -0
  82. phase_loop_runtime-0.7.17/tests/test_president_wiring.py +1232 -0
  83. phase_loop_runtime-0.7.17/tests/test_presroute_cli.py +100 -0
  84. phase_loop_runtime-0.7.17/tests/test_presroute_hardening.py +341 -0
  85. phase_loop_runtime-0.7.17/tests/test_presroute_landed.py +35 -0
  86. phase_loop_runtime-0.7.17/tests/test_proc_cpu.py +99 -0
  87. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_public_installer.py +185 -9
  88. phase_loop_runtime-0.7.17/tests/test_redaction_channel_control_isolation.py +115 -0
  89. phase_loop_runtime-0.7.17/tests/test_review_monitor_policy.py +1082 -0
  90. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_review_policy_govlean_repairs.py +9 -4
  91. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_roadmap_ownership.py +3 -1
  92. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_roadmap_representation_consistency.py +4 -3
  93. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_sandbox_egress.py +76 -0
  94. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_skill_liveness_contract.py +15 -0
  95. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_skills_canon_parity.py +5 -4
  96. phase_loop_runtime-0.7.17/tests/test_subscription_scrub_xai_864.py +74 -0
  97. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_tdd_chronology.py +220 -0
  98. phase_loop_runtime-0.7.15/src/phase_loop_runtime/president_adapter.py +0 -143
  99. phase_loop_runtime-0.7.15/tests/test_govlean_panel_policy.py +0 -157
  100. phase_loop_runtime-0.7.15/tests/test_president_wiring.py +0 -689
  101. phase_loop_runtime-0.7.15/tests/test_proc_cpu.py +0 -45
  102. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/MANIFEST.in +0 -0
  103. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/protocol/protocol.md +0 -0
  104. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/setup.cfg +0 -0
  105. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/phase-loop/extraction-readiness.md +0 -0
  106. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/phase-loop/granular-execution-policy.md +0 -0
  107. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-capability-matrix.md +0 -0
  108. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-skill-matrix.md +0 -0
  109. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-substrate-manifest.md +0 -0
  110. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/phase-loop/pi-loop-control.md +0 -0
  111. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/phase-loop/protocol.md +0 -0
  112. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/phase-loop/runtime-boundary.md +0 -0
  113. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/phase-loop/spec-discovery-roots.md +0 -0
  114. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-governed-pipeline.md +0 -0
  115. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-portal-projection.md +0 -0
  116. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-regenesis.md +0 -0
  117. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-report.md +0 -0
  118. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_contract_docs/runtime/verification-evidence-contract.md +0 -0
  119. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_proc_cpu.py +0 -0
  120. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/commands.txt +0 -0
  121. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/manifest.json +0 -0
  122. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/mixed.json +0 -0
  123. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-provider-timeout/manifest.json +0 -0
  124. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-provider-timeout/timeout-note.txt +0 -0
  125. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-redacted-summary/manifest.json +0 -0
  126. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-redacted-summary/redacted-summary.json +0 -0
  127. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-small-sample/manifest.json +0 -0
  128. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-small-sample/sample.json +0 -0
  129. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-threshold-edge/edge.txt +0 -0
  130. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-threshold-edge/manifest.json +0 -0
  131. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/manifest.json +0 -0
  132. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-a.txt +0 -0
  133. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-b.txt +0 -0
  134. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-c.txt +0 -0
  135. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-missing-references/claimed-results.json +0 -0
  136. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-missing-references/manifest.json +0 -0
  137. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-subtle-low-variance/manifest.json +0 -0
  138. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-subtle-low-variance/metrics.json +0 -0
  139. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-templated-prose/findings.md +0 -0
  140. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-templated-prose/manifest.json +0 -0
  141. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/manifest.json +0 -0
  142. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/scores.json +0 -0
  143. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/summary.txt +0 -0
  144. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/bundle-check.json +0 -0
  145. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/manifest.json +0 -0
  146. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/operator-note.txt +0 -0
  147. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/events-sample.jsonl +0 -0
  148. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/manifest.json +0 -0
  149. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/receipt.txt +0 -0
  150. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/evidence.json +0 -0
  151. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/manifest.json +0 -0
  152. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/summary.txt +0 -0
  153. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/manifest.json +0 -0
  154. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/matrix.json +0 -0
  155. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/notes.md +0 -0
  156. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/console-summary.txt +0 -0
  157. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/manifest.json +0 -0
  158. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/screenshot-standin.ppm +0 -0
  159. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/adoption_bundle.py +0 -0
  160. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/__init__.py +0 -0
  161. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/backing_omnigent.py +0 -0
  162. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/events.py +0 -0
  163. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/fixtures/advisor-boards.example.toml +0 -0
  164. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/matrix.py +0 -0
  165. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/observability.py +0 -0
  166. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/research.py +0 -0
  167. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/resolver.py +0 -0
  168. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/standin.py +0 -0
  169. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/advisor_board/validation.py +0 -0
  170. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/agent_runtime_provider.py +0 -0
  171. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/baml_modular.py +0 -0
  172. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/baml_src/dotfiles_adoption_manifest.baml +0 -0
  173. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/baml_src/dotfiles_c4_document.baml +0 -0
  174. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/baml_src/dotfiles_plan_manifest.baml +0 -0
  175. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/baml_src/dotfiles_runtime_projection.baml +0 -0
  176. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/baml_src/dotfiles_task_catalog.baml +0 -0
  177. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/baml_src/emit_phase_closeout.baml +0 -0
  178. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/baml_src/evaluate_suspected_fake_evidence.baml +0 -0
  179. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/baml_src/verification_evidence.baml +0 -0
  180. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/broker.py +0 -0
  181. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/classifier.py +0 -0
  182. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/claude_agent_view.py +0 -0
  183. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/claude_channel_sidecar.py +0 -0
  184. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/closeout.py +0 -0
  185. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/closeout_classifier.py +0 -0
  186. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/closeout_evidence_audit.py +0 -0
  187. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/closeout_validation.py +0 -0
  188. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/closeout_validators.py +0 -0
  189. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/__init__.py +0 -0
  190. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/VENDOR.json +0 -0
  191. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/consiliency_spec/outside_agent_router.py +0 -0
  192. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/schemas/outside-agent-route-verdict.schema.json +0 -0
  193. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/schemas/outside-agent-submission.schema.json +0 -0
  194. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-empty-evidence-refs.json +0 -0
  195. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-git-object-id-length.json +0 -0
  196. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-missing-digest.json +0 -0
  197. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-path-traversal.json +0 -0
  198. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-raw-payload.json +0 -0
  199. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-source-bundle-mismatch.json +0 -0
  200. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-unknown-producer-identity-posture.json +0 -0
  201. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-unsupported-verdict.json +0 -0
  202. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/manifest.json +0 -0
  203. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-ambiguity-report.json +0 -0
  204. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-implementation-submission.json +0 -0
  205. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-work-request.json +0 -0
  206. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/certificate_tier.py +0 -0
  207. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/git_grounded_projection.py +0 -0
  208. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/outside_agent_advisory.py +0 -0
  209. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/outside_agent_conform_evidence.py +0 -0
  210. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/outside_agent_core.py +0 -0
  211. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/outside_agent_imports.py +0 -0
  212. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/outside_agent_pin.py +0 -0
  213. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/outside_agent_provenance.py +0 -0
  214. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/outside_agent_real.py +0 -0
  215. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/outside_agent_real_output.py +0 -0
  216. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/outside_agent_redaction.py +0 -0
  217. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/outside_agent_schema.py +0 -0
  218. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/conformance/outside_agent_vectors.py +0 -0
  219. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/consiliency_gates.py +0 -0
  220. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/consiliency_ingest.py +0 -0
  221. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/consiliency_layout.py +0 -0
  222. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/consiliency_scaffold.py +0 -0
  223. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/__init__.py +0 -0
  224. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/adapters/__init__.py +0 -0
  225. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/adapters/base.py +0 -0
  226. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/adapters/claude.py +0 -0
  227. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/adapters/codex.py +0 -0
  228. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/adapters/outside_agent.py +0 -0
  229. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/broker/__init__.py +0 -0
  230. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/broker/admission.py +0 -0
  231. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/broker/credsep.py +0 -0
  232. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/broker/evidence.py +0 -0
  233. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/broker/live.py +0 -0
  234. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/broker/verbs.py +0 -0
  235. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/contracts.py +0 -0
  236. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/dispatch.py +0 -0
  237. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/event_log.py +0 -0
  238. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/fencing.py +0 -0
  239. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/provider_contracts.py +0 -0
  240. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/reconcile.py +0 -0
  241. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/refresh.py +0 -0
  242. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/convergence/status.py +0 -0
  243. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/cross_repo_channel.py +0 -0
  244. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/declared_identity.py +0 -0
  245. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/default_executor_resolver.py +0 -0
  246. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/deploy/phase-loop-task-message-broker.service +0 -0
  247. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/discovery.py +0 -0
  248. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/dispatch_lock.py +0 -0
  249. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/doc_delta_validator.py +0 -0
  250. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/docs_audit.py +0 -0
  251. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/docs_freshness.py +0 -0
  252. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/docs_surfaces.py +0 -0
  253. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/doctor.py +0 -0
  254. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/dotfiles_profile_plugin.py +0 -0
  255. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/entry_doc_check.py +0 -0
  256. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/events.py +0 -0
  257. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/events_migration.py +0 -0
  258. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/evidence_audit.py +0 -0
  259. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/evidence_audit_config.py +0 -0
  260. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/executor_availability.py +0 -0
  261. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/fab_canonical.py +0 -0
  262. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/fab_delta.py +0 -0
  263. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/fab_gate.py +0 -0
  264. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/fab_producer.py +0 -0
  265. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/fab_provenance.py +0 -0
  266. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/fabpub_capability.py +0 -0
  267. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/fabpub_tdd_chronology.py +0 -0
  268. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/fabreadmit_capability.py +0 -0
  269. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/fleet_map.py +0 -0
  270. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/fleet_metrics.py +0 -0
  271. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/fleet_metrics_export.py +0 -0
  272. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/gate_posture.py +0 -0
  273. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/git_discipline.py +0 -0
  274. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/git_ops.py +0 -0
  275. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/git_topology.py +0 -0
  276. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/goal_coverage.py +0 -0
  277. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/governed_bundle.py +0 -0
  278. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/governed_premerge.py +0 -0
  279. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/governed_review.py +0 -0
  280. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/handoff.py +0 -0
  281. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/handoff_path.py +0 -0
  282. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/harness_env_signatures.py +0 -0
  283. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/injection.py +0 -0
  284. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/install_status.py +0 -0
  285. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/lane_scheduler.py +0 -0
  286. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/lease_store.py +0 -0
  287. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/legible_evidence.py +0 -0
  288. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/maintenance.py +0 -0
  289. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/migrate_handoffs.py +0 -0
  290. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/models.py +0 -0
  291. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/observability.py +0 -0
  292. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/phase_loop_drift_audit.py +0 -0
  293. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/phase_worktree_executor.py +0 -0
  294. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/pipeline_adapter/__init__.py +0 -0
  295. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/pipeline_adapter/branch_ops.py +0 -0
  296. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/pipeline_adapter/flag.py +0 -0
  297. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/pipeline_adapter/markers.py +0 -0
  298. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/pipeline_adapter/merge_policy.py +0 -0
  299. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/pipeline_adapter/ratification.py +0 -0
  300. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/pipeline_adapter/sibling_matcher.py +0 -0
  301. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/plan_ir.py +0 -0
  302. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/plan_manifest.py +0 -0
  303. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/plan_pin_lint.py +0 -0
  304. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/planner_validation.py +0 -0
  305. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/producer_manifest.py +0 -0
  306. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/prompts.py +0 -0
  307. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/proof_stages.py +0 -0
  308. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/provenance.py +0 -0
  309. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/publishing.py +0 -0
  310. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/py.typed +0 -0
  311. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/ratification_policy.py +0 -0
  312. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/reconcile.py +0 -0
  313. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/redaction.py +0 -0
  314. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/reflection_sync.py +0 -0
  315. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/release_guard.py +0 -0
  316. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/render.py +0 -0
  317. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/repo_validation.py +0 -0
  318. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/review_stage.py +0 -0
  319. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/review_summary.py +0 -0
  320. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/reviewtruth_native_fill_capability.py +0 -0
  321. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/roadmap_authority.py +0 -0
  322. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/roadmap_ownership.py +0 -0
  323. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/roadmap_representation_check.py +0 -0
  324. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/roadmap_reseal.py +0 -0
  325. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/route_log.py +0 -0
  326. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/route_policy/__init__.py +0 -0
  327. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/route_policy/fixtures/route_selection.golden.json +0 -0
  328. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/runtime_paths.py +0 -0
  329. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/runtime_projection.py +0 -0
  330. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/runtime_resources.py +0 -0
  331. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/sandbox_policy.py +0 -0
  332. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/sandbox_retention.py +0 -0
  333. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/schema_export.py +0 -0
  334. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/schemas/phase-loop-doctor.v1.golden.json +0 -0
  335. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/schemas/phase-loop-doctor.v1.schema.json +0 -0
  336. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/schemas/phase_loop_closeout.schema.json +0 -0
  337. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skill_install.py +0 -0
  338. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skill_inventory.py +0 -0
  339. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skill_paths.py +0 -0
  340. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skill_sources_plugin.py +0 -0
  341. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-advisor-board/README.md +0 -0
  342. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-advisor-panel/README.md +0 -0
  343. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-detailed/README.md +0 -0
  344. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-detailed/SKILL.md +0 -0
  345. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/README.md +0 -0
  346. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  347. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  348. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  349. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  350. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  351. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  352. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  353. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  354. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/state.py +0 -0
  355. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  356. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/team_teardown.sh +0 -0
  357. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/validate_plan_doc.py +0 -0
  358. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/verify_harness.sh +0 -0
  359. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-phase-loop/README.md +0 -0
  360. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-phase-loop/SKILL.md +0 -0
  361. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/README.md +0 -0
  362. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/SKILL.md +0 -0
  363. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/assets/review_prompt.md +0 -0
  364. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
  365. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/roadmap-template.md +0 -0
  366. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  367. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/README.md +0 -0
  368. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/SKILL.md +0 -0
  369. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/assets/review_prompt.md +0 -0
  370. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/README.md +0 -0
  371. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/assets/review_prompt.md +0 -0
  372. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/scripts/validate_plan_doc.py +0 -0
  373. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-run-train/README.md +0 -0
  374. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-run-train/SKILL.md +0 -0
  375. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/README.md +0 -0
  376. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/SKILL.md +0 -0
  377. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/assets/editor_prompt.md +0 -0
  378. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/README.md +0 -0
  379. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/SKILL.md +0 -0
  380. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  381. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/README.md +0 -0
  382. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/SKILL.md +0 -0
  383. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/references/task-templates.md +0 -0
  384. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-advisor-board/README.md +0 -0
  385. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-advisor-panel/README.md +0 -0
  386. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-detailed/README.md +0 -0
  387. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-detailed/SKILL.md +0 -0
  388. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/README.md +0 -0
  389. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/SKILL.md +0 -0
  390. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  391. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  392. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  393. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  394. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  395. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  396. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  397. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  398. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/state.py +0 -0
  399. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  400. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/team_teardown.sh +0 -0
  401. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/validate_plan_doc.py +0 -0
  402. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/verify_harness.sh +0 -0
  403. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-phase-loop/README.md +0 -0
  404. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-phase-loop/SKILL.md +0 -0
  405. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/README.md +0 -0
  406. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/SKILL.md +0 -0
  407. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/assets/review_prompt.md +0 -0
  408. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
  409. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/references/roadmap-template.md +0 -0
  410. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  411. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/README.md +0 -0
  412. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/SKILL.md +0 -0
  413. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/assets/review_prompt.md +0 -0
  414. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/README.md +0 -0
  415. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/SKILL.md +0 -0
  416. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/assets/review_prompt.md +0 -0
  417. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/scripts/validate_plan_doc.py +0 -0
  418. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-run-train/README.md +0 -0
  419. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-run-train/SKILL.md +0 -0
  420. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/README.md +0 -0
  421. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/SKILL.md +0 -0
  422. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/assets/editor_prompt.md +0 -0
  423. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/README.md +0 -0
  424. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/SKILL.md +0 -0
  425. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  426. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/README.md +0 -0
  427. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/SKILL.md +0 -0
  428. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/references/task-templates.md +0 -0
  429. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-advisor-board/README.md +0 -0
  430. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-advisor-panel/README.md +0 -0
  431. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-detailed/README.md +0 -0
  432. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-detailed/SKILL.md +0 -0
  433. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/README.md +0 -0
  434. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/SKILL.md +0 -0
  435. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  436. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  437. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  438. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  439. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  440. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  441. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  442. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  443. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/state.py +0 -0
  444. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  445. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/team_teardown.sh +0 -0
  446. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/validate_plan_doc.py +0 -0
  447. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/verify_harness.sh +0 -0
  448. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-phase-loop/README.md +0 -0
  449. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-phase-loop/SKILL.md +0 -0
  450. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/README.md +0 -0
  451. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/SKILL.md +0 -0
  452. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/assets/review_prompt.md +0 -0
  453. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
  454. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/references/roadmap-template.md +0 -0
  455. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  456. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/README.md +0 -0
  457. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/SKILL.md +0 -0
  458. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/assets/review_prompt.md +0 -0
  459. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/README.md +0 -0
  460. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/SKILL.md +0 -0
  461. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/assets/review_prompt.md +0 -0
  462. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/scripts/validate_plan_doc.py +0 -0
  463. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-run-train/README.md +0 -0
  464. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-run-train/SKILL.md +0 -0
  465. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/README.md +0 -0
  466. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/SKILL.md +0 -0
  467. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/assets/editor_prompt.md +0 -0
  468. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/README.md +0 -0
  469. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/SKILL.md +0 -0
  470. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  471. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/README.md +0 -0
  472. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/SKILL.md +0 -0
  473. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/references/task-templates.md +0 -0
  474. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-advisor-board/README.md +0 -0
  475. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-advisor-panel/README.md +0 -0
  476. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-detailed/README.md +0 -0
  477. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-detailed/SKILL.md +0 -0
  478. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/README.md +0 -0
  479. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/SKILL.md +0 -0
  480. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  481. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  482. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  483. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  484. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  485. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  486. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  487. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  488. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/state.py +0 -0
  489. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  490. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/team_teardown.sh +0 -0
  491. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/validate_plan_doc.py +0 -0
  492. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/verify_harness.sh +0 -0
  493. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-phase-loop/README.md +0 -0
  494. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-phase-loop/SKILL.md +0 -0
  495. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/README.md +0 -0
  496. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/SKILL.md +0 -0
  497. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/assets/review_prompt.md +0 -0
  498. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
  499. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/references/roadmap-template.md +0 -0
  500. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  501. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/README.md +0 -0
  502. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/SKILL.md +0 -0
  503. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/assets/review_prompt.md +0 -0
  504. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/README.md +0 -0
  505. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/SKILL.md +0 -0
  506. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/assets/review_prompt.md +0 -0
  507. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/scripts/validate_plan_doc.py +0 -0
  508. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-run-train/README.md +0 -0
  509. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-run-train/SKILL.md +0 -0
  510. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/README.md +0 -0
  511. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/SKILL.md +0 -0
  512. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/assets/editor_prompt.md +0 -0
  513. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/README.md +0 -0
  514. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/SKILL.md +0 -0
  515. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  516. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/README.md +0 -0
  517. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/SKILL.md +0 -0
  518. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/references/task-templates.md +0 -0
  519. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/state.py +0 -0
  520. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/state_degradation.py +0 -0
  521. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/state_ops.py +0 -0
  522. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/task_message_broker.py +0 -0
  523. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/task_message_broker_client.py +0 -0
  524. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/task_message_resolver.py +0 -0
  525. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/tdd_receipts.py +0 -0
  526. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/train_ledger.py +0 -0
  527. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/train_roadmap.py +0 -0
  528. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/train_runner.py +0 -0
  529. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/verification_evidence.py +0 -0
  530. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/verification_evidence_validator.py +0 -0
  531. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/visual_avatar_evidence_validator.py +0 -0
  532. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/visual_evidence_validator.py +0 -0
  533. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/worker_pool.py +0 -0
  534. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime/worktree_index.py +0 -0
  535. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime.egg-info/dependency_links.txt +0 -0
  536. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime.egg-info/entry_points.txt +0 -0
  537. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime.egg-info/requires.txt +0 -0
  538. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/src/phase_loop_runtime.egg-info/top_level.txt +0 -0
  539. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_acceptance_falsifier_contract.py +0 -0
  540. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_advisory_mode.py +0 -0
  541. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_alias_install.py +0 -0
  542. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_backcompat.py +0 -0
  543. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_backing_homebrew.py +0 -0
  544. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_backing_omnigent.py +0 -0
  545. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_cli_legacy.py +0 -0
  546. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_concurrency.py +0 -0
  547. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_config.py +0 -0
  548. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_ingestion.py +0 -0
  549. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_integration.py +0 -0
  550. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_live_research.py +0 -0
  551. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_matrix.py +0 -0
  552. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_observability.py +0 -0
  553. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_research.py +0 -0
  554. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_resolver.py +0 -0
  555. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_board_schema.py +0 -0
  556. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_advisor_twin_alias_legacy.py +0 -0
  557. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_agent_runtime_provider_cs08.py +0 -0
  558. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_branchgov_preflight.py +0 -0
  559. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_broker_evidence_schema_drift_789.py +0 -0
  560. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_certificate_tier.py +0 -0
  561. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_ci_gate_metrics.py +0 -0
  562. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_ci_main_red.py +0 -0
  563. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_ci_workflow_concurrency.py +0 -0
  564. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_claude_json_schema_metaschema_291.py +0 -0
  565. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_cli_train_status_45.py +0 -0
  566. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_closeout_break_glass_cli.py +0 -0
  567. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_closeout_classifier.py +0 -0
  568. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_closeout_convergence_fixes.py +0 -0
  569. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_closeout_exception_vocab.py +0 -0
  570. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_closeout_gitignored_disposable_186b.py +0 -0
  571. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_closeout_import_cycle_819.py +0 -0
  572. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_closeout_new_owned_directory_closes_clean.py +0 -0
  573. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_closeout_validator_hook.py +0 -0
  574. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_closeout_verification_gate.py +0 -0
  575. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_codex_effort_max_clamp_49.py +0 -0
  576. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_committed_range_diff.py +0 -0
  577. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_common_directory_leases_807.py +0 -0
  578. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_conformance_golden.py +0 -0
  579. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_conftest_isolation.py +0 -0
  580. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_consiliency_dual_layout.py +0 -0
  581. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_consiliency_gates.py +0 -0
  582. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_consiliency_ingest.py +0 -0
  583. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_consiliency_scaffold.py +0 -0
  584. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_console_scripts_are_declared.py +0 -0
  585. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_contract_floor_guard_378.py +0 -0
  586. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_adapters.py +0 -0
  587. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_broker_admission.py +0 -0
  588. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_broker_api.py +0 -0
  589. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_broker_credsep.py +0 -0
  590. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_broker_evidence.py +0 -0
  591. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_broker_revocation_race.py +0 -0
  592. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_broker_verbs.py +0 -0
  593. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_cli_integration.py +0 -0
  594. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_coordination_contracts.py +0 -0
  595. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_dispatch.py +0 -0
  596. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_event_contracts.py +0 -0
  597. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_event_log.py +0 -0
  598. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_fencing.py +0 -0
  599. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_fixture_contracts.py +0 -0
  600. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_invalidation.py +0 -0
  601. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_live_enable.py +0 -0
  602. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_provider_contracts.py +0 -0
  603. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_reconcile.py +0 -0
  604. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_refresh.py +0 -0
  605. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_seat_lifecycle.py +0 -0
  606. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_status.py +0 -0
  607. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_convergence_train_integration.py +0 -0
  608. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_coordinator_wave_loop.py +0 -0
  609. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_cr_fixes_pr220.py +0 -0
  610. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_delegated_visual_evidence_91.py +0 -0
  611. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_discovery_hygiene_legacy.py +0 -0
  612. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_dispatch_hold_guard.py +0 -0
  613. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_dispatch_lock_cross_roadmap.py +0 -0
  614. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_dispatch_lock_helper.py +0 -0
  615. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_dispatch_lock_reentrancy.py +0 -0
  616. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_dispatch_lock_same_roadmap.py +0 -0
  617. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_doc_delta_validator.py +0 -0
  618. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_docs_audit.py +0 -0
  619. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_docs_freshness.py +0 -0
  620. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_doctor_bom.py +0 -0
  621. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_dotfiles_tree.py +0 -0
  622. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_egress_prefix_crosses_the_broker_thread.py +0 -0
  623. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_entry_doc_check.py +0 -0
  624. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_execgov.py +0 -0
  625. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_execreg_launch_registry.py +0 -0
  626. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_execute_phase_handoff_mode.py +0 -0
  627. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_execution_policy_tiering.py +0 -0
  628. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_executor_availability.py +0 -0
  629. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_executor_exited_without_closeout_785.py +0 -0
  630. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_export_schema.py +0 -0
  631. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fab_activation_promotion.py +0 -0
  632. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fab_canonical_b.py +0 -0
  633. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fab_closeout_crash_safety.py +0 -0
  634. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fab_closeout_wiring.py +0 -0
  635. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fab_delta_c.py +0 -0
  636. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fab_delta_consumer.py +0 -0
  637. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fab_flag_off_recovery_leak_299.py +0 -0
  638. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fab_gate_d.py +0 -0
  639. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fab_producer.py +0 -0
  640. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fab_provenance_a.py +0 -0
  641. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fabpub_admission_compat_789.py +0 -0
  642. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fabpub_inventory_worktree_lifecycle_789.py +0 -0
  643. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fabpub_partition_rotation_789d.py +0 -0
  644. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fabpub_recovery_controls_789.py +0 -0
  645. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fabpub_rotate_partition_cli_789d.py +0 -0
  646. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fabpub_shared_epoch.py +0 -0
  647. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fabpub_zero_history_bootstrap.py +0 -0
  648. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fabreadmit_authority_digest_v2.py +0 -0
  649. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fabreadmit_broker.py +0 -0
  650. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fleet_map.py +0 -0
  651. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fleet_metrics.py +0 -0
  652. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_fleet_metrics_export.py +0 -0
  653. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_gate_a_wheel_isolation.py +0 -0
  654. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_gate_parity_244_245.py +0 -0
  655. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_gate_posture.py +0 -0
  656. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_git_discipline.py +0 -0
  657. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_git_grounded_projection.py +0 -0
  658. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_goal_coverage.py +0 -0
  659. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_governed_cross_vendor_floor_358.py +0 -0
  660. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_governed_disjointness_model_first.py +0 -0
  661. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_governed_e2e.py +0 -0
  662. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_governed_gate_crfixes.py +0 -0
  663. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_governed_planning_gate.py +0 -0
  664. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_governed_premerge_live.py +0 -0
  665. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_governed_review.py +0 -0
  666. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_govlean_declared_identity.py +0 -0
  667. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_govlean_plan_manifest_issue_dispositions.py +0 -0
  668. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_govlean_plan_pin_lint.py +0 -0
  669. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_govlean_producer_manifest.py +0 -0
  670. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_govlean_proof_stages.py +0 -0
  671. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_govlean_roadmap_reseal.py +0 -0
  672. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_govlean_skill_policy_parity.py +0 -0
  673. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_govlean_tdd_receipts.py +0 -0
  674. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_harden_evidence_producer.py +0 -0
  675. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_harden_json_depth_825.py +0 -0
  676. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_hotfix_lane.py +0 -0
  677. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_injection_skill_failloud.py +0 -0
  678. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_lane_ir_override.py +0 -0
  679. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_launchspec_golden.py +0 -0
  680. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_lease_store.py +0 -0
  681. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_lease_store_conformance.py +0 -0
  682. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_ledger_serialization.py +0 -0
  683. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_leg_liveness_monitor.py +0 -0
  684. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_legible_evidence.py +0 -0
  685. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_live_smoke_gate_executes.py +0 -0
  686. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_manifest_per_entry_164.py +0 -0
  687. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_model_id_source_guard.py +0 -0
  688. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_native_claude_seat_fill.py +0 -0
  689. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_native_claude_seat_fill_green.py +0 -0
  690. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_nonzero_suite_command_fails_closed.py +0 -0
  691. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_observability_alerting.py +0 -0
  692. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_advisory.py +0 -0
  693. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_advisory_cli.py +0 -0
  694. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_advisory_fixtures.py +0 -0
  695. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_authority_boundary.py +0 -0
  696. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_canonical_corpus.py +0 -0
  697. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_contract_drift.py +0 -0
  698. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_contract_imports.py +0 -0
  699. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_contract_pin.py +0 -0
  700. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_core_api.py +0 -0
  701. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_provenance.py +0 -0
  702. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_real_ci.py +0 -0
  703. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_real_cli.py +0 -0
  704. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_real_output.py +0 -0
  705. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_real_runtime.py +0 -0
  706. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_redaction.py +0 -0
  707. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_release_surface.py +0 -0
  708. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_schema_validation.py +0 -0
  709. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_outside_agent_vectors.py +0 -0
  710. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_packaged_vector_manifest_pin.py +0 -0
  711. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_advisory_mode_63.py +0 -0
  712. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_codex_auth_signature_body_252.py +0 -0
  713. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_context_refs_114.py +0 -0
  714. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_gemini_no_command_preamble.py +0 -0
  715. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_invoker.py +0 -0
  716. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_invoker_windows_import.py +0 -0
  717. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_leg_auth_preflight_64.py +0 -0
  718. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_leg_failure_diagnostic.py +0 -0
  719. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_streaming_verdicts.py +0 -0
  720. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_tui_eof_48.py +0 -0
  721. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_tui_liveness_188.py +0 -0
  722. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_panel_verdict_summary.py +0 -0
  723. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_parallel_dispatch_backcompat.py +0 -0
  724. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_parallel_dispatch_cli.py +0 -0
  725. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_adoption_bundle.py +0 -0
  726. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_adoption_bundle_cli.py +0 -0
  727. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_baml_dependency.py +0 -0
  728. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_baml_end_to_end.py +0 -0
  729. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_baml_injection.py +0 -0
  730. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_baml_modular.py +0 -0
  731. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_baml_prompt_taxonomy.py +0 -0
  732. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_baml_runner_closeout.py +0 -0
  733. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_baml_schema_export.py +0 -0
  734. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_baml_schema_source.py +0 -0
  735. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_branch_divergence_event.py +0 -0
  736. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_break_glass_rerun.py +0 -0
  737. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_build_bundle.py +0 -0
  738. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_classifier.py +0 -0
  739. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_claude_agent_view_adapter.py +0 -0
  740. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_claude_agent_view_lifecycle.py +0 -0
  741. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_claude_channel_hooks.py +0 -0
  742. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_claude_channel_mcp.py +0 -0
  743. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_claude_channel_security.py +0 -0
  744. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_claude_channel_session_launch.py +0 -0
  745. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_claude_channel_sidecar.py +0 -0
  746. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_claude_channel_smoke_suite.py +0 -0
  747. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_claude_route_selection.py +0 -0
  748. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_cli.py +0 -0
  749. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_cli_plugin_load.py +0 -0
  750. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_closeout_control_only.py +0 -0
  751. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_closeout_event.py +0 -0
  752. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_closeout_evidence_audit.py +0 -0
  753. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_closeout_hardening.py +0 -0
  754. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_closeout_owned_dirty_fallback.py +0 -0
  755. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_closeout_schema.py +0 -0
  756. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_closeout_validation.py +0 -0
  757. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_collaborator_citation.py +0 -0
  758. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_collaborator_docs.py +0 -0
  759. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_collaborator_rollback.py +0 -0
  760. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_concurrent_phase_dispatch.py +0 -0
  761. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_def4_writer_namespacing.py +0 -0
  762. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_dirty_path_classify_phase_owned_tests.py +0 -0
  763. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_dirty_path_classify_previous_phase_owned.py +0 -0
  764. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_discovery.py +0 -0
  765. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_docs.py +0 -0
  766. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_dotfiles_schemas.py +0 -0
  767. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_dotfiles_sources.py +0 -0
  768. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_downstream_governed_pipeline.py +0 -0
  769. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_downstream_instruction_scope_readme.py +0 -0
  770. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_downstream_portal.py +0 -0
  771. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_downstream_regenesis.py +0 -0
  772. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_drift_audit.py +0 -0
  773. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_dry_run_closeout_guard.py +0 -0
  774. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_dry_run_then_run.py +0 -0
  775. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_events_migration.py +0 -0
  776. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_evidence_audit.py +0 -0
  777. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_evidence_audit_runner.py +0 -0
  778. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_evidence_audit_tier2.py +0 -0
  779. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_evidence_audit_tier3.py +0 -0
  780. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_evidence_audit_tuning.py +0 -0
  781. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_executor_degradation.py +0 -0
  782. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_full_phase_mode.py +0 -0
  783. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_handoff.py +0 -0
  784. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_handoff_migration.py +0 -0
  785. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_init.py +0 -0
  786. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_injection.py +0 -0
  787. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_install_status.py +0 -0
  788. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_issue_84_explicit_phase.py +0 -0
  789. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_lane_harnesses.py +0 -0
  790. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_lane_ir.py +0 -0
  791. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_lane_ir_fixtures.py +0 -0
  792. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_lane_scheduler.py +0 -0
  793. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_ledger_debug.py +0 -0
  794. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_ledger_dedup.py +0 -0
  795. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_live_adapters.py +0 -0
  796. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_maintenance.py +0 -0
  797. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_metrics.py +0 -0
  798. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_migration_regressions.py +0 -0
  799. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_mixedrun_dispatch.py +0 -0
  800. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_mixedrun_matrix.py +0 -0
  801. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_mixedrun_observability.py +0 -0
  802. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_models.py +0 -0
  803. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_native_flags.py +0 -0
  804. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_parallel_plan_safe.py +0 -0
  805. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_pi_executor.py +0 -0
  806. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_pipeline_boundaries.py +0 -0
  807. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_pipeline_bridge.py +0 -0
  808. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_pipeline_bundle.py +0 -0
  809. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_pipeline_closeout.py +0 -0
  810. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_pipeline_freshness.py +0 -0
  811. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_pipeline_mode.py +0 -0
  812. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_plan_doc_skip.py +0 -0
  813. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_plan_manifest.py +0 -0
  814. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_planner_redispatch_when_plan_current.py +0 -0
  815. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_planner_validation.py +0 -0
  816. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_policy.py +0 -0
  817. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_protocol_contract.py +0 -0
  818. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_provenance.py +0 -0
  819. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_reconcile.py +0 -0
  820. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_reconcile_blocker_self_clear.py +0 -0
  821. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_reconcile_recovery_mode.py +0 -0
  822. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_reconcile_to_status_planned_recovery.py +0 -0
  823. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_reducers.py +0 -0
  824. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_repair_precondition_planned_closeout.py +0 -0
  825. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_repair_skipped_when_blocker_cleared.py +0 -0
  826. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_roadmap_amendments.py +0 -0
  827. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_rotation.py +0 -0
  828. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_runner.py +0 -0
  829. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_runner_closeout_validation.py +0 -0
  830. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_runtime_boundary.py +0 -0
  831. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_runtime_decouple.py +0 -0
  832. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_runtime_package_data.py +0 -0
  833. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_runtime_projection.py +0 -0
  834. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_schema_flow.py +0 -0
  835. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_skill_baml_closeout.py +0 -0
  836. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_skill_bridge_contract.py +0 -0
  837. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_skill_contract.py +0 -0
  838. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_skill_execute_contract.py +0 -0
  839. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_skill_install.py +0 -0
  840. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_skill_planner_contract.py +0 -0
  841. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_smoke_blockers.py +0 -0
  842. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_smoke_exhaustion.py +0 -0
  843. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_smoke_reentry.py +0 -0
  844. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_spurious_completion_rejection.py +0 -0
  845. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_start_gate_phase_status.py +0 -0
  846. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_start_gate_refuses_cross_phase_dirty.py +0 -0
  847. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_state.py +0 -0
  848. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_status_transition_events_emitted.py +0 -0
  849. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_substrate_soak_docs.py +0 -0
  850. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_substrate_soak_governed.py +0 -0
  851. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_substrate_soak_portal.py +0 -0
  852. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_terminal_summary_mirrors_baml_closeout.py +0 -0
  853. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_v22_e2e.py +0 -0
  854. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_v22_principles.py +0 -0
  855. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_v45_found_contracts.py +0 -0
  856. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_v45_reconcile.py +0 -0
  857. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_v45_sched.py +0 -0
  858. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_wave_runner.py +0 -0
  859. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_work_unit_observability.py +0 -0
  860. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_work_unit_runner.py +0 -0
  861. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_work_unit_state.py +0 -0
  862. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_loop_worktrees.py +0 -0
  863. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_owned_dirty_relaxation.py +0 -0
  864. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_state_disagreement_312.py +0 -0
  865. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_phase_worktree_executor.py +0 -0
  866. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_pipeline_adapter_branch_ops_create.py +0 -0
  867. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_pipeline_adapter_branch_ops_rebase_conflict.py +0 -0
  868. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_pipeline_adapter_branch_ops_refuse_default.py +0 -0
  869. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_pipeline_adapter_flag.py +0 -0
  870. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_pipeline_adapter_markers.py +0 -0
  871. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_pipeline_adapter_merge_policy_parse.py +0 -0
  872. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_pipeline_adapter_ratification_event_payload.py +0 -0
  873. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_pipeline_adapter_ratification_runner.py +0 -0
  874. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_pipeline_adapter_ratification_skipped_standalone.py +0 -0
  875. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_pipeline_adapter_standalone_regression.py +0 -0
  876. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_pkg_layout_freeze.py +0 -0
  877. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_plan_ir_iter_waves.py +0 -0
  878. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_pr_readback_789.py +0 -0
  879. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_preflight_verification.py +0 -0
  880. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_proofgate_attestation_workflow.py +0 -0
  881. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_proofgate_cleanup.py +0 -0
  882. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_proofgate_isolation.py +0 -0
  883. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_proofgate_receipts.py +0 -0
  884. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_prune_merged_worktrees_script.py +0 -0
  885. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_publishing.py +0 -0
  886. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_pushflow.py +0 -0
  887. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_ratification_policy.py +0 -0
  888. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_reconcile_manifest_dedup_46.py +0 -0
  889. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_reconcile_portability_85c.py +0 -0
  890. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_reconcile_tracked_closeout_recovery_90.py +0 -0
  891. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_reconcile_verification_log.py +0 -0
  892. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_reconcile_visual_avatar_evidence_91.py +0 -0
  893. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_reflection_sync.py +0 -0
  894. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_release_dispatch_operator_approval_145.py +0 -0
  895. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_release_pin_autotrack.py +0 -0
  896. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_repo_validation.py +0 -0
  897. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_review_leg_sandbox.py +0 -0
  898. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_review_stage_binding.py +0 -0
  899. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_review_stage_board_findings.py +0 -0
  900. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_review_staged_tree_authorization.py +0 -0
  901. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_review_summary.py +0 -0
  902. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_roadmap_authority.py +0 -0
  903. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_route_log.py +0 -0
  904. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_route_policy_conformance.py +0 -0
  905. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_routing_invariants.py +0 -0
  906. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_runner_visual_evidence_authoritative_91.py +0 -0
  907. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_runtime_adapter_output_720.py +0 -0
  908. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_runtime_event_log_hardening_720.py +0 -0
  909. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_runtime_procfs_identity_870.py +0 -0
  910. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_runtime_state_mirror_agreement.py +0 -0
  911. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_sandbox_clone.py +0 -0
  912. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_sandbox_policy.py +0 -0
  913. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_sandbox_preamble.py +0 -0
  914. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_sandbox_retention.py +0 -0
  915. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_self_asserted_passed_without_evidence_is_gated.py +0 -0
  916. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_sibling_matcher_patterns.py +0 -0
  917. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_skill_bundle_pinned.py +0 -0
  918. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_skill_install_body_expansion.py +0 -0
  919. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_skill_plan_manifest_write.py +0 -0
  920. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_skill_sources_seam.py +0 -0
  921. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_skills_bundle_drift.py +0 -0
  922. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_skills_src_claude_literal_lint.py +0 -0
  923. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_spec_conformance_gate.py +0 -0
  924. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_specpkgmin_wheel.py +0 -0
  925. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_stale_roadmap_dispatch_guard.py +0 -0
  926. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_status_read_only_62.py +0 -0
  927. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_suite_interpreter_satisfies_requires_python.py +0 -0
  928. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_sweep_fleet_worktrees_script.py +0 -0
  929. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_sync_skills_apply_failloud.py +0 -0
  930. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_task_message_broker.py +0 -0
  931. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_task_message_broker_cli.py +0 -0
  932. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_task_message_resolver.py +0 -0
  933. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_the_real_launch_carries_the_prefix.py +0 -0
  934. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_train_authority_import_811.py +0 -0
  935. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_train_e2e.py +0 -0
  936. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_train_invariants.py +0 -0
  937. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_train_merge.py +0 -0
  938. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_train_order_only_deps_47.py +0 -0
  939. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_train_prebuilt.py +0 -0
  940. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_train_review_authorization.py +0 -0
  941. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_train_roadmap.py +0 -0
  942. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_train_runner.py +0 -0
  943. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_unattended_release.py +0 -0
  944. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_v34_parallel_dispatch_soak.py +0 -0
  945. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_validate_plan_doc_docs_lane.py +0 -0
  946. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_validate_plan_doc_fail_closed.py +0 -0
  947. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_validate_plan_doc_goal_coverage.py +0 -0
  948. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_validate_plan_doc_producer_dependency.py +0 -0
  949. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_validate_plan_doc_proofgate.py +0 -0
  950. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_verification_dotdot_execution_428.py +0 -0
  951. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_verification_evidence.py +0 -0
  952. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_verification_evidence_validator.py +0 -0
  953. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_verification_interpreter_guard_221.py +0 -0
  954. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_verification_venv_identity_428.py +0 -0
  955. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_visual_avatar_evidence_validator.py +0 -0
  956. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_visual_evidence_validator.py +0 -0
  957. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_workerpool_failure_isolation.py +0 -0
  958. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_workerpool_parallel.py +0 -0
  959. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/tests/test_workerpool_worktree_alloc.py +0 -0
  960. {phase_loop_runtime-0.7.15 → phase_loop_runtime-0.7.17}/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.15
3
+ Version: 0.7.17
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.15 # …or pin an exact version
52
+ pip install phase-loop-runtime==0.7.17 # …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.15 # …or pin an exact version
22
+ pip install phase-loop-runtime==0.7.17 # …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.15"
7
+ version = "0.7.17"
8
8
  description = "Harness-neutral phase-loop orchestration runtime and CLI"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -18,4 +18,4 @@ __all__ = [
18
18
  "state_ops",
19
19
  ]
20
20
 
21
- __version__ = "0.7.15"
21
+ __version__ = "0.7.17"
@@ -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`
@@ -485,3 +493,216 @@ a landing decision. `tests/test_president_wiring.py`.
485
493
  - **Standalone launchers.** A caller that wants the four-seat board without a
486
494
  president passes an explicit `review_policy=ReviewLandingPolicy(required_seats=...,
487
495
  requires_president=False)` rather than a president-requiring tier.
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
+
621
+ ## Review monitoring policy v1 (agent-harness#892)
622
+
623
+ The opt-in policy vocabulary is `bounded | heartbeat_only`; omission is bounded.
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.
630
+
631
+ The requested/effective policy is bound to the operation lease and minted leg.
632
+ Heartbeat-only admission expires 10 seconds after minting and is single-use;
633
+ complete frame receipt and ownership are checked before inference. Admitted
634
+ model response waiting has no aggregate wall-clock deadline or silence cutoff.
635
+ It makes one attempt, including when that attempt completes empty.
636
+ Cancellation and owner loss retain child/provider/server ownership until
637
+ quiescence; unproven quiescence cannot become successful evidence.
638
+ Private staged inputs and diagnostics are retained when quiescence cannot be
639
+ proven; that retention is failure evidence, not successful cleanup.
640
+
641
+ `review_monitoring.v1` is a separate metadata-only opt-in record: invocation and
642
+ seat position, requested/effective policy, admission window, null model/silence
643
+ deadlines, last observed progress age, observation state, and terminal reason.
644
+ Genuine output within the existing print-read observation interval is
645
+ `progress_observed`; older output or no output is `progress_unobserved`.
646
+ The TUI timestamp is refreshed by novel output lines, review-file growth and
647
+ transcript growth — a startup banner is novel output and refreshes it; only
648
+ repeated cosmetic repaints do not, once the existing novelty detector has seen
649
+ their text. The CPU-tick heartbeat never refreshes it.
650
+ Neither state is a health attestation or permission to terminate. Frozen
651
+ broker request/response keys, status literals, and observer envelopes are unchanged.
652
+
653
+ When staging requires egress isolation, acquisition follows staged-tree and operation
654
+ authorization revalidation. Heartbeat-only holds the network helper lifetime through
655
+ an owner pipe, with no aggregate expiry; owner exit closes both helpers. Provider
656
+ PID ownership is established after network entry but before the capability bounding
657
+ set is emptied. Every launch retains the common provider launch seam and broker
658
+ threads inherit its ContextVar prefix. EgressUnavailable stays DEGRADED with empty
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.