Add per-agent skills binding (step 1: data model, all agents default to all skills) - #140
Merged
Merged
Conversation
Introduce the data model for binding skills to agents. Every agent in the catalog now carries an explicit `skills` list defaulting to the full set of 23 skill IDs (union of certified + managed skills from deployer/skill_catalog.py). Adds ALL_SKILL_IDS, a getAgentSkills helper, and tests. No runtime behavior changes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1fe75171-fea2-45ef-9401-bf8a4ea0f2ba
This was referenced Jul 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is step 1 of a multi-step feature to hide the Skills concept behind agents (agent ↔ skills binding).
What this adds (data model only)
ALL_SKILL_IDSindesktop/src/agent-catalog.ts— the complete, alphabetically-sorted union of the 23 skill IDs (17 certified/bundled + 6 managed), kept in sync withdeployer/skill_catalog.py.skills: readonly string[]field onAgentCatalogEntry. Every one of the 8 agents defaults to the full explicit skill list ([...ALL_SKILL_IDS]— its own array instance, no sentinel).getAgentSkills(agentId)helper returning the agent's skills, or[]for an unknown id.desktop/src/agent-catalog.test.tscovering the ID set (sorted, no dupes, count), per-agent binding, array-instance isolation, and the resolver helper.What this does NOT do
No runtime behavior changes: gateway,
config.skillsapplication,agent-personas.ts,main.ts, and the renderer are all untouched. Later steps will wire the binding into runtime skill enable/disable.Validation
npm test(desktop): 671 passed, including 5 new tests.npx tsc --noEmit: clean.desktop/src/main.tsand unrelated to this change.