@softspark/ai-toolkit 4.12.0 → 4.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/README.md +33 -15
- package/app/.claude-plugin/plugin.json +11 -19
- package/app/ARCHITECTURE.md +6 -6
- package/app/claude-app/global-instructions.md +10 -0
- package/app/claude-app/hooks/hooks.json +284 -0
- package/app/claude-app/skills/ai-toolkit-rules/SKILL.md +359 -0
- package/app/hooks/config-desync-guard.sh +63 -23
- package/app/plugins/README.md +4 -1
- package/benchmarks/ecosystem-doctor-snapshot.json +91 -25
- package/bin/ai-toolkit.js +21 -3
- package/kb/planning/drop-cascade-hooks-after-sunset.md +13 -8
- package/kb/procedures/ecosystem-sync-sop.md +5 -5
- package/kb/procedures/maintenance-sop.md +42 -4
- package/kb/procedures/release-preparation-sop.md +5 -1
- package/kb/procedures/release-verification-sop.md +25 -9
- package/kb/reference/architecture-overview.md +7 -2
- package/kb/reference/claude-ecosystem-expansion-foundations.md +12 -3
- package/kb/reference/cli-reference.md +4 -2
- package/kb/reference/global-install-model.md +24 -3
- package/kb/reference/hooks-catalog.md +2 -3
- package/kb/reference/plugin-pack-conventions.md +5 -5
- package/kb/reference/skills-catalog.md +2 -0
- package/kb/reference/supported-tools-registry.md +30 -13
- package/kb/reference/unique-features.md +3 -2
- package/llms-full.txt +179 -60
- package/manifest.json +8 -8
- package/package.json +4 -3
- package/scripts/claude_app.py +347 -0
- package/scripts/doctor.py +85 -4
- package/scripts/ecosystem_tools.json +33 -5
- package/scripts/generate_devin_hooks.py +3 -4
- package/scripts/generate_windsurf_skills.py +5 -6
- package/scripts/install.py +23 -21
- package/scripts/install_steps/ai_tools.py +96 -6
- package/scripts/install_steps/install_state.py +2 -0
- package/scripts/update_projects.py +12 -1
- package/scripts/validate.py +34 -2
- package/AGENTS.md +0 -655
- package/scripts/generate_windsurf_hooks.py +0 -152
package/llms-full.txt
CHANGED
|
@@ -3990,16 +3990,18 @@ tags:
|
|
|
3990
3990
|
- deprecation
|
|
3991
3991
|
- cleanup
|
|
3992
3992
|
doc_type: plan
|
|
3993
|
-
status:
|
|
3993
|
+
status: completed
|
|
3994
3994
|
created: "2026-06-10"
|
|
3995
|
-
last_updated: "2026-
|
|
3996
|
-
completion: "
|
|
3995
|
+
last_updated: "2026-07-10"
|
|
3996
|
+
completion: "100%"
|
|
3997
3997
|
trigger_date: "2026-07-01"
|
|
3998
|
-
description: "
|
|
3998
|
+
description: "Completed cleanup of the deprecated Windsurf Cascade hooks generator after the 2026-07-01 sunset; Devin CLI .devin/hooks.v1.json is now the sole live hook surface."
|
|
3999
3999
|
---
|
|
4000
4000
|
|
|
4001
4001
|
# Plan: Drop Cascade hooks after 2026-07-01 sunset
|
|
4002
4002
|
|
|
4003
|
+
**Completed in v4.13.0 (2026-07-10).** The deprecated generator and install/test wiring were removed; the Devin hook generator remains.
|
|
4004
|
+
|
|
4003
4005
|
## Why this exists
|
|
4004
4006
|
|
|
4005
4007
|
Windsurf rebranded to Devin Desktop on 2026-06-02. The Cascade agent — and its
|
|
@@ -4052,10 +4054,13 @@ removing it before the sunset breaks Cascade users who are still on the old agen
|
|
|
4052
4054
|
- `python3 scripts/validate.py --strict` — 0/0 (editor-hooks-honesty must still
|
|
4053
4055
|
report windsurf as hook-enabled via the `devin` generator alias).
|
|
4054
4056
|
- `python3 scripts/ecosystem_doctor.py --offline --check` — exit 0.
|
|
4055
|
-
- `npm test` — 0 `not ok`;
|
|
4056
|
-
`generate_windsurf_hooks.py`
|
|
4057
|
-
- `grep -rn "generate_windsurf_hooks
|
|
4058
|
-
|
|
4057
|
+
- `npm test` — 0 `not ok`; no test recreates the deleted
|
|
4058
|
+
`generate_windsurf_hooks.py` generator.
|
|
4059
|
+
- `grep -rn "generate_windsurf_hooks" scripts/ tests/` returns nothing
|
|
4060
|
+
(Art. VI.1 orphan check — the deleted generator is fully unwired).
|
|
4061
|
+
`.windsurf/hooks.json` intentionally remains referenced by the one-time
|
|
4062
|
+
migration/strip cleanup (`scripts/install_steps/ai_tools.py`) and its test,
|
|
4063
|
+
and in narrative docs (CHANGELOG, README, `kb/`, docstrings).
|
|
4059
4064
|
|
|
4060
4065
|
## Do NOT touch
|
|
4061
4066
|
|
|
@@ -4242,10 +4247,10 @@ title: "SOP: Ecosystem Sync"
|
|
|
4242
4247
|
category: procedures
|
|
4243
4248
|
service: ai-toolkit
|
|
4244
4249
|
tags: [sop, ecosystem, editors, generators, drift-detection, sync]
|
|
4245
|
-
version: "1.
|
|
4250
|
+
version: "1.1.0"
|
|
4246
4251
|
created: "2026-04-23"
|
|
4247
|
-
last_updated: "2026-
|
|
4248
|
-
description: "Quarterly (or event-triggered) sync procedure that detects documentation and capability drift in supported tools (Claude Code
|
|
4252
|
+
last_updated: "2026-07-10"
|
|
4253
|
+
description: "Quarterly (or event-triggered) sync procedure that detects documentation and capability drift in supported tools (Claude Code, Claude app, and 11 editors), analyses our generators and skills for missing features, and walks through the migration + generator-update workflow."
|
|
4249
4254
|
---
|
|
4250
4255
|
|
|
4251
4256
|
# SOP: Ecosystem Sync
|
|
@@ -4265,7 +4270,7 @@ Keeps ai-toolkit aligned with the tools it integrates with. When an editor adds
|
|
|
4265
4270
|
## Quick Reference
|
|
4266
4271
|
|
|
4267
4272
|
```bash
|
|
4268
|
-
# Full check (all
|
|
4273
|
+
# Full check (all 13 tools, online)
|
|
4269
4274
|
python3 scripts/ecosystem_doctor.py --format text
|
|
4270
4275
|
|
|
4271
4276
|
# Single tool
|
|
@@ -4287,7 +4292,7 @@ python3 scripts/ecosystem_doctor.py --offline --format text
|
|
|
4287
4292
|
|
|
4288
4293
|
| File | Purpose |
|
|
4289
4294
|
|------|---------|
|
|
4290
|
-
| `scripts/ecosystem_tools.json` | Authoritative registry:
|
|
4295
|
+
| `scripts/ecosystem_tools.json` | Authoritative registry: 13 tools with doc URLs, config paths, our generators, capability markers |
|
|
4291
4296
|
| `benchmarks/ecosystem-doctor-snapshot.json` | Last-seen state (headings, content hash, markers, version) — updated via `--update` |
|
|
4292
4297
|
| `scripts/ecosystem_doctor.py` | Drift detector |
|
|
4293
4298
|
| `kb/reference/supported-tools-registry.md` | Human-readable view of the registry |
|
|
@@ -4502,9 +4507,9 @@ title: "SOP: Claude Toolkit Maintenance"
|
|
|
4502
4507
|
category: procedures
|
|
4503
4508
|
service: ai-toolkit
|
|
4504
4509
|
tags: [sop, maintenance, agents, skills, install]
|
|
4505
|
-
version: "3.
|
|
4510
|
+
version: "3.2.0"
|
|
4506
4511
|
created: "2026-03-23"
|
|
4507
|
-
last_updated: "2026-
|
|
4512
|
+
last_updated: "2026-07-10"
|
|
4508
4513
|
description: "Standard operating procedures for installing, maintaining, and evolving the ai-toolkit."
|
|
4509
4514
|
---
|
|
4510
4515
|
|
|
@@ -4591,6 +4596,24 @@ What `install` and `update` do (merge-friendly — user content never overwritte
|
|
|
4591
4596
|
|
|
4592
4597
|
Re-running updates only toolkit content. Old whole-directory symlinks are auto-upgraded to per-file on next run.
|
|
4593
4598
|
|
|
4599
|
+
### Install in Claude Chat / Desktop / Cowork
|
|
4600
|
+
|
|
4601
|
+
The Claude app does not read Claude Code's `~/.claude/rules/`, `CLAUDE.md`,
|
|
4602
|
+
agents, skills, or settings. Build the separate app-native plugin:
|
|
4603
|
+
|
|
4604
|
+
```bash
|
|
4605
|
+
ai-toolkit claude-app export --verify
|
|
4606
|
+
```
|
|
4607
|
+
|
|
4608
|
+
1. Open Claude and choose `Customize > Plugins > + > Upload plugin`.
|
|
4609
|
+
2. Select `ai-toolkit-claude-app.zip`.
|
|
4610
|
+
3. Paste `ai-toolkit-claude-app-global-instructions.md` into
|
|
4611
|
+
`Settings > Cowork > Global instructions`.
|
|
4612
|
+
|
|
4613
|
+
The export includes registered rules by default; use `--no-custom-rules` for a
|
|
4614
|
+
shareable clean bundle. Re-export and re-upload after toolkit or registered-rule
|
|
4615
|
+
updates. Skills work in Chat and Cowork. Hooks and sub-agents run only in Cowork.
|
|
4616
|
+
|
|
4594
4617
|
### Install Profiles (v3.0.0)
|
|
4595
4618
|
|
|
4596
4619
|
| Profile | Claude Code core | Editor rules | Gemini hooks | Copilot dir layout | Per-editor hooks / sub-agents / commands | Git hooks |
|
|
@@ -4649,6 +4672,9 @@ ai-toolkit remove-rule my-project-rules
|
|
|
4649
4672
|
|
|
4650
4673
|
Rule names derive from the filename (`my-project-rules.md` → marker `TOOLKIT:my-project-rules`).
|
|
4651
4674
|
|
|
4675
|
+
After adding or removing a registered rule, re-export the Claude app plugin if
|
|
4676
|
+
that runtime should receive the change.
|
|
4677
|
+
|
|
4652
4678
|
---
|
|
4653
4679
|
|
|
4654
4680
|
## Adding a New Agent
|
|
@@ -4730,6 +4756,21 @@ Use this when Claude appears to ignore `CLAUDE.md`, `.claude/rules/*.md`, output
|
|
|
4730
4756
|
scripts/validate.py
|
|
4731
4757
|
```
|
|
4732
4758
|
|
|
4759
|
+
## Troubleshooting Rule Enforcement in Claude Chat / Cowork
|
|
4760
|
+
|
|
4761
|
+
Do not use `/memory` or inspect `~/.claude/rules/` for the app runtime; those
|
|
4762
|
+
checks apply only to Claude Code.
|
|
4763
|
+
|
|
4764
|
+
1. Run `ai-toolkit claude-app verify` and fix any manifest/component error.
|
|
4765
|
+
2. Re-export the ZIP and upload it from `Customize > Plugins`.
|
|
4766
|
+
3. Confirm `ai-toolkit-rules` appears in the `/` or `+` skill picker.
|
|
4767
|
+
4. Confirm the generated standing instructions are saved under
|
|
4768
|
+
`Settings > Cowork > Global instructions`.
|
|
4769
|
+
5. In regular Chat, expect skills only. Hooks and sub-agents are intentionally
|
|
4770
|
+
unavailable there; test those in Cowork.
|
|
4771
|
+
6. Start a new chat/task after updating the plugin so the new component catalog
|
|
4772
|
+
is loaded.
|
|
4773
|
+
|
|
4733
4774
|
## Verification
|
|
4734
4775
|
|
|
4735
4776
|
After changing rule-enforcement behavior, run at minimum:
|
|
@@ -4737,6 +4778,8 @@ After changing rule-enforcement behavior, run at minimum:
|
|
|
4737
4778
|
```bash
|
|
4738
4779
|
bats tests/test_hooks.bats tests/test_search_first_flow.bats
|
|
4739
4780
|
bats tests/test_install.bats tests/test_codex.bats
|
|
4781
|
+
bats tests/test_claude_app.bats tests/test_hooks_per_editor.bats
|
|
4782
|
+
python3 scripts/claude_app.py verify
|
|
4740
4783
|
python3 scripts/validate.py --strict
|
|
4741
4784
|
```
|
|
4742
4785
|
|
|
@@ -4744,7 +4787,7 @@ python3 scripts/validate.py --strict
|
|
|
4744
4787
|
|
|
4745
4788
|
```bash
|
|
4746
4789
|
ai-toolkit plugin list # show available packs
|
|
4747
|
-
ai-toolkit plugin install --editor claude <name> # install for Claude global target
|
|
4790
|
+
ai-toolkit plugin install --editor claude <name> # install for Claude Code global target
|
|
4748
4791
|
ai-toolkit plugin install --editor codex <name> # install for Codex global target
|
|
4749
4792
|
ai-toolkit plugin install --editor all --all # install all 11 packs for both runtimes
|
|
4750
4793
|
ai-toolkit plugin update --editor all --all # re-apply all installed packs after toolkit updates
|
|
@@ -4782,7 +4825,7 @@ Follow the `documentation-standards` knowledge skill (`app/skills/documentation-
|
|
|
4782
4825
|
|
|
4783
4826
|
**Every addition — skill, hook, MCP template, agent, rule — MUST be verified against all supported editors before merge.**
|
|
4784
4827
|
|
|
4785
|
-
|
|
4828
|
+
The ecosystem registry tracks 13 targets: Claude Code, the Claude Chat/Cowork app, and 11 editor integrations. Each has its own config format, file path conventions, and runtime capabilities. A feature that works in Claude Code may silently break in Cursor, Codex, or Copilot if the editor's official spec diverges.
|
|
4786
4829
|
|
|
4787
4830
|
### Verification checklist
|
|
4788
4831
|
|
|
@@ -5311,7 +5354,11 @@ Stage all release files:
|
|
|
5311
5354
|
git add package.json manifest.json app/.claude-plugin/plugin.json
|
|
5312
5355
|
git add package-lock.json
|
|
5313
5356
|
git add CHANGELOG.md
|
|
5314
|
-
git add
|
|
5357
|
+
git add llms.txt llms-full.txt
|
|
5358
|
+
# NOTE: AGENTS.md, GEMINI.md, and .github/copilot-instructions.md are generated
|
|
5359
|
+
# editor configs and are gitignored — do NOT commit them. `prepublishOnly` runs
|
|
5360
|
+
# `npm run generate:all`, so the shipped package (which lists AGENTS.md in
|
|
5361
|
+
# package.json `files`) gets a fresh copy at publish time.
|
|
5315
5362
|
git add -p # review and stage any other changes
|
|
5316
5363
|
```
|
|
5317
5364
|
|
|
@@ -5396,10 +5443,10 @@ title: "SOP: Release Verification"
|
|
|
5396
5443
|
category: procedures
|
|
5397
5444
|
service: ai-toolkit
|
|
5398
5445
|
tags: [sop, verification, release, smoke-test, install, update, qa, provenance, sarif]
|
|
5399
|
-
version: "1.
|
|
5446
|
+
version: "1.6.0"
|
|
5400
5447
|
created: "2026-04-08"
|
|
5401
|
-
last_updated: "2026-
|
|
5402
|
-
description: "End-to-end smoke test after installing or updating @softspark/ai-toolkit — verifies CLI,
|
|
5448
|
+
last_updated: "2026-07-02"
|
|
5449
|
+
description: "End-to-end smoke test after installing or updating @softspark/ai-toolkit — verifies CLI, installs, Claude app plugin export, doctor, validation, tests, eject, npm provenance attestation, SARIF audit, and per-skill permissions. v1.6.0 adds the Claude Chat/Cowork plugin validation and replaces the retired Cascade hook surface with Devin hooks."
|
|
5403
5450
|
---
|
|
5404
5451
|
|
|
5405
5452
|
# SOP: Release Verification
|
|
@@ -5444,10 +5491,11 @@ python3 scripts/audit_skills.py --ci # 10. Security audit
|
|
|
5444
5491
|
python3 scripts/audit_skills.py --sarif | python3 -c "import json,sys; assert json.load(sys.stdin)['version']=='2.1.0'; print('SARIF OK')" # 11. SARIF 2.1.0 well-formed?
|
|
5445
5492
|
python3 scripts/audit_skills.py --permissions | head -30 # 12. Broad-access skills reviewed?
|
|
5446
5493
|
npm view @softspark/ai-toolkit@X.Y.Z --json | python3 -c "import json,sys; d=json.load(sys.stdin); assert d['dist']['attestations']['provenance']['predicateType']=='https://slsa.dev/provenance/v1'; print('PROVENANCE OK')" # 13. Provenance attested on npm?
|
|
5494
|
+
python3 scripts/claude_app.py verify # 14. Claude Chat/Cowork plugin contract valid?
|
|
5447
5495
|
|
|
5448
5496
|
# Deep-coverage verification (Phase 9, v3.0.0+)
|
|
5449
5497
|
META="generate_agents_md.py|generate_llms_txt.py|generate_language_rules_skills.py"
|
|
5450
|
-
diff <(grep -oE 'scripts/generate_[a-z_]+\.py' kb/reference/supported-tools-registry.md | sort -u) <(ls scripts/generate_*.py | grep -vE "$META" | sort -u) && echo "OK: registry matches" #
|
|
5498
|
+
diff <(grep -oE 'scripts/generate_[a-z_]+\.py' kb/reference/supported-tools-registry.md | sort -u) <(ls scripts/generate_*.py | grep -vE "$META" | sort -u) && echo "OK: registry matches" # 15. Registry <-> generators drift?
|
|
5451
5499
|
```
|
|
5452
5500
|
|
|
5453
5501
|
---
|
|
@@ -5473,7 +5521,10 @@ python3 scripts/audit_skills.py --ci
|
|
|
5473
5521
|
npm test
|
|
5474
5522
|
|
|
5475
5523
|
# 5. Stage and commit
|
|
5476
|
-
|
|
5524
|
+
# AGENTS.md, GEMINI.md, and .github/copilot-instructions.md are generated and
|
|
5525
|
+
# gitignored — do NOT commit them (regenerated at prepublishOnly). Only the
|
|
5526
|
+
# doc artifacts llms.txt / llms-full.txt are committed.
|
|
5527
|
+
git add llms.txt llms-full.txt
|
|
5477
5528
|
git add -p # stage your other changes
|
|
5478
5529
|
git commit -m "feat: your change description"
|
|
5479
5530
|
```
|
|
@@ -5515,7 +5566,7 @@ ai-toolkit status
|
|
|
5515
5566
|
- [ ] Agents >= 44
|
|
5516
5567
|
- [ ] Skills >= 99
|
|
5517
5568
|
- [ ] Hooks merged into settings.json
|
|
5518
|
-
- [ ] "Other AI Tools" section lists documented global targets
|
|
5569
|
+
- [ ] "Other AI Tools" section lists documented global targets (with `--editors`): aider, antigravity, augment, cline, codex, copilot, cursor, gemini, opencode, roo, windsurf. Scope varies (v4.12.0+): cursor = `~/.cursor/hooks.json` only, copilot = `~/.copilot/` instructions, antigravity = `~/.gemini/*/skills` pointer; Cursor and Antigravity RULES still install only via `--local` (no mergeable global rules file)
|
|
5519
5570
|
|
|
5520
5571
|
**Verify `status`:**
|
|
5521
5572
|
- [ ] Version matches expected
|
|
@@ -5731,12 +5782,12 @@ These verify the native-surface generators shipped in v3.0.0 actually emit the r
|
|
|
5731
5782
|
D=/tmp/aitk-profile-full-${RANDOM} && mkdir -p "$D" && cd "$D" && git init -q
|
|
5732
5783
|
ai-toolkit install --local --editors cursor,windsurf,gemini,augment,codex \
|
|
5733
5784
|
--profile full --codex-skills --dry-run 2>&1 \
|
|
5734
|
-
| grep -E "\\.cursor/(hooks\\.json|agents)|\\.
|
|
5785
|
+
| grep -E "\\.cursor/(hooks\\.json|agents)|\\.devin/hooks\\.v1\\.json|\\.gemini/(settings\\.json|commands)|\\.augment/(agents|commands)|\\.agents/skills"
|
|
5735
5786
|
```
|
|
5736
5787
|
|
|
5737
5788
|
**Verify** — at least the following lines appear:
|
|
5738
5789
|
- [ ] `.cursor/hooks.json` and `.cursor/agents/`
|
|
5739
|
-
- [ ] `.
|
|
5790
|
+
- [ ] `.devin/hooks.v1.json`
|
|
5740
5791
|
- [ ] `.gemini/settings.json` hooks AND `.gemini/commands/`
|
|
5741
5792
|
- [ ] `.augment/agents/` + `.augment/commands/` + `$HOME/.augment/settings.json`
|
|
5742
5793
|
- [ ] `.agents/skills/` (Codex native discovery path; refreshed by `--codex-skills`)
|
|
@@ -5794,7 +5845,7 @@ The bats suite validates JSON shape at generation time. This re-checks that what
|
|
|
5794
5845
|
```bash
|
|
5795
5846
|
D=/tmp/aitk-json-${RANDOM} && mkdir -p "$D" && cd "$D" && git init -q
|
|
5796
5847
|
ai-toolkit install --local --editors cursor,windsurf,gemini,augment --profile full >/dev/null 2>&1
|
|
5797
|
-
for f in .cursor/hooks.json .
|
|
5848
|
+
for f in .cursor/hooks.json .devin/hooks.v1.json .gemini/settings.json $HOME/.augment/settings.json; do
|
|
5798
5849
|
[ -f "$f" ] && python3 -c "import json; json.load(open('$f'))" && echo "OK: $f"
|
|
5799
5850
|
done
|
|
5800
5851
|
```
|
|
@@ -5814,6 +5865,18 @@ diff <(echo "$REG") <(echo "$FS") && echo "OK: registry matches filesystem" || e
|
|
|
5814
5865
|
|
|
5815
5866
|
**Verify:** prints `OK: registry matches filesystem`. If not, add the missing rows to the registry before tagging the next release.
|
|
5816
5867
|
|
|
5868
|
+
### 9.7 Claude Chat / Cowork plugin validates and exports
|
|
5869
|
+
|
|
5870
|
+
```bash
|
|
5871
|
+
python3 scripts/claude_app.py verify
|
|
5872
|
+
D=/tmp/aitk-claude-app-${RANDOM}
|
|
5873
|
+
python3 scripts/claude_app.py export --output "$D.zip" --no-custom-rules
|
|
5874
|
+
python3 -c "import zipfile; z=zipfile.ZipFile('$D.zip'); assert '.claude-plugin/plugin.json' in z.namelist(); assert 'claude-app/skills/ai-toolkit-rules/SKILL.md' in z.namelist(); print('OK: Claude app archive')"
|
|
5875
|
+
```
|
|
5876
|
+
|
|
5877
|
+
**Verify:** the official validator exits 0; the archive contains the manifest,
|
|
5878
|
+
app-native rules skill, bundled agents/skills, and plugin-relative Cowork hooks.
|
|
5879
|
+
|
|
5817
5880
|
---
|
|
5818
5881
|
|
|
5819
5882
|
## Troubleshooting
|
|
@@ -6240,14 +6303,14 @@ tags: [architecture, overview, design, structure]
|
|
|
6240
6303
|
version: "1.4.6"
|
|
6241
6304
|
created: "2026-03-23"
|
|
6242
6305
|
last_updated: "2026-06-10"
|
|
6243
|
-
description: "Architecture of ai-toolkit: directory layout, global install model, editor-aware MCP install, Codex translation layer, skill tiers, and integration with projects."
|
|
6306
|
+
description: "Architecture of ai-toolkit: directory layout, Claude app export, global install model, editor-aware MCP install, Codex translation layer, skill tiers, and integration with projects."
|
|
6244
6307
|
---
|
|
6245
6308
|
|
|
6246
6309
|
# AI Toolkit Architecture
|
|
6247
6310
|
|
|
6248
6311
|
## Purpose
|
|
6249
6312
|
|
|
6250
|
-
Shared, project-agnostic AI development toolkit for Claude Code
|
|
6313
|
+
Shared, project-agnostic AI development toolkit for Claude Code, Claude Chat/Cowork, and compatible assistants such as Cursor, Devin, Copilot, Gemini, Cline, Roo/Zoo Code, Aider, Augment, and Google Antigravity. Provides agents, skills, lifecycle hooks, persona presets, and runtime-specific plugin packaging.
|
|
6251
6314
|
|
|
6252
6315
|
## Design Principles
|
|
6253
6316
|
|
|
@@ -6267,6 +6330,7 @@ ai-toolkit/
|
|
|
6267
6330
|
agents/ # Agent definitions (.md + YAML frontmatter)
|
|
6268
6331
|
skills/ # skills: task, hybrid, knowledge
|
|
6269
6332
|
rules/ # Source rules synced into Claude/editor rule files
|
|
6333
|
+
claude-app/ # Generated app-only rules skill, hooks, instructions
|
|
6270
6334
|
hooks/ # Hook scripts (copied to ~/.softspark/ai-toolkit/hooks/)
|
|
6271
6335
|
hooks.json # Hook definitions (merged into ~/.claude/settings.json)
|
|
6272
6336
|
constitution.md # Immutable safety rules, 7 articles (marker-injected)
|
|
@@ -6296,6 +6360,7 @@ ai-toolkit/
|
|
|
6296
6360
|
generate_llms_txt.py # Generates llms.txt
|
|
6297
6361
|
install_git_hooks.py # Installs fallback pre-commit hook
|
|
6298
6362
|
plugin.py # Plugin pack management (install, remove, list, status)
|
|
6363
|
+
claude_app.py # Claude Chat/Desktop/Cowork plugin export + validation
|
|
6299
6364
|
benchmark_ecosystem.py # Generates ecosystem benchmark snapshot
|
|
6300
6365
|
harvest_ecosystem.py # Writes machine-readable ecosystem harvest JSON
|
|
6301
6366
|
compile_slm.py # Compiles toolkit into minimal SLM system prompt (2K-16K tokens)
|
|
@@ -6346,6 +6411,8 @@ Machine (global) Project (local)
|
|
|
6346
6411
|
|
|
6347
6412
|
Each editor gets directory-based format (`.cursor/rules/*.mdc`, `.devin/rules/*.md` + `.windsurf/rules/*.md` (dual-emit since the Devin Desktop rebrand), `.github/instructions/*.instructions.md` + `.github/prompts/*.prompt.md` + root `AGENTS.md` for Copilot agent instructions, `.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`.
|
|
6348
6413
|
|
|
6414
|
+
Claude Chat/Desktop/Cowork is deliberately outside `--editors`: the app does not scan filesystem configuration under `~/.claude`. `ai-toolkit claude-app export` creates a self-contained plugin ZIP with skills, agents, Cowork hooks, app-native rules, and bundled hook dependencies. It also emits the compact text that users paste into Cowork global instructions. Updating requires re-export and re-upload because the app owns its plugin store.
|
|
6415
|
+
|
|
6349
6416
|
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`).
|
|
6350
6417
|
|
|
6351
6418
|
## CLI Commands
|
|
@@ -6354,6 +6421,7 @@ If a project already has `.mcp.json`, local install mirrors its `mcpServers` ent
|
|
|
6354
6421
|
|---------|--------|-------------|
|
|
6355
6422
|
| `install` | `~/.claude/` | First-time: per-file symlinks + JSON merge + marker injection + rules |
|
|
6356
6423
|
| `install --local` | `./` | Claude Code configs + editors via `--editors` (auto-detect or explicit) |
|
|
6424
|
+
| `claude-app export` | output ZIP + Markdown | Uploadable Claude Chat/Cowork plugin and global instructions |
|
|
6357
6425
|
| `update` | `~/.claude/` | Re-apply after npm update or after add-rule/remove-rule |
|
|
6358
6426
|
| `update --local` | `./` | Re-apply + refresh project-local configs |
|
|
6359
6427
|
| `uninstall` | `~/.claude/` | Strips toolkit components (preserves user content) |
|
|
@@ -6814,9 +6882,9 @@ title: "Claude Ecosystem Expansion Foundations"
|
|
|
6814
6882
|
category: reference
|
|
6815
6883
|
service: ai-toolkit
|
|
6816
6884
|
tags: [benchmark, claude-code, ecosystem, hooks, plugins, architecture]
|
|
6817
|
-
version: "1.
|
|
6885
|
+
version: "1.1.0"
|
|
6818
6886
|
created: "2026-03-27"
|
|
6819
|
-
last_updated: "2026-
|
|
6887
|
+
last_updated: "2026-07-10"
|
|
6820
6888
|
description: "Reference summary of the ecosystem signals and implementation foundations adopted in ai-toolkit, including runtime-aware plugin packaging."
|
|
6821
6889
|
---
|
|
6822
6890
|
|
|
@@ -6836,14 +6904,22 @@ The outcome is a toolkit that is now positioned as a more modular, Claude-first,
|
|
|
6836
6904
|
|
|
6837
6905
|
### 1. Plugin-oriented structure
|
|
6838
6906
|
|
|
6839
|
-
`ai-toolkit` now treats plugin packaging as a first-class capability, with runtime-aware
|
|
6907
|
+
`ai-toolkit` now treats plugin packaging as a first-class capability, with separate runtime-aware surfaces for Claude Code, the Claude Chat/Desktop/Cowork app, and optional global Codex layering.
|
|
6840
6908
|
|
|
6841
6909
|
Implemented artifacts:
|
|
6842
6910
|
- `app/.claude-plugin/plugin.json`
|
|
6911
|
+
- `app/claude-app/`
|
|
6843
6912
|
- `app/plugins/`
|
|
6844
6913
|
- `app/skills/plugin-creator/SKILL.md`
|
|
6914
|
+
- `scripts/claude_app.py`
|
|
6845
6915
|
- `kb/reference/plugin-pack-conventions.md`
|
|
6846
6916
|
|
|
6917
|
+
Claude Code reads filesystem configuration such as `~/.claude/rules` and
|
|
6918
|
+
`CLAUDE.md`. The Claude app does not scan those locations. For the app,
|
|
6919
|
+
`ai-toolkit claude-app export --verify` creates an uploadable plugin ZIP and a
|
|
6920
|
+
separate Cowork global-instructions file. Plugin skills work in Chat and Cowork;
|
|
6921
|
+
hooks and sub-agents are Cowork-only.
|
|
6922
|
+
|
|
6847
6923
|
### 2. Broader lifecycle coverage
|
|
6848
6924
|
|
|
6849
6925
|
The toolkit now covers prompt, edit, subagent, compaction, and session-end phases.
|
|
@@ -6896,6 +6972,7 @@ The reference benchmark set is intentionally curated:
|
|
|
6896
6972
|
| Area | Adopted in ai-toolkit |
|
|
6897
6973
|
|------|------------------------|
|
|
6898
6974
|
| Plugin manifests | Yes |
|
|
6975
|
+
| Claude Chat/Cowork uploadable plugin export | Yes |
|
|
6899
6976
|
| Domain plugin packs | Yes (experimental) |
|
|
6900
6977
|
| Hook creator workflow | Yes |
|
|
6901
6978
|
| Command creator workflow | Yes |
|
|
@@ -6922,7 +6999,7 @@ category: reference
|
|
|
6922
6999
|
service: ai-toolkit
|
|
6923
7000
|
tags: [cli, commands, reference, install, update, plugin, mcp, telemetry]
|
|
6924
7001
|
created: "2026-04-13"
|
|
6925
|
-
last_updated: "2026-
|
|
7002
|
+
last_updated: "2026-07-10"
|
|
6926
7003
|
description: "Complete CLI reference for all ai-toolkit commands, options, and flags."
|
|
6927
7004
|
---
|
|
6928
7005
|
|
|
@@ -6947,6 +7024,8 @@ Usage: ai-toolkit <command> [options]
|
|
|
6947
7024
|
| `doctor` | Diagnose install health, hooks, quick-win assets, and artifact drift |
|
|
6948
7025
|
| `doctor --fix` | Auto-repair broken symlinks, missing hooks, stale artifacts |
|
|
6949
7026
|
| `eject [dir]` | Export standalone config (no symlinks, no toolkit dependency) |
|
|
7027
|
+
| `claude-app export [--output FILE] [--no-custom-rules] [--verify]` | Build an uploadable Claude Chat/Desktop/Cowork plugin ZIP and global-instructions file |
|
|
7028
|
+
| `claude-app verify` | Validate a clean staged plugin with structural checks and the official Claude plugin validator |
|
|
6950
7029
|
|
|
6951
7030
|
## Rule & Hook Injection
|
|
6952
7031
|
|
|
@@ -6973,7 +7052,7 @@ Usage: ai-toolkit <command> [options]
|
|
|
6973
7052
|
| Command | Description |
|
|
6974
7053
|
|---------|-------------|
|
|
6975
7054
|
| `plugin list` | Show available plugin packs with install status |
|
|
6976
|
-
| `plugin install <name> [--editor claude\|codex\|all]` | Install a plugin pack for
|
|
7055
|
+
| `plugin install <name> [--editor claude\|codex\|all]` | Install a plugin pack for Claude Code and/or Codex (`claude` means Claude Code, not the Claude app) |
|
|
6977
7056
|
| `plugin install --all [--editor claude\|codex\|all]` | Install all 11 plugin packs |
|
|
6978
7057
|
| `plugin update <name> [--editor claude\|codex\|all]` | Update a plugin pack (remove + reinstall, preserves data) |
|
|
6979
7058
|
| `plugin update --all [--editor claude\|codex\|all]` | Update all installed plugin packs |
|
|
@@ -8649,10 +8728,10 @@ title: "Global Install Model"
|
|
|
8649
8728
|
category: reference
|
|
8650
8729
|
service: ai-toolkit
|
|
8651
8730
|
tags: [install, global, claude, codex, plugins, local-setup]
|
|
8652
|
-
version: "3.
|
|
8731
|
+
version: "3.2.0"
|
|
8653
8732
|
created: "2026-03-26"
|
|
8654
|
-
last_updated: "2026-
|
|
8655
|
-
description: "Reference description of
|
|
8733
|
+
last_updated: "2026-07-10"
|
|
8734
|
+
description: "Reference description of Claude Code global install, Claude app plugin export, project-local editor setup, global Codex plugin layering, and command responsibilities in ai-toolkit."
|
|
8656
8735
|
---
|
|
8657
8736
|
|
|
8658
8737
|
# Global Install Model
|
|
@@ -8670,6 +8749,10 @@ the core toolkit install, but experimental plugin packs can layer a global
|
|
|
8670
8749
|
Codex target in `HOME` when explicitly installed with
|
|
8671
8750
|
`ai-toolkit plugin install --editor codex`.
|
|
8672
8751
|
|
|
8752
|
+
Claude Chat/Desktop/Cowork is a separate runtime. It does not read the
|
|
8753
|
+
filesystem surfaces under `~/.claude`; it receives ai-toolkit through an
|
|
8754
|
+
uploaded plugin plus app-managed global/folder instructions.
|
|
8755
|
+
|
|
8673
8756
|
## Command Responsibilities
|
|
8674
8757
|
|
|
8675
8758
|
| Command | Target | Purpose |
|
|
@@ -8680,6 +8763,7 @@ Codex target in `HOME` when explicitly installed with
|
|
|
8680
8763
|
| `ai-toolkit install --local --lang <lang>` | current project | explicit language selection for rules (e.g. `--lang typescript`, `--lang go,python`); auto-detected when omitted |
|
|
8681
8764
|
| `ai-toolkit install --modules <list>` | `~/.claude/` | selective module install (e.g. `--modules core,agents,rules-typescript`) |
|
|
8682
8765
|
| `ai-toolkit update --local` | current project | refresh project configs; auto-detects editors from existing files |
|
|
8766
|
+
| `ai-toolkit claude-app export` | ZIP + Markdown output | build the uploadable Claude Chat/Cowork plugin and Cowork global instructions; registered rules are included unless `--no-custom-rules` is set |
|
|
8683
8767
|
| `ai-toolkit add-rule` | `~/.softspark/ai-toolkit/rules/` | register a global rule |
|
|
8684
8768
|
| `ai-toolkit remove-rule` | `~/.softspark/ai-toolkit/rules/` | unregister a global rule |
|
|
8685
8769
|
| `ai-toolkit mcp add <name...>` | current project | merge MCP templates into `.mcp.json` |
|
|
@@ -8716,6 +8800,22 @@ Claude Code's default global install writes these managed surfaces:
|
|
|
8716
8800
|
|
|
8717
8801
|
The `ai-toolkit-*` prefix in `~/.claude/rules/` is reserved for installer-managed files. User-authored Claude rules should use another filename prefix, or be registered through `ai-toolkit add-rule` so they are emitted as `ai-toolkit-registered-*.md`.
|
|
8718
8802
|
|
|
8803
|
+
## Claude App Target
|
|
8804
|
+
|
|
8805
|
+
`~/.claude/` is a Claude Code surface, not a Claude Chat/Cowork surface. Run:
|
|
8806
|
+
|
|
8807
|
+
```bash
|
|
8808
|
+
ai-toolkit claude-app export --verify
|
|
8809
|
+
```
|
|
8810
|
+
|
|
8811
|
+
Upload the ZIP from `Customize > Plugins`, then paste the sibling
|
|
8812
|
+
`*-global-instructions.md` file into `Settings > Cowork > Global instructions`.
|
|
8813
|
+
The plugin contains the normal skills and agents, app-relative Cowork hooks,
|
|
8814
|
+
and an `ai-toolkit-rules` skill generated from common/standalone rules.
|
|
8815
|
+
Registered rules are embedded in a separate skill by default. Skills work in
|
|
8816
|
+
Chat and Cowork; hooks and sub-agents are Cowork-only. The app owns its plugin
|
|
8817
|
+
store, so toolkit updates require re-export and re-upload.
|
|
8818
|
+
|
|
8719
8819
|
`ai-toolkit install --editors <name>` can write global files only for editors
|
|
8720
8820
|
with documented, file-based config surfaces:
|
|
8721
8821
|
|
|
@@ -9042,7 +9142,7 @@ description: "Complete reference of all ai-toolkit hooks: events, scripts, insta
|
|
|
9042
9142
|
|
|
9043
9143
|
## Overview
|
|
9044
9144
|
|
|
9045
|
-
ai-toolkit provides
|
|
9145
|
+
ai-toolkit provides 28 global hook entries across 14 lifecycle events that enforce quality, safety, and workflow rules across all Claude Code sessions, plus a separate `statusLine` command. Hooks are merged into `~/.claude/settings.json` on install, with logic in standalone scripts at `~/.softspark/ai-toolkit/hooks/`.
|
|
9046
9146
|
|
|
9047
9147
|
## Supported Surface
|
|
9048
9148
|
|
|
@@ -9604,14 +9704,13 @@ Beyond the global Claude Code hooks above, full-profile project installs emit na
|
|
|
9604
9704
|
| Editor | File | Generator | Format |
|
|
9605
9705
|
|--------|------|-----------|--------|
|
|
9606
9706
|
| Cursor | `.cursor/hooks.json` | `generate_cursor_hooks.py` | Cursor hooks schema |
|
|
9607
|
-
| Windsurf (Cascade) | `.windsurf/hooks.json` | `generate_windsurf_hooks.py` | Cascade `agent_action_name`/`tool_info` — **deprecated, dies 2026-07-01** |
|
|
9608
9707
|
| Devin CLI | `.devin/hooks.v1.json` | `generate_devin_hooks.py` | Claude-compatible (the replacement for Cascade) |
|
|
9609
9708
|
| Gemini CLI | `.gemini/settings.json` (hooks block) | `generate_gemini_hooks.py` | Gemini `BeforeTool`/`AfterTool` events |
|
|
9610
9709
|
| Augment | `.augment/settings.json` (hooks block) | `generate_augment_hooks.py` | Claude-style events |
|
|
9611
9710
|
|
|
9612
9711
|
### Devin CLI hooks (`.devin/hooks.v1.json`)
|
|
9613
9712
|
|
|
9614
|
-
Windsurf rebranded to Devin Desktop (2026-06-02)
|
|
9713
|
+
Windsurf rebranded to Devin Desktop (2026-06-02). The Cascade hook surface ended on 2026-07-01; ai-toolkit now emits only the live Devin CLI format.
|
|
9615
9714
|
|
|
9616
9715
|
Devin CLI uses a **Claude-compatible** hook format (docs.devin.ai/cli/extensibility/hooks). Key facts driving the generator:
|
|
9617
9716
|
|
|
@@ -11200,14 +11299,14 @@ tags: [plugins, plugin-packs, conventions, manifests, hooks, policy-packs]
|
|
|
11200
11299
|
version: "1.0.0"
|
|
11201
11300
|
created: "2026-03-28"
|
|
11202
11301
|
last_updated: "2026-04-13"
|
|
11203
|
-
description: "Conventions for experimental ai-toolkit plugin packs, policy packs, hook packs, and plugin-creator scaffolding across Claude and Codex runtimes."
|
|
11302
|
+
description: "Conventions for experimental ai-toolkit plugin packs, policy packs, hook packs, and plugin-creator scaffolding across Claude Code and Codex runtimes."
|
|
11204
11303
|
---
|
|
11205
11304
|
|
|
11206
11305
|
# Plugin Pack Conventions
|
|
11207
11306
|
|
|
11208
11307
|
## Purpose
|
|
11209
11308
|
|
|
11210
|
-
`ai-toolkit`
|
|
11309
|
+
`ai-toolkit` includes experimental plugin packs under `app/plugins/` for Claude Code and optional global Codex layering. These internal pack manifests are distinct from the official uploadable Claude app plugin built by `ai-toolkit claude-app export`.
|
|
11211
11310
|
|
|
11212
11311
|
## Pack Types
|
|
11213
11312
|
|
|
@@ -11267,7 +11366,7 @@ Required keys:
|
|
|
11267
11366
|
|
|
11268
11367
|
```bash
|
|
11269
11368
|
ai-toolkit plugin list # show all 11 packs with install status
|
|
11270
|
-
ai-toolkit plugin install --editor claude <name> # Claude global target
|
|
11369
|
+
ai-toolkit plugin install --editor claude <name> # Claude Code global target
|
|
11271
11370
|
ai-toolkit plugin install --editor codex <name> # Codex global target
|
|
11272
11371
|
ai-toolkit plugin install --editor all --all # install all 11 packs for both runtimes
|
|
11273
11372
|
ai-toolkit plugin update --editor all --all # update all installed packs
|
|
@@ -11284,7 +11383,7 @@ ai-toolkit plugin status --editor all # show installed packs with r
|
|
|
11284
11383
|
2. **Copies** plugin-specific hooks to `~/.softspark/ai-toolkit/hooks/plugin-<pack>-<hook>.sh`
|
|
11285
11384
|
3. **Copies** plugin-specific scripts to `~/.softspark/ai-toolkit/plugin-scripts/<pack>/`
|
|
11286
11385
|
4. **Runs** init scripts if present (e.g. `init_db.py` for memory-pack — safe to re-run, preserves data)
|
|
11287
|
-
5. **Claude target**: links missing agents/skills into `~/.claude/`, injects plugin-local rules into `~/.claude/CLAUDE.md`, and merges plugin hook entries into `~/.claude/settings.json`
|
|
11386
|
+
5. **Claude Code target**: links missing agents/skills into `~/.claude/`, injects plugin-local rules into `~/.claude/CLAUDE.md`, and merges plugin hook entries into `~/.claude/settings.json`
|
|
11288
11387
|
6. **Codex target**: bootstraps global Codex assets in `HOME` (`~/AGENTS.md`, `~/.agents/skills`, `~/.agents/rules`, `~/.codex/hooks.json`) and then layers plugin-specific rules/hooks on top
|
|
11289
11388
|
7. **Records** installed state per runtime in `~/.softspark/ai-toolkit/plugins.json`
|
|
11290
11389
|
|
|
@@ -11304,7 +11403,7 @@ ai-toolkit plugin status --editor all # show installed packs with r
|
|
|
11304
11403
|
|
|
11305
11404
|
### What `plugin remove` Does
|
|
11306
11405
|
|
|
11307
|
-
1. **Claude target**: strips plugin hook entries from `~/.claude/settings.json` and removes plugin-local rule sections from `~/.claude/CLAUDE.md`
|
|
11406
|
+
1. **Claude Code target**: strips plugin hook entries from `~/.claude/settings.json` and removes plugin-local rule sections from `~/.claude/CLAUDE.md`
|
|
11308
11407
|
2. **Codex target**: strips plugin hook entries from `~/.codex/hooks.json` and removes `~/.agents/rules/plugin-<pack>-*.md`
|
|
11309
11408
|
3. **Shared assets** (`~/.softspark/ai-toolkit/hooks/plugin-*`, `plugin-scripts/<pack>/`) are removed only when no remaining runtime still uses that pack
|
|
11310
11409
|
4. **Updates** `plugins.json` state per runtime
|
|
@@ -11735,6 +11834,8 @@ Step 0 interview before setup — 5 targeted questions to capture undocumented p
|
|
|
11735
11834
|
|
|
11736
11835
|
Codex CLI receives the full skill catalog during `ai-toolkit install --local --editors codex`.
|
|
11737
11836
|
|
|
11837
|
+
Claude Chat/Desktop/Cowork receives this same catalog through `ai-toolkit claude-app export`. The export also adds an app-only `ai-toolkit-rules` skill because the Claude app does not read Claude Code's `CLAUDE.md` or `.claude/rules/` surfaces.
|
|
11838
|
+
|
|
11738
11839
|
- Native Codex-compatible skills are symlinked directly into `.agents/skills/`
|
|
11739
11840
|
- Claude-oriented orchestration skills are generated as Codex wrappers
|
|
11740
11841
|
- Adapted wrappers translate `Agent`, `Team*`, and `Task*` guidance to `spawn_agent`, `send_input`, `wait_agent`, `close_agent`, and `update_plan`
|
|
@@ -11945,19 +12046,19 @@ title: "Supported Tools Registry"
|
|
|
11945
12046
|
category: reference
|
|
11946
12047
|
service: ai-toolkit
|
|
11947
12048
|
tags: [editors, platforms, generators, integration, ecosystem]
|
|
11948
|
-
version: "1.
|
|
12049
|
+
version: "1.8.0"
|
|
11949
12050
|
created: "2026-04-23"
|
|
11950
|
-
last_updated: "2026-
|
|
11951
|
-
description: "Human-readable view of scripts/ecosystem_tools.json — the canonical list of tools ai-toolkit integrates with (Claude Code
|
|
12051
|
+
last_updated: "2026-07-10"
|
|
12052
|
+
description: "Human-readable view of scripts/ecosystem_tools.json — the canonical list of tools ai-toolkit integrates with (Claude Code, Claude Chat/Cowork, and 11 editors), their documentation URLs, config paths, our generators, and tracked capability markers."
|
|
11952
12053
|
---
|
|
11953
12054
|
|
|
11954
12055
|
# Supported Tools Registry
|
|
11955
12056
|
|
|
11956
12057
|
The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed by `scripts/ecosystem_doctor.py`. This document is a derived view — when the JSON changes, update this table too.
|
|
11957
12058
|
|
|
11958
|
-
## Tool Count:
|
|
12059
|
+
## Tool Count: 13
|
|
11959
12060
|
|
|
11960
|
-
1 primary runtime (Claude Code) + 11 editor integrations.
|
|
12061
|
+
1 primary runtime (Claude Code) + 1 Claude app target + 11 editor integrations.
|
|
11961
12062
|
|
|
11962
12063
|
---
|
|
11963
12064
|
|
|
@@ -11970,7 +12071,7 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
11970
12071
|
| ID | `claude-code` |
|
|
11971
12072
|
| Docs | https://code.claude.com/docs (platform.claude.com/docs 307-redirects here) |
|
|
11972
12073
|
| Release notes | https://github.com/anthropics/claude-code/releases |
|
|
11973
|
-
| Changelog | https://code.claude.com/docs/en/changelog (
|
|
12074
|
+
| Changelog | https://code.claude.com/docs/en/changelog; GitHub release feed is authoritative when the generated page lags (current local/release: 2.1.206, 2026-07-10) |
|
|
11974
12075
|
| Config paths | `~/.claude/settings.json`, `.claude/settings.json` (project, committed), `.claude/settings.local.json`, `CLAUDE.md`, `.claude/rules/*.md`, `.claude/agents/*.md`, `.claude/skills/*/SKILL.md`, `~/.claude/themes/*.json` (v2.1.118+) |
|
|
11975
12076
|
| Our generators | — (Claude Code is the primary target; toolkit content ships directly as `.md` files and `settings.json` merges) |
|
|
11976
12077
|
| 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` |
|
|
@@ -11981,6 +12082,23 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
11981
12082
|
|
|
11982
12083
|
---
|
|
11983
12084
|
|
|
12085
|
+
## Claude App Target
|
|
12086
|
+
|
|
12087
|
+
### Claude Chat / Cowork
|
|
12088
|
+
|
|
12089
|
+
| Field | Value |
|
|
12090
|
+
|-------|-------|
|
|
12091
|
+
| ID | `claude-app` |
|
|
12092
|
+
| Docs | https://support.claude.com/en/articles/13345190-get-started-with-claude-cowork |
|
|
12093
|
+
| Plugin docs | https://support.claude.com/en/articles/13837440-use-plugins-in-claude |
|
|
12094
|
+
| Config surfaces | `Settings > Cowork > Global instructions`, Cowork folder instructions, `Customize > Skills`, and `Customize > Plugins` |
|
|
12095
|
+
| Plugin layout | `.claude-plugin/plugin.json`, `skills/*/SKILL.md`, `agents/*.md`, `hooks/hooks.json`; ai-toolkit uses manifest paths under `claude-app/` for its generated app-only rules and hooks |
|
|
12096
|
+
| Our generator | `scripts/claude_app.py` (`ai-toolkit claude-app export`) |
|
|
12097
|
+
| Runtime split | Skills work in Chat (web/Desktop) and Cowork. Hooks and sub-agents run only in Cowork. Claude app does **not** scan Claude Code's `~/.claude/rules/`, `CLAUDE.md`, or `~/.claude/settings.json`. |
|
|
12098
|
+
| Install/update | Export the ZIP, upload it from `Customize > Plugins`, then paste the generated global-instructions file into `Settings > Cowork > Global instructions`. Re-export/re-upload after toolkit updates. |
|
|
12099
|
+
|
|
12100
|
+
---
|
|
12101
|
+
|
|
11984
12102
|
## Editor Integrations
|
|
11985
12103
|
|
|
11986
12104
|
### Cursor
|
|
@@ -12004,15 +12122,15 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
12004
12122
|
| ID | `windsurf` |
|
|
12005
12123
|
| Docs | https://docs.devin.ai/desktop (Windsurf rebranded to Devin Desktop ~2026-06-02; docs.windsurf.com resolves here) |
|
|
12006
12124
|
| Changelog | https://docs.devin.ai/desktop/changelog (windsurf.com/changelog 308-permanent-redirects here) |
|
|
12007
|
-
| 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/`) |
|
|
12008
|
-
| Config paths | **Primary (Devin Desktop):** `.devin/rules/*.md`, `.devin/workflows/*.md`, `.devin/
|
|
12009
|
-
| Compat read paths |
|
|
12010
|
-
| Our generators | `scripts/generate_windsurf.py`, `scripts/generate_windsurf_rules.py` (dual-emits `.devin/` + `.windsurf/`
|
|
12125
|
+
| Stable docs mirror | https://docs.devin.ai/desktop/... per-page .md twins; legacy `.windsurf/`, `.windsurfrules`, `~/.codeium/windsurf/` rule paths still read as fallback (new canonical rules/hooks tree: `.devin/`) |
|
|
12126
|
+
| Config paths | **Primary (Devin Desktop):** `.devin/rules/*.md`, `.devin/workflows/*.md`, `.devin/hooks.v1.json` (Devin CLI hooks, Claude format), `.devin/config.json`, `.devin/config.local.json`, `~/.config/devin/config.json` (Devin Local MCP/permissions). **Skills:** eight documented paths, all scanned in every repo — `.agents/skills/*/SKILL.md` (recommended), `.devin/skills`, `.github/skills`, `.claude/skills`, `.cursor/skills`, `.codex/skills`, `.cognition/skills`, and `.windsurf/skills`. ai-toolkit emits a single canonical pointer under `.windsurf/skills` to avoid duplicate registration. **Legacy fallback:** `.windsurfrules`, `.windsurf/rules/*.md`, `.windsurf/workflows/*.md`, `~/.codeium/windsurf/memories/global_rules.md`, `~/.codeium/windsurf/skills/*/SKILL.md`, `~/.codeium/windsurf/mcp_config.json`. Plus `AGENTS.md`. |
|
|
12127
|
+
| Compat read paths | Current skill docs explicitly scan all eight paths — `.agents/skills/`, `.devin/skills/`, `.github/skills/`, `.claude/skills/`, `.cursor/skills/`, `.codex/skills/`, `.cognition/skills/`, and `.windsurf/skills/`. **Hooks:** Devin CLI reads `.claude/settings.json` + `~/.claude/settings.json` hooks when `read_config_from.claude` is enabled, so globally-installed toolkit hooks also work under Devin. |
|
|
12128
|
+
| Our generators | `scripts/generate_windsurf.py`, `scripts/generate_windsurf_rules.py` (dual-emits `.devin/` + `.windsurf/` rules/workflows), `scripts/generate_devin_hooks.py` (profile=full; `.devin/hooks.v1.json`), `scripts/generate_windsurf_skills.py` (`.windsurf/skills` pointer) |
|
|
12011
12129
|
| Global install | `ai-toolkit install --editors windsurf` writes `~/.codeium/windsurf/memories/global_rules.md` + skills pointer **and** `~/.config/devin/AGENTS.md` (Devin CLI global rules — the Desktop `global_rules.md` path is absent from `read_config_from.windsurf`, so editor-only Devin CLI installs need this). |
|
|
12012
12130
|
| Tracked capabilities | Cascade, `windsurfrules`, `AGENTS.md`, activation triggers (`always_on`/`glob`/`model_decision`), workflows, skills, MCP, memories, hooks |
|
|
12013
12131
|
| Activation modes emitted | always_on (agents/security/quality), glob (testing + language rules), model_decision (code-style/workflow) |
|
|
12014
|
-
| Hooks migration | **
|
|
12015
|
-
|
|
|
12132
|
+
| Hooks migration | **Complete.** Cascade and `.windsurf/hooks.json` ended on 2026-07-01. `generate_devin_hooks.py` is now the only Windsurf-family hook generator and emits `.devin/hooks.v1.json` with Claude-style events, Devin tool-name matchers, and the flat Devin block contract. |
|
|
12133
|
+
| Latest upstream | Devin Desktop v3.4.27 (2026-07-07). v3.4.22 made skill `permissions:` frontmatter affect auto-approvals; ai-toolkit does not emit permissions because its pointer skill executes no privileged workflow. |
|
|
12016
12134
|
|
|
12017
12135
|
### GitHub Copilot
|
|
12018
12136
|
|
|
@@ -12116,7 +12234,7 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
12116
12234
|
| Field | Value |
|
|
12117
12235
|
|-------|-------|
|
|
12118
12236
|
| ID | `codex-cli` |
|
|
12119
|
-
| Docs | https://developers.openai.com/codex (live docs site; config pages split into `/codex/config-basic`, `/codex/config-reference`, `/codex/config-advanced` plus `/codex/hooks`, `/codex/skills`, `/codex/guides/agents-md`; latest
|
|
12237
|
+
| Docs | https://developers.openai.com/codex (live docs site; config pages split into `/codex/config-basic`, `/codex/config-reference`, `/codex/config-advanced` plus `/codex/hooks`, `/codex/skills`, `/codex/guides/agents-md`; latest verified local/release: codex-cli 0.144.1, 2026-07-10) |
|
|
12120
12238
|
| Release notes | https://github.com/openai/codex/releases |
|
|
12121
12239
|
| Config paths | **Instructions:** project `AGENTS.md` (root→cwd chain, closest wins) and global `~/.codex/AGENTS.md` (`$CODEX_HOME/AGENTS.md`; `~/.codex/AGENTS.override.md` takes precedence). NOTE: `~/AGENTS.md` is NOT a global-instruction surface — Codex only reads it if a session's cwd is exactly `$HOME`. Plus `.agents/skills/*/SKILL.md`, `.codex/hooks.json`, `~/.codex/hooks.json`, `.codex/config.toml` (project layers, root→cwd, closest wins, trusted projects only), `~/.codex/config.toml`. |
|
|
12122
12240
|
| Our generators | `scripts/generate_codex.py`, `scripts/generate_codex_hooks.py`, `scripts/generate_codex_skills.py` (opt-in via `--codex-skills`) |
|
|
@@ -12280,7 +12398,7 @@ category: reference
|
|
|
12280
12398
|
service: ai-toolkit
|
|
12281
12399
|
tags: [features, differentiators, constitution, hooks, security, tdd, memory]
|
|
12282
12400
|
created: "2026-04-13"
|
|
12283
|
-
last_updated: "2026-
|
|
12401
|
+
last_updated: "2026-07-10"
|
|
12284
12402
|
description: "Detailed description of ai-toolkit's unique features: constitution enforcement, hooks system, security scanning, effort budgeting, quality gates, and more."
|
|
12285
12403
|
---
|
|
12286
12404
|
|
|
@@ -12288,7 +12406,7 @@ description: "Detailed description of ai-toolkit's unique features: constitution
|
|
|
12288
12406
|
|
|
12289
12407
|
## 1. Machine-Enforced Constitution
|
|
12290
12408
|
|
|
12291
|
-
Unlike other toolkits that put safety rules in documentation only, ai-toolkit enforces a
|
|
12409
|
+
Unlike other toolkits that put safety rules in documentation only, ai-toolkit enforces a 7-article constitution via hooks. The hooks actually **block** execution of:
|
|
12292
12410
|
- Mass deletion (`rm -rf`, `DROP TABLE`)
|
|
12293
12411
|
- Blind overwrites of uncommitted work
|
|
12294
12412
|
- Any action that could cause irreversible data loss
|
|
@@ -12313,6 +12431,7 @@ Hook logic lives in `app/hooks/*.sh` — not inline JSON one-liners. Scripts are
|
|
|
12313
12431
|
| UserPromptSubmit | `track-usage.sh` | Record skill invocations to local stats |
|
|
12314
12432
|
| PostToolUse | `post-tool-use.sh` | Lightweight validation reminders + append edit to session state |
|
|
12315
12433
|
| PostToolUse | `governance-capture.sh` | Log security-sensitive operations to JSONL |
|
|
12434
|
+
| PostToolUse | `loop-guard.sh` | Detect repeated successful actions and inject a reassessment advisory |
|
|
12316
12435
|
| PostToolUse | `test-cohesion.sh` | Run cohesion-mapped tests after edits; block on failure (Art. VI.3) |
|
|
12317
12436
|
| PostToolUse | `search-tracker.sh` | Clear search-first flag when smart_query/hybrid_search_kb/Web* runs |
|
|
12318
12437
|
| Stop | `quality-check.sh` | Multi-language lint (ruff/tsc/phpstan/dart/go) |
|