Make ward agent roles config-defined presets instead of hard-coded names #906

Merged
coilyco-ops merged 6 commits from issue-895 into main 2026-07-10 06:21:17 +00:00
Member

closes #895
ward.workflow: pull-requests-and-merge

Summary:

  • resolve agent roster rows from built-in role definitions plus effective fleet overlays
  • surface overlay summaries in the roster without changing the shipped commands
  • keep the roster doc generated from the resolved definitions
closes #895 ward.workflow: pull-requests-and-merge Summary: - resolve agent roster rows from built-in role definitions plus effective fleet overlays - surface overlay summaries in the roster without changing the shipped commands - keep the roster doc generated from the resolved definitions
refactor agent roster onto role definitions
Some checks failed
test / test (pull_request) Failing after 33s
59c7921545
Author
Member

This is a step in the right direction, but do not merge this shape as the final implementation.

The role definitions should not be hard-coded Go data plus fleet overlays. The implementation should introduce a special-purpose agent role KDL file type, embedded into ward at compile time, and resolve the shipped role presets from that KDL. The fleet config can still provide operator overlays, but the base role schema (name, tagline, semantic capabilities, invocation modes, posture, default harness/overlay hooks) should live in the embedded role KDL source rather than in builtInAgentRoleDefinitions().

Requested direction:

  • Add a dedicated role-definition KDL asset, separate from ward-kdl.fleet.kdl and separate from edge guardfiles.
  • Embed that file into ward at compile time as ward-owned product defaults.
  • Parse it into the role definition model that ward agent roster and launch planning consume.
  • Keep fleet KDL as the operator override layer, not the source of shipped role definitions.
  • Keep the current PR’s resolver/roster work if useful, but move the source of truth out of Go literals and into the embedded role KDL file type.

Please treat the current PR as an intermediate step that needs amendment, not merge-ready.

This is a step in the right direction, but do not merge this shape as the final implementation. The role definitions should not be hard-coded Go data plus fleet overlays. The implementation should introduce a special-purpose **agent role KDL file type**, embedded into ward at compile time, and resolve the shipped role presets from that KDL. The fleet config can still provide operator overlays, but the base role schema (name, tagline, semantic capabilities, invocation modes, posture, default harness/overlay hooks) should live in the embedded role KDL source rather than in `builtInAgentRoleDefinitions()`. Requested direction: - Add a dedicated role-definition KDL asset, separate from `ward-kdl.fleet.kdl` and separate from edge guardfiles. - Embed that file into ward at compile time as ward-owned product defaults. - Parse it into the role definition model that `ward agent roster` and launch planning consume. - Keep fleet KDL as the operator override layer, not the source of shipped role definitions. - Keep the current PR’s resolver/roster work if useful, but move the source of truth out of Go literals and into the embedded role KDL file type. Please treat the current PR as an intermediate step that needs amendment, not merge-ready.
fix lint on agent launch
All checks were successful
test / test (pull_request) Successful in 33s
f3e9213e59
coilyco-ops force-pushed issue-895 from f3e9213e59
All checks were successful
test / test (pull_request) Successful in 33s
to 8ee2108604
Some checks failed
test / test (pull_request) Failing after 3s
2026-07-10 05:18:42 +00:00
Compare
chore: retrigger CI
Some checks failed
test / test (pull_request) Failing after 4s
ba159e1ff1
feat: embed shipped agent role presets
Some checks failed
test / test (pull_request) Failing after 2s
b1c85c3c56
closes #895
Author
Member

WARD-OUTCOME: blocked 🛑

details

workflow: pull-requests; review summary: skipped by ~/.ward/config.yaml default
Local validation is green (ward exec test, pre-commit run --all-files), but Forgejo Actions run test / test (pull_request) for head b1c85c3c5610c8f505a591071f5c5d5d3ec08ee0 is failing after 2s with no job logs exposed. This looks like a CI runner/setup blocker outside the repo. Follow-up: retry the PR once the runner issue clears.

— Codex, via `ward agent`
WARD-OUTCOME: blocked 🛑 <details><summary>details</summary> workflow: pull-requests; review summary: skipped by ~/.ward/config.yaml default Local validation is green (`ward exec test`, `pre-commit run --all-files`), but Forgejo Actions run `test / test (pull_request)` for head `b1c85c3c5610c8f505a591071f5c5d5d3ec08ee0` is failing after 2s with no job logs exposed. This looks like a CI runner/setup blocker outside the repo. Follow-up: retry the PR once the runner issue clears. </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Merge remote-tracking branch 'origin/main' into issue-895
All checks were successful
test / test (pull_request) Successful in 36s
de13738334
# Conflicts:
#	cmd/ward/agent_director.go
Merge remote-tracking branch 'origin/main' into issue-895
All checks were successful
test / test (pull_request) Successful in 30s
c389983ee0
# Conflicts:
#	cmd/ward/agent_director.go
#	docs/FEATURES.md
coilyco-ops referenced this pull request from a commit 2026-07-10 06:21:21 +00:00
Sign in to join this conversation.
No description provided.