Reshape ward KDL bundle filenames and role guardfile declarations #431
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/agentic-os#431
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The coilyco ward-specs bundle still has old top-level names and filenames:
.ward/ward-kdl.fleet.kdlowns both the agent roster and role guardfile bindings.guardfilesnode with multiple positional values.ward-kdl.prefix even where the file is not the ward-kdl executable itself..ward/ward-kdl.defaults.kdlcontains both smart defaults and repo authority.smart-defaults,repo-authority, andfleet.Kai wants the bundle shape renamed and split.
Requested shape
Use repeated singular
guardfileentries in the role config. KDL supports this style as repeated same-name child nodes, which is already how this bundle models repeatedrole,repo, andtrusted-ownerentries.Move the role guardfile bindings out of the former fleet file and into
.ward/roles.kdl, under each matchingroleblock. For example:Rename the bundle files and root nodes:
.ward/ward-kdl.fleet.kdl->.ward/agents.kdlfleet->agents.ward/ward-kdl.roles.kdl->.ward/roles.kdl.ward/ward-kdl.defaults.kdl->.ward/defaults.kdlsmart-defaults->defaultsrepo-authorityout of defaults into.ward/repos.kdlrepo-authority->reposguardfileis the first filename word andward-kdlis dropped, for example:.ward/ward-kdl.forgejo.write.guardfile.kdl->.ward/guardfile.forgejo.write.kdl.ward/ward-kdl.forgejo.read.guardfile.kdl->.ward/guardfile.forgejo.read.kdl.ward/ward-kdl.forgejo.readactions.guardfile.kdl->.ward/guardfile.forgejo.readactions.kdl.ward/ward-kdl.forgejo.admin.guardfile.kdl->.ward/guardfile.forgejo.admin.kdl.ward/ward-kdl.forgejo.guardfile.kdl->.ward/guardfile.forgejo.kdl.ward/ward-kdl.aws.guardfile.kdl->.ward/guardfile.aws.kdl.ward/ward-kdl.kubectl.guardfile.kdl->.ward/guardfile.kubectl.kdlDrop the
ward-kdlfilename literal from all bundle filenames where it is only the old naming prefix. Keep literal command names likewrap ward-kdl ...,ward-kdl-read,ward-kdl-write, and documentation text that refers to the actual ward-kdl tool, unless the renamed file path itself is being referenced.Implementation notes
Update every path reference that depends on the old filenames:
.forgejo/workflows/release.ymlexplicit ward-specs tar member list.agentic_os/pre_commit/check_ward_specs_bundle.pyexpected defaults path, expected defaults body, expected tar members, and removed-member assertions.tests/test_ward_specs_bundle.pyfile reads and string assertions.inheritpaths inside write/admin guardfiles.docs/ward-specs.mdwording for the bundle inventory.rg "ward-kdl\.|guardfiles|smart-defaults|repo-authority|fleet \{"hits that are genuinely part of this bundle schema.Do not update
docs/FEATURES.mdunless the public feature boundary changes. This is a schema/file-layout cleanup inside the existing ward deployment spec bundle.Acceptance criteria
.ward/roles.kdlas repeated singularguardfilenodes..ward/agents.kdlwith root nodeagentsand no embedded role guardfile binding block..ward/defaults.kdland.ward/repos.kdl, with root nodesdefaultsandrepos.guardfile.and no longer include theward-kdl.prefix.ward exec testandward exec pre-commit-allpass.ward.workflow: pull-requests-and-merge
WARD-DISPATCH: deferred ⏸
deferred details
This forwarded dispatch was deferred after the issue was already reserved.
Attempted harness:
codexAttempted run:
ward agent engineer coilyco-flight-deck/agentic-os#431 --harness codex --ward-version v0.579.0Container:
engineer-codex-agentic-os-431Container created: no running engineer was observed.
Host log:
/Users/kai/.ward/agent-logs/dispatch/20260710T100547Z-director-codex-rh98-coilyco-flight-deck-agentic-os-431.logCapacity:
ward agent engineer --harness codex: global engineer limit is reached: 12 running (limit 12); wait for a run to finish or runward agent reapfor stale engineersRetry: the issue stays queued and the director will try again when a slot opens.
— Codex, via
ward agentWARD-DISPATCH: failed ❌
failure details
This forwarded dispatch failed after the issue was already reserved.
Attempted harness:
codexAttempted run:
ward agent engineer coilyco-flight-deck/agentic-os#431 --harness codex --details Implement agentic-os#431. Reshape the aos .ward bundle filenames and root nodes as requested, keep the release tarball packaging deterministic, update docs/tests, and coordinate with cli-guard#219 and ward#1009 without restoring ward-side specgen.Container:
engineer-codex-agentic-os-431Container created: no running engineer was observed.
Host log:
/Users/kai/.ward/agent-logs/dispatch/20260710T101854Z-director-codex-zv99-coilyco-flight-deck-agentic-os-431.logFailure:
ward container: download Go bootstrap binary https://forgejo.coilysiren.me/coilyco-flight-deck/ward/releases/download/v0.580.0/ward-linux-arm64: unexpected status 404 Not Found: Not FoundRetry: choose another harness if the first one is down, or rerun with
--forceif the reservation is stale.— Codex, via
ward agentWARD-RESERVATION: held 🔒
reservation details
Holder: container
engineer-codex-agentic-os-431on hostkais-macbook-pro-2.local.Reserved by
ward agent --harness codex(reserved 2026-07-10T10:20:13Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (1h TTL).--forceoverrides.Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).
run seed context — what this run is carrying (ward#609)
coilyco-flight-deck/agentic-os#431· branchissue-431· harnesscodex· workflowpull-requests-and-mergeengineer-codex-agentic-os-431· wardv0.579.0· dispatched2026-07-10T10:20:13ZStatic container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.579.0).
— Codex, via
ward agentForgejo CI failed on PR #433 at
ci / gate->Repo test gate. The sameuv run pytestcommand passes locally in this tree, so the current failure looks runner-specific or transient. Run 903 exposes the failure summary but not the job logs through the REST log route here, so the next step is a rerun on the branch rather than a code change.WARD-RESERVATION: held 🔒
reservation details
Holder: container
engineer-codex-agentic-os-431on hostkais-macbook-pro-2.local.Reserved by
ward agent --harness codex(reserved 2026-07-10T10:40:33Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (1h TTL).--forceoverrides.Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).
run seed context — what this run is carrying (ward#609)
coilyco-flight-deck/agentic-os#431· branchissue-431· harnesscodex· workflowpull-requests-and-mergeengineer-codex-agentic-os-431· wardv0.580.0· dispatched2026-07-10T10:40:33ZStatic container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.580.0).
— Codex, via
ward agent