Fail the build on an allowlist entry naming no roster role #1148
No reviewers
Labels
No labels
burndown-2026-08
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
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-gaming/sirens-echo!1148
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/kj58"
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?
Closes the guard half of #1147. The mapping half stays open and is not mine.
What this does
roles.kdlis purely additive: the roster decides which roles exist, and the file grants skills to a role that already does. An entry naming a role the roster does not have therefore grants its skills to nothing, and is indistinguishable from a seat deliberately left bare. Both are silent, and the difference is the whole capability of a lane.The build now refuses it.
community.CheckGraphRolesreports every graph role absent from a given roster.sirens-echo-compose --check-roster <comma-list>exposes it and exits.stage-compose-sources.shruns it once both the core and community rosters are known, before any bake.A roster role with no entry stays legal. That is what
librarianis, and the test pins it.Why now
Not hypothetical. agent-compose reflowed its Core Roster to seven bonded seats in
12c7198, and the two entries this file carries,engineerandcreator, both name roles that reflow removed. Run against the current roster:Against the roster the pinned image still bakes, it passes.
#955measured what the bare state costs: 6 skills and 0 sources against creator's 24 and 48,398 bytes.Expect this to go red, and that is the point
The image bases on
agentic-os:release, so the roster comes from whatever agent-compose that image ships. If it already carries the reflow, this PR's image build fails on the new check, namingcreatorandengineer.That failure is the alarm rather than a defect in this change. Kai approved a failed image build as the outcome. If CI goes red exactly there, this should wait on the
roles.kdlremapping in #1147 rather than be merged past or weakened.If the release image is still pre-reflow, CI passes and the alarm fires later, at the rebuild that would otherwise have silently shipped eight bare agents.
Not in scope
Which of the seven seats inherits which allowlist. That is a mapping decision for this repository, tracked on #1147.
Refs #1147, #955, #1129