feat(acompose): launch a bare role on its configured agent #1246
No reviewers
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
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!1246
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/vk48-default-agent"
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?
acompose <role>with no seat fell through toagent-compose compose, a hostconverge rather than a launch, so every role launch had to name its harness.
aterm <role>already defaulted through the launch profiles, leaving the twofront doors inconsistent.
The default is config, not code
Both doors take the agent from
.agents/harness-launch-profiles.yaml, whichalready maps every role and is the deployment-tuning axis AGENTS.md puts in AOS.
Pointing a role at a different harness is one line there, and both doors follow
without touching shell or Go:
aos-cliowns that loader, so the shell asksaos _launch-agent <role>ratherthan growing a second YAML parser. The verb is hidden, resolves in under 10ms,
and prints one bare agent name or exits non-zero.
What deliberately did not change
Bare
acomposeis the third-most-common form in shell history at 137 uses, soit still converges, as do
acompose --helpand a first argument that is not alive role. That last one matters:
acomposealso accepts arequest.kdl, sorefusing an unknown first argument the way
atermrefuses a stale role wouldbreak a real invocation. The explicit-seat gate stays as the fast path.
Verification
Eight invocation forms across bash and zsh, with stub
aosandagent-composerecording the resolved command: bare converges, role-only launches the
configured agent,
gamedevresolvesgoosefrom the profile rather than ahardcoded claude, explicit seats are unchanged, trailing harness arguments
survive both paths, and a missing
aosdegrades to converge.719 pytest, full aos-cli and aterm Go suites, full pre-commit.
🤖 Generated with Claude Code