@softspark/ai-toolkit 4.5.1 → 4.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +50 -0
- package/CHANGELOG.md +46 -0
- package/README.md +13 -13
- package/app/.claude-plugin/plugin.json +1 -1
- package/benchmarks/ecosystem-doctor-snapshot.json +76 -54
- package/bin/ai-toolkit.js +2 -5
- package/kb/procedures/maintenance-sop.md +9 -8
- package/kb/procedures/release-preparation-sop.md +24 -16
- package/kb/procedures/release-verification-sop.md +4 -6
- package/kb/reference/architecture-overview.md +5 -6
- package/kb/reference/cli-reference.md +2 -3
- package/kb/reference/global-install-model.md +3 -3
- package/kb/reference/opencode-compatibility.md +2 -2
- package/kb/reference/supported-tools-registry.md +40 -33
- package/llms-full.txt +89 -77
- package/manifest.json +1 -1
- package/package.json +2 -3
- package/scripts/ecosystem_tools.json +74 -20
- package/scripts/generate_antigravity.py +32 -21
- package/scripts/generate_augment_agents.py +9 -10
- package/scripts/generate_augment_commands.py +4 -17
- package/scripts/generate_augment_hooks.py +7 -5
- package/scripts/generate_codex.py +28 -0
- package/scripts/generate_codex_hooks.py +23 -1
- package/scripts/generate_cursor_agents.py +13 -29
- package/scripts/generate_cursor_mdc.py +4 -3
- package/scripts/generate_opencode_commands.py +9 -9
- package/scripts/generate_windsurf_hooks.py +6 -0
- package/scripts/generate_windsurf_rules.py +39 -24
- package/scripts/generate_windsurf_skills.py +14 -4
- package/scripts/install.py +1 -1
- package/scripts/install_steps/ai_tools.py +68 -30
- package/scripts/plugin.py +2 -2
- package/scripts/validate.py +1 -0
- package/scripts/generate_codex_rules.py +0 -52
package/AGENTS.md
CHANGED
|
@@ -597,6 +597,56 @@ Derived from the immutable safety constitution (6 articles):
|
|
|
597
597
|
- **Cite Sources**: Always reference `[PATH: ...]` when making decisions based on existing knowledge
|
|
598
598
|
- **Read-Only Exploration**: Discovery agents never write; writing agents never explore blindly
|
|
599
599
|
- **No Secrets in Code**: Never commit credentials, API keys, or sensitive configuration values
|
|
600
|
+
|
|
601
|
+
## Coding Rules
|
|
602
|
+
|
|
603
|
+
### Code Style
|
|
604
|
+
|
|
605
|
+
* Follow language-specific conventions: PEP 8 (Python), StandardJS/Prettier (TypeScript), gofmt (Go), rustfmt (Rust)
|
|
606
|
+
* Use descriptive names: functions as verbs (`calculateTotal`), booleans as questions (`isValid`), constants as UPPER_SNAKE
|
|
607
|
+
* Keep functions short — single responsibility, max ~30 lines
|
|
608
|
+
* Prefer immutability: use `const`/`final`/`let` over mutable variables where possible
|
|
609
|
+
* No magic numbers — extract to named constants
|
|
610
|
+
* Avoid deep nesting (max 3 levels) — use early returns and guard clauses
|
|
611
|
+
* DRY: extract shared logic only when used 3+ times; premature abstraction is worse than duplication
|
|
612
|
+
* YAGNI: do not build features or abstractions for hypothetical future requirements
|
|
613
|
+
|
|
614
|
+
### Testing
|
|
615
|
+
|
|
616
|
+
* Every new feature or bug fix must include tests
|
|
617
|
+
* Use Arrange-Act-Assert pattern for unit tests
|
|
618
|
+
* Test behavior, not implementation — tests should survive refactoring
|
|
619
|
+
* Use descriptive test names: `test_<what>_<when>_<expected>`
|
|
620
|
+
* Prefer real dependencies over mocks at integration boundaries
|
|
621
|
+
* Target >70% code coverage for new code
|
|
622
|
+
* Never skip or disable tests without a linked issue explaining why
|
|
623
|
+
* Run the full test suite before marking work as done
|
|
624
|
+
|
|
625
|
+
### Security
|
|
626
|
+
|
|
627
|
+
* Never commit secrets, API keys, credentials, or tokens — use environment variables
|
|
628
|
+
* Validate and sanitize all external input (user input, API responses, file uploads)
|
|
629
|
+
* Use parameterized queries — never concatenate SQL strings
|
|
630
|
+
* Escape output to prevent XSS in web contexts
|
|
631
|
+
* Apply principle of least privilege for file permissions and API scopes
|
|
632
|
+
* Keep dependencies updated — audit regularly for known CVEs
|
|
633
|
+
* Use HTTPS for all external communication
|
|
634
|
+
* Log security events without logging sensitive data (passwords, tokens, PII)
|
|
635
|
+
|
|
636
|
+
### Output Mode
|
|
637
|
+
|
|
638
|
+
`output-mode: concise`
|
|
639
|
+
|
|
640
|
+
Default response mode is **concise**. The `brand-voice` skill (when present) auto-loads concise rules; assistants without that skill should still apply the directives below.
|
|
641
|
+
|
|
642
|
+
* No preamble — skip "I'll now...", "Sure, let me...", "Great question!" Start with the answer.
|
|
643
|
+
* Lead with the result — conclusion or output first; explanation only if asked or non-obvious.
|
|
644
|
+
* Max 3 sentences per closed question — yes/no, single-fact, or "where is X" answers stay under three sentences.
|
|
645
|
+
* Tables and lists over prose — when comparing options, listing steps, or showing values.
|
|
646
|
+
* No trailing summaries — if the diff or output already shows what changed, do not restate it.
|
|
647
|
+
* Drop filler adjectives — no "nice", "great", "powerful", "robust" unless the user asked for evaluation.
|
|
648
|
+
* Cite as `path:line` — instead of paragraphs describing where things live.
|
|
649
|
+
* Escalate to verbose only for: architecture / RFC / ADR / trade-off documents, or when the user asks for detail.
|
|
600
650
|
<!-- TOOLKIT:ai-toolkit END -->
|
|
601
651
|
|
|
602
652
|
<!-- TOOLKIT:jira-mcp START -->
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,52 @@ Versioning follows [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## v4.7.0 - Devin Desktop .devin tree + Antigravity CLI surfaces (2026-06-10)
|
|
11
|
+
|
|
12
|
+
Minor release. Ecosystem sync per `kb/procedures/ecosystem-sync-sop.md` (window 2026-06-05 → 2026-06-10, doctor run + per-tool docs review with adversarial verification). No skill/agent count change; no new broad-access skills.
|
|
13
|
+
|
|
14
|
+
### Ecosystem (class B/D/F drift)
|
|
15
|
+
- **Windsurf/Devin Desktop: `.devin/` dual-emit** — `generate_windsurf_rules.py` and `generate_windsurf_skills.py` now write rules, workflows, and the skill pointer to `.devin/{rules,workflows,skills}/` (primary tree since the 2026-06-02 rebrand) alongside legacy `.windsurf/` (still read as fallback). `.devin/rules` added to editor auto-detection. Test count: 1179 → 1186.
|
|
16
|
+
- **Antigravity: CLI skill pointer** — `generate_antigravity.py` dual-emits the skill pointer to `.agent/skills/` (IDE) and `.agents/skills/` (CLI, plural). Editor auto-detection no longer misreads a pointer-only `.agents/skills/` as a Codex install.
|
|
17
|
+
- **Registry coverage** — added verified config surfaces to `scripts/ecosystem_tools.json`: Claude Code project `.claude/settings.json` + `.claude/rules/*.md` + `http` hook handler; Cursor subagent fallback dirs; Devin Local config files; Gemini CLI hook events (`BeforeToolSelection`, `AfterModel`, `Notification`, `PreCompress`) + `~/.agents/skills` alias; Cline CLI/SDK unified `.cline/` layout, `AGENTS.md` rules sources, and plugins; Augment workspace settings + `Notification` event; Codex project-layer `.codex/config.toml`; opencode skill discovery aliases; Antigravity CLI `.agents/{skills,hooks.json,mcp_config.json}`.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
- **Cascade deprecation note** — `.windsurf/hooks.json` (Cascade-scoped) marked deprecated: Cascade is available only through 2026-07-01; migration target is the Devin CLI lifecycle-hooks surface (tracked in registry status_note).
|
|
21
|
+
- **Cursor registry fix** — removed phantom `.cursor/rules/*.md` path (plain `.md` files are ignored by Cursor's rules system); fixed the stale claim in `generate_cursor_mdc.py` docstring.
|
|
22
|
+
- **Augment registry fix** — `.augment/guidelines.md` replaced with documented `.augment-guidelines` + `~/.augment/user-guidelines.md`; `our_generators` synced to all 6 augment generators.
|
|
23
|
+
- **Maintenance SOP** — added `claude --safe-mode` (v2.1.169) isolation step to the rule-enforcement troubleshooting flow.
|
|
24
|
+
- Doctor snapshot refreshed (Claude Code 2.1.170, Codex CLI 0.138.0); class-C items recorded as not adopted (`fallbackModel`, Copilot `excludeAgent`); opencode v1.16.0 experimental v2 skill registry tracked as a watch item.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## v4.6.0 - Editor ecosystem sync + Codex rules in AGENTS.md (2026-06-05)
|
|
29
|
+
|
|
30
|
+
Minor release. Syncs the editor registry with current upstream reality (Windsurf→Devin rebrand, Roo Code archive, Gemini CLI sunset, moved docs hosts) and fixes several generators that wrote to paths their editors never read. Headline: Codex now actually receives the universal coding rules.
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
- **Codex CLI: all 10 native hook events** — wired the 5 previously-missing events (`PostToolUse`, `PreCompact`, `PostCompact`, `SubagentStart`, `SubagentStop`) to the shared toolkit hook scripts, mirroring `app/hooks.json`. Was 5 of 10.
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
- **Codex CLI: coding rules now in `AGENTS.md`** — the universal code-style/testing/security/output-mode rule bodies are inlined into `AGENTS.md`, the only instruction path Codex reads. They were previously emitted to `.agents/rules/`, which Codex never reads (confirmed against `developers.openai.com/codex`). Language rules continue via `.agents/skills/`.
|
|
37
|
+
- **Google Antigravity: plural `.agents/`** — generators now emit `.agents/rules/` and `.agents/workflows/` (the Antigravity 2.0 default); singular `.agent/` is still read by Antigravity as a fallback.
|
|
38
|
+
- **Conditional skill pointers** — Cursor/Cline/Augment skip the `ai-toolkit-skill-catalogue` pointer when real skills are discoverable at `.claude/skills/` (project or `~/.claude/skills/`), emitting it only as the editor-only fallback. Windsurf keeps its pointer unconditionally (its `.claude/skills` scan is gated behind a Devin "Claude Code config reading" setting).
|
|
39
|
+
- **Cursor subagents** — emit `model: inherit`; dropped the undocumented `tools`/`color` fields to match the current Cursor schema.
|
|
40
|
+
- **Augment subagents** — omit the `model` field (Augment uses the CLI default model; `inherit` is not a documented value).
|
|
41
|
+
- **Ecosystem registry sync** — Windsurf → Devin Desktop (docs/changelog redirects); Roo Code repo archived + docs moved to `roocodeinc.github.io`; Claude Code docs host `code.claude.com`; Codex docs `developers.openai.com/codex`; Gemini CLI free/paid tier sunset 2026-06-18 (enterprise continues); Cline config-path corrections; stale Gemini `Stop` marker dropped.
|
|
42
|
+
|
|
43
|
+
### Fixed
|
|
44
|
+
- **opencode commands were empty** — the prompt now lives in the markdown body. Commands previously put it in a `template:` frontmatter block (JSON-config-only) with an empty body, so every generated opencode command was effectively blank.
|
|
45
|
+
- **Cline global rules** — now written to `~/Documents/Cline/Rules/` (the documented Cline global path) instead of the never-read `~/.cline/rules/`.
|
|
46
|
+
- **Augment commands** — dropped the undocumented `agent:` frontmatter field; fixed a false `generate_augment_hooks.py` docstring claim about per-workspace settings.
|
|
47
|
+
|
|
48
|
+
### Removed
|
|
49
|
+
- **`scripts/generate_codex_rules.py`** and the `ai-toolkit codex-rules` / `npm run generate:codex-rules` subcommands — Codex never read the `.agents/rules/` output. Coding rules now ship via `AGENTS.md` (universal) and `.agents/skills/` (language). Installs need no migration; if you scripted `ai-toolkit codex-rules`, the rules are now produced by `ai-toolkit codex-md`. Test count: 1181 → 1179 (dead-path tests removed).
|
|
50
|
+
|
|
51
|
+
### Ecosystem
|
|
52
|
+
- Class B (integrate): Codex 10 hook events. Class E (now-default): Antigravity plural `.agents/`, conditional skill pointers. Class D (deprecation): Windsurf→Devin, Roo Code archive, Gemini CLI tier sunset. Plus registry URL/version/config-path corrections across 9 tools.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
10
56
|
## v4.5.1 - ShellCheck fix for loop-guard hook (2026-06-02)
|
|
11
57
|
|
|
12
58
|
Patch release. Clears two ShellCheck `SC2034` warnings in `loop-guard.sh` that turned the `main` CI ShellCheck job red after v4.5.0. The publish workflow does not run ShellCheck, so v4.5.0 published despite the red CI; this patch makes `main` green again. No runtime behavior change.
|
package/README.md
CHANGED
|
@@ -6,17 +6,17 @@
|
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](app/skills/)
|
|
8
8
|
[](app/agents/)
|
|
9
|
-
[](tests/)
|
|
10
10
|
|
|
11
|
-
## What's New in v4.
|
|
11
|
+
## What's New in v4.7.0
|
|
12
12
|
|
|
13
|
-
v4.
|
|
13
|
+
v4.7.0 follows the Windsurf → Devin Desktop transition to its config surfaces and brings the editor registry up to date with verified upstream docs.
|
|
14
14
|
|
|
15
|
-
- **
|
|
16
|
-
- **
|
|
17
|
-
-
|
|
18
|
-
- **
|
|
19
|
-
- **
|
|
15
|
+
- **Devin Desktop `.devin/` tree**: windsurf generators now dual-emit rules, workflows, and the skill pointer to `.devin/` (primary since the 2026-06-02 rebrand) alongside legacy `.windsurf/` (still read as fallback); `.devin/rules` joins editor auto-detection.
|
|
16
|
+
- **Antigravity CLI skill pointer**: dual-emitted to `.agent/skills/` (IDE) and `.agents/skills/` (CLI, plural); auto-detection no longer misreads a pointer-only `.agents/skills/` as a Codex install.
|
|
17
|
+
- **Cascade deprecation**: the Cascade-scoped `.windsurf/hooks.json` surface dies with Cascade on 2026-07-01 — deprecation note added, migration target is Devin CLI lifecycle hooks.
|
|
18
|
+
- **Registry accuracy**: phantom `.cursor/rules/*.md` removed (Cursor ignores plain `.md`), Augment guidelines path corrected to `.augment-guidelines`, plus verified config surfaces added for Claude Code, Gemini CLI, Cline CLI/SDK, Codex, opencode, and Antigravity CLI.
|
|
19
|
+
- **Troubleshooting**: maintenance SOP gains the `claude --safe-mode` (v2.1.169) isolation step.
|
|
20
20
|
|
|
21
21
|
See [CHANGELOG.md](CHANGELOG.md) for full history.
|
|
22
22
|
|
|
@@ -103,15 +103,15 @@ See [CLI Reference](kb/reference/cli-reference.md) for all commands and options.
|
|
|
103
103
|
|----------|-------------|:-----:|-------|
|
|
104
104
|
| Claude Code | `~/.claude/` | ✅ | global |
|
|
105
105
|
| Cursor | `.cursor/rules/*.mdc` + `.cursor/mcp.json` + `.cursor/skills/*` | ✅ | project (`~/.cursor/mcp.json` for MCP only) |
|
|
106
|
-
| Windsurf | `~/.codeium/.../global_rules.md` + `~/.codeium/windsurf/skills/*` + `.windsurf/rules/*.md` | ✅ | global + project |
|
|
106
|
+
| Windsurf (Devin Desktop) | `~/.codeium/.../global_rules.md` + `~/.codeium/windsurf/skills/*` + `.devin/rules/*.md` + `.windsurf/rules/*.md` (legacy) | ✅ | global + project |
|
|
107
107
|
| Gemini CLI | `~/.gemini/GEMINI.md` | ✅ | global |
|
|
108
108
|
| GitHub Copilot | `.github/copilot-instructions.md` | — | project |
|
|
109
|
-
| Cline |
|
|
109
|
+
| Cline | `~/Documents/Cline/Rules/*.md` + `~/.cline/skills/*` + `.clinerules/*.md` | — | global + project |
|
|
110
110
|
| Roo Code | `~/.roo/rules/*.md` + `.roomodes` + `.roo/rules/*.md` | — | global rules + project |
|
|
111
111
|
| Aider | `~/.aider.conf.yml` + `.aider.conf.yml` + `CONVENTIONS.md` | — | global + project |
|
|
112
112
|
| Augment | `~/.augment/rules/*.md` + `.augment/rules/ai-toolkit-*.md` | ✅ | global + project |
|
|
113
|
-
| Google Antigravity | `.
|
|
114
|
-
| Codex CLI | `AGENTS.md`
|
|
113
|
+
| Google Antigravity | `.agents/rules/*.md` + `.agents/workflows/*.md` + skill pointer in `.agent/skills/*` (IDE) and `.agents/skills/*` (CLI) | — | project |
|
|
114
|
+
| Codex CLI | `AGENTS.md` (coding rules inlined) + `.agents/skills/*` + `.codex/hooks.json` | ✅ | project + global plugin |
|
|
115
115
|
| opencode | `AGENTS.md` + `.opencode/{agents,commands,plugins}/*` + `opencode.json` | ✅ | project + global (`~/.config/opencode/`) |
|
|
116
116
|
|
|
117
117
|
> Claude Code is always installed (primary platform). Other editors on demand with `--editors`. Every platform receives the agent/skill catalog, guidelines, and registered custom rules as text. The **Hooks** column marks platforms that also get lifecycle hook enforcement — the machine-enforced constitution (guard-destructive, quality gates, search-first discipline). Platforms marked — receive those rules as guidance only, without blocking hooks.
|
|
@@ -149,7 +149,7 @@ ai-toolkit/
|
|
|
149
149
|
│ └── ARCHITECTURE.md # Full system design
|
|
150
150
|
├── kb/ # Reference docs, procedures, plans
|
|
151
151
|
├── scripts/ # Validation, install, evaluation scripts
|
|
152
|
-
├── tests/ # Bats test suite (
|
|
152
|
+
├── tests/ # Bats test suite (1186 tests)
|
|
153
153
|
└── CHANGELOG.md
|
|
154
154
|
```
|
|
155
155
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-toolkit",
|
|
3
3
|
"description": "Professional-grade Claude Code toolkit with persona presets, skill security auditor, expanded lifecycle hooks, experimental opt-in plugin packs, benchmark harvesting, and multi-tool support.",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.7.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "SoftSpark",
|
|
7
7
|
"url": "https://github.com/softspark"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"last_run": "2026-
|
|
2
|
+
"last_run": "2026-06-09T22:04:06Z",
|
|
3
3
|
"schema_version": 1,
|
|
4
4
|
"tools": {
|
|
5
5
|
"aider": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"augment": {
|
|
27
|
-
"docs_hash": "
|
|
27
|
+
"docs_hash": "f4c5995e8333a4d5",
|
|
28
28
|
"headings": [
|
|
29
29
|
"Admin",
|
|
30
30
|
"Auggie CLI",
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
"Auggie CLI": true,
|
|
52
52
|
"MCP": true,
|
|
53
53
|
"Next Edit": false,
|
|
54
|
+
"Notification": true,
|
|
54
55
|
"PostToolUse": false,
|
|
55
56
|
"PreToolUse": false,
|
|
56
57
|
"SKILL.md": false,
|
|
@@ -65,7 +66,7 @@
|
|
|
65
66
|
}
|
|
66
67
|
},
|
|
67
68
|
"claude-code": {
|
|
68
|
-
"docs_hash": "
|
|
69
|
+
"docs_hash": "e6f6b4d9d4057cb0",
|
|
69
70
|
"headings": [
|
|
70
71
|
"Core concepts",
|
|
71
72
|
"Documentation Index",
|
|
@@ -114,16 +115,17 @@
|
|
|
114
115
|
"WorktreeRemove": false,
|
|
115
116
|
"hook handler: agent": false,
|
|
116
117
|
"hook handler: command": false,
|
|
118
|
+
"hook handler: http": false,
|
|
117
119
|
"hook handler: mcp_tool": false,
|
|
118
120
|
"hook handler: prompt": false,
|
|
119
121
|
"output style": true,
|
|
120
122
|
"slash command": true,
|
|
121
123
|
"sub-agent": true
|
|
122
124
|
},
|
|
123
|
-
"version": "2.1.
|
|
125
|
+
"version": "2.1.170 (Claude Code)"
|
|
124
126
|
},
|
|
125
127
|
"cline": {
|
|
126
|
-
"docs_hash": "
|
|
128
|
+
"docs_hash": "806fa530c90e227d",
|
|
127
129
|
"headings": [
|
|
128
130
|
"API Reference",
|
|
129
131
|
"Best Practices",
|
|
@@ -151,6 +153,7 @@
|
|
|
151
153
|
"\u200bWhat is Cline?"
|
|
152
154
|
],
|
|
153
155
|
"markers": {
|
|
156
|
+
"AGENTS.md": false,
|
|
154
157
|
"Act Mode": true,
|
|
155
158
|
"MCP": true,
|
|
156
159
|
"Plan Mode": false,
|
|
@@ -158,43 +161,58 @@
|
|
|
158
161
|
"conditional rules": false,
|
|
159
162
|
"custom modes": false,
|
|
160
163
|
"hooks": true,
|
|
164
|
+
"plugins": true,
|
|
161
165
|
"skills": true,
|
|
162
166
|
"subagents": true,
|
|
163
167
|
"workflows": true
|
|
164
168
|
}
|
|
165
169
|
},
|
|
166
170
|
"codex-cli": {
|
|
167
|
-
"docs_hash": "
|
|
171
|
+
"docs_hash": "1b4a56a8e918d721",
|
|
168
172
|
"headings": [
|
|
169
|
-
"
|
|
170
|
-
"
|
|
171
|
-
"
|
|
172
|
-
"
|
|
173
|
-
"
|
|
174
|
-
"
|
|
175
|
-
"
|
|
176
|
-
"
|
|
177
|
-
"
|
|
178
|
-
"
|
|
179
|
-
"
|
|
180
|
-
"
|
|
181
|
-
"
|
|
182
|
-
"
|
|
183
|
-
"
|
|
184
|
-
"
|
|
173
|
+
"API",
|
|
174
|
+
"API Reference",
|
|
175
|
+
"Administration",
|
|
176
|
+
"Advertiser API",
|
|
177
|
+
"Agents SDK",
|
|
178
|
+
"Automation",
|
|
179
|
+
"Build",
|
|
180
|
+
"Categories",
|
|
181
|
+
"Codex",
|
|
182
|
+
"Codex for Open Source",
|
|
183
|
+
"Community",
|
|
184
|
+
"Configuration",
|
|
185
|
+
"Contribute",
|
|
186
|
+
"Conversion apps",
|
|
187
|
+
"Core Concepts",
|
|
188
|
+
"Core concepts",
|
|
189
|
+
"Deploy",
|
|
190
|
+
"Docs agent",
|
|
191
|
+
"Evaluation",
|
|
192
|
+
"Events",
|
|
193
|
+
"Explore use cases",
|
|
194
|
+
"File Upload",
|
|
195
|
+
"Get started",
|
|
196
|
+
"Getting Started",
|
|
197
|
+
"Going live",
|
|
198
|
+
"Guides",
|
|
199
|
+
"Learn",
|
|
200
|
+
"Legacy APIs",
|
|
201
|
+
"Measurement",
|
|
202
|
+
"Plan",
|
|
203
|
+
"Programs",
|
|
185
204
|
"Quickstart",
|
|
186
|
-
"
|
|
187
|
-
"
|
|
205
|
+
"Realtime and audio",
|
|
206
|
+
"Recent",
|
|
207
|
+
"Releases",
|
|
188
208
|
"Resources",
|
|
189
|
-
"
|
|
190
|
-
"Search
|
|
191
|
-
"
|
|
192
|
-
"
|
|
193
|
-
"
|
|
194
|
-
"
|
|
195
|
-
"Using Codex
|
|
196
|
-
"Watchers",
|
|
197
|
-
"openai/codex"
|
|
209
|
+
"Run and scale",
|
|
210
|
+
"Search the Codex docs",
|
|
211
|
+
"Specialized models",
|
|
212
|
+
"Suggested",
|
|
213
|
+
"Tools",
|
|
214
|
+
"Topics",
|
|
215
|
+
"Using Codex"
|
|
198
216
|
],
|
|
199
217
|
"markers": {
|
|
200
218
|
".agents/skills": false,
|
|
@@ -213,14 +231,14 @@
|
|
|
213
231
|
"hook handler: agent": false,
|
|
214
232
|
"hook handler: command": false,
|
|
215
233
|
"hook handler: prompt": false,
|
|
216
|
-
"hooks":
|
|
234
|
+
"hooks": true,
|
|
217
235
|
"mcp_servers": false,
|
|
218
236
|
"sandbox": true
|
|
219
237
|
},
|
|
220
|
-
"version": "codex-cli 0.
|
|
238
|
+
"version": "codex-cli 0.138.0"
|
|
221
239
|
},
|
|
222
240
|
"cursor": {
|
|
223
|
-
"docs_hash": "
|
|
241
|
+
"docs_hash": "b68e4adf6e21f543",
|
|
224
242
|
"headings": [],
|
|
225
243
|
"markers": {
|
|
226
244
|
".cursor/rules": false,
|
|
@@ -236,7 +254,7 @@
|
|
|
236
254
|
}
|
|
237
255
|
},
|
|
238
256
|
"gemini-cli": {
|
|
239
|
-
"docs_hash": "
|
|
257
|
+
"docs_hash": "a0e9a213229063c8",
|
|
240
258
|
"headings": [
|
|
241
259
|
"Breadcrumbs",
|
|
242
260
|
"Directory actions",
|
|
@@ -257,15 +275,18 @@
|
|
|
257
275
|
],
|
|
258
276
|
"markers": {
|
|
259
277
|
"AfterAgent": false,
|
|
278
|
+
"AfterModel": false,
|
|
260
279
|
"AfterTool": false,
|
|
261
280
|
"BeforeAgent": false,
|
|
262
281
|
"BeforeModel": false,
|
|
263
282
|
"BeforeTool": false,
|
|
283
|
+
"BeforeToolSelection": false,
|
|
264
284
|
"GEMINI.md": true,
|
|
285
|
+
"Notification": true,
|
|
286
|
+
"PreCompress": false,
|
|
265
287
|
"SKILL.md": false,
|
|
266
288
|
"SessionEnd": false,
|
|
267
289
|
"SessionStart": false,
|
|
268
|
-
"Stop": true,
|
|
269
290
|
"activate_skill": false,
|
|
270
291
|
"custom commands": false,
|
|
271
292
|
"gemini-extension.json": false,
|
|
@@ -275,16 +296,17 @@
|
|
|
275
296
|
}
|
|
276
297
|
},
|
|
277
298
|
"github-copilot": {
|
|
278
|
-
"docs_hash": "
|
|
299
|
+
"docs_hash": "ead818d74ead1f2e",
|
|
279
300
|
"headings": [
|
|
280
301
|
"About Copilot auto model selection",
|
|
302
|
+
"About Copilot automations",
|
|
281
303
|
"About Copilot integrations",
|
|
304
|
+
"About agent apps",
|
|
282
305
|
"About agent management",
|
|
283
306
|
"About agent skills",
|
|
284
307
|
"About billing for GitHub Copilot in organizations and enterprises",
|
|
308
|
+
"About cloud and local sandboxes for GitHub Copilot",
|
|
285
309
|
"About custom agents",
|
|
286
|
-
"About customizing GitHub Copilot responses",
|
|
287
|
-
"About enterprise accounts for Copilot Business",
|
|
288
310
|
"Articles",
|
|
289
311
|
"Did you find what you needed?",
|
|
290
312
|
"GitHub Copilot",
|
|
@@ -307,7 +329,7 @@
|
|
|
307
329
|
}
|
|
308
330
|
},
|
|
309
331
|
"google-antigravity": {
|
|
310
|
-
"docs_hash": "
|
|
332
|
+
"docs_hash": "5ea5426c4445e746",
|
|
311
333
|
"headings": [],
|
|
312
334
|
"markers": {
|
|
313
335
|
"AGENTS.md": false,
|
|
@@ -317,13 +339,14 @@
|
|
|
317
339
|
"agent manager": false,
|
|
318
340
|
"agent permissions": false,
|
|
319
341
|
"artifacts": false,
|
|
342
|
+
"hooks": false,
|
|
320
343
|
"rules": false,
|
|
321
344
|
"skills": false,
|
|
322
345
|
"workflows": false
|
|
323
346
|
}
|
|
324
347
|
},
|
|
325
348
|
"opencode": {
|
|
326
|
-
"docs_hash": "
|
|
349
|
+
"docs_hash": "f546c8b741790cb8",
|
|
327
350
|
"headings": [
|
|
328
351
|
"Add features",
|
|
329
352
|
"Ask questions",
|
|
@@ -383,45 +406,44 @@
|
|
|
383
406
|
}
|
|
384
407
|
},
|
|
385
408
|
"windsurf": {
|
|
386
|
-
"docs_hash": "
|
|
409
|
+
"docs_hash": "91034c064d9f8290",
|
|
387
410
|
"headings": [
|
|
388
|
-
"Accounts",
|
|
389
411
|
"Advanced",
|
|
390
412
|
"Agent Command Center",
|
|
391
413
|
"App Deploys",
|
|
392
|
-
"Cascade",
|
|
393
414
|
"Context Awareness",
|
|
415
|
+
"Devin Desktop",
|
|
416
|
+
"Devin Local",
|
|
394
417
|
"Documentation Index",
|
|
395
|
-
"Editor",
|
|
396
418
|
"MCP",
|
|
397
419
|
"Memories",
|
|
398
420
|
"On this page",
|
|
399
421
|
"Recommended Plugins",
|
|
400
|
-
"
|
|
422
|
+
"Releases",
|
|
401
423
|
"Terminal",
|
|
402
|
-
"Troubleshooting",
|
|
403
424
|
"Usage",
|
|
404
|
-
"Welcome to
|
|
425
|
+
"Welcome to Devin Desktop",
|
|
426
|
+
"Windsurf Plugins",
|
|
405
427
|
"Workflows",
|
|
406
428
|
"\u200b1. Select setup flow",
|
|
407
429
|
"\u200b2. Choose editor theme",
|
|
408
430
|
"\u200b3. Sign up / Log in",
|
|
409
431
|
"\u200b4. Let\u2019s Surf!",
|
|
410
432
|
"\u200bCustom App Icons (beta)",
|
|
433
|
+
"\u200bDevin Desktop Next",
|
|
411
434
|
"\u200bForgot to Import VS Code Configurations?",
|
|
412
435
|
"\u200bIncompatible Extensions",
|
|
413
436
|
"\u200bOnboarding",
|
|
414
437
|
"\u200bSet Up",
|
|
415
438
|
"\u200bThings to Try",
|
|
416
|
-
"\u200bUninstall
|
|
417
|
-
"\u200bUpdate
|
|
418
|
-
"\u200bWindsurf Next"
|
|
439
|
+
"\u200bUninstall Devin Desktop",
|
|
440
|
+
"\u200bUpdate Devin Desktop"
|
|
419
441
|
],
|
|
420
442
|
"markers": {
|
|
421
443
|
"AGENTS.md": true,
|
|
422
444
|
"Cascade": true,
|
|
423
445
|
"MCP": true,
|
|
424
|
-
"SKILL.md":
|
|
446
|
+
"SKILL.md": true,
|
|
425
447
|
"always_on": false,
|
|
426
448
|
"glob": true,
|
|
427
449
|
"hooks": true,
|
package/bin/ai-toolkit.js
CHANGED
|
@@ -98,9 +98,8 @@ const COMMANDS = {
|
|
|
98
98
|
'conventions-md': 'Generate CONVENTIONS.md for Aider (auto-loaded)',
|
|
99
99
|
'augment-rules': 'Generate .augment/rules/ai-toolkit.md for Augment (legacy)',
|
|
100
100
|
'augment-dir-rules': 'Generate .augment/rules/ai-toolkit-*.md for Augment (recommended)',
|
|
101
|
-
'antigravity-rules': 'Generate .
|
|
102
|
-
'codex-md': 'Generate AGENTS.md for OpenAI Codex CLI',
|
|
103
|
-
'codex-rules': 'Generate .agents/rules/ for OpenAI Codex CLI',
|
|
101
|
+
'antigravity-rules': 'Generate .agents/rules/ and .agents/workflows/ for Google Antigravity',
|
|
102
|
+
'codex-md': 'Generate AGENTS.md (coding rules inlined) for OpenAI Codex CLI',
|
|
104
103
|
'codex-hooks': 'Generate .codex/hooks.json for OpenAI Codex CLI',
|
|
105
104
|
'opencode-md': 'Generate AGENTS.md for opencode',
|
|
106
105
|
'opencode-agents': 'Generate .opencode/agents/ for opencode (subagents)',
|
|
@@ -504,7 +503,6 @@ function handleGenerateAll(_args) {
|
|
|
504
503
|
run(scriptPath('generate_cline_rules.py'), [CWD]);
|
|
505
504
|
run(scriptPath('generate_roo_rules.py'), [CWD]);
|
|
506
505
|
run(scriptPath('generate_augment_rules.py'), [CWD]);
|
|
507
|
-
run(scriptPath('generate_codex_rules.py'), [CWD]);
|
|
508
506
|
run(scriptPath('generate_codex_hooks.py'), [CWD]);
|
|
509
507
|
run(scriptPath('generate_opencode_agents.py'), [CWD]);
|
|
510
508
|
run(scriptPath('generate_opencode_commands.py'), [CWD]);
|
|
@@ -617,7 +615,6 @@ const SPECIAL_HANDLERS = {
|
|
|
617
615
|
'roo-dir-rules': (_args) => run(scriptPath('generate_roo_rules.py'), [CWD]),
|
|
618
616
|
'conventions-md': (_args) => { const out = runGenerator('generate_conventions.py'); fs.writeFileSync(path.join(CWD, 'CONVENTIONS.md'), out); console.log('Generated: CONVENTIONS.md'); },
|
|
619
617
|
'augment-dir-rules': (_args) => run(scriptPath('generate_augment_rules.py'), [CWD]),
|
|
620
|
-
'codex-rules': (_args) => run(scriptPath('generate_codex_rules.py'), [CWD]),
|
|
621
618
|
'codex-hooks': (_args) => run(scriptPath('generate_codex_hooks.py'), [CWD]),
|
|
622
619
|
'opencode-agents': (_args) => run(scriptPath('generate_opencode_agents.py'), [CWD]),
|
|
623
620
|
'opencode-commands': (_args) => run(scriptPath('generate_opencode_commands.py'), [CWD]),
|
|
@@ -3,9 +3,9 @@ title: "SOP: Claude Toolkit Maintenance"
|
|
|
3
3
|
category: procedures
|
|
4
4
|
service: ai-toolkit
|
|
5
5
|
tags: [sop, maintenance, agents, skills, install]
|
|
6
|
-
version: "3.0
|
|
6
|
+
version: "3.1.0"
|
|
7
7
|
created: "2026-03-23"
|
|
8
|
-
last_updated: "2026-
|
|
8
|
+
last_updated: "2026-06-10"
|
|
9
9
|
description: "Standard operating procedures for installing, maintaining, and evolving the ai-toolkit."
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -211,18 +211,19 @@ Use this when Claude appears to ignore `CLAUDE.md`, `.claude/rules/*.md`, output
|
|
|
211
211
|
- `https://code.claude.com/docs/en/settings`
|
|
212
212
|
- `https://code.claude.com/docs/en/output-styles`
|
|
213
213
|
- `https://code.claude.com/docs/en/hooks`
|
|
214
|
-
2. **
|
|
215
|
-
3. **Verify the
|
|
216
|
-
4. **
|
|
217
|
-
5. **
|
|
214
|
+
2. **Isolate with safe mode (v2.1.169+).** Start a session with `claude --safe-mode` (or `CLAUDE_CODE_SAFE_MODE=1`) — it disables hooks, skills, agents, and CLAUDE.md. If the problem persists in safe mode, the cause is upstream, not toolkit customization; if it disappears, bisect toolkit components with `ai-toolkit update --only <component>`.
|
|
215
|
+
3. **Verify instruction loading.** Run `/memory` in Claude Code and confirm the expected `CLAUDE.md`, `CLAUDE.local.md`, and `.claude/rules/*.md` files are listed. Remember that Claude Code reads `CLAUDE.md`, not `AGENTS.md`, unless `CLAUDE.md` imports it.
|
|
216
|
+
4. **Verify the active output style.** Check `.claude/settings.local.json` or `/config`. Output style changes apply after `/clear` or a new session.
|
|
217
|
+
5. **Inspect installed hooks.** Ensure `~/.claude/settings.json` contains the ai-toolkit `UserPromptSubmit` and `Stop` entries. The governance hook must run with `AI_TOOLKIT_HOOK_QUIET=1 AI_TOOLKIT_HOOK_FORMAT=json` so it injects `additionalContext` without noisy transcript output.
|
|
218
|
+
6. **Reproduce the hook path directly.**
|
|
218
219
|
```bash
|
|
219
220
|
printf '{"session_id":"debug","prompt":"debug this technical rule issue"}' \
|
|
220
221
|
| AI_TOOLKIT_SEARCH_FIRST=strict AI_TOOLKIT_HOOK_QUIET=1 AI_TOOLKIT_HOOK_FORMAT=json \
|
|
221
222
|
~/.softspark/ai-toolkit/hooks/user-prompt-submit.sh
|
|
222
223
|
```
|
|
223
224
|
The output must be valid JSON with `hookSpecificOutput.additionalContext`.
|
|
224
|
-
|
|
225
|
-
|
|
225
|
+
7. **Check corrective enforcement.** If the assistant still skips required research, `stop-search-check.sh` should block Stop with the search-first message. If it does not, inspect `~/.softspark/ai-toolkit/state/search-required-*.flag` and the Codex/Claude transcript logs.
|
|
226
|
+
8. **Repair drift.** Run:
|
|
226
227
|
```bash
|
|
227
228
|
ai-toolkit update --only hooks
|
|
228
229
|
python3 scripts/ecosystem_doctor.py --tool claude-code --format text
|