Move ward workflow config out of defaults #501

Closed
opened 2026-07-13 18:22:01 +00:00 by coilyco-ops · 2 comments
Member

Kai said:

this engineer didnt merge dispatch the ward KDL config that should have instructed them to do so

forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/497

forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/src/branch/main/.ward/defaults.kdl

also that file should be workflow.kdl and the config key should be a top level workflow instead of defaults.agent-workflow

Director state:

  • PR 497 was left open even though it was mergeable and green. The director merged it with ward agent pr merge coilyco-flight-deck/agentic-os#497; the merge gate reported workflow pull-request-and-merge, head 46717ae8, and green ci / ward-doctor plus ci / gate.
  • Current .ward/defaults.kdl contains defaults { agent-workflow default="merge-remote-main" { ... } }.
  • Kai wants that config no longer modeled as smart defaults. The file should be .ward/workflow.kdl, and the top-level KDL block should be workflow, not defaults.agent-workflow.

Task:

  • In agentic-os, rename .ward/defaults.kdl to .ward/workflow.kdl.
  • Change the content from nested defaults { agent-workflow ... } to a top-level workflow block that preserves the same policy:
    • default workflow: merge-remote-main
    • coilyco-flight-deck/cli-guard: pull-request-and-merge
    • coilyco-flight-deck/ward: pull-request-and-merge
    • coilyco-flight-deck/agentic-os: pull-request-and-merge
  • Update docs, tests, release packaging, and validators that still refer to defaults.kdl or defaults.agent-workflow.
  • Run ward doctor against the edited .ward/ bundle and the repo validation.
  • If ward does not yet understand top-level workflow / workflow.kdl, update coilyco-flight-deck/ward in the granted repo so it does. Add or adjust ward tests so future engineers cannot regress the PR merge policy back into defaults.
  • Make sure the dispatcher path that launched PR 497 can resolve the PR-gated workflow from the new config shape.

This is a config ownership cleanup, not a behavior change. The same repos should remain PR-gated and merge-eligible after checks pass.

Completion contract. This issue was filed as a sidequest, so its session is expected to finish hands-off. When the work is fully complete and verified - committed, pushed, and merged to main, checks green - and it needed no human decision to land (humans can post-review after the fact), do not stop at an idle prompt. End the session by running ward session end from a Bash tool call. That verb walks the process ancestry to the claude CLI process and signals it, so the session exits cleanly and Warp shows the big red "process exited" banner. The verb is allowlisted because Kai authorized this exact, accurately-named capability, and the audit row records the deliberate end. This is expected and safe: the dangerous failure mode is an agent that resists shutdown, not one that ends itself when its work is done.

Do NOT end the session if the work genuinely needs a human decision before it can land (an irreversible op, a design fork only Kai can call, a blocked dependency). In that case stop at the prompt and say plainly what you need. "Humans can review later" is fine and still self-ends. "A human must decide before merge" is not - leave that session open.

Kai said: > this engineer didnt merge dispatch the ward KDL config that should have instructed them to do so > > forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/497 > > forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/src/branch/main/.ward/defaults.kdl > > also that file should be `workflow.kdl` and the config key should be a top level `workflow` instead of `defaults.agent-workflow` Director state: * PR 497 was left open even though it was mergeable and green. The director merged it with `ward agent pr merge coilyco-flight-deck/agentic-os#497`; the merge gate reported workflow `pull-request-and-merge`, head `46717ae8`, and green `ci / ward-doctor` plus `ci / gate`. * Current `.ward/defaults.kdl` contains `defaults { agent-workflow default="merge-remote-main" { ... } }`. * Kai wants that config no longer modeled as smart defaults. The file should be `.ward/workflow.kdl`, and the top-level KDL block should be `workflow`, not `defaults.agent-workflow`. Task: * In `agentic-os`, rename `.ward/defaults.kdl` to `.ward/workflow.kdl`. * Change the content from nested `defaults { agent-workflow ... }` to a top-level `workflow` block that preserves the same policy: * default workflow: `merge-remote-main` * `coilyco-flight-deck/cli-guard`: `pull-request-and-merge` * `coilyco-flight-deck/ward`: `pull-request-and-merge` * `coilyco-flight-deck/agentic-os`: `pull-request-and-merge` * Update docs, tests, release packaging, and validators that still refer to `defaults.kdl` or `defaults.agent-workflow`. * Run `ward doctor` against the edited `.ward/` bundle and the repo validation. * If ward does not yet understand top-level `workflow` / `workflow.kdl`, update `coilyco-flight-deck/ward` in the granted repo so it does. Add or adjust ward tests so future engineers cannot regress the PR merge policy back into defaults. * Make sure the dispatcher path that launched PR 497 can resolve the PR-gated workflow from the new config shape. This is a config ownership cleanup, not a behavior change. The same repos should remain PR-gated and merge-eligible after checks pass. > **Completion contract.** This issue was filed as a sidequest, so its session is expected to finish hands-off. When the work is fully complete and verified - committed, pushed, and merged to `main`, checks green - and it needed no human decision to land (humans can post-review after the fact), do not stop at an idle prompt. End the session by running `ward session end` from a Bash tool call. That verb walks the process ancestry to the `claude` CLI process and signals it, so the session exits cleanly and Warp shows the big red "process exited" banner. The verb is allowlisted because Kai authorized this exact, accurately-named capability, and the audit row records the deliberate end. This is expected and safe: the dangerous failure mode is an agent that resists shutdown, not one that ends itself when its work is done. > > Do NOT end the session if the work genuinely needs a human decision before it can land (an irreversible op, a design fork only Kai can call, a blocked dependency). In that case stop at the prompt and say plainly what you need. "Humans can review later" is fine and still self-ends. "A human must decide before merge" is not - leave that session open.
Author
Member

WARD-OUTCOME: submitted

details

workflow: pull-request-and-merge; review summary: skipped (in-container review gate intentionally skipped because the temporary ward default pending brokered QA)

retrospective: the config split was clean, but the release-image ward pin needed a workflow-level source build to keep PR CI honest.
confidence: high
surprise: the first PR run failed on the old shipped ward binary, not the bundle itself.
follow-up: merge PR #502, then let the next release image pick up the ward commit.

WARD-OUTCOME: submitted <details><summary>details</summary> workflow: pull-request-and-merge; review summary: skipped (in-container review gate intentionally skipped because the temporary ward default pending brokered QA) retrospective: the config split was clean, but the release-image ward pin needed a workflow-level source build to keep PR CI honest. confidence: high surprise: the first PR run failed on the old shipped ward binary, not the bundle itself. follow-up: merge PR #502, then let the next release image pick up the ward commit. </details>
Author
Member

Additional .ward config correction from Kai: agentic-os must configure warded git committer identity to the coilyco-ops bot, not let ward fall back to the example bot. Filed as #504 with details. If this run is still editing the ward KDL config, please include #504 or coordinate the config shape so the resolved warded launch sets committer/account identity to name coilyco-ops, email coilyco-ops@coilysiren.me.

Additional .ward config correction from Kai: agentic-os must configure warded git committer identity to the coilyco-ops bot, not let ward fall back to the example bot. Filed as #504 with details. If this run is still editing the ward KDL config, please include #504 or coordinate the config shape so the resolved warded launch sets committer/account identity to name `coilyco-ops`, email `coilyco-ops@coilysiren.me`.
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#501
No description provided.