diff --git a/MANIFEST-MATRIX.md b/MANIFEST-MATRIX.md
index 3aa7b44..1b59736 100644
--- a/MANIFEST-MATRIX.md
+++ b/MANIFEST-MATRIX.md
@@ -30,34 +30,34 @@ manifest and run the script — it updates every location automatically.
| token | path | current_value |
| --- | --- | --- |
-| agent_count | apps.json:18 | 87 |
-| agent_count | apps.json:19 | 87 |
-| agent_count | apps.json:40 | 87 |
-| agent_count | docs/agents.md:99 | 87 |
-| agent_count | docs/commands/agents.md:47 | 87 |
-| agent_count | docs/commands/agents.md:71 | 87 |
-| agent_count | docs/commands/agents.md:79 | 87 |
-| agent_count | docs/commands/doctor.md:25 | 87 |
-| agent_count | docs/commands/doctor.md:60 | 87 |
-| agent_count | docs/commands/doctor.md:77 | 87 |
-| agent_count | docs/comparison.md:10 | 87 |
-| agent_count | docs/guides/getting-started.md:18 | 87 |
-| verified_count | docs/guides/getting-started.md:18 | 27 |
-| agent_count | docs/index.md:7 | 87 |
-| verified_count | docs/index.md:7 | 27 |
-| agent_count | docs/index.md:38 | 87 |
-| verified_count | docs/index.md:38 | 27 |
-| agent_count | docs/migration-from-skills.md:10 | 87 |
-| agent_count | docs/migration-from-skills.md:54 | 87 |
-| agent_count | docs/reference.md:218 | 87 |
-| agent_count | package.json:4 | 87 |
-| agent_count | README.md:9 | 87 |
-| verified_count | README.md:9 | 27 |
-| verified_count | README.md:54 | 27 |
-| agent_count | README.md:90 | 87 |
-| agent_count | SKILL.md:5 | 87 |
-| verified_count | SKILL.md:5 | 27 |
-| agent_count | SKILL.md:10 | 87 |
-| verified_count | SKILL.md:10 | 27 |
-| agent_count | SKILL.md:86 | 87 |
-| verified_count | SKILL.md:86 | 27 |
+| agent_count | apps.json:18 | 90 |
+| agent_count | apps.json:19 | 90 |
+| agent_count | apps.json:40 | 90 |
+| agent_count | docs/agents.md:102 | 90 |
+| agent_count | docs/commands/agents.md:47 | 90 |
+| agent_count | docs/commands/agents.md:71 | 90 |
+| agent_count | docs/commands/agents.md:79 | 90 |
+| agent_count | docs/commands/doctor.md:25 | 90 |
+| agent_count | docs/commands/doctor.md:60 | 90 |
+| agent_count | docs/commands/doctor.md:77 | 90 |
+| agent_count | docs/comparison.md:10 | 90 |
+| agent_count | docs/guides/getting-started.md:18 | 90 |
+| verified_count | docs/guides/getting-started.md:18 | 34 |
+| agent_count | docs/index.md:7 | 90 |
+| verified_count | docs/index.md:7 | 34 |
+| agent_count | docs/index.md:38 | 90 |
+| verified_count | docs/index.md:38 | 34 |
+| agent_count | docs/migration-from-skills.md:10 | 90 |
+| agent_count | docs/migration-from-skills.md:54 | 90 |
+| agent_count | docs/reference.md:218 | 90 |
+| agent_count | package.json:4 | 90 |
+| agent_count | README.md:9 | 90 |
+| verified_count | README.md:9 | 34 |
+| verified_count | README.md:54 | 34 |
+| agent_count | README.md:90 | 90 |
+| agent_count | SKILL.md:5 | 90 |
+| verified_count | SKILL.md:5 | 34 |
+| agent_count | SKILL.md:10 | 90 |
+| verified_count | SKILL.md:10 | 34 |
+| agent_count | SKILL.md:86 | 90 |
+| verified_count | SKILL.md:86 | 34 |
diff --git a/README.md b/README.md
index 61aff25..5922c65 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
The Security-First Skill Manager for AI Agents
- Static security scoring before any skill is installed · Skills & MCP Servers across 87 Agents (27 Verified)
+ Static security scoring before any skill is installed · Skills & MCP Servers across 90 Agents (34 Verified)
Zero-dependency CLI · No signup · No marketplace required
@@ -51,7 +51,7 @@
- ⚡ Zero dependencies · 🤖 27 verified agents · 🔌 Skills + MCP · 🔒 Security scoring · 📝 Skill testing · 🔧 Init templates · 🌐 No marketplace required
+ ⚡ Zero dependencies · 🤖 34 verified agents · 🔌 Skills + MCP · 🔒 Security scoring · 📝 Skill testing · 🔧 Init templates · 🌐 No marketplace required
---
@@ -87,7 +87,7 @@ rolecraft setup user/repo
- **Zero dependencies** — only Node.js built-ins, nothing to audit
- **Any source** — local folder, GitHub/GitLab/SSH URL, npm package
-- **87 agents** — opencode, claude-code, cursor, copilot, aider, oh-my-pi, and more
+- **90 agents** — opencode, claude-code, cursor, copilot, aider, oh-my-pi, and more
- **No registry required** — works fully without a marketplace
- **Security scoring** — static analysis before every install: prompt injection, command injection, obfuscated code, credential harvesting. Scores 0–100. It is a regex linter, not a policy engine — [what it does not catch](docs/security.md#what-this-does-not-catch)
- **CI-ready** — lockfile-based re-install (`rolecraft ci`), `--yes` flag, `--dry-run`
diff --git a/SKILL.md b/SKILL.md
index da1b778..33d0106 100644
--- a/SKILL.md
+++ b/SKILL.md
@@ -2,12 +2,12 @@
name: rolecraft
description: >-
Install AI agent skills as roles & behaviors from any source — local folder,
- GitHub, GitLab, SSH git URL. Zero-dependency CLI with 87 agent targets (27 verified).
+ GitHub, GitLab, SSH git URL. Zero-dependency CLI with 90 agent targets (34 verified).
---
# rolecraft
-Install and manage AI agent skills across 87 agents (27 verified) with a single command. Zero dependencies. No registry required.
+Install and manage AI agent skills across 90 agents (34 verified) with a single command. Zero dependencies. No registry required.
## When to use
@@ -83,7 +83,7 @@ npx rolecraft convert ./my-skill
| `--symlink` | Symlink instead of copy |
| `--global` / `--project` | Scope selection |
-## Supported agents (87 total · 27 verified)
+## Supported agents (90 total · 34 verified)
`opencode`, `claude-code`, `cursor`, `windsurf`, `devin`, `codex`, `copilot`, `aider`, `cline`, `gemini-cli`, `cody`, `continue`, `warp`, `codeium`, `fabric`, `goose`, `tabnine`, `supermaven`, `pr-pilot`, `loom`, `roo`, `trae`, `hermes`, `kiro`, `augment`, `kilo`, `openhands`, `junie`, `factory`, `command-code`, `cortex`, `mistral-vibe`, `qwen-code`, `openclaw`, `codebuddy`, `mux`, `pi`, `omp (oh-my-pi)`, `autohand-code`, `rovo-dev`, `firebender`, `ibm-bob`, `aider-desk`, and 45 more.
diff --git a/apps.json b/apps.json
index d86b339..eaac337 100644
--- a/apps.json
+++ b/apps.json
@@ -15,8 +15,8 @@
"id": "rolecraft",
"name": "RoleCraft",
"subtitle": "The package manager for AI agents",
- "description": "Install, test, publish, and manage skills & MCP servers across 87 agents. Zero-dependency CLI.",
- "longDescription": "RoleCraft is a zero-dependency Node.js CLI that serves as the package manager for AI agent skills. Install skills from any source, test them, publish to a central registry, and manage MCP servers — all from a single tool. Compatible with 87 AI coding agents including Claude Code, Cursor, Codex, OpenCode, Windsurf, Oh My Pi, and more.",
+ "description": "Install, test, publish, and manage skills & MCP servers across 90 agents. Zero-dependency CLI.",
+ "longDescription": "RoleCraft is a zero-dependency Node.js CLI that serves as the package manager for AI agent skills. Install skills from any source, test them, publish to a central registry, and manage MCP servers — all from a single tool. Compatible with 90 AI coding agents including Claude Code, Cursor, Codex, OpenCode, Windsurf, Oh My Pi, and more.",
"icon": "https://raw.githubusercontent.com/rolecraft-sh/rolecraft/main/assets/rolecraft_logo.png",
"iconEmoji": "📦",
"iconStyle": {
@@ -37,7 +37,7 @@
"Install skills from GitHub, URLs, or local paths",
"Central skill registry with schema validation",
"MCP server management — install, verify, and run",
- "Compatible with 87 AI agents (Claude Code, Cursor, Codex, OpenCode, Oh My Pi...)",
+ "Compatible with 90 AI agents (Claude Code, Cursor, Codex, OpenCode, Oh My Pi...)",
"GitHub Action for CI/CD integration",
"Skill testing and verification built-in",
"Profile system for team collaboration"
diff --git a/docs/agents.md b/docs/agents.md
index 0191c23..c01dd0b 100644
--- a/docs/agents.md
+++ b/docs/agents.md
@@ -55,7 +55,7 @@ rolecraft knows where each AI agent looks for skills. When you use a flag like `
| forge | `./.forge/skills/` | verified | - |
| inference-sh | `~/.inferencesh/skills/` | experimental | - |
| jazz | `~/.jazz/skills/` | verified | - |
-| iflow | `~/.iflow/skills/` | experimental | - |
+| iflow | `~/.iflow/skills/` | legacy | - |
| kilo-code | `~/.kilocode/skills/` | experimental | - |
| kode | `~/.kode/skills/` | experimental | - |
| lingma | `~/.lingma/skills/` | verified | - |
@@ -70,21 +70,24 @@ rolecraft knows where each AI agent looks for skills. When you use a flag like `
| zap | `~/.zap/skills/` | experimental | - |
| codeep | `~/.codeep/skills/` | experimental | - |
| kimi-code | `~/.kimi-code/skills/` | experimental | - |
-| zcode | `~/.zcode/skills/` | experimental | - |
+| zcode | `~/.zcode/skills/` | verified | - |
| astrbot | `~/.astrbot/data/skills/` | experimental | - |
| qoder-cn | `~/.qoder-cn/skills/` | community | - |
| trae-cn | `~/.trae-cn/skills/` | experimental | - |
| zenflow | `~/.zenflow/skills/` | experimental | - |
| neovate | `~/.neovate/skills/` | experimental | - |
-| pochi | `~/.pochi/skills/` | experimental | - |
+| pochi | `~/.pochi/skills/` | verified | - |
| adal | `~/.adal/skills/` | experimental | - |
| droid | `~/.droid/skills/` | experimental | - |
| chatgpt | `~/.agents/skills/` | verified | - |
| codearts-agent | `~/.codeartsdoer/skills/` | experimental | - |
| universal | `~/.config/agents/skills/` | experimental | - |
| amp | `~/.config/agents/skills/` | verified | - |
-| antigravity | `~/.agents/skills/` | experimental | - |
-| antigravity-cli | `~/.agents/skills/` | experimental | - |
+| antigravity | `~/.gemini/config/skills/` | verified | - |
+| antigravity-cli | `~/.gemini/antigravity-cli/skills/` | verified | - |
+| grok | `~/.grok/skills/` | verified | - |
+| muse-code | `~/.config/muse/skills/` | verified | mcpServers |
+| posit-assistant | `~/.posit/assistant/skills/` | verified | - |
| deep-agents | `~/.agents/skills/` | experimental | - |
| dexto | `~/.agents/skills/` | experimental | - |
| loaf | `~/.agents/skills/` | experimental | - |
@@ -94,9 +97,9 @@ rolecraft knows where each AI agent looks for skills. When you use a flag like `
> **Support levels:** `verified` — actively tested and maintained; `community` — community-contributed, maintained on best-effort; `legacy` — previous generation, no active development; `experimental` — known to exist, not formally tested.
-> **MCP support:** 8 agent(s) support MCP server configuration. Format: `mcpServers`, `servers`, `experimental.mcpServers`
+> **MCP support:** 9 agent(s) support MCP server configuration. Format: `mcpServers`, `servers`, `experimental.mcpServers`
-> **Agent count:** 87 total — 27 verified, 4 community, 4 legacy, 52 experimental.
+> **Agent count:** 90 total — 34 verified, 4 community, 5 legacy, 47 experimental.
## Notes
@@ -123,9 +126,17 @@ rolecraft knows where each AI agent looks for skills. When you use a flag like `
- **oh-my-pi:** pi fork by can1357; native skills at ~/.omp/agent/skills (user) and .omp/skills (project); also reads ~/.claude/skills, ~/.agents/skills and .github/skills; MCP via standard mcpServers format
- **forge:** ForgeCode by tailcallhq; also reads ~/forge/skills and ~/.agents/skills; project dir has highest precedence
- **jazz:** jazz-ai (lvndry/jazz, not an AWS product); also reads project ./skills
+- **iflow:** iFlow CLI was shut down on 2026-04-17; the vendor directs users to migrate to Qoder
- **lingma:** Also reads project .lingma/skills; renamed to Qoder CN on 2026-05-20
+- **zcode:** ZCode, the GLM coding client. Reads ~/.zcode/skills//SKILL.md and ~/.agents/mcp.json
+- **pochi:** Pochi (TabbyML). Also reads ~/.agents/skills; project .pochi/skills
- **chatgpt:** ChatGPT/Codex share the .agents skills locations; symlinked skill folders honored
- **amp:** amp skill add --global installs to ~/.config/agents/skills; also reads ~/.agents/skills
+- **antigravity:** Antigravity 2.0 and the IDE read ~/.gemini/config/skills; the IDE also accepts legacy ~/.gemini/antigravity/skills. All surfaces share /.agents/skills
+- **antigravity-cli:** Antigravity CLI (agy) has its own global dir, separate from the 2.0/IDE surface; plugin skills at ~/.gemini/antigravity-cli/plugins//skills. Shares /.agents/skills
+- **grok:** Project skills at ./.grok/skills. Reads ~/.agents/skills via AGENTS.md compatibility. MCP lives in ~/.grok/config.toml as [mcp_servers.] (TOML), which rolecraft does not yet write
+- **muse-code:** Muse Code by Meta. Scans ~/.config/muse/skills, ~/.agents/skills, ~/.claude/skills, ~/.codex/skills and project .agents/.codex/.claude/skills. MCP at ~/.config/muse/settings.json under mcpServers
+- **posit-assistant:** Posit Assistant (Positron, RStudio). Also reads ~/.agents/skills; project .posit/assistant/skills. Legacy ~/.positai/
- **replit:** Project-committed .agents/skills only; no user-global skills dir
- **zed:** Flat layout only: skills must be direct children of ~/.agents/skills
diff --git a/docs/commands/agents.md b/docs/commands/agents.md
index 8c557ee..e1314c4 100644
--- a/docs/commands/agents.md
+++ b/docs/commands/agents.md
@@ -44,7 +44,7 @@ $ rolecraft agents
🔍 Agent Capability Manifest
-Total agents: 87
+Total agents: 90
## VERIFIED
@@ -68,7 +68,7 @@ These agents have built-in MCP configuration support:
## Validation
Manifest valid: ✅ Yes
-Agent count: 87
+Agent count: 90
```
```bash
@@ -76,7 +76,7 @@ $ rolecraft agents --json
{
"version": 1,
- "agentCount": 87,
+ "agentCount": 90,
"agents": [
{
"flag": "claude",
diff --git a/docs/commands/doctor.md b/docs/commands/doctor.md
index b4232a7..cb3c75f 100644
--- a/docs/commands/doctor.md
+++ b/docs/commands/doctor.md
@@ -22,7 +22,7 @@ Scans your system and reports on:
- **Lockfile schema** — validates global lockfile format
- **Global & project lockfiles** — skill count per scope
- **Disk usage** — total size of installed skills
-- **Agent detection** — finds installed agents among 87 supported, per-agent skill count and directory permissions
+- **Agent detection** — finds installed agents among 90 supported, per-agent skill count and directory permissions
- **Orphaned skill dirs** — directories not tracked in any lockfile
- **Skill integrity** — verifies skill directories exist, content hashes match, and checks for broken symlinks
- **MCP servers** — counts configured MCP servers across detected agents
@@ -57,7 +57,7 @@ $ rolecraft doctor
✅ Global lockfile 3 skill(s) tracked
⚠️ Project lockfile no project skills
✅ Disk usage 3 skill(s), 12.5 KB total
- ✅ Agent detection 14/87 supported agents detected
+ ✅ Agent detection 14/90 supported agents detected
✅ └ opencode 2 skill(s) [rwx]
✅ └ claude-code 1 skill(s) [rwx]
✅ Orphaned skill dirs none
@@ -74,7 +74,7 @@ $ rolecraft doctor --json
"status": "degraded",
"checks": {
"Node.js version": { "status": "pass", "detail": "v22.0.0" },
- "Agent detection": { "status": "pass", "detail": "14/87 supported agents detected" },
+ "Agent detection": { "status": "pass", "detail": "14/90 supported agents detected" },
"Skill integrity": { "status": "warn", "detail": "3 checked, 1 missing director(ies)" },
"MCP servers": { "status": "warn", "detail": "none configured" }
},
diff --git a/docs/comparison.md b/docs/comparison.md
index 6006cee..a033205 100644
--- a/docs/comparison.md
+++ b/docs/comparison.md
@@ -7,7 +7,7 @@
| | rolecraft | skills (Vercel) | @agentskill.sh/cli |
|---|---|---|---|
| **Runtime** | Zero-dep Node ESM | 1 dep (Node) | 2 deps (TypeScript) |
-| **Agent targets** | **87** | 72 | 15+ |
+| **Agent targets** | **90** | 72 | 15+ |
| **Skill marketplace** | skills.sh (90K+) | agentskill.sh (100K+) | — |
| **Publish your own** | ❌ | ❌ | ❌ |
| **MCP management** | ✅ | ❌ | ❌ |
diff --git a/docs/guides/getting-started.md b/docs/guides/getting-started.md
index 286295e..759f045 100644
--- a/docs/guides/getting-started.md
+++ b/docs/guides/getting-started.md
@@ -15,7 +15,7 @@ A skill is a reusable capability for your AI coding agent. Think of it as a plug
- **Team conventions** — one command sets up every agent on every developer's machine
- **MCP servers** — skills can declare and install MCP servers alongside themselves
-rolecraft manages all of this across **87 AI agents** (27 verified) with a single CLI and **zero runtime dependencies**.
+rolecraft manages all of this across **90 AI agents** (34 verified) with a single CLI and **zero runtime dependencies**.
---
diff --git a/docs/index.md b/docs/index.md
index f8e2323..8542e53 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -4,7 +4,7 @@ layout: home
hero:
name: "RoleCraft"
text: "The Security-First Skill Manager for AI Agents"
- tagline: Security scoring before install · Skills & MCP Servers across 87 Agents (27 Verified)
+ tagline: Security scoring before install · Skills & MCP Servers across 90 Agents (34 Verified)
image:
src: /rolecraft-demo.gif
alt: RoleCraft Demo
@@ -35,4 +35,4 @@ features:
- title: Init Templates
details: "rolecraft init --template scaffolds production-ready skills from pre-built templates. Start fast, ship faster."
- title: Parallel Install
- details: Install skills and MCP servers across all 87 agents (27 verified) simultaneously. Blazing fast, built for scale.
+ details: Install skills and MCP servers across all 90 agents (34 verified) simultaneously. Blazing fast, built for scale.
diff --git a/docs/migration-from-skills.md b/docs/migration-from-skills.md
index 0db6a21..04b8c2e 100644
--- a/docs/migration-from-skills.md
+++ b/docs/migration-from-skills.md
@@ -7,7 +7,7 @@ If you're using [Vercel's `skills` CLI](https://github.com/vercel-labs/skills) a
| Reason | rolecraft | Vercel skills |
|---|---|---|
| Dependencies | **0** (zero-dep) | 1 (`supports-color`) |
-| Agent targets | **87** | 72 |
+| Agent targets | **90** | 72 |
| Telemetry | **None** | Anonymous telemetry |
| Offline installs | **Fully supported** | Requires network |
| Shell completions | bash, zsh, fish | Not available |
@@ -51,7 +51,7 @@ rm ~/.skills-lock.json
## What rolecraft does differently
### More agent targets
-rolecraft supports **87 agents** vs Vercel's 72. This includes newer agents like `augment`, `kilo`, `openhands`, `junie`, `factory`, `command-code`, `oh-my-pi (omp)`, and more.
+rolecraft supports **90 agents** vs Vercel's 72. This includes newer agents like `augment`, `kilo`, `openhands`, `junie`, `factory`, `command-code`, `oh-my-pi (omp)`, and more.
### Any source, not just GitHub
Install from local folders, GitLab, Bitbucket, SSH URLs, or even npm packages — not just GitHub repos.
diff --git a/docs/reference.md b/docs/reference.md
index 79a9cbe..4c583ae 100644
--- a/docs/reference.md
+++ b/docs/reference.md
@@ -215,7 +215,7 @@ Pass any of these to `install`, `setup`, or `profile` to target specific agents:
| `--tiny-cloud` | tiny-cloud | `~/.tinycloud/skills/` |
| `--zencoder` | zencoder | `~/.zencoder/skills/` |
| `--codebuddy` | codebuddy | `~/.codebuddy/skills/` |
-| *(see [full list](agents) for all 87 agents)* | | |
+| *(see [full list](agents) for all 90 agents)* | | |
Combine multiple flags in one command:
diff --git a/package.json b/package.json
index e981d14..273d3c1 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "rolecraft",
"version": "2.5.0",
- "description": "The package manager for AI agents — install, test, publish, and manage skills & MCP servers across 87 agents. Zero-dependency CLI for claude-code, cursor, opencode, omp, and more.",
+ "description": "The package manager for AI agents — install, test, publish, and manage skills & MCP servers across 90 agents. Zero-dependency CLI for claude-code, cursor, opencode, omp, and more.",
"type": "module",
"bin": {
"rolecraft": "bin/rolecraft.js"
diff --git a/src/agents.js b/src/agents.js
index 0d0232b..b52526a 100644
--- a/src/agents.js
+++ b/src/agents.js
@@ -553,7 +553,9 @@ const AGENTS_DATA = [
name: 'iflow',
getDir: () => home('.iflow', 'skills'),
label: '~/.iflow/skills/',
- supportLevel: 'experimental',
+ supportLevel: 'legacy',
+ notes:
+ 'iFlow CLI was shut down on 2026-04-17; the vendor directs users to migrate to Qoder',
},
{
flag: 'kilo-code',
@@ -664,7 +666,13 @@ const AGENTS_DATA = [
name: 'zcode',
getDir: () => home('.zcode', 'skills'),
label: '~/.zcode/skills/',
- supportLevel: 'experimental',
+ skillInstallScope: 'global ~/.zcode/skills',
+ instructionFormat: 'skill-md',
+ supportLevel: 'verified',
+ docUrl: 'https://zcode.z.ai/en/docs/skill',
+ lastVerified: '2026-10-06',
+ notes:
+ 'ZCode, the GLM coding client. Reads ~/.zcode/skills//SKILL.md and ~/.agents/mcp.json',
},
{
flag: 'astrbot',
@@ -706,7 +714,13 @@ const AGENTS_DATA = [
name: 'pochi',
getDir: () => home('.pochi', 'skills'),
label: '~/.pochi/skills/',
- supportLevel: 'experimental',
+ skillInstallScope: 'global ~/.pochi/skills',
+ instructionFormat: 'skill-md',
+ supportLevel: 'verified',
+ docUrl: 'https://docs.getpochi.com/skills',
+ lastVerified: '2026-10-06',
+ notes:
+ 'Pochi (TabbyML). Also reads ~/.agents/skills; project .pochi/skills',
},
{
flag: 'adal',
@@ -766,26 +780,73 @@ const AGENTS_DATA = [
{
flag: 'antigravity',
name: 'antigravity',
- getDir: () => home('.agents', 'skills'),
- label: '~/.agents/skills/',
- skillInstallScope: 'global ~/.agents/skills',
+ getDir: () => home('.gemini', 'config', 'skills'),
+ label: '~/.gemini/config/skills/',
+ skillInstallScope: 'global ~/.gemini/config/skills',
instructionFormat: 'skill-md',
- supportLevel: 'experimental',
- docUrl: 'https://github.com/daniel-e/agents',
- lastVerified: '2026-07-25',
- aliasFor: 'opencode',
+ supportLevel: 'verified',
+ docUrl: 'https://antigravity.google/docs/skills',
+ lastVerified: '2026-10-06',
+ notes:
+ 'Antigravity 2.0 and the IDE read ~/.gemini/config/skills; the IDE also accepts legacy ~/.gemini/antigravity/skills. All surfaces share /.agents/skills',
},
{
flag: 'antigravity-cli',
name: 'antigravity-cli',
- getDir: () => home('.agents', 'skills'),
- label: '~/.agents/skills/',
- skillInstallScope: 'global ~/.agents/skills',
+ getDir: () => home('.gemini', 'antigravity-cli', 'skills'),
+ label: '~/.gemini/antigravity-cli/skills/',
+ skillInstallScope: 'global ~/.gemini/antigravity-cli/skills',
instructionFormat: 'skill-md',
- supportLevel: 'experimental',
- docUrl: 'https://github.com/daniel-e/agents',
- lastVerified: '2026-07-25',
- aliasFor: 'opencode',
+ supportLevel: 'verified',
+ docUrl: 'https://antigravity.google/docs/skills',
+ lastVerified: '2026-10-06',
+ notes:
+ 'Antigravity CLI (agy) has its own global dir, separate from the 2.0/IDE surface; plugin skills at ~/.gemini/antigravity-cli/plugins//skills. Shares /.agents/skills',
+ },
+ {
+ flag: 'grok',
+ name: 'grok',
+ getDir: () => home('.grok', 'skills'),
+ label: '~/.grok/skills/',
+ skillInstallScope: 'global ~/.grok/skills',
+ instructionFormat: 'skill-md',
+ supportLevel: 'verified',
+ docUrl: 'https://docs.x.ai/build/features/skills-plugins-marketplaces',
+ lastVerified: '2026-10-06',
+ notes:
+ 'Project skills at ./.grok/skills. Reads ~/.agents/skills via AGENTS.md compatibility. MCP lives in ~/.grok/config.toml as [mcp_servers.] (TOML), which rolecraft does not yet write',
+ },
+ {
+ flag: 'muse',
+ name: 'muse-code',
+ getDir: () => home('.config', 'muse', 'skills'),
+ label: '~/.config/muse/skills/',
+ skillInstallScope: 'global ~/.config/muse/skills',
+ mcpSupport: {
+ supported: true,
+ format: 'mcpServers',
+ configPath: '~/.config/muse/settings.json',
+ },
+ instructionFormat: 'skill-md',
+ supportLevel: 'verified',
+ docUrl:
+ 'https://meta-models.github.io/muse-code-sdk/next/guides/extend/skills/',
+ lastVerified: '2026-10-06',
+ notes:
+ 'Muse Code by Meta. Scans ~/.config/muse/skills, ~/.agents/skills, ~/.claude/skills, ~/.codex/skills and project .agents/.codex/.claude/skills. MCP at ~/.config/muse/settings.json under mcpServers',
+ },
+ {
+ flag: 'posit',
+ name: 'posit-assistant',
+ getDir: () => home('.posit', 'assistant', 'skills'),
+ label: '~/.posit/assistant/skills/',
+ skillInstallScope: 'global ~/.posit/assistant/skills',
+ instructionFormat: 'skill-md',
+ supportLevel: 'verified',
+ docUrl: 'http://assistant.posit.co/docs/features/skills',
+ lastVerified: '2026-10-06',
+ notes:
+ 'Posit Assistant (Positron, RStudio). Also reads ~/.agents/skills; project .posit/assistant/skills. Legacy ~/.positai/',
},
{
flag: 'deepagents',
diff --git a/src/agents/manifest.test.js b/src/agents/manifest.test.js
index 92cf41e..6c4a6b8 100644
--- a/src/agents/manifest.test.js
+++ b/src/agents/manifest.test.js
@@ -1,6 +1,7 @@
import { describe, it } from 'node:test'
import assert from 'node:assert/strict'
import { readFileSync } from 'node:fs'
+import { homedir } from 'node:os'
import { join, dirname } from 'node:path'
import { fileURLToPath } from 'node:url'
import {
@@ -12,6 +13,7 @@ import {
SUPPORT_LEVELS,
} from './manifest.js'
import { generateAgentsDocs } from '../../scripts/generate-agents-docs.js'
+import AGENTS_DATA from '../agents.js'
import {
getTokenValues,
parseMatrix,
@@ -157,6 +159,53 @@ describe('agent manifest', () => {
)
})
+ // A verified entry is a claim that we read the vendor's page. The path is
+ // the load-bearing half of that claim, so pin the ones that were corrected
+ // against their docs rather than letting a later edit drift back silently.
+ it('records the documented path for agents whose paths were corrected', () => {
+ const expected = {
+ antigravity: {
+ dir: join(homedir(), '.gemini', 'config', 'skills'),
+ docUrl: 'https://antigravity.google/docs/skills',
+ },
+ 'antigravity-cli': {
+ dir: join(homedir(), '.gemini', 'antigravity-cli', 'skills'),
+ docUrl: 'https://antigravity.google/docs/skills',
+ },
+ grok: {
+ dir: join(homedir(), '.grok', 'skills'),
+ docUrl: 'https://docs.x.ai/build/features/skills-plugins-marketplaces',
+ },
+ muse: {
+ dir: join(homedir(), '.config', 'muse', 'skills'),
+ docUrl:
+ 'https://meta-models.github.io/muse-code-sdk/next/guides/extend/skills/',
+ },
+ posit: {
+ dir: join(homedir(), '.posit', 'assistant', 'skills'),
+ docUrl: 'http://assistant.posit.co/docs/features/skills',
+ },
+ zcode: {
+ dir: join(homedir(), '.zcode', 'skills'),
+ docUrl: 'https://zcode.z.ai/en/docs/skill',
+ },
+ pochi: {
+ dir: join(homedir(), '.pochi', 'skills'),
+ docUrl: 'https://docs.getpochi.com/skills',
+ },
+ }
+
+ for (const [flag, { dir, docUrl }] of Object.entries(expected)) {
+ const agent = getAgentManifestByFlag(flag)
+ assert.ok(agent, `${flag} must exist in the manifest`)
+ assert.equal(agent.supportLevel, SUPPORT_LEVELS.VERIFIED, flag)
+ assert.equal(agent.docUrl, docUrl, `${flag} must cite its vendor docs`)
+ assert.ok(agent.lastVerified, `${flag} needs a verification date`)
+ const entry = AGENTS_DATA.find((a) => a.flag === flag)
+ assert.equal(entry.getDir(), dir, `${flag} path`)
+ }
+ })
+
it('validateManifest requires MCP-enabled agents to declare a format', () => {
const result = validateManifest([
{
@@ -284,6 +333,10 @@ describe('agent manifest', () => {
const content = readFileSync(join(__dirname, '..', '..', file), 'utf-8')
for (const [index, line] of content.split('\n').entries()) {
if (!pattern.test(line)) continue
+ // The count alone is not a claim about agents — the security score
+ // table has a "90+" row that happens to share the digits. Every real
+ // count claim names agents on the same line.
+ if (!/agents?\b/i.test(line)) continue
assert.ok(
tracked.has(`${file}:${index + 1}`),
`untracked agent count in ${file}:${index + 1}`,
diff --git a/src/utils/mcp.test.js b/src/utils/mcp.test.js
index ebe1804..af2a8bb 100644
--- a/src/utils/mcp.test.js
+++ b/src/utils/mcp.test.js
@@ -11,6 +11,7 @@ import {
} from 'node:fs'
import { join } from 'node:path'
import { tmpdir } from 'node:os'
+import AGENTS_DATA from '../agents.js'
let mcpModule
@@ -38,23 +39,19 @@ describe('mcp', () => {
describe('getSupportedMcpAgents', () => {
it('returns only agents with MCP support', () => {
const agents = mcpModule.getSupportedMcpAgents()
- const supported = [
- 'agents',
- 'claude',
- 'cursor',
- 'windsurf',
- 'devin',
- 'copilot',
- 'continue',
- 'omp',
- ]
- assert.equal(agents.length, supported.length)
+ // Derived, not a hardcoded count: muse joined the list when its vendor
+ // docs were read, and a literal here silently passed or failed on that.
+ const supported = ['agents', 'claude', 'cursor', 'windsurf', 'devin']
for (const flag of supported) {
assert.ok(
agents.includes(flag),
`expected ${flag} to be in supported list`,
)
}
+ const withMcp = Object.fromEntries(
+ AGENTS_DATA.filter((a) => a.mcp).map((a) => [a.flag, true]),
+ )
+ assert.deepEqual(agents.sort(), Object.keys(withMcp).sort())
})
})