feat: add generic Agent Skill export target - #47
Merged
Conversation
Add an "Agent Skill" build target for any AI agent with skill support: a generic, export-only architecture with no host-specific tools. Built on the data-driven placement refactor (PR #44) so it is pure manifest + catalogue data. - Register the "agent-skill" architecture in ARCHITECTURE_MANIFEST (before copilot-studio), enabled with a single export-only skill target. - Add electron/architectures/catalogues/agent-skill-catalogue.ts, a static versioned catalogue that lists only portable capabilities (files, shell/CLIs, HTTP APIs) and no proprietary/native tools. Auto-registered via import.meta.glob. - Update the registry and catalogue-registry tests to cover the new target, including a deterministic SHA-256 lock of the catalogue content. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Address review feedback on the Agent skill target: - Use sentence case "Agent skill" for the architecture and target labels, the enabledArchitectureLabels test, the copilot-studio unavailable-error copy, and the catalogue prose line, for consistency with the rest of the UI. - Set the architecture note to "Any AI agent that supports skills — portable, with no host-specific tools." - Recompute the catalogue SHA-256 lock after the prose edit (version unchanged). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The build picker tile renders the TARGET's note (src/Library.tsx maps TARGETS → .arch-note), so put the concise, responsibility-aware copy on the skill target's note (and mirror it on the architecture note for consistency): "Any skill-capable agent. Not tuned to specific tools — you verify it can perform the tasks." Note-only change: no test assertions or catalogue SHA are affected. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Replace the em dash with a period so the note reads as two clean sentences: "Any skill-capable agent. Not tuned to specific tools. You verify it can perform the tasks." Applied to both the architecture and target notes. Note-only change: no test assertions or catalogue SHA affected. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This was referenced Aug 6, 2026
Karim Mehalebi (karimad)
added a commit
to karimad/skill-recorder-2
that referenced
this pull request
Aug 6, 2026
microsoft#47 added the "agent-skill" (generic) architecture but only covered it with structural/manifest tests (architecture-registry.test.ts, catalogue-registry.test.ts) — nothing exercises the real builder LLM against the new catalogue the way the skillbuilder eval suite does for scout/cowork. Adds two scenarios: - github-issue-triage-agent-skill: clones github-issue-triage-skill onto architecture: "agent-skill". Requires the gh CLI (a universal primitive) while forbidding any vendor-specific tool name. Ran against the real Copilot CLI builder: 100% pass — generalizes to gh CLI shell steps with zero product-specific references. - teams-digest-agent-skill: clones cowork-teams-digest onto architecture: "agent-skill" — a harder case, since there's no CLI at all for Teams. Confirms the builder doesn't invent a plausible- sounding native tool name when none exists in the catalogue; instead it correctly falls back to documented Microsoft Graph HTTP calls via curl. Ran against the real builder: 100% pass. Both scenarios are additive only; no production code changed.
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.
Summary
Adds a new "Agent skill" build target to skill-recorder: a generic, export-only architecture with no host-specific tools, for any AI agent that supports skills.
This is a purely data-driven addition enabled by the placement refactor in #44 (now on
release/0.4.0). No new branching logic is needed — the target is expressed entirely through the architecture manifest plus a static catalogue, and the enabled-target → catalogue coverage invariant,placements,installTargetLabel, andrequireTargetPlacementAPIs from #44 do the rest.Changes
common/architecture-registry.ts— register theagent-skillarchitecture inARCHITECTURE_MANIFEST, placed beforecopilot-studioso enabled targets group together. Singleskilltarget,enabled: true,placements: ["export"]. Label is sentence-case "Agent skill"; the targetnote(rendered in the build-picker tile) is responsibility-aware: "Any skill-capable agent. Not tuned to specific tools — you verify it can perform the tasks." (mirrored on the architecturenote).installTargetLabelis"your agent"— never surfaced (export-only) but kept non-blank to satisfy the manifest invariant.electron/architectures/catalogues/agent-skill-catalogue.ts(new) — a static, versioned catalogue (2026-08-06) modelled oncowork-catalogue.ts. It starts with the required# Target:heading and deliberately lists only portable capabilities (files, shell/CLIs, documented HTTP APIs) — no proprietary/native tools. Auto-registered viaimport.meta.glob(no wiring edits).common/architecture-registry.test.ts— extend the manifest enumeration assertions (SkillArchitecture.options,ARCHITECTURES,TARGETS,enabledArchitectureLabels("skill")) to include the new target.electron/architectures/catalogue-registry.test.ts— add the real + mock providers, ensure the default manifest's now-enabledagent-skilltarget has a payload in the relevant tests, update the copilot-studio unavailable-error copy toChoose Scout, Cowork, or Agent skill, and add a version + SHA-256 lock (27cb863e…8810) mirroring the cowork assertion.Validation (all green)
npm run typecheck— passes (exit 0)npm test— 76 passed, 0 failednpm run build— succeeds and printsCatalogue bundle boundary verified.(catalogue content is confirmed to stay out of the renderer bundle and present in the Electron bundle)The catalogue SHA-256 was computed from the actual file (not a pasted value) and matches the locked hash:
27cb863efb3fe973d3b7d4e24359cf5297c1b30fdbc29c073878b57a6d5d8810(version2026-08-06).