@softspark/ai-toolkit 4.6.0 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,24 @@ Versioning follows [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ---
9
9
 
10
+ ## v4.7.0 - Devin Desktop .devin tree + Antigravity CLI surfaces (2026-06-10)
11
+
12
+ Minor release. Ecosystem sync per `kb/procedures/ecosystem-sync-sop.md` (window 2026-06-05 → 2026-06-10, doctor run + per-tool docs review with adversarial verification). No skill/agent count change; no new broad-access skills.
13
+
14
+ ### Ecosystem (class B/D/F drift)
15
+ - **Windsurf/Devin Desktop: `.devin/` dual-emit** — `generate_windsurf_rules.py` and `generate_windsurf_skills.py` now write rules, workflows, and the skill pointer to `.devin/{rules,workflows,skills}/` (primary tree since the 2026-06-02 rebrand) alongside legacy `.windsurf/` (still read as fallback). `.devin/rules` added to editor auto-detection. Test count: 1179 → 1186.
16
+ - **Antigravity: CLI skill pointer** — `generate_antigravity.py` dual-emits the skill pointer to `.agent/skills/` (IDE) and `.agents/skills/` (CLI, plural). Editor auto-detection no longer misreads a pointer-only `.agents/skills/` as a Codex install.
17
+ - **Registry coverage** — added verified config surfaces to `scripts/ecosystem_tools.json`: Claude Code project `.claude/settings.json` + `.claude/rules/*.md` + `http` hook handler; Cursor subagent fallback dirs; Devin Local config files; Gemini CLI hook events (`BeforeToolSelection`, `AfterModel`, `Notification`, `PreCompress`) + `~/.agents/skills` alias; Cline CLI/SDK unified `.cline/` layout, `AGENTS.md` rules sources, and plugins; Augment workspace settings + `Notification` event; Codex project-layer `.codex/config.toml`; opencode skill discovery aliases; Antigravity CLI `.agents/{skills,hooks.json,mcp_config.json}`.
18
+
19
+ ### Changed
20
+ - **Cascade deprecation note** — `.windsurf/hooks.json` (Cascade-scoped) marked deprecated: Cascade is available only through 2026-07-01; migration target is the Devin CLI lifecycle-hooks surface (tracked in registry status_note).
21
+ - **Cursor registry fix** — removed phantom `.cursor/rules/*.md` path (plain `.md` files are ignored by Cursor's rules system); fixed the stale claim in `generate_cursor_mdc.py` docstring.
22
+ - **Augment registry fix** — `.augment/guidelines.md` replaced with documented `.augment-guidelines` + `~/.augment/user-guidelines.md`; `our_generators` synced to all 6 augment generators.
23
+ - **Maintenance SOP** — added `claude --safe-mode` (v2.1.169) isolation step to the rule-enforcement troubleshooting flow.
24
+ - Doctor snapshot refreshed (Claude Code 2.1.170, Codex CLI 0.138.0); class-C items recorded as not adopted (`fallbackModel`, Copilot `excludeAgent`); opencode v1.16.0 experimental v2 skill registry tracked as a watch item.
25
+
26
+ ---
27
+
10
28
  ## v4.6.0 - Editor ecosystem sync + Codex rules in AGENTS.md (2026-06-05)
11
29
 
12
30
  Minor release. Syncs the editor registry with current upstream reality (Windsurf→Devin rebrand, Roo Code archive, Gemini CLI sunset, moved docs hosts) and fixes several generators that wrote to paths their editors never read. Headline: Codex now actually receives the universal coding rules.
package/README.md CHANGED
@@ -6,17 +6,17 @@
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
7
7
  [![Skills](https://img.shields.io/badge/skills-107-brightgreen)](app/skills/)
8
8
  [![Agents](https://img.shields.io/badge/agents-44-blue)](app/agents/)
9
- [![Tests](https://img.shields.io/badge/tests-1179%20passing-success)](tests/)
9
+ [![Tests](https://img.shields.io/badge/tests-1186%20passing-success)](tests/)
10
10
 
11
- ## What's New in v4.6.0
11
+ ## What's New in v4.7.0
12
12
 
13
- v4.6.0 syncs the editor ecosystem with current upstream reality and fixes several generators that were writing to paths their editors never read.
13
+ v4.7.0 follows the Windsurf Devin Desktop transition to its config surfaces and brings the editor registry up to date with verified upstream docs.
14
14
 
15
- - **Codex finally gets its coding rules**: the universal code-style/testing/security rules are now inlined into `AGENTS.md` (the only file Codex reads) instead of the never-read `.agents/rules/`. Codex also now wires all 10 native lifecycle hook events.
16
- - **opencode commands fixed**: the prompt now lives in the markdown body it previously went into a `template:` frontmatter block that opencode ignores, producing empty commands.
17
- - **Cline global rules land where Cline reads them**: `~/Documents/Cline/Rules/` instead of the never-read `~/.cline/rules/`.
18
- - **Smarter skill pointers**: Cursor/Cline/Augment skip the catalogue pointer when real skills are already discoverable at `.claude/skills/`, emitting it only as the editor-only fallback.
19
- - **Registry sync**: Windsurf Devin Desktop, Roo Code archived, Antigravity `.agents/` plural default, Gemini CLI free/paid sunset (2026-06-18), corrected docs URLs across the board.
15
+ - **Devin Desktop `.devin/` tree**: windsurf generators now dual-emit rules, workflows, and the skill pointer to `.devin/` (primary since the 2026-06-02 rebrand) alongside legacy `.windsurf/` (still read as fallback); `.devin/rules` joins editor auto-detection.
16
+ - **Antigravity CLI skill pointer**: dual-emitted to `.agent/skills/` (IDE) and `.agents/skills/` (CLI, plural); auto-detection no longer misreads a pointer-only `.agents/skills/` as a Codex install.
17
+ - **Cascade deprecation**: the Cascade-scoped `.windsurf/hooks.json` surface dies with Cascade on 2026-07-01 deprecation note added, migration target is Devin CLI lifecycle hooks.
18
+ - **Registry accuracy**: phantom `.cursor/rules/*.md` removed (Cursor ignores plain `.md`), Augment guidelines path corrected to `.augment-guidelines`, plus verified config surfaces added for Claude Code, Gemini CLI, Cline CLI/SDK, Codex, opencode, and Antigravity CLI.
19
+ - **Troubleshooting**: maintenance SOP gains the `claude --safe-mode` (v2.1.169) isolation step.
20
20
 
21
21
  See [CHANGELOG.md](CHANGELOG.md) for full history.
22
22
 
@@ -103,14 +103,14 @@ See [CLI Reference](kb/reference/cli-reference.md) for all commands and options.
103
103
  |----------|-------------|:-----:|-------|
104
104
  | Claude Code | `~/.claude/` | ✅ | global |
105
105
  | Cursor | `.cursor/rules/*.mdc` + `.cursor/mcp.json` + `.cursor/skills/*` | ✅ | project (`~/.cursor/mcp.json` for MCP only) |
106
- | Windsurf | `~/.codeium/.../global_rules.md` + `~/.codeium/windsurf/skills/*` + `.windsurf/rules/*.md` | ✅ | global + project |
106
+ | Windsurf (Devin Desktop) | `~/.codeium/.../global_rules.md` + `~/.codeium/windsurf/skills/*` + `.devin/rules/*.md` + `.windsurf/rules/*.md` (legacy) | ✅ | global + project |
107
107
  | Gemini CLI | `~/.gemini/GEMINI.md` | ✅ | global |
108
108
  | GitHub Copilot | `.github/copilot-instructions.md` | — | project |
109
109
  | Cline | `~/Documents/Cline/Rules/*.md` + `~/.cline/skills/*` + `.clinerules/*.md` | — | global + project |
110
110
  | Roo Code | `~/.roo/rules/*.md` + `.roomodes` + `.roo/rules/*.md` | — | global rules + project |
111
111
  | Aider | `~/.aider.conf.yml` + `.aider.conf.yml` + `CONVENTIONS.md` | — | global + project |
112
112
  | Augment | `~/.augment/rules/*.md` + `.augment/rules/ai-toolkit-*.md` | ✅ | global + project |
113
- | Google Antigravity | `.agents/rules/*.md` + `.agents/workflows/*.md` | — | project |
113
+ | Google Antigravity | `.agents/rules/*.md` + `.agents/workflows/*.md` + skill pointer in `.agent/skills/*` (IDE) and `.agents/skills/*` (CLI) | — | project |
114
114
  | Codex CLI | `AGENTS.md` (coding rules inlined) + `.agents/skills/*` + `.codex/hooks.json` | ✅ | project + global plugin |
115
115
  | opencode | `AGENTS.md` + `.opencode/{agents,commands,plugins}/*` + `opencode.json` | ✅ | project + global (`~/.config/opencode/`) |
116
116
 
@@ -149,7 +149,7 @@ ai-toolkit/
149
149
  │ └── ARCHITECTURE.md # Full system design
150
150
  ├── kb/ # Reference docs, procedures, plans
151
151
  ├── scripts/ # Validation, install, evaluation scripts
152
- ├── tests/ # Bats test suite (1179 tests)
152
+ ├── tests/ # Bats test suite (1186 tests)
153
153
  └── CHANGELOG.md
154
154
  ```
155
155
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ai-toolkit",
3
3
  "description": "Professional-grade Claude Code toolkit with persona presets, skill security auditor, expanded lifecycle hooks, experimental opt-in plugin packs, benchmark harvesting, and multi-tool support.",
4
- "version": "4.6.0",
4
+ "version": "4.7.0",
5
5
  "author": {
6
6
  "name": "SoftSpark",
7
7
  "url": "https://github.com/softspark"
@@ -1,5 +1,5 @@
1
1
  {
2
- "last_run": "2026-06-05T09:16:41Z",
2
+ "last_run": "2026-06-09T22:04:06Z",
3
3
  "schema_version": 1,
4
4
  "tools": {
5
5
  "aider": {
@@ -24,7 +24,7 @@
24
24
  }
25
25
  },
26
26
  "augment": {
27
- "docs_hash": "544c8cce7baacb2e",
27
+ "docs_hash": "f4c5995e8333a4d5",
28
28
  "headings": [
29
29
  "Admin",
30
30
  "Auggie CLI",
@@ -51,6 +51,7 @@
51
51
  "Auggie CLI": true,
52
52
  "MCP": true,
53
53
  "Next Edit": false,
54
+ "Notification": true,
54
55
  "PostToolUse": false,
55
56
  "PreToolUse": false,
56
57
  "SKILL.md": false,
@@ -65,7 +66,7 @@
65
66
  }
66
67
  },
67
68
  "claude-code": {
68
- "docs_hash": "f84eb6cd31b39797",
69
+ "docs_hash": "e6f6b4d9d4057cb0",
69
70
  "headings": [
70
71
  "Core concepts",
71
72
  "Documentation Index",
@@ -114,16 +115,17 @@
114
115
  "WorktreeRemove": false,
115
116
  "hook handler: agent": false,
116
117
  "hook handler: command": false,
118
+ "hook handler: http": false,
117
119
  "hook handler: mcp_tool": false,
118
120
  "hook handler: prompt": false,
119
121
  "output style": true,
120
122
  "slash command": true,
121
123
  "sub-agent": true
122
124
  },
123
- "version": "2.1.165 (Claude Code)"
125
+ "version": "2.1.170 (Claude Code)"
124
126
  },
125
127
  "cline": {
126
- "docs_hash": "d94f88d02b733ee6",
128
+ "docs_hash": "806fa530c90e227d",
127
129
  "headings": [
128
130
  "API Reference",
129
131
  "Best Practices",
@@ -151,6 +153,7 @@
151
153
  "\u200bWhat is Cline?"
152
154
  ],
153
155
  "markers": {
156
+ "AGENTS.md": false,
154
157
  "Act Mode": true,
155
158
  "MCP": true,
156
159
  "Plan Mode": false,
@@ -158,13 +161,14 @@
158
161
  "conditional rules": false,
159
162
  "custom modes": false,
160
163
  "hooks": true,
164
+ "plugins": true,
161
165
  "skills": true,
162
166
  "subagents": true,
163
167
  "workflows": true
164
168
  }
165
169
  },
166
170
  "codex-cli": {
167
- "docs_hash": "b86ae1b6bda0e071",
171
+ "docs_hash": "1b4a56a8e918d721",
168
172
  "headings": [
169
173
  "API",
170
174
  "API Reference",
@@ -231,10 +235,10 @@
231
235
  "mcp_servers": false,
232
236
  "sandbox": true
233
237
  },
234
- "version": "codex-cli 0.136.0"
238
+ "version": "codex-cli 0.138.0"
235
239
  },
236
240
  "cursor": {
237
- "docs_hash": "aee861b1ed20480d",
241
+ "docs_hash": "b68e4adf6e21f543",
238
242
  "headings": [],
239
243
  "markers": {
240
244
  ".cursor/rules": false,
@@ -250,7 +254,7 @@
250
254
  }
251
255
  },
252
256
  "gemini-cli": {
253
- "docs_hash": "0bbd00c009a9357b",
257
+ "docs_hash": "a0e9a213229063c8",
254
258
  "headings": [
255
259
  "Breadcrumbs",
256
260
  "Directory actions",
@@ -271,11 +275,15 @@
271
275
  ],
272
276
  "markers": {
273
277
  "AfterAgent": false,
278
+ "AfterModel": false,
274
279
  "AfterTool": false,
275
280
  "BeforeAgent": false,
276
281
  "BeforeModel": false,
277
282
  "BeforeTool": false,
283
+ "BeforeToolSelection": false,
278
284
  "GEMINI.md": true,
285
+ "Notification": true,
286
+ "PreCompress": false,
279
287
  "SKILL.md": false,
280
288
  "SessionEnd": false,
281
289
  "SessionStart": false,
@@ -288,7 +296,7 @@
288
296
  }
289
297
  },
290
298
  "github-copilot": {
291
- "docs_hash": "2314ef6e31c223a1",
299
+ "docs_hash": "ead818d74ead1f2e",
292
300
  "headings": [
293
301
  "About Copilot auto model selection",
294
302
  "About Copilot automations",
@@ -331,13 +339,14 @@
331
339
  "agent manager": false,
332
340
  "agent permissions": false,
333
341
  "artifacts": false,
342
+ "hooks": false,
334
343
  "rules": false,
335
344
  "skills": false,
336
345
  "workflows": false
337
346
  }
338
347
  },
339
348
  "opencode": {
340
- "docs_hash": "0e54c8a8f59b6474",
349
+ "docs_hash": "f546c8b741790cb8",
341
350
  "headings": [
342
351
  "Add features",
343
352
  "Ask questions",
@@ -397,7 +406,7 @@
397
406
  }
398
407
  },
399
408
  "windsurf": {
400
- "docs_hash": "3405457d501ab760",
409
+ "docs_hash": "91034c064d9f8290",
401
410
  "headings": [
402
411
  "Advanced",
403
412
  "Agent Command Center",
@@ -3,9 +3,9 @@ title: "SOP: Claude Toolkit Maintenance"
3
3
  category: procedures
4
4
  service: ai-toolkit
5
5
  tags: [sop, maintenance, agents, skills, install]
6
- version: "3.0.1"
6
+ version: "3.1.0"
7
7
  created: "2026-03-23"
8
- last_updated: "2026-05-25"
8
+ last_updated: "2026-06-10"
9
9
  description: "Standard operating procedures for installing, maintaining, and evolving the ai-toolkit."
10
10
  ---
11
11
 
@@ -211,18 +211,19 @@ Use this when Claude appears to ignore `CLAUDE.md`, `.claude/rules/*.md`, output
211
211
  - `https://code.claude.com/docs/en/settings`
212
212
  - `https://code.claude.com/docs/en/output-styles`
213
213
  - `https://code.claude.com/docs/en/hooks`
214
- 2. **Verify instruction loading.** Run `/memory` in Claude Code and confirm the expected `CLAUDE.md`, `CLAUDE.local.md`, and `.claude/rules/*.md` files are listed. Remember that Claude Code reads `CLAUDE.md`, not `AGENTS.md`, unless `CLAUDE.md` imports it.
215
- 3. **Verify the active output style.** Check `.claude/settings.local.json` or `/config`. Output style changes apply after `/clear` or a new session.
216
- 4. **Inspect installed hooks.** Ensure `~/.claude/settings.json` contains the ai-toolkit `UserPromptSubmit` and `Stop` entries. The governance hook must run with `AI_TOOLKIT_HOOK_QUIET=1 AI_TOOLKIT_HOOK_FORMAT=json` so it injects `additionalContext` without noisy transcript output.
217
- 5. **Reproduce the hook path directly.**
214
+ 2. **Isolate with safe mode (v2.1.169+).** Start a session with `claude --safe-mode` (or `CLAUDE_CODE_SAFE_MODE=1`) it disables hooks, skills, agents, and CLAUDE.md. If the problem persists in safe mode, the cause is upstream, not toolkit customization; if it disappears, bisect toolkit components with `ai-toolkit update --only <component>`.
215
+ 3. **Verify instruction loading.** Run `/memory` in Claude Code and confirm the expected `CLAUDE.md`, `CLAUDE.local.md`, and `.claude/rules/*.md` files are listed. Remember that Claude Code reads `CLAUDE.md`, not `AGENTS.md`, unless `CLAUDE.md` imports it.
216
+ 4. **Verify the active output style.** Check `.claude/settings.local.json` or `/config`. Output style changes apply after `/clear` or a new session.
217
+ 5. **Inspect installed hooks.** Ensure `~/.claude/settings.json` contains the ai-toolkit `UserPromptSubmit` and `Stop` entries. The governance hook must run with `AI_TOOLKIT_HOOK_QUIET=1 AI_TOOLKIT_HOOK_FORMAT=json` so it injects `additionalContext` without noisy transcript output.
218
+ 6. **Reproduce the hook path directly.**
218
219
  ```bash
219
220
  printf '{"session_id":"debug","prompt":"debug this technical rule issue"}' \
220
221
  | AI_TOOLKIT_SEARCH_FIRST=strict AI_TOOLKIT_HOOK_QUIET=1 AI_TOOLKIT_HOOK_FORMAT=json \
221
222
  ~/.softspark/ai-toolkit/hooks/user-prompt-submit.sh
222
223
  ```
223
224
  The output must be valid JSON with `hookSpecificOutput.additionalContext`.
224
- 6. **Check corrective enforcement.** If the assistant still skips required research, `stop-search-check.sh` should block Stop with the search-first message. If it does not, inspect `~/.softspark/ai-toolkit/state/search-required-*.flag` and the Codex/Claude transcript logs.
225
- 7. **Repair drift.** Run:
225
+ 7. **Check corrective enforcement.** If the assistant still skips required research, `stop-search-check.sh` should block Stop with the search-first message. If it does not, inspect `~/.softspark/ai-toolkit/state/search-required-*.flag` and the Codex/Claude transcript logs.
226
+ 8. **Repair drift.** Run:
226
227
  ```bash
227
228
  ai-toolkit update --only hooks
228
229
  python3 scripts/ecosystem_doctor.py --tool claude-code --format text
@@ -80,7 +80,7 @@ python3 scripts/audit_skills.py --ci
80
80
  npm test
81
81
 
82
82
  # 5. Stage and commit
83
- git add AGENTS.md .agents/rules/ai-toolkit-*.md llms.txt llms-full.txt
83
+ git add AGENTS.md llms.txt llms-full.txt
84
84
  git add -p # stage your other changes
85
85
  git commit -m "feat: your change description"
86
86
  ```
@@ -3,9 +3,9 @@ title: "AI Toolkit - Architecture Overview"
3
3
  category: reference
4
4
  service: ai-toolkit
5
5
  tags: [architecture, overview, design, structure]
6
- version: "1.4.5"
6
+ version: "1.4.6"
7
7
  created: "2026-03-23"
8
- last_updated: "2026-05-12"
8
+ last_updated: "2026-06-10"
9
9
  description: "Architecture of ai-toolkit: directory layout, global install model, editor-aware MCP install, Codex translation layer, skill tiers, and integration with projects."
10
10
  ---
11
11
 
@@ -109,7 +109,7 @@ Machine (global) Project (local)
109
109
  - `--editors cursor,aider` — install only selected editors
110
110
  - (no flag) — auto-detect from existing project files; `update --local` picks up whatever editors already have configs
111
111
 
112
- Each editor gets directory-based format (`.cursor/rules/*.mdc`, `.windsurf/rules/*.md`, `.clinerules/*.md`, `.roo/rules/*.md`, `.augment/rules/ai-toolkit-*.md`, `.agents/rules/*.md`, `CONVENTIONS.md`). Full-profile installs also emit native skill pointer catalogues for Cursor, Windsurf, and Cline. Codex local install additionally generates `AGENTS.md` (universal coding rules inlined — Codex reads only AGENTS.md, not `.agents/rules/`), `.agents/skills/*`, and `.codex/hooks.json`. Hooks are global-only — not merged into project settings except for editor-native local hook files such as Codex `.codex/hooks.json`. Experimental plugin packs can also layer a global Codex target in `HOME` (`~/AGENTS.md`, `~/.agents/`, `~/.codex/hooks.json`) when installed with `ai-toolkit plugin install --editor codex`.
112
+ Each editor gets directory-based format (`.cursor/rules/*.mdc`, `.devin/rules/*.md` + `.windsurf/rules/*.md` (dual-emit since the Devin Desktop rebrand), `.clinerules/*.md`, `.roo/rules/*.md`, `.augment/rules/ai-toolkit-*.md`, `.agents/rules/*.md`, `CONVENTIONS.md`). Full-profile installs also emit native skill pointer catalogues for Cursor, Windsurf, and Cline. Codex local install additionally generates `AGENTS.md` (universal coding rules inlined — Codex reads only AGENTS.md, not `.agents/rules/`), `.agents/skills/*`, and `.codex/hooks.json`. Hooks are global-only — not merged into project settings except for editor-native local hook files such as Codex `.codex/hooks.json`. Experimental plugin packs can also layer a global Codex target in `HOME` (`~/AGENTS.md`, `~/.agents/`, `~/.codex/hooks.json`) when installed with `ai-toolkit plugin install --editor codex`.
113
113
 
114
114
  If a project already has `.mcp.json`, local install mirrors its `mcpServers` entries into `.claude/settings.local.json` plus any selected editors with project-scoped native MCP files (`.cursor/mcp.json`, `.github/mcp.json`).
115
115
 
@@ -133,7 +133,7 @@ If a project already has `.mcp.json`, local install mirrors its `mcpServers` ent
133
133
  | `cursor-rules` | `./` | Generates `.cursorrules` (legacy) |
134
134
  | `cursor-mdc` | `./` | Generates `.cursor/rules/*.mdc` (recommended) |
135
135
  | `windsurf-rules` | `./` | Generates `.windsurfrules` (legacy) |
136
- | `windsurf-dir-rules` | `./` | Generates `.windsurf/rules/*.md` |
136
+ | `windsurf-dir-rules` | `./` | Generates `.devin/rules/*.md` + `.windsurf/rules/*.md` (dual-emit) |
137
137
  | `copilot-instructions` | `./` | Generates `.github/copilot-instructions.md` |
138
138
  | `gemini-md` | `./` | Generates `GEMINI.md` |
139
139
  | `cline-rules` | `./` | Generates `.clinerules` (legacy) |
@@ -3,9 +3,9 @@ title: "Supported Tools Registry"
3
3
  category: reference
4
4
  service: ai-toolkit
5
5
  tags: [editors, platforms, generators, integration, ecosystem]
6
- version: "1.4.0"
6
+ version: "1.5.0"
7
7
  created: "2026-04-23"
8
- last_updated: "2026-06-05"
8
+ last_updated: "2026-06-09"
9
9
  description: "Human-readable view of scripts/ecosystem_tools.json — the canonical list of tools ai-toolkit integrates with (Claude Code + 11 editors), their documentation URLs, config paths, our generators, and tracked capability markers."
10
10
  ---
11
11
 
@@ -28,13 +28,14 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
28
28
  | ID | `claude-code` |
29
29
  | Docs | https://code.claude.com/docs (platform.claude.com/docs 307-redirects here) |
30
30
  | Release notes | https://github.com/anthropics/claude-code/releases |
31
- | Changelog | https://code.claude.com/docs/en/changelog (lists current 2.1.165) |
32
- | Config paths | `~/.claude/settings.json`, `.claude/settings.local.json`, `CLAUDE.md`, `.claude/agents/*.md`, `.claude/skills/*/SKILL.md`, `~/.claude/themes/*.json` (v2.1.118+) |
31
+ | Changelog | https://code.claude.com/docs/en/changelog (lists current 2.1.170) |
32
+ | Config paths | `~/.claude/settings.json`, `.claude/settings.json` (project, committed), `.claude/settings.local.json`, `CLAUDE.md`, `.claude/rules/*.md`, `.claude/agents/*.md`, `.claude/skills/*/SKILL.md`, `~/.claude/themes/*.json` (v2.1.118+) |
33
33
  | Our generators | — (Claude Code is the primary target; toolkit content ships directly as `.md` files and `settings.json` merges) |
34
34
  | Tracked hook events | Core: `SessionStart`, `SessionEnd`, `UserPromptSubmit`, `Notification`, `MessageDisplay`. Tool: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PostToolBatch`. Turn: `Stop`, `StopFailure`, `UserPromptExpansion`. Subagent: `SubagentStart`, `SubagentStop`. Compaction: `PreCompact`, `PostCompact`. Permissions: `PermissionRequest`, `PermissionDenied`. Elicitation: `Elicitation`, `ElicitationResult`. Teams: `TaskCreated`, `TaskCompleted`, `TeammateIdle`. Worktrees/env: `WorktreeCreate`, `WorktreeRemove`, `CwdChanged`, `FileChanged`, `ConfigChange`. Setup: `Setup`, `InstructionsLoaded` |
35
- | Tracked handler types | `command`, `prompt`, `agent`, `mcp_tool` |
35
+ | Tracked handler types | `command`, `prompt`, `agent`, `mcp_tool`, `http` (POST event JSON to allowlisted URLs via `allowedHttpHookUrls`) |
36
36
  | Other capabilities | slash commands, MCP server/client, sub-agent, output style, `SKILL.md` (≥500 lines warn) |
37
37
  | Version probe | `claude --version` |
38
+ | Notes | v2.1.169 added `disableBundledSkills` setting + `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` env var (hides bundled skills/built-in slash commands from the model; toolkit skills in `.claude/skills/` are unaffected — useful when toolkit skills overlap built-ins) and `claude --safe-mode` / `CLAUDE_CODE_SAFE_MODE` (starts with hooks, skills, agents, and CLAUDE.md disabled — first isolation step when debugging toolkit rule enforcement). `fallbackModel` settings key (v2.1.166) noted as not-adopted (class C, no toolkit surface writes model settings). |
38
39
 
39
40
  ---
40
41
 
@@ -48,8 +49,8 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
48
49
  | Docs | https://cursor.com/docs |
49
50
  | Changelog | https://cursor.com/changelog |
50
51
  | Stable docs mirror | https://cursor.com/llms.txt (all doc pages have .md twins) |
51
- | Config paths | `.cursorrules`, `.cursor/rules/*.mdc`, `.cursor/rules/*.md`, `AGENTS.md`, `.cursor/mcp.json`, `~/.cursor/mcp.json`, `.cursor/skills/*/SKILL.md`, `~/.cursor/skills/*/SKILL.md`, `.cursor/agents/*.md`, `.cursor/hooks.json` |
52
- | Compat read paths | `.agents/skills/`, `~/.agents/skills/`, `.claude/skills/`, `~/.claude/skills/`, `.codex/skills/`, `~/.codex/skills/` |
52
+ | Config paths | `.cursorrules`, `.cursor/rules/*.mdc` (plain `.md` files in `.cursor/rules/` are **ignored** by the rules system), `AGENTS.md`, `.cursor/mcp.json`, `~/.cursor/mcp.json`, `.cursor/skills/*/SKILL.md`, `~/.cursor/skills/*/SKILL.md`, `.cursor/agents/*.md`, `~/.cursor/agents/*.md`, `.cursor/hooks.json` |
53
+ | Compat read paths | skills: `.agents/skills/`, `~/.agents/skills/`, `.claude/skills/`, `~/.claude/skills/`, `.codex/skills/`, `~/.codex/skills/`; subagents: `.claude/agents/`, `~/.claude/agents/`, `.codex/agents/`, `~/.codex/agents/` (`.cursor/` wins on name conflicts) |
53
54
  | Our generators | `scripts/generate_cursor_rules.py`, `scripts/generate_cursor_mdc.py`, `scripts/generate_cursor_hooks.py` (profile=full), `scripts/generate_cursor_agents.py` (profile=full), `scripts/generate_cursor_skills.py` (profile=full pointer) |
54
55
  | Tracked capabilities | `cursorrules`, `.cursor/rules`, `AGENTS.md`, `mcp.json`, Composer, Agent Mode, hooks.json, subagents, skills, plugins |
55
56
 
@@ -61,11 +62,12 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
61
62
  | Docs | https://docs.devin.ai/desktop (Windsurf rebranded to Devin Desktop ~2026-06-02; docs.windsurf.com resolves here) |
62
63
  | Changelog | https://docs.devin.ai/desktop/changelog (windsurf.com/changelog 308-permanent-redirects here) |
63
64
  | Stable docs mirror | https://docs.devin.ai/desktop/... per-page .md twins; legacy `.windsurf/`, `.windsurfrules`, `~/.codeium/windsurf/` paths still read as fallback (new canonical: `.devin/`) |
64
- | Config paths | `.windsurfrules`, `.windsurf/rules/*.md`, `.windsurf/workflows/*.md`, `.windsurf/skills/*/SKILL.md`, `AGENTS.md`, `~/.codeium/windsurf/memories/global_rules.md`, `~/.codeium/windsurf/skills/*/SKILL.md`, `~/.codeium/windsurf/mcp_config.json` |
65
+ | Config paths | **Primary (Devin Desktop):** `.devin/rules/*.md`, `.devin/workflows/*.md`, `.devin/skills/*/SKILL.md`, `.devin/config.json`, `.devin/config.local.json`, `~/.config/devin/config.json` (Devin Local MCP/permissions). **Legacy fallback:** `.windsurfrules`, `.windsurf/rules/*.md`, `.windsurf/workflows/*.md`, `.windsurf/skills/*/SKILL.md`, `~/.codeium/windsurf/memories/global_rules.md`, `~/.codeium/windsurf/skills/*/SKILL.md`, `~/.codeium/windsurf/mcp_config.json`. Plus `AGENTS.md`. |
65
66
  | Compat read paths | `.agents/skills/`, `~/.agents/skills/`, (with Claude Code config-reading) `.claude/skills/`, `~/.claude/skills/` |
66
- | Our generators | `scripts/generate_windsurf.py`, `scripts/generate_windsurf_rules.py`, `scripts/generate_windsurf_hooks.py` (profile=full), `scripts/generate_windsurf_skills.py` (global + profile=full pointer) |
67
+ | Our generators | `scripts/generate_windsurf.py`, `scripts/generate_windsurf_rules.py` (dual-emits `.devin/` + `.windsurf/`), `scripts/generate_windsurf_hooks.py` (profile=full; **Cascade-scoped, deprecated**), `scripts/generate_windsurf_skills.py` (global + profile=full pointer, dual-emits) |
67
68
  | Tracked capabilities | Cascade, `windsurfrules`, `AGENTS.md`, activation triggers (`always_on`/`glob`/`model_decision`), workflows, skills, MCP, memories, hooks |
68
69
  | Activation modes emitted | always_on (agents/security/quality), glob (testing + language rules), model_decision (code-style/workflow) |
70
+ | Sunset notes | Cascade agent is available only through **2026-07-01**; Devin Local is the default agent since 2026-06-02. The `.windsurf/hooks.json` surface dies with Cascade — migrate to Devin CLI lifecycle hooks (docs.devin.ai/cli/extensibility/hooks/\*) before that date. Devin CLI ("Devin for Terminal") shares the Devin Local harness, reads `AGENTS.md` and the standard `SKILL.md` format; not yet a separate registry entry. |
69
71
 
70
72
  ### GitHub Copilot
71
73
 
@@ -86,11 +88,11 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
86
88
  | ID | `gemini-cli` |
87
89
  | Docs | https://github.com/google-gemini/gemini-cli/tree/main/docs |
88
90
  | Release notes | https://github.com/google-gemini/gemini-cli/releases |
89
- | Config paths | `GEMINI.md`, `.gemini/settings.json`, `~/.gemini/settings.json`, `.gemini/commands/*.toml`, `.gemini/skills/*/SKILL.md`, `.agents/skills/*/SKILL.md`, `.gemini/extensions/gemini-extension.json` |
91
+ | Config paths | `GEMINI.md`, `.gemini/settings.json`, `~/.gemini/settings.json`, `.gemini/commands/*.toml`, `.gemini/skills/*/SKILL.md`, `.agents/skills/*/SKILL.md`, `~/.gemini/skills/*/SKILL.md`, `~/.agents/skills/*/SKILL.md` (the `.agents/skills` alias wins over `.gemini/skills` within the same tier), `.gemini/extensions/gemini-extension.json` |
90
92
  | Our generators | `scripts/generate_gemini.py`, `scripts/generate_gemini_hooks.py` (profile>=standard), `scripts/generate_gemini_commands.py` (profile=full), `scripts/generate_gemini_skills.py` (profile=full) |
91
- | Tracked capabilities | `GEMINI.md`, `mcpServers`, tools, `settings.json`, `BeforeTool`, `AfterTool`, `BeforeAgent`, `AfterAgent`, `BeforeModel`, `SessionStart`, `SessionEnd`, `SKILL.md`, `activate_skill`, custom commands, `gemini-extension.json` (no native `Stop` event — generator maps Stop-equivalent to `AfterAgent`) |
93
+ | Tracked capabilities | `GEMINI.md`, `mcpServers`, tools, `settings.json`, `BeforeTool`, `AfterTool`, `BeforeToolSelection`, `BeforeAgent`, `AfterAgent`, `BeforeModel`, `AfterModel`, `Notification`, `PreCompress`, `SessionStart`, `SessionEnd`, `SKILL.md`, `activate_skill`, custom commands, `gemini-extension.json` (no native `Stop` event — generator maps Stop-equivalent to `AfterAgent`; 11 documented hook events total) |
92
94
  | Version probe | `gemini --version` |
93
- | Latest upstream | v0.45.1 (2026-06-04). NOTE: Gemini CLI drops free/paid tiers 2026-06-18 in favor of Antigravity CLI (we ship `generate_antigravity.py`); enterprise Code Assist keeps Gemini CLI. |
95
+ | Latest upstream | v0.45.2 (2026-06-05). NOTE: Gemini CLI drops free/paid tiers 2026-06-18 in favor of Antigravity CLI (we ship `generate_antigravity.py`); enterprise Code Assist keeps Gemini CLI. |
94
96
 
95
97
  ### Cline
96
98
 
@@ -99,9 +101,10 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
99
101
  | ID | `cline` |
100
102
  | Docs | https://docs.cline.bot |
101
103
  | Release notes | https://github.com/cline/cline/releases |
102
- | Config paths | `.clinerules/*.md`, `.clinerules/workflows/*.md`, `.clinerules/skills/*/SKILL.md`, `.clinerules/hooks/` (project), `.cline/skills/*/SKILL.md`, `~/.cline/skills/*/SKILL.md`, `~/Documents/Cline/Rules/Hooks/` (global hooks), `~/.cline/data/settings/cline_mcp_settings.json`, `.claude/skills/*/SKILL.md` (native discovery, always-on since v3.57.0). NOTE: `.cline/rules/` and `.cline/hooks/` were removed as phantom paths Cline reads rules from `.clinerules/`. |
104
+ | Config paths | **Extension:** `.clinerules/*.md`, `.clinerules/workflows/*.md`, `.clinerules/skills/*/SKILL.md`, `.clinerules/hooks/` (project), `~/Documents/Cline/Rules/Hooks/` (global hooks), `~/.cline/data/settings/cline_mcp_settings.json`. **CLI/SDK unified layout** (docs.cline.bot/getting-started/config; `.clinerules` is deprecated there): `.cline/{rules,hooks,plugins,skills}/`, `~/.cline/{rules,hooks,plugins,skills}/`, `CLINE_HOOKS_DIR` env var. **Cross-tool:** `AGENTS.md` + `~/.agents/AGENTS.md` (first-class rules sources), `.claude/skills/*/SKILL.md` (native discovery, always-on since v3.57.0). |
103
105
  | Our generators | `scripts/generate_cline.py`, `scripts/generate_cline_rules.py`, `scripts/generate_cline_skills.py` |
104
- | Tracked capabilities | `clinerules`, Plan Mode, Act Mode, MCP, custom modes, workflows, hooks, skills, subagents, conditional rules |
106
+ | Tracked capabilities | `clinerules`, Plan Mode, Act Mode, MCP, custom modes, workflows, hooks, skills, subagents, conditional rules, `AGENTS.md`, plugins |
107
+ | Plugins | `.cline/plugins/` + `~/.cline/plugins/` (JS/TS), `package.json` `cline.plugins` manifest; plugins can bundle skills. Not adopted as a distribution channel yet — candidate for shipping toolkit skills to CLI/SDK users. |
105
108
  | Notes | Conditional rules (`paths:` YAML frontmatter) are emitted for testing and language-specific rules since 2026-04. Project rules still use `.clinerules/` for compatibility; global rules are written to `~/Documents/Cline/Rules/` (the documented Cline global rules dir — `~/.cline/rules/` is not a Cline-read path). Skills are emitted as a pointer catalogue in `profile=full` and global installs. |
106
109
  | Global install | `ai-toolkit install --editors cline` writes documented global rules under `~/Documents/Cline/Rules/` and a skill pointer under `~/.cline/skills/`; MCP remains managed by `ai-toolkit mcp install --editor cline`. |
107
110
 
@@ -138,9 +141,9 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
138
141
  | ID | `augment` |
139
142
  | Docs | https://docs.augmentcode.com |
140
143
  | Changelog | https://www.augmentcode.com/changelog |
141
- | Config paths | `.augment/rules/*.md`, `.augment/guidelines.md` (legacy), `.augment/agents/*.md`, `.augment/commands/*.md`, `.augment/skills/*/SKILL.md`, `~/.augment/rules/*.md`, `~/.augment/settings.json`, `/etc/augment/settings.json` |
144
+ | Config paths | `.augment/rules/*.md`, `.augment-guidelines` (workspace root, legacy single-file), `~/.augment/user-guidelines.md`, `.augment/agents/*.md`, `.augment/commands/*.md`, `.augment/skills/*/SKILL.md`, `.augment/settings.json`, `.augment/settings.local.json`, `~/.augment/rules/*.md`, `~/.augment/settings.json`, `/etc/augment/settings.json`. Auggie CLI also discovers skills/commands from `.claude/` and `.agents/` (`.augment/` wins on precedence). |
142
145
  | Our generators | `scripts/generate_augment.py`, `scripts/generate_augment_rules.py`, `scripts/generate_augment_agents.py` (profile=full), `scripts/generate_augment_commands.py` (profile=full), `scripts/generate_augment_hooks.py` (profile=full, HOME-scoped), `scripts/generate_augment_skills.py` (profile=full) |
143
- | Tracked capabilities | `.augment`, Agent mode, Next Edit, MCP, context engine, Auggie CLI, `always_apply`, `agent_requested`, subagents, custom commands, `SKILL.md`, `PreToolUse`, `PostToolUse`, `SessionStart`, `SessionEnd`, `Stop`, ACP Mode |
146
+ | Tracked capabilities | `.augment`, Agent mode, Next Edit, MCP, context engine, Auggie CLI, `always_apply`, `agent_requested`, subagents, custom commands, `SKILL.md`, `PreToolUse`, `PostToolUse`, `SessionStart`, `SessionEnd`, `Stop`, `Notification`, ACP Mode |
144
147
  | SPA caveat | Mintlify Next.js SPA; use `https://docs.augmentcode.com/<path>.md` siblings (discoverable via `/llms.txt`) for machine reads |
145
148
 
146
149
  ### Google Antigravity
@@ -150,19 +153,20 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
150
153
  | ID | `google-antigravity` |
151
154
  | Docs | https://antigravity.google/docs (JavaScript SPA — use bundle strings / sitemap to verify) |
152
155
  | Changelog | https://antigravity.google/changelog (SPA; changelog entries embedded in main-*.js) |
153
- | Config paths | `.agents/rules/*.md`, `.agents/workflows/*.md` (plural is the Antigravity 2.0 default; singular `.agent/rules`, `.agent/workflows` still read as fallback), `.agent/skills/*/SKILL.md`, `AGENTS.md`, `GEMINI.md` |
154
- | Our generators | `scripts/generate_antigravity.py` (rules + workflows + skill pointer) |
155
- | Tracked capabilities | Antigravity, agent manager, artifacts, MCP, workflows, rules, skills, `AGENTS.md`, `GEMINI.md`, agent permissions |
156
- | Doc access note | Docs are JS-SPA verify via `main-*.js` bundle strings or community skill repos. `WebFetch` returns an empty shell. |
156
+ | Config paths | `.agents/rules/*.md`, `.agents/workflows/*.md` (plural is the Antigravity 2.0 default; singular `.agent/rules`, `.agent/workflows` still read as fallback), `.agent/skills/*/SKILL.md` (IDE), `.agents/skills/*/SKILL.md` (CLI), `.agents/hooks.json` (CLI hooks), `.agents/mcp_config.json` (CLI MCP), `AGENTS.md`, `GEMINI.md` |
157
+ | Our generators | `scripts/generate_antigravity.py` (rules + workflows + skill pointer dual-emitted to `.agent/skills/` and `.agents/skills/`) |
158
+ | Tracked capabilities | Antigravity, agent manager, artifacts, MCP, workflows, rules, skills, hooks, `AGENTS.md`, `GEMINI.md`, agent permissions |
159
+ | CLI notes | Antigravity CLI (GA 2026-05-19): hooks in `.agents/hooks.json` use Claude-style event names (`PreToolUse`, not Gemini's `BeforeTool`) with a JSON stdin/stdout decision contract; MCP config `.agents/mcp_config.json` requires `serverUrl` (legacy `url`/`httpUrl` fail silently). Global MCP config path is inconsistently reported across sources (`~/.gemini/antigravity-cli/` vs `~/.gemini/config/`) — only the workspace path is registered until verified via `agy inspect`. |
160
+ | Doc access note | Docs are JS-SPA — verify via `main-*.js` bundle strings or community skill repos. `WebFetch` returns an empty shell. The sitemap.xml is stale (omits the `cli-*` doc pages), so sitemap-based monitoring misses CLI doc additions. |
157
161
 
158
162
  ### Codex CLI
159
163
 
160
164
  | Field | Value |
161
165
  |-------|-------|
162
166
  | ID | `codex-cli` |
163
- | Docs | https://developers.openai.com/codex (now a live docs site with `/codex/{hooks,skills,rules}` pages; latest stable rust-v0.137.0, 2026-06-04) |
167
+ | Docs | https://developers.openai.com/codex (live docs site; config pages split into `/codex/config-basic`, `/codex/config-reference`, `/codex/config-advanced` plus `/codex/hooks`, `/codex/skills`; latest stable codex-cli 0.138.0, 2026-06) |
164
168
  | Release notes | https://github.com/openai/codex/releases |
165
- | Config paths | `AGENTS.md`, `.agents/skills/*/SKILL.md`, `.codex/hooks.json`, `~/.codex/config.toml` |
169
+ | Config paths | `AGENTS.md`, `.agents/skills/*/SKILL.md`, `.codex/hooks.json`, `.codex/config.toml` (project layers, root→cwd, closest wins, trusted projects only), `~/.codex/config.toml` |
166
170
  | Our generators | `scripts/generate_codex.py`, `scripts/generate_codex_hooks.py`, `scripts/generate_codex_skills.py` (opt-in via `--codex-skills`) |
167
171
  | Rules delivery | Universal coding rules are inlined into `AGENTS.md` (Codex reads instructions only from AGENTS.md, not `.agents/rules/`); language rules ship as `<lang>-rules` skills under `.agents/skills/`. |
168
172
  | Tracked hook events | Upstream canonical (codex-rs `HookEventName` enum): `PreToolUse`, `PostToolUse`, `PermissionRequest`, `PreCompact`, `PostCompact`, `SessionStart`, `UserPromptSubmit`, `SubagentStart`, `SubagentStop`, `Stop` (10 events). We wire all 10 to shared toolkit hook scripts, mirroring the Claude Code mapping in `app/hooks.json`. |
@@ -176,12 +180,13 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
176
180
  |-------|-------|
177
181
  | ID | `opencode` |
178
182
  | Docs | https://opencode.ai/docs |
179
- | Release notes | https://github.com/sst/opencode/releases |
180
- | Config paths | `opencode.json`, `.opencode/agents/*.md`, `.opencode/commands/*.md`, `.opencode/plugins/*`, `.opencode/skills/*/SKILL.md` (v1.14+), `AGENTS.md`, `.claude/skills/*/SKILL.md` (fallback discovery) |
183
+ | Release notes | https://github.com/sst/opencode/releases (redirects to anomalyco/opencode) |
184
+ | Config paths | `opencode.json`, `.opencode/agents/*.md`, `.opencode/commands/*.md`, `.opencode/plugins/*`, `.opencode/skills/*/SKILL.md` (v1.14+), `AGENTS.md`; skill fallback discovery: `.claude/skills/`, `.agents/skills/`, `~/.config/opencode/skills/`, `~/.claude/skills/`, `~/.agents/skills/` |
181
185
  | Our generators | `scripts/generate_opencode.py`, `scripts/generate_opencode_agents.py`, `scripts/generate_opencode_commands.py`, `scripts/generate_opencode_json.py`, `scripts/generate_opencode_plugin.py` |
182
186
  | Tracked plugin events | `session.created`, `session.compacted`, `session.deleted`, `message.updated`, `tool.execute.before`, `tool.execute.after`, `permission.asked`, `command.executed` |
183
187
  | Other capabilities | `opencode.json` config, primary + subagent modes, `@`-mention subagents, `/`-invocation commands, MCP (local + remote), plugin hooks in JS/TS, native `SKILL.md` discovery with Claude-compatible fallback, `permission.skill.*` matrix |
184
188
  | Version probe | `opencode --version` |
189
+ | Watch item | v1.16.0 (2026-06-05) ships an experimental v2 skill registry (flat-file skills, `slash` frontmatter key) — undocumented as of 2026-06-09; re-check next sync before touching `generate_opencode*.py`. |
185
190
 
186
191
  ---
187
192