Skip to content

feat: add generic Agent Skill export target - #47

Merged
adilei merged 4 commits into
release/0.4.0from
adilei-agent-skill-target
Aug 6, 2026
Merged

feat: add generic Agent Skill export target#47
adilei merged 4 commits into
release/0.4.0from
adilei-agent-skill-target

Conversation

@adilei

@adilei adilei commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

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, and requireTargetPlacement APIs from #44 do the rest.

Base branch is release/0.4.0 per repo policy (ongoing work lands on the current release branch, not main).

Changes

  • common/architecture-registry.ts — register the agent-skill architecture in ARCHITECTURE_MANIFEST, placed before copilot-studio so enabled targets group together. Single skill target, enabled: true, placements: ["export"]. Label is sentence-case "Agent skill"; the target note (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 architecture note). installTargetLabel is "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 on cowork-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 via import.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-enabled agent-skill target has a payload in the relevant tests, update the copilot-studio unavailable-error copy to Choose 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 test76 passed, 0 failed
  • npm run build — succeeds and prints Catalogue 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 (version 2026-08-06).

adilei and others added 4 commits August 6, 2026 11:08
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>
@adilei
adilei merged commit fbddf78 into release/0.4.0 Aug 6, 2026
5 checks passed
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant