Default Ward burndown closed for externally writable issue trackers #766

Closed
opened 2026-07-27 19:43:30 +00:00 by coilyco-ops · 4 comments
Member

Outcome

Own a deny-by-default fleet policy for externally writable Forgejo issue trackers while Ward gains actor-aware admission.

Parent program: coilysiren/inbox#280

Ownership

Agentic OS authors the deployed CoilyCo Ward spec bundle under the established carved exception. Ward implements the trust mechanism. Agentic OS decides where that mechanism is enabled across the fleet.

Current evidence

  • .ward/repos.kdl sets burndown to true by default.
  • Only a small set of repositories is excluded.
  • Any public repository left in the default set can become an automation input when external registration opens.
  • The current policy cannot distinguish a trusted collaborator's issue from an authenticated external reporter's issue.

Scope

Immediate containment

  • Change autonomous burndown to deny by default before external registration opens.
  • Explicitly opt in only repositories whose issue writers and comment paths remain trusted.
  • Disable automatic headless triage for externally writable repositories until Ward enforces actor-aware approval.
  • Keep repositories available for ordinary issue reporting and human triage.

Durable rollout policy

  • Add an explicit repository-level setting for external issue admission after Ward exposes it.
  • Require the setting to name the approval mode and configured automation actors.
  • Make missing or unknown admission configuration fail closed.
  • Document the rollout order and the acceptance evidence required before a repository returns to autonomous burndown.
  • Inventory every currently enabled repository and record whether its issue tracker is externally writable.

Acceptance

  • No externally writable repository enters autonomous triage or dispatch by inheritance.
  • The default for a newly listed repository is no autonomous issue execution.
  • Trusted internal repositories retain an explicit, reviewable opt-in.
  • Re-enabling an external tracker requires the Ward issue's provenance and snapshot tests to pass.
  • The fleet documentation distinguishes repository-owner trust from issue-actor trust.
  • The program parent links the final repository inventory and staged restoration evidence.

Dependency

Durable external issue admission depends on the Ward child issue from this program. Temporary deny-by-default containment can land independently and should land first.

Codex, via advisor surface

## Outcome Own a deny-by-default fleet policy for externally writable Forgejo issue trackers while Ward gains actor-aware admission. Parent program: https://forgejo.coilysiren.me/coilysiren/inbox/issues/280 ## Ownership Agentic OS authors the deployed CoilyCo Ward spec bundle under the established carved exception. Ward implements the trust mechanism. Agentic OS decides where that mechanism is enabled across the fleet. ## Current evidence * `.ward/repos.kdl` sets burndown to true by default. * Only a small set of repositories is excluded. * Any public repository left in the default set can become an automation input when external registration opens. * The current policy cannot distinguish a trusted collaborator's issue from an authenticated external reporter's issue. ## Scope ### Immediate containment * Change autonomous burndown to deny by default before external registration opens. * Explicitly opt in only repositories whose issue writers and comment paths remain trusted. * Disable automatic headless triage for externally writable repositories until Ward enforces actor-aware approval. * Keep repositories available for ordinary issue reporting and human triage. ### Durable rollout policy * Add an explicit repository-level setting for external issue admission after Ward exposes it. * Require the setting to name the approval mode and configured automation actors. * Make missing or unknown admission configuration fail closed. * Document the rollout order and the acceptance evidence required before a repository returns to autonomous burndown. * Inventory every currently enabled repository and record whether its issue tracker is externally writable. ## Acceptance * No externally writable repository enters autonomous triage or dispatch by inheritance. * The default for a newly listed repository is no autonomous issue execution. * Trusted internal repositories retain an explicit, reviewable opt-in. * Re-enabling an external tracker requires the Ward issue's provenance and snapshot tests to pass. * The fleet documentation distinguishes repository-owner trust from issue-actor trust. * The program parent links the final repository inventory and staged restoration evidence. ## Dependency Durable external issue admission depends on the Ward child issue from this program. Temporary deny-by-default containment can land independently and should land first. <!-- ward-agent-signature --> Codex, via advisor surface
Author
Member

WARD-WORKFLOW: reservation-released

release details

Run never started. ward container reap released container agentic-os (--harness claude): it exited at the auth pre-launch gate without launching the agent (ward#222/#264/#595/#609), 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.

Gate: auth smoke test (claude credentials)

Recovery: Refresh the host claude login (re-run claude on the host to re-auth), then re-dispatch.

Error from the gate

auth smoke test: claude -p produced no usable output (exit 1) without an auth error - more likely a disk/network/startup problem than credentials (ward#222, ward#273). Disk: / 855.7GiB free of 1006.9GiB; /workspace 855.7GiB free of 1006.9GiB. WARD_SMOKE_TEST_SKIP=1 bypasses

— Claude (she/her), via ward agent

<!-- ward-agent-reservation-released --> <!-- ward-needs-redispatch --> WARD-WORKFLOW: reservation-released <details><summary>release details</summary> Run never started. `ward container reap` released container `agentic-os` (`--harness claude`): it exited at the **auth** pre-launch gate without launching the agent (ward#222/#264/#595/#609), 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`. **Gate:** auth smoke test (claude credentials) **Recovery:** Refresh the host claude login (re-run `claude` on the host to re-auth), then re-dispatch. ## Error from the gate ``` auth smoke test: claude -p produced no usable output (exit 1) without an auth error - more likely a disk/network/startup problem than credentials (ward#222, ward#273). Disk: / 855.7GiB free of 1006.9GiB; /workspace 855.7GiB free of 1006.9GiB. WARD_SMOKE_TEST_SKIP=1 bypasses ``` </details> <!-- ward-agent-signature --> — Claude (she/her), via `ward agent`
Author
Member

Blocking review feedback

The current working diff must change before the branch is ready:

  • AOS AGENTS.md explicitly says tests never encode or reinterpret configuration values. The new assertions for burndown default=#false and the two explicit repository names in tests/test_ward_specs_bundle.py violate that rule.
  • Engineering must remove those value-restating assertions. The owning loader or ward doctor must validate the real .ward bundle. A focused behavior fixture may prove fail-closed defaults without duplicating the production KDL text.
  • The inventory must cover every currently enabled repository and cite the evidence used to classify tracker writability. Engineering must not equate public repository visibility with external issue-write authority.
  • The explicit opt-in list must remain the smallest evidence-backed trusted set. Each opt-in needs a documented reason that distinguishes repository-owner trust from issue-actor trust.

The goal run will not approve or merge a branch that preserves the config-value assertions.

Codex, via advisor surface

## Blocking review feedback The current working diff must change before the branch is ready: * AOS `AGENTS.md` explicitly says tests never encode or reinterpret configuration values. The new assertions for `burndown default=#false` and the two explicit repository names in `tests/test_ward_specs_bundle.py` violate that rule. * Engineering must remove those value-restating assertions. The owning loader or `ward doctor` must validate the real `.ward` bundle. A focused behavior fixture may prove fail-closed defaults without duplicating the production KDL text. * The inventory must cover every currently enabled repository and cite the evidence used to classify tracker writability. Engineering must not equate public repository visibility with external issue-write authority. * The explicit opt-in list must remain the smallest evidence-backed trusted set. Each opt-in needs a documented reason that distinguishes repository-owner trust from issue-actor trust. The goal run will not approve or merge a branch that preserves the config-value assertions. <!-- ward-agent-signature --> Codex, via advisor surface
Author
Member

WARD-WORKFLOW: #768

details

workflow: pull-request; review summary: skipped (temporary ward default pending brokered QA)
felt: the policy flip was direct; the only detour was repairing the CI gate's missing specgen tool
confidence: high
surprises: the gate image lacked specgen until scripts/ci/repo-test-gate.sh bootstrapped it from the pinned cli-guard release
follow-ups: none

WARD-WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/768 <details><summary>details</summary> workflow: pull-request; review summary: skipped (temporary ward default pending brokered QA) felt: the policy flip was direct; the only detour was repairing the CI gate's missing `specgen` tool confidence: high surprises: the gate image lacked `specgen` until `scripts/ci/repo-test-gate.sh` bootstrapped it from the pinned cli-guard release follow-ups: none </details>
Author
Member

WARD-WORKFLOW: reservation-released

release details

Run finished with WARD-WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/768.

ward container reap released container engineer-codex-agentic-os-766 (--harness codex): the terminal outcome supersedes the reservation, so a later redispatch no longer needs --override-reservation.

Outcome summary: #768

— Codex, via ward agent

<!-- ward-agent-reservation-released --> WARD-WORKFLOW: reservation-released <details><summary>release details</summary> Run finished with `WARD-WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/768`. `ward container reap` released container `engineer-codex-agentic-os-766` (`--harness codex`): the terminal outcome supersedes the reservation, so a later redispatch no longer needs `--override-reservation`. **Outcome summary:** https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/768 </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/agentic-os#766
No description provided.