fix(skills): hold the composer's own identity doctrine eager #1008
No reviewers
Labels
No labels
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/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!1008
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/roster-core-eager"
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?
Follow-up to #1004, which left one thing open and this answers it.
#1004 partitioned on
inline: alwaysrather than on entrypoint-vs-reference, androster:corewent over the wall with everything else. The identity card still namedboundary-modify-live-system, but the file saying what that boundary means became fetchable. An agent that has to ask what its own boundaries say has already acted without them. That is exactly the #859 failure, one layer up from where #859 found it.Kai's call: roster:core is eager.
The rule keys on provenance, not on names
role-*,boundary-*,personality-*is the accurate list today, but it describes the contents rather than giving the reason. agent-compose stagesroster:coreas its own source directory holding exactly those three families and nothing else:So the loader asks which source a root came from. A roster that later grows a fourth family is covered with no edit here, and an
aos-publicskill that happens to be namedrole-somethingis not swept in by accident. The directory name is URL-escaped, so it gets unescaped rather than matched in its escaped form, since the escaping is the composer's business.Cost
Measured across all eight staged bundles, same tree, before and after:
Six of the eight roles now have nothing fetchable at all, because outside engineer and creator the whole bundle is roster:core. Against the pre-#1004 baseline the engineer lane is still far ahead. This gives back under 9k of that to keep identity whole.
Tests
Two, both against a two-source fixture that stages the escaped directory name the way agent-compose actually does:
TestRosterCoreLoadsEagerly- the roster body is in the pack, the catalogue skill's body is not, and the catalogue skill still carries its description.TestRosterCoreOffersNothingToRead- nothing under roster:core is offered as fetchable, because an eager root has nothing left to fetch.Full suite and
pre-commitgreen.Separate, not in this PR
Kai also said Dowel should not be loading boundaries at all. That is a real observation and a bigger one. Filed separately rather than smuggled in here, because it is an agent-compose question rather than a loader question.