agent-compose: scope-based inclusion (machine x source scope intersection) #137

Closed
opened 2026-06-03 22:18:35 +00:00 by coilysiren · 1 comment
Owner

🤖 Filed by Claude Code on Kai's behalf.

Parent

#134

What to build

Machine config declares scope tags; each AGENTS.COMPOSE.md declares its own scopes; a source is included in the composed output only when the machine's scopes intersect the source's scopes. This is the many-to-many filter that makes one composed file correct on every machine.

Canonical test matrix (from #134's compat-matrix comment) - the implementation must reproduce this exactly:

  • scopes pool: kai-public (always-global), work, kai-private, eco
  • work-mac {work, kai-public} -> composed = kai-public + work sources
  • personal-mac {kai-public, kai-private} -> composed = kai-public + kai-private sources
  • personal-windows (Eco box) {kai-public, eco} -> composed = kai-public + eco sources

kai-public is the only scope shared by all three machines, so it is the always-global rung.

Acceptance criteria

  • Machine config declares scope tags
  • Each AGENTS.COMPOSE.md declares its scopes
  • Source included iff machine-scopes intersect source-scopes
  • The 3x4 compat matrix above is covered by tests, asserting exact composed membership per machine
  • A source whose scopes do not intersect is excluded from composed.md

Blocked by

🤖 Filed by Claude Code on Kai's behalf.

> 🤖 Filed by Claude Code on Kai's behalf. ## Parent #134 ## What to build Machine config declares scope tags; each `AGENTS.COMPOSE.md` declares its own scopes; a source is included in the composed output only when the machine's scopes intersect the source's scopes. This is the many-to-many filter that makes one composed file correct on every machine. **Canonical test matrix** (from #134's compat-matrix comment) - the implementation must reproduce this exactly: - scopes pool: `kai-public` (always-global), `work`, `kai-private`, `eco` - work-mac `{work, kai-public}` -> composed = kai-public + work sources - personal-mac `{kai-public, kai-private}` -> composed = kai-public + kai-private sources - personal-windows (Eco box) `{kai-public, eco}` -> composed = kai-public + eco sources `kai-public` is the only scope shared by all three machines, so it is the always-global rung. ## Acceptance criteria - [ ] Machine config declares scope tags - [ ] Each `AGENTS.COMPOSE.md` declares its scopes - [ ] Source included iff machine-scopes intersect source-scopes - [ ] The 3x4 compat matrix above is covered by tests, asserting exact composed membership per machine - [ ] A source whose scopes do not intersect is excluded from `composed.md` ## Blocked by - Blocked by #136 > 🤖 Filed by Claude Code on Kai's behalf.
coilysiren changed title from agent-meld: scope-based inclusion (machine x source scope intersection) to agent-compose: scope-based inclusion (machine x source scope intersection) 2026-06-03 22:31:37 +00:00
Author
Owner

🤖 Filed by Claude Code on Kai's behalf.

Scope-based inclusion landed in cd51130 (pushed to GitHub origin; closing across the GitHub->Forgejo boundary). Machine declares scopes, each AGENTS.COMPOSE.md declares scopes in YAML frontmatter (stripped from output), source composes iff the sets intersect. Filtering opt-in (no scopes => compose all); untagged source dropped under filtering; zero-match is a hard error. Canonical 3-machine matrix covered by parametrized tests. Also renamed the output to COMPOSED.md. 31 composer tests green (121 total).

🤖 Filed by Claude Code on Kai's behalf.

> 🤖 Filed by Claude Code on Kai's behalf. Scope-based inclusion landed in `cd51130` (pushed to GitHub origin; closing across the GitHub->Forgejo boundary). Machine declares `scopes`, each AGENTS.COMPOSE.md declares `scopes` in YAML frontmatter (stripped from output), source composes iff the sets intersect. Filtering opt-in (no `scopes` => compose all); untagged source dropped under filtering; zero-match is a hard error. Canonical 3-machine matrix covered by parametrized tests. Also renamed the output to `COMPOSED.md`. 31 composer tests green (121 total). > 🤖 Filed by Claude Code on Kai's behalf.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/agentic-os#137
No description provided.