@softspark/ai-toolkit 4.5.0 → 4.6.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/AGENTS.md +50 -0
- package/CHANGELOG.md +37 -0
- package/README.md +10 -10
- package/app/.claude-plugin/plugin.json +1 -1
- package/app/hooks/loop-guard.sh +2 -1
- package/benchmarks/ecosystem-doctor-snapshot.json +67 -54
- package/bin/ai-toolkit.js +2 -5
- package/kb/procedures/release-preparation-sop.md +24 -16
- package/kb/procedures/release-verification-sop.md +3 -5
- package/kb/reference/architecture-overview.md +2 -3
- package/kb/reference/cli-reference.md +2 -3
- package/kb/reference/global-install-model.md +3 -3
- package/kb/reference/opencode-compatibility.md +2 -2
- package/kb/reference/supported-tools-registry.md +20 -18
- package/llms-full.txt +57 -51
- package/manifest.json +1 -1
- package/package.json +2 -3
- package/scripts/ecosystem_tools.json +18 -15
- package/scripts/generate_antigravity.py +11 -7
- package/scripts/generate_augment_agents.py +9 -10
- package/scripts/generate_augment_commands.py +4 -17
- package/scripts/generate_augment_hooks.py +7 -5
- package/scripts/generate_codex.py +28 -0
- package/scripts/generate_codex_hooks.py +23 -1
- package/scripts/generate_cursor_agents.py +13 -29
- package/scripts/generate_opencode_commands.py +9 -9
- package/scripts/install.py +1 -1
- package/scripts/install_steps/ai_tools.py +47 -26
- package/scripts/plugin.py +2 -2
- package/scripts/generate_codex_rules.py +0 -52
|
@@ -63,10 +63,10 @@ with documented, file-based config surfaces:
|
|
|
63
63
|
- `windsurf`: `~/.codeium/windsurf/memories/global_rules.md` plus `~/.codeium/windsurf/skills/ai-toolkit-skill-catalogue/SKILL.md`
|
|
64
64
|
- `gemini`: `~/.gemini/GEMINI.md`
|
|
65
65
|
- `augment`: `~/.augment/rules/ai-toolkit.md`
|
|
66
|
-
- `cline`:
|
|
66
|
+
- `cline`: `~/Documents/Cline/Rules/ai-toolkit-*.md` plus `~/.cline/skills/ai-toolkit-skill-catalogue/SKILL.md`
|
|
67
67
|
- `roo`: `~/.roo/rules/ai-toolkit-*.md`
|
|
68
68
|
- `aider`: `~/.aider.conf.yml` plus `~/.aider-ai-toolkit-CONVENTIONS.md` when the YAML file does not already exist
|
|
69
|
-
- `codex`: `~/AGENTS.md
|
|
69
|
+
- `codex`: `~/AGENTS.md` (coding rules inlined), `~/.agents/skills/*`, `~/.codex/hooks.json`
|
|
70
70
|
- `opencode`: `~/.config/opencode/*`
|
|
71
71
|
|
|
72
72
|
Cursor, GitHub Copilot, and Google Antigravity rule installs stay project-local.
|
|
@@ -99,7 +99,7 @@ These files still stay local to a repository as part of the core install model:
|
|
|
99
99
|
- `.roomodes`
|
|
100
100
|
- `.aider.conf.yml`
|
|
101
101
|
- `.augment/rules/ai-toolkit-*.md`
|
|
102
|
-
- `.
|
|
102
|
+
- `.agents/rules/*.md` and `.agents/workflows/*.md` (Google Antigravity; singular `.agent/` still read as fallback)
|
|
103
103
|
- `.git/hooks/pre-commit` (fallback)
|
|
104
104
|
- project-specific documentation or safety overlays
|
|
105
105
|
|
|
@@ -23,7 +23,7 @@ opencode also reads `CLAUDE.md` as a fallback, so a user without the native inte
|
|
|
23
23
|
|
|
24
24
|
- `AGENTS.md` (shared with Codex CLI via distinct marker sections)
|
|
25
25
|
- `.opencode/agents/ai-toolkit-*.md` (one per ai-toolkit agent, `mode: subagent`)
|
|
26
|
-
- `.opencode/commands/ai-toolkit-*.md` (one per user-invocable skill
|
|
26
|
+
- `.opencode/commands/ai-toolkit-*.md` (one per user-invocable skill; the prompt lives in the markdown body)
|
|
27
27
|
- `.opencode/plugins/ai-toolkit-hooks.js` (JS plugin bridging Bash hooks)
|
|
28
28
|
- `opencode.json` (MCP key merged from `.mcp.json`, user keys preserved)
|
|
29
29
|
|
|
@@ -71,7 +71,7 @@ Opencode treats these files as auto-completable with `@` and can delegate to the
|
|
|
71
71
|
|
|
72
72
|
Only user-invocable skills (`user-invocable: true` or no `disable-model-invocation`) emit to `.opencode/commands/`. Knowledge skills (`user-invocable: false`) are intentionally skipped — they are not intended as commands.
|
|
73
73
|
|
|
74
|
-
Each command file carries
|
|
74
|
+
Each command file carries the prompt in its markdown body (built from the SKILL.md body). opencode reads the body as the prompt; the `template` field is JSON-config-only and is ignored in `.md` command files.
|
|
75
75
|
|
|
76
76
|
## Hook Bridge (JS Plugin)
|
|
77
77
|
|
|
@@ -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.
|
|
6
|
+
version: "1.4.0"
|
|
7
7
|
created: "2026-04-23"
|
|
8
|
-
last_updated: "2026-05
|
|
8
|
+
last_updated: "2026-06-05"
|
|
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
|
|
|
@@ -26,8 +26,9 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
26
26
|
| Field | Value |
|
|
27
27
|
|-------|-------|
|
|
28
28
|
| ID | `claude-code` |
|
|
29
|
-
| Docs | https://platform.claude.com/docs
|
|
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) |
|
|
31
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+) |
|
|
32
33
|
| Our generators | — (Claude Code is the primary target; toolkit content ships directly as `.md` files and `settings.json` merges) |
|
|
33
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` |
|
|
@@ -57,9 +58,9 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
57
58
|
| Field | Value |
|
|
58
59
|
|-------|-------|
|
|
59
60
|
| ID | `windsurf` |
|
|
60
|
-
| Docs | https://docs.windsurf.com |
|
|
61
|
-
| Changelog | https://windsurf.com/changelog |
|
|
62
|
-
| Stable docs mirror | https://docs.
|
|
61
|
+
| Docs | https://docs.devin.ai/desktop (Windsurf rebranded to Devin Desktop ~2026-06-02; docs.windsurf.com resolves here) |
|
|
62
|
+
| Changelog | https://docs.devin.ai/desktop/changelog (windsurf.com/changelog 308-permanent-redirects here) |
|
|
63
|
+
| 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/`) |
|
|
63
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` |
|
|
64
65
|
| Compat read paths | `.agents/skills/`, `~/.agents/skills/`, (with Claude Code config-reading) `.claude/skills/`, `~/.claude/skills/` |
|
|
65
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) |
|
|
@@ -87,9 +88,9 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
87
88
|
| Release notes | https://github.com/google-gemini/gemini-cli/releases |
|
|
88
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` |
|
|
89
90
|
| 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) |
|
|
90
|
-
| Tracked capabilities | `GEMINI.md`, `mcpServers`, tools, `settings.json`, `BeforeTool`, `AfterTool`, `BeforeAgent`, `AfterAgent`, `BeforeModel`, `SessionStart`, `SessionEnd`, `
|
|
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`) |
|
|
91
92
|
| Version probe | `gemini --version` |
|
|
92
|
-
| Latest upstream | v0.
|
|
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. |
|
|
93
94
|
|
|
94
95
|
### Cline
|
|
95
96
|
|
|
@@ -98,19 +99,19 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
98
99
|
| ID | `cline` |
|
|
99
100
|
| Docs | https://docs.cline.bot |
|
|
100
101
|
| Release notes | https://github.com/cline/cline/releases |
|
|
101
|
-
| Config paths | `.clinerules/*.md
|
|
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/`. |
|
|
102
103
|
| Our generators | `scripts/generate_cline.py`, `scripts/generate_cline_rules.py`, `scripts/generate_cline_skills.py` |
|
|
103
104
|
| Tracked capabilities | `clinerules`, Plan Mode, Act Mode, MCP, custom modes, workflows, hooks, skills, subagents, conditional rules |
|
|
104
|
-
| Notes | Conditional rules (`paths:` YAML frontmatter) are emitted for testing and language-specific rules since 2026-04. Project rules still use `.clinerules/` for compatibility; the documented `~/.cline/rules/`
|
|
105
|
-
| Global install | `ai-toolkit install --editors cline` writes documented global rules under
|
|
105
|
+
| 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
|
+
| 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`. |
|
|
106
107
|
|
|
107
108
|
### Roo Code
|
|
108
109
|
|
|
109
110
|
| Field | Value |
|
|
110
111
|
|-------|-------|
|
|
111
112
|
| ID | `roo-code` |
|
|
112
|
-
| Docs | https://docs.roocode.com |
|
|
113
|
-
| Release notes | https://github.com/RooCodeInc/Roo-Code/releases |
|
|
113
|
+
| Docs | https://roocodeinc.github.io/Roo-Code (docs.roocode.com 301-redirects here) |
|
|
114
|
+
| Release notes | https://github.com/RooCodeInc/Roo-Code/releases (**ARCHIVED** — repo read-only since 2026-05-15, frozen at v3.54.0; community fork reportedly continues) |
|
|
114
115
|
| Config paths | `.roomodes`, `.roo/rules/*.md`, `.roo/rules-{slug}/*.md`, `.roo/mcp.json`, `~/.roo/rules/`, `~/.roo/custom_modes.yaml`, `mcp_settings.json` (global via Roo settings UI) |
|
|
115
116
|
| Our generators | `scripts/generate_roo_modes.py`, `scripts/generate_roo_rules.py` |
|
|
116
117
|
| Tracked capabilities | `roomodes`, custom modes, Code Actions, MCP, Orchestrator mode, `whenToUse`, `description`, `roleDefinition`, `groups` |
|
|
@@ -149,7 +150,7 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
149
150
|
| ID | `google-antigravity` |
|
|
150
151
|
| Docs | https://antigravity.google/docs (JavaScript SPA — use bundle strings / sitemap to verify) |
|
|
151
152
|
| Changelog | https://antigravity.google/changelog (SPA; changelog entries embedded in main-*.js) |
|
|
152
|
-
| Config paths | `.
|
|
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` |
|
|
153
154
|
| Our generators | `scripts/generate_antigravity.py` (rules + workflows + skill pointer) |
|
|
154
155
|
| Tracked capabilities | Antigravity, agent manager, artifacts, MCP, workflows, rules, skills, `AGENTS.md`, `GEMINI.md`, agent permissions |
|
|
155
156
|
| Doc access note | Docs are JS-SPA — verify via `main-*.js` bundle strings or community skill repos. `WebFetch` returns an empty shell. |
|
|
@@ -159,11 +160,12 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
159
160
|
| Field | Value |
|
|
160
161
|
|-------|-------|
|
|
161
162
|
| ID | `codex-cli` |
|
|
162
|
-
| Docs | https://
|
|
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) |
|
|
163
164
|
| Release notes | https://github.com/openai/codex/releases |
|
|
164
|
-
| Config paths | `AGENTS.md`, `.agents/
|
|
165
|
-
| Our generators | `scripts/generate_codex.py`, `scripts/
|
|
166
|
-
|
|
|
165
|
+
| Config paths | `AGENTS.md`, `.agents/skills/*/SKILL.md`, `.codex/hooks.json`, `~/.codex/config.toml` |
|
|
166
|
+
| Our generators | `scripts/generate_codex.py`, `scripts/generate_codex_hooks.py`, `scripts/generate_codex_skills.py` (opt-in via `--codex-skills`) |
|
|
167
|
+
| 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
|
+
| 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`. |
|
|
167
169
|
| Tracked handler types | `command` (emitted by default); `prompt` and `agent` available upstream but authored by hand |
|
|
168
170
|
| Other capabilities | `AGENTS.md`, `config.toml`, `mcp_servers`, sandbox policies, `.agents/skills/*/SKILL.md` (native Codex skill discovery path) |
|
|
169
171
|
| Version probe | `codex --version` |
|
package/llms-full.txt
CHANGED
|
@@ -4841,11 +4841,11 @@ What `uninstall` does:
|
|
|
4841
4841
|
title: "SOP: Release Preparation"
|
|
4842
4842
|
category: procedures
|
|
4843
4843
|
service: ai-toolkit
|
|
4844
|
-
tags: [sop, release, version, publish, changelog, semver, provenance, sarif, ecosystem]
|
|
4845
|
-
version: "1.
|
|
4844
|
+
tags: [sop, release, version, publish, changelog, semver, provenance, sarif, ecosystem, shellcheck]
|
|
4845
|
+
version: "1.11.0"
|
|
4846
4846
|
created: "2026-04-10"
|
|
4847
|
-
last_updated: "2026-
|
|
4848
|
-
description: "Step-by-step checklist for preparing a new ai-toolkit release — ecosystem-sync drift check, version sync, changelog, artifact regeneration, validation, and tagging. Run BEFORE every git tag. Includes mandatory Provenance, SARIF, and checksum-pin checks added in v2.8.0, the single-run npm test discipline added in v1.8.0, the ecosystem-sync gate added in v1.9.0,
|
|
4847
|
+
last_updated: "2026-06-02"
|
|
4848
|
+
description: "Step-by-step checklist for preparing a new ai-toolkit release — ecosystem-sync drift check, version sync, changelog, artifact regeneration, validation, and tagging. Run BEFORE every git tag. Includes mandatory Provenance, SARIF, and checksum-pin checks added in v2.8.0, the single-run npm test discipline added in v1.8.0, the ecosystem-sync gate added in v1.9.0, the registry-vs-generators drift gate added in v1.10.0, and the mandatory pre-tag ShellCheck gate added in v1.11.0 (publish.yml does not run ShellCheck, so a hook lint failure can publish while reddening main CI — see the v4.5.1 postmortem in Phase 5)."
|
|
4849
4849
|
---
|
|
4850
4850
|
|
|
4851
4851
|
# SOP: Release Preparation
|
|
@@ -4890,12 +4890,11 @@ python3 scripts/sync_version.py X.Y.Z # if script exists, else manual
|
|
|
4890
4890
|
# 3. Write CHANGELOG.md entry
|
|
4891
4891
|
# 4. Regenerate artifacts
|
|
4892
4892
|
python3 scripts/generate_agents_md.py > AGENTS.md
|
|
4893
|
-
python3 scripts/generate_codex_rules.py .
|
|
4894
4893
|
python3 scripts/generate_llms_txt.py > llms.txt
|
|
4895
4894
|
python3 scripts/generate_llms_txt.py --full > llms-full.txt
|
|
4896
4895
|
|
|
4897
|
-
# 5. Validate + audit + SARIF + test + ecosystem check
|
|
4898
|
-
python3 scripts/validate.py --strict && python3 scripts/audit_skills.py --ci && python3 scripts/audit_skills.py --sarif > /tmp/audit.sarif && npm test
|
|
4896
|
+
# 5. Validate + audit + SARIF + shellcheck + test + ecosystem check
|
|
4897
|
+
python3 scripts/validate.py --strict && python3 scripts/audit_skills.py --ci && python3 scripts/audit_skills.py --sarif > /tmp/audit.sarif && shellcheck --severity=warning app/hooks/*.sh && npm test
|
|
4899
4898
|
|
|
4900
4899
|
# 5a. Supply-chain standard (v2.8.0+) — non-negotiable
|
|
4901
4900
|
grep -q -- '--provenance' .github/workflows/publish.yml || { echo "MISSING --provenance"; exit 1; }
|
|
@@ -5092,7 +5091,6 @@ Add entry at the top of `CHANGELOG.md` (after the header, before previous releas
|
|
|
5092
5091
|
|
|
5093
5092
|
```bash
|
|
5094
5093
|
python3 scripts/generate_agents_md.py > AGENTS.md
|
|
5095
|
-
python3 scripts/generate_codex_rules.py .
|
|
5096
5094
|
python3 scripts/generate_llms_txt.py > llms.txt
|
|
5097
5095
|
python3 scripts/generate_llms_txt.py --full > llms-full.txt
|
|
5098
5096
|
```
|
|
@@ -5117,6 +5115,12 @@ python3 scripts/audit_skills.py --ci
|
|
|
5117
5115
|
python3 scripts/audit_skills.py --sarif > audit.sarif # MANDATORY — GHAS ingest
|
|
5118
5116
|
python3 scripts/audit_skills.py --permissions # review Bash/Write/Edit footprint
|
|
5119
5117
|
|
|
5118
|
+
# ShellCheck on hooks (added in 1.11.0). Mirrors the ci.yml "ShellCheck hooks"
|
|
5119
|
+
# job. NOT run by validate.py, npm test, OR publish.yml — so a hook with a
|
|
5120
|
+
# ShellCheck warning passes every other gate AND still publishes on tag while
|
|
5121
|
+
# turning main CI red. Run it here, before tagging.
|
|
5122
|
+
shellcheck --severity=warning app/hooks/*.sh && echo "OK: shellcheck clean"
|
|
5123
|
+
|
|
5120
5124
|
# Registry / generator drift (added in 1.10.0). Meta-generators excluded.
|
|
5121
5125
|
META="generate_agents_md.py|generate_llms_txt.py|generate_language_rules_skills.py"
|
|
5122
5126
|
diff \
|
|
@@ -5138,12 +5142,15 @@ echo "ok: $(grep -c '^ok ' /tmp/npm-test.log) | not ok: $(grep -c '^not ok' /tmp
|
|
|
5138
5142
|
- `audit_skills.py --ci`: `HIGH: 0 | WARN: 0` (INFO is acceptable)
|
|
5139
5143
|
- `audit_skills.py --sarif`: valid JSON, non-empty `runs[0].tool.driver.rules`
|
|
5140
5144
|
- `audit_skills.py --permissions`: review `Skills with Bash + Write + Edit` list — any newly-added skill with broad access MUST be justified in the CHANGELOG entry
|
|
5145
|
+
- `shellcheck --severity=warning app/hooks/*.sh`: no output, exit 0. A common false positive is `SC2034` on `INPUT` or env vars (e.g. `AI_TOOLKIT_HOOK_FORMAT`) that a *sourced* helper (`_hook-io.sh`) consumes — ShellCheck cannot see cross-file use. Fix with a `# shellcheck disable=SC2034` directive or `export`, matching `guard-destructive.sh`. Never tag with a red ShellCheck.
|
|
5141
5146
|
- Registry drift: `OK: registry matches filesystem`. If `DRIFT:` appears, add the missing `scripts/generate_*.py` rows to `kb/reference/supported-tools-registry.md` before tagging.
|
|
5142
5147
|
- `npm test`: `1..N` with zero `not ok` (read from the cached `/tmp/npm-test.log`, do not rerun)
|
|
5143
5148
|
|
|
5149
|
+
> **Why this matters (v4.5.1 postmortem):** `publish.yml` runs only `validate.py` + `npm test`, so it published v4.5.0 even though the `main` CI `ShellCheck hooks` job was red on two `SC2034` warnings in a new hook. The publish workflow does **not** depend on the CI workflow. Until that is fixed, ShellCheck is a manual pre-tag gate — run it here every time.
|
|
5150
|
+
|
|
5144
5151
|
**One-liner:**
|
|
5145
5152
|
```bash
|
|
5146
|
-
python3 scripts/validate.py --strict && python3 scripts/audit_skills.py --ci && python3 scripts/audit_skills.py --sarif > audit.sarif && diff <(grep -oE 'scripts/generate_[a-z_]+\.py' kb/reference/supported-tools-registry.md | sort -u) <(ls scripts/generate_*.py | grep -vE 'generate_agents_md\.py|generate_llms_txt\.py|generate_language_rules_skills\.py' | sort -u) && npm test
|
|
5153
|
+
python3 scripts/validate.py --strict && python3 scripts/audit_skills.py --ci && python3 scripts/audit_skills.py --sarif > audit.sarif && shellcheck --severity=warning app/hooks/*.sh && diff <(grep -oE 'scripts/generate_[a-z_]+\.py' kb/reference/supported-tools-registry.md | sort -u) <(ls scripts/generate_*.py | grep -vE 'generate_agents_md\.py|generate_llms_txt\.py|generate_language_rules_skills\.py' | sort -u) && npm test
|
|
5147
5154
|
```
|
|
5148
5155
|
|
|
5149
5156
|
**If tests fail:** Fix the issue, do NOT skip. Common failures:
|
|
@@ -5266,17 +5273,18 @@ git push origin --delete vX.Y.Z
|
|
|
5266
5273
|
| 5 | `package-lock.json` | `npm install --package-lock-only` | Matches target |
|
|
5267
5274
|
| 6 | Count sync | Check `package.json` description, README | `validate.py` passes |
|
|
5268
5275
|
| 7 | CHANGELOG.md | Add release entry (incl. `Ecosystem` subsection if any B/D/E/F drift) | Entry exists for vX.Y.Z |
|
|
5269
|
-
| 8 | Regenerate artifacts | `generate_agents_md.py`, `
|
|
5276
|
+
| 8 | Regenerate artifacts | `generate_agents_md.py`, `generate_llms_txt.py` | No unexpected diff |
|
|
5270
5277
|
| 9 | Validate | `validate.py --strict` | 0 errors, 0 warnings |
|
|
5271
5278
|
| 10 | Security audit (CI mode) | `audit_skills.py --ci` | 0 HIGH |
|
|
5272
5279
|
| 11 | Security audit (SARIF) | `audit_skills.py --sarif` | Valid SARIF 2.1.0 JSON |
|
|
5273
5280
|
| 12 | Per-skill permissions | `audit_skills.py --permissions` | New broad-access skills justified in CHANGELOG |
|
|
5274
|
-
| 13 |
|
|
5275
|
-
| 14 |
|
|
5276
|
-
| 15 |
|
|
5277
|
-
| 16 |
|
|
5278
|
-
| 17 |
|
|
5279
|
-
| 18 |
|
|
5281
|
+
| 13 | ShellCheck hooks | `shellcheck --severity=warning app/hooks/*.sh` | Exit 0, no output (mirrors ci.yml; publish.yml does NOT run it) |
|
|
5282
|
+
| 14 | Provenance flag check | `grep -- '--provenance' .github/workflows/publish.yml` | Present |
|
|
5283
|
+
| 15 | Checksum-pin backfill | `sources.json` entries all have `sha256` | No unpinned URL sources |
|
|
5284
|
+
| 16 | Tests | `npm test` | All pass |
|
|
5285
|
+
| 17 | Commit | `git commit` | Clean working tree |
|
|
5286
|
+
| 18 | Tag | `git tag vX.Y.Z` | Tag exists |
|
|
5287
|
+
| 19 | Push | `git push origin main --tags` | CI triggered with `id-token: write` |
|
|
5280
5288
|
|
|
5281
5289
|
---
|
|
5282
5290
|
|
|
@@ -5320,9 +5328,8 @@ Verifies all critical paths from the user's perspective.
|
|
|
5320
5328
|
```bash
|
|
5321
5329
|
# Pre-commit (Phase 0)
|
|
5322
5330
|
python3 scripts/generate_agents_md.py > AGENTS.md # 1. Regenerate AGENTS.md
|
|
5323
|
-
python3 scripts/
|
|
5324
|
-
python3 scripts/
|
|
5325
|
-
python3 scripts/validate.py --strict # 4. Validation passed?
|
|
5331
|
+
python3 scripts/generate_llms_txt.py > llms.txt # 2. Regenerate llms.txt
|
|
5332
|
+
python3 scripts/validate.py --strict # 3. Validation passed?
|
|
5326
5333
|
npm test > /tmp/npm-test.log 2>&1 && grep -c '^ok ' /tmp/npm-test.log && ! grep -q '^not ok' /tmp/npm-test.log # 5. All tests passed? (single run, cached)
|
|
5327
5334
|
|
|
5328
5335
|
# Post-install verification (Phases 1-7)
|
|
@@ -5352,7 +5359,6 @@ counts but does NOT auto-regenerate — you must do it locally.
|
|
|
5352
5359
|
```bash
|
|
5353
5360
|
# 1. Regenerate generated artifacts
|
|
5354
5361
|
python3 scripts/generate_agents_md.py > AGENTS.md
|
|
5355
|
-
python3 scripts/generate_codex_rules.py .
|
|
5356
5362
|
python3 scripts/generate_llms_txt.py > llms.txt
|
|
5357
5363
|
python3 scripts/generate_llms_txt.py --full > llms-full.txt
|
|
5358
5364
|
|
|
@@ -5377,7 +5383,7 @@ by the developer as part of their PR.
|
|
|
5377
5383
|
|
|
5378
5384
|
**One-liner (copy-paste):**
|
|
5379
5385
|
```bash
|
|
5380
|
-
python3 scripts/generate_agents_md.py > AGENTS.md && python3 scripts/
|
|
5386
|
+
python3 scripts/generate_agents_md.py > AGENTS.md && python3 scripts/generate_llms_txt.py > llms.txt && python3 scripts/generate_llms_txt.py --full > llms-full.txt && python3 scripts/validate.py --strict && python3 scripts/audit_skills.py --ci && npm test
|
|
5381
5387
|
```
|
|
5382
5388
|
|
|
5383
5389
|
---
|
|
@@ -6236,7 +6242,7 @@ Machine (global) Project (local)
|
|
|
6236
6242
|
- `--editors cursor,aider` — install only selected editors
|
|
6237
6243
|
- (no flag) — auto-detect from existing project files; `update --local` picks up whatever editors already have configs
|
|
6238
6244
|
|
|
6239
|
-
Each editor gets directory-based format (`.cursor/rules/*.mdc`, `.windsurf/rules/*.md`, `.clinerules/*.md`, `.roo/rules/*.md`, `.augment/rules/ai-toolkit-*.md`, `.
|
|
6245
|
+
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`.
|
|
6240
6246
|
|
|
6241
6247
|
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`).
|
|
6242
6248
|
|
|
@@ -6270,9 +6276,8 @@ If a project already has `.mcp.json`, local install mirrors its `mcpServers` ent
|
|
|
6270
6276
|
| `aider-conf` | `./` | Generates `.aider.conf.yml` |
|
|
6271
6277
|
| `conventions-md` | `./` | Generates `CONVENTIONS.md` (Aider auto-loaded) |
|
|
6272
6278
|
| `augment-dir-rules` | `./` | Generates `.augment/rules/ai-toolkit-*.md` |
|
|
6273
|
-
| `antigravity-rules` | `./` | Generates `.
|
|
6279
|
+
| `antigravity-rules` | `./` | Generates `.agents/rules/` + `.agents/workflows/` |
|
|
6274
6280
|
| `codex-md` | `./` | Generates Codex-facing `AGENTS.md` |
|
|
6275
|
-
| `codex-rules` | `./` | Generates `.agents/rules/*.md` |
|
|
6276
6281
|
| `codex-hooks` | `./` | Generates `.codex/hooks.json` |
|
|
6277
6282
|
| `agents-md` | toolkit | Regenerates `AGENTS.md` |
|
|
6278
6283
|
| `llms-txt` | `./` | Generates `llms.txt` |
|
|
@@ -6898,8 +6903,7 @@ Usage: ai-toolkit <command> [options]
|
|
|
6898
6903
|
|---------|-------------|
|
|
6899
6904
|
| `generate-all` | Generate all platform configs at once |
|
|
6900
6905
|
| `agents-md` | Regenerate `AGENTS.md` from agent definitions |
|
|
6901
|
-
| `codex-md` | Generate `AGENTS.md` with marker injection for Codex CLI |
|
|
6902
|
-
| `codex-rules` | Generate `.agents/rules/*.md` for Codex CLI |
|
|
6906
|
+
| `codex-md` | Generate `AGENTS.md` (coding rules inlined) with marker injection for Codex CLI |
|
|
6903
6907
|
| `codex-hooks` | Generate `.codex/hooks.json` for Codex CLI |
|
|
6904
6908
|
| `cursor-rules` | Generate `.cursorrules` (legacy single file) |
|
|
6905
6909
|
| `cursor-mdc` | Generate `.cursor/rules/*.mdc` (recommended) |
|
|
@@ -6915,7 +6919,7 @@ Usage: ai-toolkit <command> [options]
|
|
|
6915
6919
|
| `conventions-md` | Generate `CONVENTIONS.md` for Aider |
|
|
6916
6920
|
| `augment-rules` | Generate `.augment/rules/ai-toolkit.md` (legacy) |
|
|
6917
6921
|
| `augment-dir-rules` | Generate `.augment/rules/ai-toolkit-*.md` (recommended) |
|
|
6918
|
-
| `antigravity-rules` | Generate `.
|
|
6922
|
+
| `antigravity-rules` | Generate `.agents/rules/` and `.agents/workflows/` |
|
|
6919
6923
|
| `llms-txt` | Generate `llms.txt` and `llms-full.txt` |
|
|
6920
6924
|
|
|
6921
6925
|
## Other Commands
|
|
@@ -8592,10 +8596,10 @@ with documented, file-based config surfaces:
|
|
|
8592
8596
|
- `windsurf`: `~/.codeium/windsurf/memories/global_rules.md` plus `~/.codeium/windsurf/skills/ai-toolkit-skill-catalogue/SKILL.md`
|
|
8593
8597
|
- `gemini`: `~/.gemini/GEMINI.md`
|
|
8594
8598
|
- `augment`: `~/.augment/rules/ai-toolkit.md`
|
|
8595
|
-
- `cline`:
|
|
8599
|
+
- `cline`: `~/Documents/Cline/Rules/ai-toolkit-*.md` plus `~/.cline/skills/ai-toolkit-skill-catalogue/SKILL.md`
|
|
8596
8600
|
- `roo`: `~/.roo/rules/ai-toolkit-*.md`
|
|
8597
8601
|
- `aider`: `~/.aider.conf.yml` plus `~/.aider-ai-toolkit-CONVENTIONS.md` when the YAML file does not already exist
|
|
8598
|
-
- `codex`: `~/AGENTS.md
|
|
8602
|
+
- `codex`: `~/AGENTS.md` (coding rules inlined), `~/.agents/skills/*`, `~/.codex/hooks.json`
|
|
8599
8603
|
- `opencode`: `~/.config/opencode/*`
|
|
8600
8604
|
|
|
8601
8605
|
Cursor, GitHub Copilot, and Google Antigravity rule installs stay project-local.
|
|
@@ -8628,7 +8632,7 @@ These files still stay local to a repository as part of the core install model:
|
|
|
8628
8632
|
- `.roomodes`
|
|
8629
8633
|
- `.aider.conf.yml`
|
|
8630
8634
|
- `.augment/rules/ai-toolkit-*.md`
|
|
8631
|
-
- `.
|
|
8635
|
+
- `.agents/rules/*.md` and `.agents/workflows/*.md` (Google Antigravity; singular `.agent/` still read as fallback)
|
|
8632
8636
|
- `.git/hooks/pre-commit` (fallback)
|
|
8633
8637
|
- project-specific documentation or safety overlays
|
|
8634
8638
|
|
|
@@ -8895,7 +8899,7 @@ title: "Hooks Catalog"
|
|
|
8895
8899
|
category: reference
|
|
8896
8900
|
service: ai-toolkit
|
|
8897
8901
|
tags: [hooks, quality, safety, enforcement, settings.json]
|
|
8898
|
-
version: "1.5.
|
|
8902
|
+
version: "1.5.7"
|
|
8899
8903
|
created: "2026-03-27"
|
|
8900
8904
|
last_updated: "2026-05-25"
|
|
8901
8905
|
description: "Complete reference of all ai-toolkit hooks: events, scripts, installation, and runtime behavior."
|
|
@@ -10872,7 +10876,7 @@ opencode also reads `CLAUDE.md` as a fallback, so a user without the native inte
|
|
|
10872
10876
|
|
|
10873
10877
|
- `AGENTS.md` (shared with Codex CLI via distinct marker sections)
|
|
10874
10878
|
- `.opencode/agents/ai-toolkit-*.md` (one per ai-toolkit agent, `mode: subagent`)
|
|
10875
|
-
- `.opencode/commands/ai-toolkit-*.md` (one per user-invocable skill
|
|
10879
|
+
- `.opencode/commands/ai-toolkit-*.md` (one per user-invocable skill; the prompt lives in the markdown body)
|
|
10876
10880
|
- `.opencode/plugins/ai-toolkit-hooks.js` (JS plugin bridging Bash hooks)
|
|
10877
10881
|
- `opencode.json` (MCP key merged from `.mcp.json`, user keys preserved)
|
|
10878
10882
|
|
|
@@ -10920,7 +10924,7 @@ Opencode treats these files as auto-completable with `@` and can delegate to the
|
|
|
10920
10924
|
|
|
10921
10925
|
Only user-invocable skills (`user-invocable: true` or no `disable-model-invocation`) emit to `.opencode/commands/`. Knowledge skills (`user-invocable: false`) are intentionally skipped — they are not intended as commands.
|
|
10922
10926
|
|
|
10923
|
-
Each command file carries
|
|
10927
|
+
Each command file carries the prompt in its markdown body (built from the SKILL.md body). opencode reads the body as the prompt; the `template` field is JSON-config-only and is ignored in `.md` command files.
|
|
10924
10928
|
|
|
10925
10929
|
## Hook Bridge (JS Plugin)
|
|
10926
10930
|
|
|
@@ -11765,9 +11769,9 @@ title: "Supported Tools Registry"
|
|
|
11765
11769
|
category: reference
|
|
11766
11770
|
service: ai-toolkit
|
|
11767
11771
|
tags: [editors, platforms, generators, integration, ecosystem]
|
|
11768
|
-
version: "1.
|
|
11772
|
+
version: "1.4.0"
|
|
11769
11773
|
created: "2026-04-23"
|
|
11770
|
-
last_updated: "2026-05
|
|
11774
|
+
last_updated: "2026-06-05"
|
|
11771
11775
|
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."
|
|
11772
11776
|
---
|
|
11773
11777
|
|
|
@@ -11788,8 +11792,9 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
11788
11792
|
| Field | Value |
|
|
11789
11793
|
|-------|-------|
|
|
11790
11794
|
| ID | `claude-code` |
|
|
11791
|
-
| Docs | https://platform.claude.com/docs
|
|
11795
|
+
| Docs | https://code.claude.com/docs (platform.claude.com/docs 307-redirects here) |
|
|
11792
11796
|
| Release notes | https://github.com/anthropics/claude-code/releases |
|
|
11797
|
+
| Changelog | https://code.claude.com/docs/en/changelog (lists current 2.1.165) |
|
|
11793
11798
|
| Config paths | `~/.claude/settings.json`, `.claude/settings.local.json`, `CLAUDE.md`, `.claude/agents/*.md`, `.claude/skills/*/SKILL.md`, `~/.claude/themes/*.json` (v2.1.118+) |
|
|
11794
11799
|
| Our generators | — (Claude Code is the primary target; toolkit content ships directly as `.md` files and `settings.json` merges) |
|
|
11795
11800
|
| 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` |
|
|
@@ -11819,9 +11824,9 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
11819
11824
|
| Field | Value |
|
|
11820
11825
|
|-------|-------|
|
|
11821
11826
|
| ID | `windsurf` |
|
|
11822
|
-
| Docs | https://docs.windsurf.com |
|
|
11823
|
-
| Changelog | https://windsurf.com/changelog |
|
|
11824
|
-
| Stable docs mirror | https://docs.
|
|
11827
|
+
| Docs | https://docs.devin.ai/desktop (Windsurf rebranded to Devin Desktop ~2026-06-02; docs.windsurf.com resolves here) |
|
|
11828
|
+
| Changelog | https://docs.devin.ai/desktop/changelog (windsurf.com/changelog 308-permanent-redirects here) |
|
|
11829
|
+
| 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/`) |
|
|
11825
11830
|
| 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` |
|
|
11826
11831
|
| Compat read paths | `.agents/skills/`, `~/.agents/skills/`, (with Claude Code config-reading) `.claude/skills/`, `~/.claude/skills/` |
|
|
11827
11832
|
| 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) |
|
|
@@ -11849,9 +11854,9 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
11849
11854
|
| Release notes | https://github.com/google-gemini/gemini-cli/releases |
|
|
11850
11855
|
| 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` |
|
|
11851
11856
|
| 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) |
|
|
11852
|
-
| Tracked capabilities | `GEMINI.md`, `mcpServers`, tools, `settings.json`, `BeforeTool`, `AfterTool`, `BeforeAgent`, `AfterAgent`, `BeforeModel`, `SessionStart`, `SessionEnd`, `
|
|
11857
|
+
| 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`) |
|
|
11853
11858
|
| Version probe | `gemini --version` |
|
|
11854
|
-
| Latest upstream | v0.
|
|
11859
|
+
| 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. |
|
|
11855
11860
|
|
|
11856
11861
|
### Cline
|
|
11857
11862
|
|
|
@@ -11860,19 +11865,19 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
11860
11865
|
| ID | `cline` |
|
|
11861
11866
|
| Docs | https://docs.cline.bot |
|
|
11862
11867
|
| Release notes | https://github.com/cline/cline/releases |
|
|
11863
|
-
| Config paths | `.clinerules/*.md
|
|
11868
|
+
| 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/`. |
|
|
11864
11869
|
| Our generators | `scripts/generate_cline.py`, `scripts/generate_cline_rules.py`, `scripts/generate_cline_skills.py` |
|
|
11865
11870
|
| Tracked capabilities | `clinerules`, Plan Mode, Act Mode, MCP, custom modes, workflows, hooks, skills, subagents, conditional rules |
|
|
11866
|
-
| Notes | Conditional rules (`paths:` YAML frontmatter) are emitted for testing and language-specific rules since 2026-04. Project rules still use `.clinerules/` for compatibility; the documented `~/.cline/rules/`
|
|
11867
|
-
| Global install | `ai-toolkit install --editors cline` writes documented global rules under
|
|
11871
|
+
| 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. |
|
|
11872
|
+
| 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`. |
|
|
11868
11873
|
|
|
11869
11874
|
### Roo Code
|
|
11870
11875
|
|
|
11871
11876
|
| Field | Value |
|
|
11872
11877
|
|-------|-------|
|
|
11873
11878
|
| ID | `roo-code` |
|
|
11874
|
-
| Docs | https://docs.roocode.com |
|
|
11875
|
-
| Release notes | https://github.com/RooCodeInc/Roo-Code/releases |
|
|
11879
|
+
| Docs | https://roocodeinc.github.io/Roo-Code (docs.roocode.com 301-redirects here) |
|
|
11880
|
+
| Release notes | https://github.com/RooCodeInc/Roo-Code/releases (**ARCHIVED** — repo read-only since 2026-05-15, frozen at v3.54.0; community fork reportedly continues) |
|
|
11876
11881
|
| Config paths | `.roomodes`, `.roo/rules/*.md`, `.roo/rules-{slug}/*.md`, `.roo/mcp.json`, `~/.roo/rules/`, `~/.roo/custom_modes.yaml`, `mcp_settings.json` (global via Roo settings UI) |
|
|
11877
11882
|
| Our generators | `scripts/generate_roo_modes.py`, `scripts/generate_roo_rules.py` |
|
|
11878
11883
|
| Tracked capabilities | `roomodes`, custom modes, Code Actions, MCP, Orchestrator mode, `whenToUse`, `description`, `roleDefinition`, `groups` |
|
|
@@ -11911,7 +11916,7 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
11911
11916
|
| ID | `google-antigravity` |
|
|
11912
11917
|
| Docs | https://antigravity.google/docs (JavaScript SPA — use bundle strings / sitemap to verify) |
|
|
11913
11918
|
| Changelog | https://antigravity.google/changelog (SPA; changelog entries embedded in main-*.js) |
|
|
11914
|
-
| Config paths | `.
|
|
11919
|
+
| 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` |
|
|
11915
11920
|
| Our generators | `scripts/generate_antigravity.py` (rules + workflows + skill pointer) |
|
|
11916
11921
|
| Tracked capabilities | Antigravity, agent manager, artifacts, MCP, workflows, rules, skills, `AGENTS.md`, `GEMINI.md`, agent permissions |
|
|
11917
11922
|
| Doc access note | Docs are JS-SPA — verify via `main-*.js` bundle strings or community skill repos. `WebFetch` returns an empty shell. |
|
|
@@ -11921,11 +11926,12 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
11921
11926
|
| Field | Value |
|
|
11922
11927
|
|-------|-------|
|
|
11923
11928
|
| ID | `codex-cli` |
|
|
11924
|
-
| Docs | https://
|
|
11929
|
+
| 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) |
|
|
11925
11930
|
| Release notes | https://github.com/openai/codex/releases |
|
|
11926
|
-
| Config paths | `AGENTS.md`, `.agents/
|
|
11927
|
-
| Our generators | `scripts/generate_codex.py`, `scripts/
|
|
11928
|
-
|
|
|
11931
|
+
| Config paths | `AGENTS.md`, `.agents/skills/*/SKILL.md`, `.codex/hooks.json`, `~/.codex/config.toml` |
|
|
11932
|
+
| Our generators | `scripts/generate_codex.py`, `scripts/generate_codex_hooks.py`, `scripts/generate_codex_skills.py` (opt-in via `--codex-skills`) |
|
|
11933
|
+
| 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/`. |
|
|
11934
|
+
| 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`. |
|
|
11929
11935
|
| Tracked handler types | `command` (emitted by default); `prompt` and `agent` available upstream but authored by hand |
|
|
11930
11936
|
| Other capabilities | `AGENTS.md`, `config.toml`, `mcp_servers`, sandbox policies, `.agents/skills/*/SKILL.md` (native Codex skill discovery path) |
|
|
11931
11937
|
| Version probe | `codex --version` |
|
package/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softspark/ai-toolkit",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.6.0",
|
|
4
4
|
"description": "AI coding toolkit: 107 skills, 44 agents, 12-editor write-through (Claude, Cursor, Windsurf, Copilot, Gemini, Cline, Roo, Aider, Augment, Antigravity, Codex, opencode), machine-enforced safety constitution, SARIF audit, signed npm provenance.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude",
|
|
@@ -59,7 +59,6 @@
|
|
|
59
59
|
"generate:cline": "python3 scripts/generate_cline_rules.py .",
|
|
60
60
|
"generate:roo": "python3 scripts/generate_roo_modes.py > .roomodes",
|
|
61
61
|
"generate:aider": "python3 scripts/generate_aider_conf.py > .aider.conf.yml",
|
|
62
|
-
"generate:codex-rules": "python3 scripts/generate_codex_rules.py .",
|
|
63
62
|
"generate:language-rules": "python3 scripts/generate_language_rules_skills.py",
|
|
64
63
|
"generate:opencode-agents": "python3 scripts/generate_opencode_agents.py .",
|
|
65
64
|
"generate:opencode-commands": "python3 scripts/generate_opencode_commands.py .",
|
|
@@ -67,7 +66,7 @@
|
|
|
67
66
|
"generate:windsurf-rules": "python3 scripts/generate_windsurf_rules.py .",
|
|
68
67
|
"generate:roo-rules": "python3 scripts/generate_roo_rules.py .",
|
|
69
68
|
"generate:augment-rules": "python3 scripts/generate_augment_rules.py .",
|
|
70
|
-
"generate:all": "npm run generate:language-rules && npm run generate:agents && npm run generate:
|
|
69
|
+
"generate:all": "npm run generate:language-rules && npm run generate:agents && npm run generate:opencode-agents && npm run generate:opencode-commands && npm run generate:cursor && npm run generate:cursor-mdc && npm run generate:windsurf && npm run generate:windsurf-rules && npm run generate:copilot && npm run generate:gemini && npm run generate:cline && npm run generate:roo && npm run generate:roo-rules && npm run generate:aider && npm run generate:augment-rules && npm run generate:llms"
|
|
71
70
|
},
|
|
72
71
|
"files": [
|
|
73
72
|
"bin/",
|