feat: allowlist the composed sources Sirens Deep may load #99
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!99
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/sirens-deep-compose"
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?
First increment of #98. Establishes the safety boundary before any bundle is wired, because the boundary is the expensive part to get wrong.
What lands
agent/compose/roles.kdlnames every composed source Sirens Deep may load, governed by two rules.No global repositories. The host profile declares
global profileandglobal lore. Either would put private operating context into an agent that answers strangers in a guild the operator does not moderate. This file declares no repository and no global at all.Exact names, never globs.
personal-preference-*silently includespersonal-preference-social, which is the one preference source that must not compose here. An organization can own a favorite colour; it cannot own a person's social accounts. Listing sources by exact name makes every addition a reviewed line in a diff.The nine approved sources are the public-safe tastes and the house style, all mirrored on the public Coilyco website, and all reframed onto the organization in
coilyco-bridge/agentic-os-kai#853.Enforcement, negative-tested
internal/community/compose_test.gofails when a source is outside the reviewed set, when an entry is a glob, or when a global repository appears. The approved set is duplicated in the test on purpose, so widening the surface changes a test rather than only a config file.Each guard was verified to actually fire:
Prerequisite confirmed
#98 flagged
agent-composeinside the release image as unverified, and the whole build-time bundling approach depends on it. It is present:docker/dev-base/install-common.shinstalls it to/usr/local/bin/agent-composewith a SHA256 check and anacomposesymlink, andverify-common.shassertsagent-compose versionruns. Build-time bundling is viable.Verified from the image sources rather than by running the image, since no Docker daemon was available.
Not in this PR
The compose request, per-role bundles baked into the image, the
SIRENS_DEEP_ROLEselector, inverting the persona validators so the markers become required for Deep and stay forbidden for Echo, and per-role prompt snapshots.Verification
pre-commit run --all-filesexit 0,go vet, andgo test -count=1 ./...all pass.