@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.
@@ -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`: `~/.cline/rules/ai-toolkit-*.md` plus `~/.cline/skills/ai-toolkit-skill-catalogue/SKILL.md`
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`, `~/.agents/rules/*`, `~/.agents/skills/*`, `~/.codex/hooks.json`
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
- - `.agent/rules/*.md` and `.agent/workflows/*.md` (Google Antigravity)
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, required `template: |` frontmatter field)
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 opencode's required `template: |` frontmatter field, built from the SKILL.md body.
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.3.0"
6
+ version: "1.4.0"
7
7
  created: "2026-04-23"
8
- last_updated: "2026-05-30"
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/en/claude-code |
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.windsurf.com/llms.txt + per-page .md twins |
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`, `Stop`, `SKILL.md`, `activate_skill`, custom commands, `gemini-extension.json` |
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.39.0 (2026-04-23) |
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` (compat), `.clinerules/workflows/*.md` (compat workflows), `.cline/rules/*.md`, `.cline/hooks/`, `.cline/skills/*/SKILL.md`, `~/.cline/rules/*.md`, `~/.cline/hooks/`, `~/.cline/skills/*/SKILL.md`, `~/.cline/data/settings/cline_mcp_settings.json` |
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/` path is used for global install. Skills are emitted as a pointer catalogue in `profile=full` and global installs. |
105
- | Global install | `ai-toolkit install --editors cline` writes documented global rules under `~/.cline/rules/` and a skill pointer under `~/.cline/skills/`; MCP remains managed by `ai-toolkit mcp install --editor cline`. |
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 | `.agent/rules/*.md`, `.agent/workflows/*.md`, `.agent/skills/*/SKILL.md`, `AGENTS.md`, `GEMINI.md` |
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://github.com/openai/codex (redirects from developers.openai.com/codex) |
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/rules/*.md`, `.agents/skills/*/SKILL.md`, `.codex/hooks.json`, `~/.codex/config.toml` |
165
- | Our generators | `scripts/generate_codex.py`, `scripts/generate_codex_rules.py`, `scripts/generate_codex_hooks.py`, `scripts/generate_codex_skills.py` (opt-in via `--codex-skills`) |
166
- | Tracked hook events | Upstream canonical (codex-rs `HookEventName` enum): `PreToolUse`, `PostToolUse`, `PermissionRequest`, `PreCompact`, `PostCompact`, `SessionStart`, `UserPromptSubmit`, `SubagentStart`, `SubagentStop`, `Stop` (10 events). We currently wire a subset: `SessionStart`, `PreToolUse`, `PermissionRequest`, `UserPromptSubmit`, `Stop`. |
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.10.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-04-28"
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, and the registry-vs-generators drift gate added in v1.10.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`, `generate_codex_rules.py`, `generate_llms_txt.py` | No unexpected diff |
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 | Provenance flag check | `grep -- '--provenance' .github/workflows/publish.yml` | Present |
5275
- | 14 | Checksum-pin backfill | `sources.json` entries all have `sha256` | No unpinned URL sources |
5276
- | 15 | Tests | `npm test` | All pass |
5277
- | 16 | Commit | `git commit` | Clean working tree |
5278
- | 17 | Tag | `git tag vX.Y.Z` | Tag exists |
5279
- | 18 | Push | `git push origin main --tags` | CI triggered with `id-token: write` |
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/generate_codex_rules.py . # 2. Refresh standard Codex rules
5324
- python3 scripts/generate_llms_txt.py > llms.txt # 3. Regenerate llms.txt
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/generate_codex_rules.py . && 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
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`, `.agent/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`, `.agents/rules/*.md`, `.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`.
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 `.agent/rules/` + `.agent/workflows/` |
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 `.agent/rules/` and `.agent/workflows/` |
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`: `~/.cline/rules/ai-toolkit-*.md` plus `~/.cline/skills/ai-toolkit-skill-catalogue/SKILL.md`
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`, `~/.agents/rules/*`, `~/.agents/skills/*`, `~/.codex/hooks.json`
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
- - `.agent/rules/*.md` and `.agent/workflows/*.md` (Google Antigravity)
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.6"
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, required `template: |` frontmatter field)
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 opencode's required `template: |` frontmatter field, built from the SKILL.md body.
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.3.0"
11772
+ version: "1.4.0"
11769
11773
  created: "2026-04-23"
11770
- last_updated: "2026-05-30"
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/en/claude-code |
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.windsurf.com/llms.txt + per-page .md twins |
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`, `Stop`, `SKILL.md`, `activate_skill`, custom commands, `gemini-extension.json` |
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.39.0 (2026-04-23) |
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` (compat), `.clinerules/workflows/*.md` (compat workflows), `.cline/rules/*.md`, `.cline/hooks/`, `.cline/skills/*/SKILL.md`, `~/.cline/rules/*.md`, `~/.cline/hooks/`, `~/.cline/skills/*/SKILL.md`, `~/.cline/data/settings/cline_mcp_settings.json` |
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/` path is used for global install. Skills are emitted as a pointer catalogue in `profile=full` and global installs. |
11867
- | Global install | `ai-toolkit install --editors cline` writes documented global rules under `~/.cline/rules/` and a skill pointer under `~/.cline/skills/`; MCP remains managed by `ai-toolkit mcp install --editor cline`. |
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 | `.agent/rules/*.md`, `.agent/workflows/*.md`, `.agent/skills/*/SKILL.md`, `AGENTS.md`, `GEMINI.md` |
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://github.com/openai/codex (redirects from developers.openai.com/codex) |
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/rules/*.md`, `.agents/skills/*/SKILL.md`, `.codex/hooks.json`, `~/.codex/config.toml` |
11927
- | Our generators | `scripts/generate_codex.py`, `scripts/generate_codex_rules.py`, `scripts/generate_codex_hooks.py`, `scripts/generate_codex_skills.py` (opt-in via `--codex-skills`) |
11928
- | Tracked hook events | Upstream canonical (codex-rs `HookEventName` enum): `PreToolUse`, `PostToolUse`, `PermissionRequest`, `PreCompact`, `PostCompact`, `SessionStart`, `UserPromptSubmit`, `SubagentStart`, `SubagentStop`, `Stop` (10 events). We currently wire a subset: `SessionStart`, `PreToolUse`, `PermissionRequest`, `UserPromptSubmit`, `Stop`. |
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
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.5.0",
2
+ "version": "4.6.0",
3
3
  "components": {
4
4
  "agents": {
5
5
  "description": "44 specialized agents (orchestrator, backend, frontend, security, devops, etc.)",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softspark/ai-toolkit",
3
- "version": "4.5.0",
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:codex-rules && 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"
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/",