Skip to content

feat(sync): curate skills client destinations - #501

Merged
christso merged 4 commits into
perf/package-sizefrom
feat/skills-clients
Sep 21, 2026
Merged

christso merged 4 commits into
perf/package-sizefrom
feat/skills-clients

Conversation

@christso

@christso christso commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

Summary

AllAgents now syncs Skills destinations only for AI coding clients instead of accepting every entry in the upstream registry. The registry keeps existing rich-client capabilities and compatibility aliases, while explicit exclusion and native-capability contracts make future updates classify every destination and install mode accurately.

Goose is the intentional exception to the pinned skills@1.7.0 paths: current Goose releases define .agents/skills/ as the canonical project and user destination, while .goose/skills/ remains backward-compatible discovery only.

This is the second layer of the stack and depends on #500.

Coverage

Registry property Result
Canonical client IDs 75
Skills 1.7 destination IDs classified 79
Supported directly or by alias 73
Intentionally excluded 6
User-capable canonical clients 74
Public compatibility aliases 7
Project-only clients 1 (eve)
Newly added Skills destinations 49

The upstream accounting test records why these non-agent platforms are excluded:

  • astrbot: messaging chatbot platform
  • inference-sh: general agent application platform
  • loaf: coding-agent workflow harness
  • mcpjam: MCP testing and evaluation platform
  • promptscript: agent configuration compiler
  • tinycloud: video and image agent

The original 26 client mappings retain their existing names and project/user paths. New destinations are skill-only unless AllAgents already has evidence for agents, commands, hooks, MCP, native install, or profile support.

Aliases canonicalize at schema boundaries:

  • claude-code -> claude
  • github-copilot -> copilot
  • gemini-cli -> gemini
  • droid -> factory
  • amp -> ampcode
  • kiro-cli -> kiro
  • kimi-code-cli -> kimi

Native installation

Native installation is capability- and scope-aware rather than implied for every listed client:

  • Project scope: Claude, Pi, and OMP.
  • User scope: Claude, GitHub Copilot, Codex, Pi, and OMP.
  • All other clients remain file-install only.

Codex now uses its existing CodexNativeClient through the ordinary user-workspace sync path. The source and published JSON Schemas reject unsupported :native shorthand and object forms before sync. An invariant test keeps registry capability declarations aligned with executable native adapters and their scope support.

Validation

bun run build
bun run typecheck
bun run lint
bun test
bun run test:e2e
bun run schema:check
bun run package:check

Observed results across the stack:

  • 2,002 unit tests passed; 7 skipped; 0 failed.
  • 208 E2E tests passed; 4 skipped; 0 failed.
  • TypeScript, Biome, build, generated-schema, and package-artifact checks passed.
  • A direct planning smoke parsed codex:native in a user workspace and produced nativeClients: ["codex"] with no errors.
  • A built-CLI smoke with clients: [promptscript] failed workspace validation at clients.0, confirming excluded destinations are rejected at the public config boundary.

Real Goose 1.51.0 smoke steps:

  1. Create a local plugin at $PLUGIN/skills/goose-agents-trial/SKILL.md.
  2. Create .allagents/workspace.yaml with that plugin, syncMode: copy, and client goose.
  3. Run the built CLI from a temporary workspace with isolated home and config directories.
  4. Confirm .agents/skills/goose-agents-trial/SKILL.md exists and no .goose/skills/ output is created.
  5. Run goose skills list from the workspace.
  6. Confirm Goose lists goose-agents-trial at .agents/skills/goose-agents-trial.

The smoke used no model credentials and disabled Goose telemetry. The temporary installation and workspace were removed afterward.

Post-Deploy Monitoring & Validation

No additional operational monitoring is required because this changes deterministic filesystem destinations and schema validation only.

  • Run one project sync with goose; confirm skills land in .agents/skills/.
  • Run goose skills list; confirm each synced skill is discovered once.
  • Validate a workspace containing one excluded destination; confirm it is rejected before sync.
  • Validate supported and unsupported native client/scope combinations against the published schemas.
  • Treat fresh .goose/skills/ output or acceptance of an unsupported client capability as a rollback trigger.
  • Roll back by reverting this PR. The package optimization in perf(package): cut published package size #500 can remain deployed independently.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 20, 2026

Copy link
Copy Markdown

Deploying allagents with  Cloudflare Pages  Cloudflare Pages

Latest commit: d36791a
Status: ✅  Deploy successful!
Preview URL: https://8e057f48.allagents.pages.dev
Branch Preview URL: https://feat-skills-clients.allagents.pages.dev

View logs

@christso
christso added this pull request to stack #502 September 20, 2026 14:34
@christso christso changed the title feat(sync): match skills client destinations feat(sync): match skills client destination coverage Sep 20, 2026
@christso christso changed the title feat(sync): match skills client destination coverage feat(sync): curate skills client destinations Sep 21, 2026
@christso
christso merged commit ab3ece5 into main Sep 21, 2026
8 checks passed
@christso
christso deleted the feat/skills-clients branch September 21, 2026 01:31
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