Summary
Add a new "generic agent" target architecture to the Skill Builder (and ideally the Automation Builder) that has no knowledge of any specific internal tools. Selecting it should produce a portable, tool-agnostic SKILL.md that doesn't assume any single agent's native toolset.
Motivation
Today every target architecture is backed by a static capability catalogue of that agent's native/internal tools, and the builder deliberately generates a "native-tool-first" skill that prefers those tools:
scout → workiq_*, browser, files, built-in skills (electron/skillbuilder/scout-catalog.ts)
cowork → Teams/Outlook/Calendar/SharePoint, etc. (electron/skillbuilder/cowork-catalog.ts)
That's ideal when the destination agent is known, but it makes the output non-portable: a Scout- or Cowork-targeted skill references tools an arbitrary agent doesn't have. There's currently no way to record a task once and get a neutral skill you can hand to an unknown/third-party agent.
Proposed behavior
- New
SkillArchitecture value, e.g. "generic", added to the enum and to ARCHITECTURES in common/skill.ts (enabled, with an explanatory note).
- Instead of an internal-tool catalogue, the generic target uses an empty/neutral capability catalogue: no
workiq_*, no Scout/Cowork built-ins, no product-specific tool names.
- The builder generalizes steps in portable terms only — plain natural-language actions and, at most, universally-available primitives (shell, filesystem, HTTP/REST, a generic browser) — so any agent can execute it.
catalogueFor("generic") must return a (neutral) catalogue so the builder gate in electron/skillbuilder/builder.ts ("That target architecture isn't available yet…") passes.
Scope / touch points
common/skill.ts — enum + ARCHITECTURES selector metadata.
electron/skillbuilder/ — new neutral generic-catalog.ts, wire into catalogueFor, plus a preamble/tail that explicitly forbids referencing product-specific tools.
electron/automationbuilder/ — parallel support, or explicitly scope this issue to skills-only first (automations are Scout-only today).
- The renderer architecture selector should pick up the new enabled option automatically from
ARCHITECTURES.
Acceptance criteria
- "Generic agent" appears as an enabled target in the architecture selector.
- Building a skill against it yields a
SKILL.md with no product-specific internal tool names (e.g. no workiq_*, no Scout/Cowork built-in skill names).
- The generated steps remain runnable in principle by an agent that only has generic shell / browser / HTTP / file capabilities.
- Existing Scout and Cowork targets are unchanged.
Open questions
- Should "generic" permit a minimal common-denominator primitive set (shell/browser/HTTP/files), or be pure natural language with zero tool assumptions?
- Skills-only for v1, or include automations in the same change?
Summary
Add a new "generic agent" target architecture to the Skill Builder (and ideally the Automation Builder) that has no knowledge of any specific internal tools. Selecting it should produce a portable, tool-agnostic
SKILL.mdthat doesn't assume any single agent's native toolset.Motivation
Today every target architecture is backed by a static capability catalogue of that agent's native/internal tools, and the builder deliberately generates a "native-tool-first" skill that prefers those tools:
scout→workiq_*, browser, files, built-in skills (electron/skillbuilder/scout-catalog.ts)cowork→ Teams/Outlook/Calendar/SharePoint, etc. (electron/skillbuilder/cowork-catalog.ts)That's ideal when the destination agent is known, but it makes the output non-portable: a Scout- or Cowork-targeted skill references tools an arbitrary agent doesn't have. There's currently no way to record a task once and get a neutral skill you can hand to an unknown/third-party agent.
Proposed behavior
SkillArchitecturevalue, e.g."generic", added to the enum and toARCHITECTURESincommon/skill.ts(enabled, with an explanatory note).workiq_*, no Scout/Cowork built-ins, no product-specific tool names.catalogueFor("generic")must return a (neutral) catalogue so the builder gate inelectron/skillbuilder/builder.ts("That target architecture isn't available yet…") passes.Scope / touch points
common/skill.ts— enum +ARCHITECTURESselector metadata.electron/skillbuilder/— new neutralgeneric-catalog.ts, wire intocatalogueFor, plus a preamble/tail that explicitly forbids referencing product-specific tools.electron/automationbuilder/— parallel support, or explicitly scope this issue to skills-only first (automations are Scout-only today).ARCHITECTURES.Acceptance criteria
SKILL.mdwith no product-specific internal tool names (e.g. noworkiq_*, no Scout/Cowork built-in skill names).Open questions