Governance: Add bounded multi-agent orchestration policy #17

Merged
creatidy merged 2 commits from governance/bounded-multi-agent into main 2026-09-05 09:14:39 +00:00
creatidy commented 2026-09-05 08:52:43 +00:00 (Migrated from github.com)

Closes #16

Why

An unbounded independent-review and implementation-fix loop can consume hours, expand scope, grow complexity, invalidate moving-head review, and optimize correctness without an explicit cost function. This PR makes bounded orchestration a durable repository policy without adding runtime orchestration code.

Policy

  • Defaults: max_initial_review_rounds=1, max_remediation_rounds=1, max_final_verification_rounds=1, max_worker_retries=1, max_reviewer_retries=1, max_wall_clock_minutes=120. Worker and reviewer retries are independently bounded.
  • Findings are exactly MERGE_BLOCKER or DEFER; only blockers can trigger one remediation.
  • The reviewed PR head is immutable during review, and dependent phases are serialized.
  • Final verification is limited to prior blockers and obvious remediation regressions; there is no automatic third review/fix cycle.
  • Complexity and progress/retry watchdogs stop and escalate when either retry budget is exhausted or progress stops.
  • A retry recovers a stalled/interrupted worker or reviewer session; it does not restart an entire task or review repeatedly.
  • Human remains the merge gate; workers, reviewers, and orchestrators do not merge automatically.

Version and files

  • model-policy.json keeps schema_version=1, policy_version=2, and updated_at=2026-09-05.
  • Updated AGENTS.md, model-policy.json, docs/decisions.md, and tests/test_model_policy.py.

Validation

  • uv sync --only-dev passed.
  • make check passed: 455 tests; basedpyright 0 errors, 0 warnings, 0 notes.
  • JSON validation and git diff --check origin/main passed.
  • No runtime orchestration code was added and Task 3 was not started.
Closes #16 ## Why An unbounded independent-review and implementation-fix loop can consume hours, expand scope, grow complexity, invalidate moving-head review, and optimize correctness without an explicit cost function. This PR makes bounded orchestration a durable repository policy without adding runtime orchestration code. ## Policy - Defaults: `max_initial_review_rounds=1`, `max_remediation_rounds=1`, `max_final_verification_rounds=1`, `max_worker_retries=1`, `max_reviewer_retries=1`, `max_wall_clock_minutes=120`. Worker and reviewer retries are independently bounded. - Findings are exactly `MERGE_BLOCKER` or `DEFER`; only blockers can trigger one remediation. - The reviewed PR head is immutable during review, and dependent phases are serialized. - Final verification is limited to prior blockers and obvious remediation regressions; there is no automatic third review/fix cycle. - Complexity and progress/retry watchdogs stop and escalate when either retry budget is exhausted or progress stops. - A retry recovers a stalled/interrupted worker or reviewer session; it does not restart an entire task or review repeatedly. - Human remains the merge gate; workers, reviewers, and orchestrators do not merge automatically. ## Version and files - `model-policy.json` keeps `schema_version=1`, `policy_version=2`, and `updated_at=2026-09-05`. - Updated `AGENTS.md`, `model-policy.json`, `docs/decisions.md`, and `tests/test_model_policy.py`. ## Validation - `uv sync --only-dev` passed. - `make check` passed: 455 tests; basedpyright 0 errors, 0 warnings, 0 notes. - JSON validation and `git diff --check origin/main` passed. - No runtime orchestration code was added and Task 3 was not started.
Sign in to join this conversation.
No description provided.