@softspark/ai-toolkit 1.4.2 → 1.5.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.
@@ -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: "1.0.0"
6
+ version: "1.4.2"
7
7
  created: "2026-03-23"
8
- last_updated: "2026-04-02"
8
+ last_updated: "2026-04-09"
9
9
  description: "Standard operating procedures for installing, maintaining, and evolving the ai-toolkit."
10
10
  ---
11
11
 
@@ -22,18 +22,30 @@ cd /path/to/new-project
22
22
  ai-toolkit install --local
23
23
  ```
24
24
 
25
- This creates/updates:
25
+ By default, `--local` installs Claude Code configs only:
26
26
  - `CLAUDE.md` — project-specific rules template (only if missing)
27
27
  - `.claude/settings.local.json` — MCP servers, env vars, permissions (only if missing, initialized with MCP defaults)
28
28
  - `.claude/constitution.md` — toolkit constitution **injected** via markers (preserves user content)
29
- - `.github/copilot-instructions.md` — GitHub Copilot rules (marker-injected)
30
- - `.clinerules` Cline rules (marker-injected)
31
- - `.roomodes` — Roo Code custom modes (generated)
32
- - `.aider.conf.yml` — Aider configuration (generated)
33
- - `.git/hooks/pre-commit` Safety fallback for quality gates (generated)
29
+
30
+ To also install editor configs, use `--editors`:
31
+
32
+ ```bash
33
+ ai-toolkit install --local --editors all # all supported editors
34
+ ai-toolkit install --local --editors cursor,aider # specific editors only
35
+ ```
36
+
37
+ Supported editors: `cursor`, `windsurf`, `cline`, `roo`, `aider`, `augment`, `copilot`, `antigravity`.
38
+
39
+ To restrict which language rules are injected into `CLAUDE.md`, use `--lang`:
40
+
41
+ ```bash
42
+ ai-toolkit install --local --lang python,typescript
43
+ ```
34
44
 
35
45
  **Note:** Hooks are global-only — merged into `~/.claude/settings.json` by `ai-toolkit install`. Project-local `--local` does not install hooks; any legacy `.claude/hooks.json` is removed automatically.
36
46
 
47
+ **Input validation (v1.4.2):** `--only`, `--skip`, `--editors`, and `--lang` are validated on input; an invalid value exits with a clear error before any changes are made.
48
+
37
49
  Then edit `CLAUDE.md`:
38
50
  ```markdown
39
51
  # My Project
@@ -90,11 +102,14 @@ ai-toolkit update
90
102
  `update` is a semantic alias for `install` — use it for all re-apply flows. Supports the same flags:
91
103
 
92
104
  ```bash
93
- ai-toolkit update --only agents,hooks # re-apply only specific components
94
- ai-toolkit update --local # refresh project-local configs (auto-detects editors from existing files)
95
- ai-toolkit update --list # dry-run: show what would change
105
+ ai-toolkit update --only agents,hooks # re-apply only specific components
106
+ ai-toolkit update --local # refresh project-local Claude Code configs; auto-detects editors from existing project files (no --editors needed)
107
+ ai-toolkit update --local --editors cursor,windsurf # override auto-detection and target specific editors
108
+ ai-toolkit update --list # dry-run: show what would change
96
109
  ```
97
110
 
111
+ When running `update --local`, the CLI inspects existing config files (e.g. `.cursor/rules`, `.aider.conf.yml`) to determine which editors are present and refreshes only those — no flags required.
112
+
98
113
  ---
99
114
 
100
115
  ## Register a Rule from Another Repo
@@ -233,15 +248,14 @@ ai-toolkit benchmark-ecosystem --offline # benchmark snapshot
233
248
  Changes propagate instantly to all machines via symlinks. After any change:
234
249
 
235
250
  ```bash
236
- scripts/validate.py # must pass before commit
237
- npm test # must pass before commit
251
+ npm run generate:all # FIRST: regenerate AGENTS.md, llms.txt, all platform configs
252
+ scripts/validate.py # then validate — must pass before commit
253
+ npm test # then test — must pass before commit
238
254
  ```
239
255
 
240
- If you added/removed agents or skills, also regenerate derived artifacts:
241
-
242
- ```bash
243
- npm run generate:all # regenerates AGENTS.md, llms.txt, all platform configs
244
- ```
256
+ Run `generate:all` before validate and test so that generated artifacts are current when
257
+ the metadata contract tests run. Committing without regenerating first causes artifact
258
+ drift and fails CI.
245
259
 
246
260
  ## Release Checklist
247
261
 
@@ -272,7 +286,17 @@ npm test # full bats suite including metadata contracts and CLI tests
272
286
  The metadata contract tests (`tests/test_metadata_contracts.bats`) catch drift
273
287
  automatically. If they fail, fix the stale numbers before continuing.
274
288
 
275
- ### 5. Commit and tag
289
+ ### 5. Check for artifact drift
290
+
291
+ ```bash
292
+ git diff --stat
293
+ ```
294
+
295
+ Review the diff to confirm that all generated files (`AGENTS.md`, `llms.txt`, platform
296
+ configs) reflect the current state. If `generate:all` produced unexpected changes,
297
+ investigate before staging.
298
+
299
+ ### 6. Commit and tag
276
300
 
277
301
  ```bash
278
302
  git add -A
@@ -0,0 +1,277 @@
1
+ ---
2
+ title: "SOP: Release Preparation"
3
+ category: procedures
4
+ service: ai-toolkit
5
+ tags: [sop, release, version, publish, changelog, semver]
6
+ version: "1.5.0"
7
+ created: "2026-04-10"
8
+ last_updated: "2026-04-10"
9
+ description: "Step-by-step checklist for preparing a new ai-toolkit release — version sync, changelog, artifact regeneration, validation, and tagging. Run BEFORE every git tag."
10
+ ---
11
+
12
+ # SOP: Release Preparation
13
+
14
+ Complete checklist for preparing a new `@softspark/ai-toolkit` release.
15
+ Run this **before** tagging. After tagging and publishing, run the
16
+ [Release Verification SOP](release-verification-sop.md) to smoke-test.
17
+
18
+ **Pipeline:**
19
+ ```
20
+ Release Preparation (this SOP) → git tag → CI publish → Release Verification SOP
21
+ ```
22
+
23
+ **Time:** 5-10 minutes
24
+
25
+ ---
26
+
27
+ ## Quick Checklist (TL;DR)
28
+
29
+ ```bash
30
+ # 1. Decide version bump
31
+ # patch (1.4.2 → 1.4.3): bugfix, typo, doc fix
32
+ # minor (1.4.2 → 1.5.0): new feature, new skill, new flag
33
+ # major (1.4.2 → 2.0.0): breaking change
34
+
35
+ # 2. Sync version across all files
36
+ python3 scripts/sync_version.py X.Y.Z # if script exists, else manual
37
+
38
+ # 3. Write CHANGELOG.md entry
39
+ # 4. Regenerate artifacts
40
+ python3 scripts/generate_agents_md.py > AGENTS.md
41
+ python3 scripts/generate_llms_txt.py > llms.txt
42
+ python3 scripts/generate_llms_txt.py --full > llms-full.txt
43
+
44
+ # 5. Validate + audit + test
45
+ python3 scripts/validate.py --strict && python3 scripts/audit_skills.py --ci && npm test
46
+
47
+ # 6. Commit + tag + push
48
+ git add -A && git commit -m "chore: release vX.Y.Z"
49
+ git tag vX.Y.Z
50
+ git push origin main --tags
51
+ ```
52
+
53
+ ---
54
+
55
+ ## Phase 1: Determine Version Bump
56
+
57
+ Follow [Semantic Versioning](https://semver.org/):
58
+
59
+ | Change Type | Bump | Examples |
60
+ |-------------|------|---------|
61
+ | Bugfix, typo, doc-only | **patch** | Fix install flag, correct description |
62
+ | New feature, skill, agent, flag | **minor** | Add `/hipaa-validate`, add `--output json` |
63
+ | Breaking CLI change, removed skill, config format change | **major** | Rename `install` to `setup`, remove skill |
64
+
65
+ **Rule:** When in doubt, bump minor.
66
+
67
+ ---
68
+
69
+ ## Phase 2: Sync Version in All Files
70
+
71
+ The canonical version lives in `package.json`. These files **must** match:
72
+
73
+ ### Mandatory sync (every release)
74
+
75
+ | File | Field | How to update |
76
+ |------|-------|---------------|
77
+ | `package.json` | `"version": "X.Y.Z"` | Edit directly |
78
+ | `manifest.json` | `"version": "X.Y.Z"` | Edit directly |
79
+ | `app/.claude-plugin/plugin.json` | `"version": "X.Y.Z"` | Edit directly |
80
+
81
+ ### Auto-synced (no manual action)
82
+
83
+ | File | Mechanism |
84
+ |------|-----------|
85
+ | `package-lock.json` | Regenerated by `npm install --package-lock-only` |
86
+
87
+ ### Conditional sync (only if the doc was modified in this release)
88
+
89
+ | File | Field | When to update |
90
+ |------|-------|---------------|
91
+ | `kb/procedures/maintenance-sop.md` | frontmatter `version:` | If SOP content changed |
92
+ | `kb/reference/skills-catalog.md` | frontmatter `version:` | If skills added/removed |
93
+ | `kb/reference/agents-catalog.md` | frontmatter `version:` | If agents added/removed |
94
+ | `kb/reference/hooks-catalog.md` | frontmatter `version:` | If hooks changed |
95
+ | `kb/reference/architecture-overview.md` | frontmatter `version:` | If architecture changed |
96
+ | `kb/reference/distribution-model.md` | frontmatter `version:` | If install model changed |
97
+ | `kb/reference/global-install-model.md` | frontmatter `version:` | If install model changed |
98
+
99
+ > **Note:** KB `version:` fields track the **document version**, not the toolkit version.
100
+ > Only bump them when the document content actually changes in this release.
101
+
102
+ ### Count sync (if skills/agents/hooks changed)
103
+
104
+ | File | What to check |
105
+ |------|---------------|
106
+ | `package.json` | `"description"` — skill/agent count |
107
+ | `README.md` | Badge counts, "What You Get" table |
108
+ | `app/ARCHITECTURE.md` | Section headings with counts |
109
+
110
+ > **Tip:** `validate.py --strict` and `npm test` (metadata contract tests) catch
111
+ > count drift automatically. If tests pass, counts are correct.
112
+
113
+ ### Verification command
114
+
115
+ After syncing, verify all mandatory files match:
116
+
117
+ ```bash
118
+ VERSION=$(python3 -c "import json; print(json.load(open('package.json'))['version'])")
119
+ echo "Target: $VERSION"
120
+ echo "manifest.json: $(python3 -c "import json; print(json.load(open('manifest.json'))['version'])")"
121
+ echo "plugin.json: $(python3 -c "import json; print(json.load(open('app/.claude-plugin/plugin.json'))['version'])")"
122
+ echo "package-lock.json: $(python3 -c "import json; print(json.load(open('package-lock.json'))['version'])")"
123
+ ```
124
+
125
+ All four must print the same version. If not, fix before proceeding.
126
+
127
+ ---
128
+
129
+ ## Phase 3: Write CHANGELOG Entry
130
+
131
+ Add entry at the top of `CHANGELOG.md` (after the header, before previous release):
132
+
133
+ ```markdown
134
+ ## vX.Y.Z — Short Title (YYYY-MM-DD)
135
+
136
+ ### Added
137
+ - **Feature name** — description
138
+
139
+ ### Changed
140
+ - **What changed** — old behavior → new behavior
141
+
142
+ ### Fixed
143
+ - **Bug description** — what was broken and how it's fixed
144
+
145
+ ### Removed
146
+ - **What was removed** — migration path if any
147
+ ```
148
+
149
+ **Rules:**
150
+ - Use **bold** for feature names
151
+ - Start descriptions with a verb (Added, Changed, Fixed, Removed)
152
+ - Reference skill names with backticks and slash: `/hipaa-validate`
153
+ - Include script names: `scripts/hipaa_scan.py`
154
+ - Include count changes: `Skill count: 91 → 92`
155
+ - Date format: `YYYY-MM-DD`
156
+ - Title: short, descriptive, no version number repetition
157
+
158
+ ---
159
+
160
+ ## Phase 4: Regenerate Artifacts
161
+
162
+ ```bash
163
+ python3 scripts/generate_agents_md.py > AGENTS.md
164
+ python3 scripts/generate_llms_txt.py > llms.txt
165
+ python3 scripts/generate_llms_txt.py --full > llms-full.txt
166
+ ```
167
+
168
+ Check if anything actually changed:
169
+
170
+ ```bash
171
+ git diff --stat AGENTS.md llms.txt llms-full.txt
172
+ ```
173
+
174
+ If no diff, the artifacts are already current. If there is a diff, stage them.
175
+
176
+ ---
177
+
178
+ ## Phase 5: Validate, Audit, Test
179
+
180
+ Run the full quality gate:
181
+
182
+ ```bash
183
+ python3 scripts/validate.py --strict
184
+ python3 scripts/audit_skills.py --ci
185
+ npm test
186
+ ```
187
+
188
+ **Expected results:**
189
+ - `validate.py`: `Errors: 0 | Warnings: 0 | VALIDATION PASSED`
190
+ - `audit_skills.py`: `HIGH: 0 | WARN: 0` (INFO is acceptable)
191
+ - `npm test`: `1..N` with zero `not ok`
192
+
193
+ **One-liner:**
194
+ ```bash
195
+ python3 scripts/validate.py --strict && python3 scripts/audit_skills.py --ci && npm test
196
+ ```
197
+
198
+ **If tests fail:** Fix the issue, do NOT skip. Common failures:
199
+ - Stale counts → re-run `generate:all` or fix README/ARCHITECTURE
200
+ - Missing frontmatter → add to new KB docs
201
+ - Broken symlink → `ai-toolkit doctor --fix`
202
+
203
+ ---
204
+
205
+ ## Phase 6: Commit
206
+
207
+ Stage all release files:
208
+
209
+ ```bash
210
+ git add package.json manifest.json app/.claude-plugin/plugin.json
211
+ git add package-lock.json
212
+ git add CHANGELOG.md
213
+ git add AGENTS.md llms.txt llms-full.txt
214
+ git add -p # review and stage any other changes
215
+ ```
216
+
217
+ Commit:
218
+
219
+ ```bash
220
+ git commit -m "chore: release vX.Y.Z"
221
+ ```
222
+
223
+ ---
224
+
225
+ ## Phase 7: Tag and Push
226
+
227
+ ```bash
228
+ git tag vX.Y.Z
229
+ git push origin main --tags
230
+ ```
231
+
232
+ This triggers `.github/workflows/publish.yml` which:
233
+ 1. Runs `validate.py --strict`
234
+ 2. Runs `npm test`
235
+ 3. Publishes to npm as `@softspark/ai-toolkit@X.Y.Z`
236
+
237
+ **After CI completes:** Run the [Release Verification SOP](release-verification-sop.md)
238
+ to smoke-test the published package.
239
+
240
+ ---
241
+
242
+ ## Rollback
243
+
244
+ If a bad release was published:
245
+
246
+ ```bash
247
+ # Unpublish from npm (within 72h)
248
+ npm unpublish @softspark/ai-toolkit@X.Y.Z
249
+
250
+ # Or deprecate (preferred — doesn't break existing installs)
251
+ npm deprecate @softspark/ai-toolkit@X.Y.Z "Known issue: <description>. Use vA.B.C instead."
252
+
253
+ # Delete tag
254
+ git tag -d vX.Y.Z
255
+ git push origin --delete vX.Y.Z
256
+ ```
257
+
258
+ ---
259
+
260
+ ## Checklist Summary
261
+
262
+ | # | Step | Command / Action | Pass Criteria |
263
+ |---|------|-----------------|---------------|
264
+ | 1 | Version bump type | Decide patch/minor/major | — |
265
+ | 2 | `package.json` version | Edit `"version"` | Matches target |
266
+ | 3 | `manifest.json` version | Edit `"version"` | Matches target |
267
+ | 4 | `plugin.json` version | Edit `"version"` | Matches target |
268
+ | 5 | `package-lock.json` | `npm install --package-lock-only` | Matches target |
269
+ | 6 | Count sync | Check `package.json` description, README | `validate.py` passes |
270
+ | 7 | CHANGELOG.md | Add release entry | Entry exists for vX.Y.Z |
271
+ | 8 | Regenerate artifacts | `generate_agents_md.py`, `generate_llms_txt.py` | No unexpected diff |
272
+ | 9 | Validate | `validate.py --strict` | 0 errors, 0 warnings |
273
+ | 10 | Security audit | `audit_skills.py --ci` | 0 HIGH |
274
+ | 11 | Tests | `npm test` | All pass |
275
+ | 12 | Commit | `git commit` | Clean working tree |
276
+ | 13 | Tag | `git tag vX.Y.Z` | Tag exists |
277
+ | 14 | Push | `git push origin main --tags` | CI triggered |
@@ -3,9 +3,9 @@ title: "AI Toolkit - Agents Catalog"
3
3
  category: reference
4
4
  service: ai-toolkit
5
5
  tags: [agents, catalog, roles, ai-development]
6
- version: "1.3.10"
6
+ version: "1.4.2"
7
7
  created: "2026-03-23"
8
- last_updated: "2026-03-25"
8
+ last_updated: "2026-04-09"
9
9
  description: "Complete catalog of specialized agents with roles, models, and use cases."
10
10
  ---
11
11
 
@@ -3,9 +3,9 @@ title: "AI Toolkit - Architecture Overview"
3
3
  category: reference
4
4
  service: ai-toolkit
5
5
  tags: [architecture, overview, design, structure]
6
- version: "1.4.0"
6
+ version: "1.4.2"
7
7
  created: "2026-03-23"
8
- last_updated: "2026-04-08"
8
+ last_updated: "2026-04-09"
9
9
  description: "Architecture of ai-toolkit: directory layout, global install model, skill tiers, and integration with projects."
10
10
  ---
11
11
 
@@ -177,7 +177,7 @@ Three tiers determine how to approach a task:
177
177
 
178
178
  | Type | Field | Invocation | Count |
179
179
  |------|-------|-----------|-------|
180
- | Task | `disable-model-invocation: true` | User via `/skill` only | 28 |
180
+ | Task | `disable-model-invocation: true` | User via `/skill` only | 29 |
181
181
  | Hybrid | (neither) | User via `/skill` + agent knowledge | 31 |
182
182
  | Knowledge | `user-invocable: false` | Claude auto-loads | 32 |
183
183
 
@@ -3,9 +3,9 @@ title: "Distribution Model"
3
3
  category: reference
4
4
  service: ai-toolkit
5
5
  tags: [architecture, distribution, symlinks, npm, install]
6
- version: "1.0.0"
6
+ version: "1.4.2"
7
7
  created: "2026-03-23"
8
- last_updated: "2026-03-28"
8
+ last_updated: "2026-04-09"
9
9
  description: "Reference description of how ai-toolkit is delivered and propagated on a developer machine."
10
10
  ---
11
11
 
@@ -3,9 +3,9 @@ title: "Global Install Model"
3
3
  category: reference
4
4
  service: ai-toolkit
5
5
  tags: [install, global, claude, local-setup]
6
- version: "1.0.0"
6
+ version: "1.4.2"
7
7
  created: "2026-03-26"
8
- last_updated: "2026-03-28"
8
+ last_updated: "2026-04-09"
9
9
  description: "Reference description of the global install target, local project setup, and command responsibilities in ai-toolkit."
10
10
  ---
11
11
 
@@ -23,7 +23,9 @@ That means one machine-level install provides agents, skills, hooks, and rules t
23
23
  |---------|--------|---------|
24
24
  | `ai-toolkit install` | `~/.claude/` | first-time machine setup |
25
25
  | `ai-toolkit update` | `~/.claude/` | re-apply after package or rule changes |
26
- | `ai-toolkit install --local` | current project | Claude Code configs only (CLAUDE.md, settings, constitution, language rules). Add `--editors all` for other tools. |
26
+ | `ai-toolkit install --local` | current project | Claude Code configs only (CLAUDE.md, settings, constitution, language rules). Add `--editors all` for other tools, or `--editors cursor,aider` for specific ones. Auto-detects editors from existing project files when `--editors` is omitted. |
27
+ | `ai-toolkit install --local --lang <lang>` | current project | explicit language selection for rules (e.g. `--lang typescript`, `--lang go,python`); auto-detected when omitted |
28
+ | `ai-toolkit install --modules <list>` | `~/.claude/` | selective module install (e.g. `--modules core,agents,rules-typescript`) |
27
29
  | `ai-toolkit update --local` | current project | refresh project configs; auto-detects editors from existing files |
28
30
  | `ai-toolkit add-rule` | `~/.ai-toolkit/rules/` | register a global rule |
29
31
  | `ai-toolkit remove-rule` | `~/.ai-toolkit/rules/` | unregister a global rule |
@@ -45,6 +47,8 @@ These files still stay local to a repository:
45
47
  - `.clinerules`
46
48
  - `.roomodes`
47
49
  - `.aider.conf.yml`
50
+ - `.augment/rules/ai-toolkit-*.md`
51
+ - `.agent/rules/*.md` and `.agent/workflows/*.md` (Google Antigravity)
48
52
  - `.git/hooks/pre-commit` (fallback)
49
53
  - project-specific documentation or safety overlays
50
54
 
@@ -3,9 +3,9 @@ title: "Hooks Catalog"
3
3
  category: reference
4
4
  service: ai-toolkit
5
5
  tags: [hooks, quality, safety, enforcement, settings.json]
6
- version: "1.1.0"
6
+ version: "1.4.2"
7
7
  created: "2026-03-27"
8
- last_updated: "2026-04-07"
8
+ last_updated: "2026-04-09"
9
9
  description: "Complete reference of all ai-toolkit hooks: events, scripts, installation, and runtime behavior."
10
10
  ---
11
11
 
@@ -380,7 +380,7 @@ Set in `.claude/settings.local.json`:
380
380
 
381
381
  **Hook script not found:**
382
382
  ```bash
383
- ls ~/.ai-toolkit/hooks/ # should list 12 .sh files (plus _profile-check.sh helper)
383
+ ls ~/.ai-toolkit/hooks/ # should list 21 .sh files (plus _profile-check.sh helper)
384
384
  ai-toolkit update # re-copies scripts
385
385
  ```
386
386
 
@@ -3,9 +3,9 @@ title: "AI Toolkit - Skills Catalog"
3
3
  category: reference
4
4
  service: ai-toolkit
5
5
  tags: [skills, domain-knowledge, catalog, task-skills, hybrid-skills]
6
- version: "1.4.0"
6
+ version: "1.4.2"
7
7
  created: "2026-03-23"
8
- last_updated: "2026-04-08"
8
+ last_updated: "2026-04-09"
9
9
  description: "Complete skills catalog with task, hybrid, and knowledge skills. Includes effort levels, skill-scoped hooks, executable scripts, security auditor, and persona presets."
10
10
  ---
11
11
 
@@ -21,7 +21,7 @@ All functionality is unified under skills. Task and hybrid skills are user-invoc
21
21
  | **2 — Multi-agent workflow** | `/workflow <type>` | Cross-cutting task with known pattern |
22
22
  | **3 — Custom parallelism** | `/orchestrate`, `/swarm` | No predefined workflow matches |
23
23
 
24
- ## Task Skills (28)
24
+ ## Task Skills (29)
25
25
 
26
26
  Task skills execute a specific action. Invoked via slash commands. `disable-model-invocation: true`.
27
27
 
@@ -55,6 +55,7 @@ Task skills execute a specific action. Invoked via slash commands. `disable-mode
55
55
  | **health** | `/health` | medium | Check health of project services (auto-detect) |
56
56
  | **prd-to-issues** | `/prd-to-issues` | medium | Break PRD into GitHub issues with vertical slices and HITL/AFK tagging |
57
57
  | **skill-audit** | `/skill-audit` | medium | Scan skills and agents for security risks: dangerous patterns, secrets, excessive permissions |
58
+ | **hipaa-validate** | `/hipaa-validate` | medium | Scan codebase for HIPAA compliance issues: PHI exposure, missing audit logging, unencrypted transmission/storage, access control gaps, temp file exposure, and missing BAA references |
58
59
 
59
60
  ## Hybrid Skills (31)
60
61