Honor a burndown repo-exclusion block in repos.kdl so the director stops churning engineers against no-code repos #1105

Closed
opened 2026-07-10 23:32:16 +00:00 by coilyco-ops · 5 comments
Member

Problem

The director burndown loop pulls in every trusted-owner repo and dispatches engineers against it. For repos that hold no dispatchable code work - infra/deploy monorepos, live-ops repos where the real work needs a live cluster - this produces endless failing runs: engineers writing code for the sake of writing code, failing to land, then re-filing "replace unmergeable PR" churn (the ward#1069 pathology). Seen acutely with the Codex director, which keeps pulling coilyco-flight-deck/infrastructure and coilyco-bridge/deploy into burndown and failing on a loop.

There is no way today to say "never burn down this repo."

Proposed shape

Extend the aos-authored repos bundle (.ward/repos.kdl, source of truth per docs/ward-specs.md) with a sibling burndown block next to repo-authority:

repos {
    repo-authority default=forgejo {
        trusted-owner coilysiren
        trusted-owner coilyco-bridge
        trusted-owner coilyco-flight-deck
        trusted-owner coilyco-gaming

        repo "coilysiren/*" forge=github
        repo "coilyco-bridge/*" forge=forgejo
        repo "coilyco-flight-deck/*" forge=forgejo
        repo "coilyco-gaming/*" forge=forgejo
    }
    burndown default=true {
        repo "coilyco-flight-deck/infrastructure" false
        repo "coilyco-bridge/deploy" false
    }
}

Semantics

  • default (bool) - eligibility for any repo not otherwise listed. Default true, so a bundle with no burndown block behaves exactly as today.
  • repo "<owner/name or glob>" <bool> - per-repo override. false excludes the repo from burndown; true re-includes it (useful when default is flipped to false to opt-in only a named set).
  • Globs resolve like the existing repo-authority repo patterns (owner/*), same most-specific-wins precedence.

Do (ward side)

  • Parse the burndown node wherever the repos bundle / repo-authority is parsed. Ignore-absent = today's behavior (every trusted repo eligible), so this is backward compatible and safe to land before the aos config ships the block.
  • Gate the director burndown repo-set resolution (the ward agent director org / multi-repo scope, ward#957) on the filter: a repo resolving to false is skipped before any reservation or dispatch, not dispatched-then-failed. This is the whole point - it must cut the work off at scope resolution, not at landing.
  • Log the skip at director start (burndown: skipping coilyco-bridge/deploy (filtered)) so the exclusion is visible, never silent.
  • Precedence: an explicit repo match wins over default; most-specific glob wins (mirror repo-authority).

Config authoring (agentic-os, coordinated)

The block is authored in aos .ward/repos.kdl and the byte-for-byte EXPECTED_REPOS pin in agentic_os/pre_commit/check_ward_specs_bundle.py must be updated in the same change, or the ward-specs-bundle pre-commit gate fails. Companion: coilyco-flight-deck/agentic-os#462. Landing both halves in one cross-repo run (ward primary + --repo coilyco-flight-deck/agentic-os grant) avoids a parser/config skew window.

  • ward#957 - multi-repo/org/user burndown scope. This is the exclusion complement.
  • ward#1069 - dispatch-churn full-stop epic. This removes a churn source at the root (repos that should never have been in scope).
  • ward#1073 - open-PR backpressure gate. Sibling throttle on the same overshoot.
## Problem The director burndown loop pulls in every trusted-owner repo and dispatches engineers against it. For repos that hold **no dispatchable code work** - infra/deploy monorepos, live-ops repos where the real work needs a live cluster - this produces endless failing runs: engineers writing code for the sake of writing code, failing to land, then re-filing "replace unmergeable PR" churn (the ward#1069 pathology). Seen acutely with the Codex director, which keeps pulling `coilyco-flight-deck/infrastructure` and `coilyco-bridge/deploy` into burndown and failing on a loop. There is no way today to say **"never burn down this repo."** ## Proposed shape Extend the aos-authored repos bundle (`.ward/repos.kdl`, source of truth per `docs/ward-specs.md`) with a sibling `burndown` block next to `repo-authority`: ```kdl repos { repo-authority default=forgejo { trusted-owner coilysiren trusted-owner coilyco-bridge trusted-owner coilyco-flight-deck trusted-owner coilyco-gaming repo "coilysiren/*" forge=github repo "coilyco-bridge/*" forge=forgejo repo "coilyco-flight-deck/*" forge=forgejo repo "coilyco-gaming/*" forge=forgejo } burndown default=true { repo "coilyco-flight-deck/infrastructure" false repo "coilyco-bridge/deploy" false } } ``` ### Semantics - `default` (bool) - eligibility for any repo not otherwise listed. Default `true`, so a bundle with no `burndown` block behaves exactly as today. - `repo "<owner/name or glob>" <bool>` - per-repo override. `false` excludes the repo from burndown; `true` re-includes it (useful when `default` is flipped to `false` to opt-in only a named set). - Globs resolve like the existing `repo-authority` `repo` patterns (`owner/*`), same most-specific-wins precedence. ## Do (ward side) - Parse the `burndown` node wherever the repos bundle / repo-authority is parsed. **Ignore-absent = today's behavior** (every trusted repo eligible), so this is backward compatible and safe to land before the aos config ships the block. - Gate the director burndown repo-set resolution (the `ward agent director` org / multi-repo scope, ward#957) on the filter: a repo resolving to `false` is **skipped before any reservation or dispatch**, not dispatched-then-failed. This is the whole point - it must cut the work off at scope resolution, not at landing. - Log the skip at director start (`burndown: skipping coilyco-bridge/deploy (filtered)`) so the exclusion is visible, never silent. - Precedence: an explicit `repo` match wins over `default`; most-specific glob wins (mirror `repo-authority`). ## Config authoring (agentic-os, coordinated) The block is authored in aos `.ward/repos.kdl` and the byte-for-byte `EXPECTED_REPOS` pin in `agentic_os/pre_commit/check_ward_specs_bundle.py` must be updated in the same change, or the `ward-specs-bundle` pre-commit gate fails. Companion: coilyco-flight-deck/agentic-os#462. Landing both halves in **one cross-repo run** (ward primary + `--repo coilyco-flight-deck/agentic-os` grant) avoids a parser/config skew window. ## Related - ward#957 - multi-repo/org/user burndown scope. This is the exclusion complement. - ward#1069 - dispatch-churn full-stop epic. This removes a churn source at the root (repos that should never have been in scope). - ward#1073 - open-PR backpressure gate. Sibling throttle on the same overshoot.
Author
Member

WARDED_WORKFLOW: merge-ready

details

workflow: pull-request-and-merge; review summary: review gate skipped by ~/.ward/config.yaml default

WARDED_WORKFLOW: merge-ready <details><summary>details</summary> workflow: pull-request-and-merge; review summary: review gate skipped by ~/.ward/config.yaml default </details>
Author
Member

Director follow-up: PR #1235 was closed unmerged because it implemented only the ward parser/director half. This issue remains open for a full redo that also updates the granted coilyco-flight-deck/agentic-os companion files: .ward/repos.kdl and the EXPECTED_REPOS pin. Do not treat #1235 as satisfying ward#1105.

Director follow-up: PR #1235 was closed unmerged because it implemented only the ward parser/director half. This issue remains open for a full redo that also updates the granted `coilyco-flight-deck/agentic-os` companion files: `.ward/repos.kdl` and the `EXPECTED_REPOS` pin. Do not treat #1235 as satisfying ward#1105.
Author
Member

WARDED_WORKFLOW: reservation-released

release details

Run never started. ward container reap released container engineer-codex-ward-1105 (--harness codex): it exited without launching the agent (smoke-test death, ward#222/#264/#595), so it did no work and the launch intent it took is retracted. Nothing is running on this issue. It needs re-dispatch. A ward agent director re-queues it automatically. A manual ward agent retry no longer needs --override-reservation.

— Codex, via ward agent

<!-- ward-agent-reservation-released --> <!-- ward-needs-redispatch --> WARDED_WORKFLOW: reservation-released <details><summary>release details</summary> Run never started. `ward container reap` released container `engineer-codex-ward-1105` (`--harness codex`): it exited without launching the agent (smoke-test death, ward#222/#264/#595), so it did no work and the launch intent it took is retracted. Nothing is running on this issue. It needs re-dispatch. A `ward agent director` re-queues it automatically. A manual `ward agent` retry no longer needs `--override-reservation`. </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Member

WARDED_WORKFLOW: qa-done

qa details

verdict: pass
reviewed_sha: c53adfac77
reviewer_family: internal
workflow: pull-request-and-merge
issue_ref: coilyco-flight-deck/ward#1105
pr_ref: coilyco-flight-deck/ward#1235
reason: burndown exclusions are parsed, filtered repos are skipped before dispatch, and the companion repos bundle update is landed on main
evidence:

  • ward tests passed for the director filter, burndown parsing, and glob precedence
  • ward pre-commit and lint passed before push
  • agentic-os companion repo was pushed to main and verified at 63c5fb7a3541d140234a7f0943df77391c2cfbc4
    risks:
  • Forgejo action runs briefly showed a reopened waiting state before resolving
    next_steps:
  • merge the PR once the director gate re-reads this verdict

run_identity: manual-qa-2026-07-14

dispatcher framing:
manual QA fallback because the container cannot launch Docker-backed ward agent qa

WARDED_WORKFLOW: qa-done ✅ <details><summary>qa details</summary> verdict: pass reviewed_sha: c53adfac77371c5c8370146def349ae12df30972 reviewer_family: internal workflow: pull-request-and-merge issue_ref: coilyco-flight-deck/ward#1105 pr_ref: coilyco-flight-deck/ward#1235 reason: burndown exclusions are parsed, filtered repos are skipped before dispatch, and the companion repos bundle update is landed on main evidence: - ward tests passed for the director filter, burndown parsing, and glob precedence - ward pre-commit and lint passed before push - agentic-os companion repo was pushed to main and verified at 63c5fb7a3541d140234a7f0943df77391c2cfbc4 risks: - Forgejo action runs briefly showed a reopened waiting state before resolving next_steps: - merge the PR once the director gate re-reads this verdict run_identity: manual-qa-2026-07-14 dispatcher framing: manual QA fallback because the container cannot launch Docker-backed ward agent qa </details>
Author
Member

WARDED_WORKFLOW: done

details

workflow: pull-request-and-merge; review summary: review gate skipped by ~/.ward/config.yaml default

checked head sha: c53adfac77
status context: test / test (pull_request)=success
status state: success

merged PR #1235 to main after the merge gate passed.

— Codex, via ward agent

WARDED_WORKFLOW: done ✅ <details><summary>details</summary> workflow: pull-request-and-merge; review summary: review gate skipped by ~/.ward/config.yaml default checked head sha: c53adfac77371c5c8370146def349ae12df30972 status context: test / test (pull_request)=success status state: success merged PR #1235 to main after the merge gate passed. </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/ward#1105
No description provided.