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