Rename fleetconfig syntax to agents and singular guardfile #219
Labels
No labels
burndown-2026-06
sunday-sprint
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/cli-guard#219
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 aos ward-specs bundle is being reshaped in
coilyco-flight-deck/agentic-os#431, and part of that requested shape changes the fleetconfig dialect that cli-guard owns today.Current cli-guard evidence:
pkg/fleetconfig/fleetconfig.gohard-codes the embedded top-level block asfleet.pkg/fleetconfig/fleetconfig.goparses role guardfile bindings from a pluralguardfilesnode.docs/fleetconfig.md,docs/kdl-description.md, andpkg/fleetconfig/fleetconfig_test.godescribe and test the old names.The new aos shape wants:
and role guardfile bindings as repeated singular child nodes in the roles file:
Scope
Update cli-guard's typed KDL config parser and docs for the renamed dialect pieces:
agents { ... }as the embedded roster block instead offleet { ... }.guardfile "..."nodes underroleblocks instead ofguardfiles ....Role.Guardfiles.Listcan still be the in-memory representation), but the source KDL should be singular repeated nodes.fleet/guardfilesis needed. If compatibility is kept, document it as a temporary legacy alias and add explicit tests. If compatibility is not kept, fail closed with clear errors.docs/fleetconfig.md,docs/kdl-description.md,docs/architecture.mdreferences if they name the old top-level dialect.guardfilehandling and the no-guardfile role case.Coordination
This is a consumer prerequisite for
agentic-os#431. The aos issue should not land a bundle that ward cannot parse. Ward may also need a consumer-side update for renamed bundle filenames and the splitdefaults.kdl/repos.kdlfiles.Acceptance criteria
pkg/fleetconfigparses the newagentsblock shape.guardfilenodes.fleet/guardfilesas the primary syntax.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/cli-guard#219 --harness codex --ward-version v0.579.0Container:
engineer-codex-cli-guard-219Container created: no running engineer was observed.
Host log:
/Users/kai/.ward/agent-logs/dispatch/20260710T101140Z-director-codex-rh98-coilyco-flight-deck-cli-guard-219.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-RESERVATION: held 🔒
reservation details
Holder: container
engineer-codex-cli-guard-219on hostkais-macbook-pro-2.local.Reserved by
ward agent --harness codex(reserved 2026-07-10T16:43: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/cli-guard#219· branchissue-219· harnesscodex· workflowpull-requests-and-mergeengineer-codex-cli-guard-219· wardv0.584.0· dispatched2026-07-10T16:43:13ZStatic container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.584.0).
— Codex, via
ward agentWARD-OUTCOME: merge-ready
details
workflow: pull-requests-and-merge; review summary: skipped (review gate skipped by ~/.ward/config.yaml default)
reservation: hand-back complete
implementation felt steady after the parser split. the only surprise was the repo comment cap and stale godoc snapshot.
confidence: high
surprises: godoc-current.txt needed regeneration after the comment edits.
follow-ups: none
WARD-RESERVATION: held 🔒
reservation details
Holder: container
engineer-claude-cli-guard-219on hostKAI-DESKTOP-TOWER.Reserved by
ward agent --harness claude(reserved 2026-07-10T21:50:26Z). 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/cli-guard#219· branchissue-219· harnessclaude· workflowpull-requests-and-mergeengineer-claude-cli-guard-219· wardv0.605.0· dispatched2026-07-10T21:50:26ZStatic container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.605.0).
— Claude (she/her), via
ward agentWARD-OUTCOME: merge-ready
details
workflow: pull-requests-and-merge; review summary: skipped (in-container review gate intentionally skipped by the temporary ward default pending brokered QA)
reservation: hand-back complete
pr: #220 at head
f8d2fcc, CI green (test, lint, secrets), mergeable, waiting on the director mergeretrospective: a prior codex run had already landed the rename on issue-219 and opened #220. This claude run verified the branch against every acceptance criterion, ran the full suite plus vet and lint locally, and added three reject tests for the untested guardfile/guardfiles mixing and duplicate-legacy-alias error paths, then re-confirmed CI green on the new head.
confidence: high
surprises: none - the branch arrived merge-ready, only the mixing-rejection tests were missing.
follow-ups: none