Add a "generic agent" target architecture - #38
Open
karimad wants to merge 1 commit into
Open
Conversation
Adds a portable Skill Builder target with a neutral capability catalogue that names no product-specific tool IDs (no workiq_*, no m365_*, no named browser-tool suite) — only universal primitives every agent has in some form: a shell, file read/write/search, and HTTP fetch. This lets a recording be turned into a SKILL.md that works on any destination agent, not just Scout or Cowork. Wires "generic" into the SkillArchitecture enum, the ARCHITECTURES/ TARGETS UI metadata, and catalogueFor(); also fixes the SkillBuilderView reopen-placement inference in Library.tsx, which special-cased "cowork" and would have silently classified a reopened generic skill as installable even though only Scout has a live skills folder. Adds github-issue-triage-generic to the skill-builder eval suite, cloning the existing gh-vs-browser scenario onto the generic architecture with a rubric that forbids any vendor-specific tool name. Ran against the real Copilot CLI builder: 100% pass, the plan generalizes to gh CLI shell steps with no product-specific tool references.
Author
|
@microsoft-github-policy-service agree |
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
Implements the "generic agent" target proposed in #19: a portable Skill Builder target whose capability catalogue names no product-specific tool IDs (no
workiq_*, nom365_*, no named browser-tool suite) — only universal primitives every agent has in some form (a shell, file read/write/search, HTTP fetch). A recording built against this target yields aSKILL.mdthat isn't tied to Scout or Cowork.electron/skillbuilder/generic-catalog.ts— the neutral catalogue + preamble/tail instructing the builder to translate any product-specific recorded action (Teams/SharePoint/Outlook, etc.) to the closest universal primitive, or flag it explicitly rather than inventing a tool name for it."generic"intoSkillArchitecture,ARCHITECTURES,TARGETS(common/skill.ts) andcatalogueFor()(electron/skillbuilder/scout-catalog.ts), following the same pattern asscout/coworktoday.src/Library.tsx's reopen-placement inference, which special-cased"cowork"for export-vs-install and would have silently classified a reopened generic skill as installable (only Scout has a live skills folder).github-issue-triage-genericto the skill-builder eval suite (evals/skillbuilder/scenarios.ts), cloning the existing gh-vs-browser scenario onto the generic architecture with a rubric forbidding any vendor-specific tool name.Scoped to skills only, per #19 — automations remain Scout-only, unchanged.
Not implementing #20 (the registry externalization) here — this follows the existing
scout/coworkpattern (enum + UI array +catalogueForswitch) rather than introducing the proposed registry, so it's additive and doesn't block or conflict with #20 landing separately.Test plan
npm run typecheck— cleannpm run typecheck:evals— cleannpm run eval:skill -- --only=github-issue-triage-generic— 100% pass against the real Copilot CLI builder; the generated plan usesghCLI shell steps with zero product-specific tool referencesnpm run eval:skillsuite — no regressions (one pre-existing scenario's flakiness reproduced independent of this change and passed on rerun)SKILL.md, installed it into Claude Code's skills directory, and successfully invoked it there — confirming the output is usable by an unrelated destination agent, not just Scout/CoworkRelated: #19, #20