The design role glob "*design*" over-selects by substring and did so silently #1134

Open
opened 2026-08-18 22:29:53 +00:00 by coilyco-ops · 0 comments
Member

.agents/roles.kdl binds the design role with composed-skill "*design*". That substring-matches anywhere in a name, so any source with "design" inside it joins every design bundle without anyone choosing it.

This already misfired once. A Temporal brand source authored as tooling-designer-temporal-brand was swept into the design role purely because "designer" contains "design". It was intended for one lane and reached a role bundle instead. Nothing warned about it, because a glob that matches is a success. It was caught by reading the file, not by a check.

The failure mode is silent over-selection, which is the harder direction. An unmatched pattern is loud in the sirens-echo expander and an over-matched one is not loud anywhere.

Proposal

Replace the bare "*design*" with patterns that say what they mean:

composed-skill design-system
composed-skill "design-*"
composed-skill "kai-design-*"

Anything else wanting the design role gets named or gets a real prefix. That converts a silent mis-scope into an explicit decision at authoring time.

Check first

Confirm the replacement still selects everything "*design*" selects today across both catalogues, since agentic-os-kai's design role also carries kai-design-* and the two interact. The change should be a no-op for current members and only narrow what future names can reach.

Worth considering alongside

Other broad globs in this file are worth the same read, particularly where a category prefix and a role glob overlap. *design* is the one with a known incident, so it is the one to fix first.

`.agents/roles.kdl` binds the design role with `composed-skill "*design*"`. That substring-matches anywhere in a name, so any source with "design" inside it joins every design bundle without anyone choosing it. This already misfired once. A Temporal brand source authored as `tooling-designer-temporal-brand` was swept into the design role purely because "designer" contains "design". It was intended for one lane and reached a role bundle instead. Nothing warned about it, because a glob that matches is a success. It was caught by reading the file, not by a check. The failure mode is silent over-selection, which is the harder direction. An unmatched pattern is loud in the sirens-echo expander and an over-matched one is not loud anywhere. ## Proposal Replace the bare `"*design*"` with patterns that say what they mean: ``` composed-skill design-system composed-skill "design-*" composed-skill "kai-design-*" ``` Anything else wanting the design role gets named or gets a real prefix. That converts a silent mis-scope into an explicit decision at authoring time. ## Check first Confirm the replacement still selects everything `"*design*"` selects today across both catalogues, since agentic-os-kai's design role also carries `kai-design-*` and the two interact. The change should be a no-op for current members and only narrow what future names can reach. ## Worth considering alongside Other broad globs in this file are worth the same read, particularly where a category prefix and a role glob overlap. `*design*` is the one with a known incident, so it is the one to fix first.
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#1134
No description provided.