feat(compose): give Sirens Deep a composed identity #124
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!124
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/sirens-deep-compose-wiring"
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?
Wires #98 end to end.
Depends on
Merge coilyco-flight-deck/agentic-os#997 first. The declaration names four sources that only exist in the public catalogue after that lands, so the compose stage fails until then. Unit tests, vet, prompt-check, policy-check, and pre-commit are green now.
The allowlist moved
agent/compose/roles.kdlwas the wrong document: a provider-side graph binding a.agents/composed/catalogue this repository does not have. It filtered nothing.The allowlist is now
agent/compose/aos-public.kdl, a source declaration naming 13 exact skills. Onlydeclaration=is permitted for a request source. Withroot=the source repository's ownroles.kdldecides, and agentic-os-kai's creator role deliberately binds Kai's career, job-search, and LinkedIn context because that role serves Kai. A test fails anyroot=source.Verified by composing both ways:
root=pulledkai-career,kai-job-search,kai-linkedin-*,personal-preference-social,repo-lore,repo-inbox, and everymcp-tools-*.declaration=pulled exactly the named set,agent-compose verify: 15 skills // 18 files.Build
scripts/stage-compose-sources.shstages each admittedCOMPOSED.mdasSKILL.mdbeneath the declaration, since a declaration's paths resolve relative to its own directory. It composes one bundle per role and verifies each. The Dockerfile runs it in a new stage against a pinnedAOS_CATALOG_REFclone, because the release image shipsagent-composebut not the catalogue.ward exec compose-bundlesdoes the same locally from anAOS_CATALOGcheckout.Runtime
composed: truein the definition makes a bundle mandatory.SIRENS_DEEP_ROLEpicks which baked bundle loads, so a role flip is a deploy change rather than a rebuild. A missing bundle stops the process rather than answering neutrally, which is what the issue asked for.Validator inversion, with a correction
The issue asks that
<aos-community-bundle>andpersonality meldbecome required for Deep.<aos-community-bundle>appears in no current bundle, so requiring it would have failed every startup. The anchors are strings a real bundle contains:<composed-identity>,Agent-compose assigned the,## Personality meld,**Role skill //. The neutral profile must carry none of them, and both directions are tested.Not done
Per-role prompt snapshots. The tracked snapshot renders a placeholder bundle so
prompt-checkstays hermetic in pre-commit without a catalogue checkout. Real per-role snapshots need the build to commit them; filed separately.Verification
go test ./...,go vet ./...,prompt-check,policy-check,pre-commit run --all-filesall pass.