@softspark/ai-toolkit 1.4.2 → 1.5.1
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 +26 -0
- package/README.md +5 -4
- package/action.yml +2 -1
- package/app/.claude-plugin/plugin.json +1 -1
- package/app/ARCHITECTURE.md +2 -1
- package/app/plugins/memory-pack/scripts/strip_private.py +1 -1
- package/app/skills/hipaa-validate/SKILL.md +345 -0
- package/app/skills/hipaa-validate/reference/hipaa-rules.md +303 -0
- package/app/skills/hipaa-validate/reference/phi-identifiers.md +45 -0
- package/app/skills/hipaa-validate/scripts/hipaa_scan.py +752 -0
- package/app/skills/write-a-prd/scripts/frame-template.html +1 -25
- package/app/skills/write-a-prd/scripts/poll.js +23 -0
- package/app/skills/write-a-prd/scripts/visual-server.cjs +11 -1
- package/kb/procedures/maintenance-sop.md +43 -19
- package/kb/procedures/release-preparation-sop.md +277 -0
- package/kb/reference/agents-catalog.md +2 -2
- package/kb/reference/architecture-overview.md +3 -3
- package/kb/reference/distribution-model.md +2 -2
- package/kb/reference/global-install-model.md +7 -3
- package/kb/reference/hooks-catalog.md +3 -3
- package/kb/reference/skills-catalog.md +4 -3
- package/llms-full.txt +349 -36
- package/llms.txt +1 -0
- package/manifest.json +1 -1
- package/package.json +2 -2
- package/scripts/install.py +51 -0
|
@@ -82,30 +82,6 @@
|
|
|
82
82
|
</div>
|
|
83
83
|
</main>
|
|
84
84
|
<div class="status"><span class="dot"></span>Connected</div>
|
|
85
|
-
<script>
|
|
86
|
-
(function () {
|
|
87
|
-
var contentEl = document.getElementById("content");
|
|
88
|
-
var lastHtml = "";
|
|
89
|
-
|
|
90
|
-
function poll() {
|
|
91
|
-
fetch("/content")
|
|
92
|
-
.then(function (res) { return res.json(); })
|
|
93
|
-
.then(function (data) {
|
|
94
|
-
if (data.html && data.html !== lastHtml) {
|
|
95
|
-
lastHtml = data.html;
|
|
96
|
-
contentEl.style.opacity = "0";
|
|
97
|
-
setTimeout(function () {
|
|
98
|
-
contentEl.innerHTML = data.html;
|
|
99
|
-
contentEl.style.opacity = "1";
|
|
100
|
-
}, 80);
|
|
101
|
-
}
|
|
102
|
-
})
|
|
103
|
-
.catch(function () {});
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
setInterval(poll, 2000);
|
|
107
|
-
poll();
|
|
108
|
-
})();
|
|
109
|
-
</script>
|
|
85
|
+
<script src="/poll.js"></script>
|
|
110
86
|
</body>
|
|
111
87
|
</html>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
(function () {
|
|
2
|
+
var contentEl = document.getElementById("content");
|
|
3
|
+
var lastHtml = "";
|
|
4
|
+
|
|
5
|
+
function poll() {
|
|
6
|
+
fetch("/content")
|
|
7
|
+
.then(function (res) { return res.json(); })
|
|
8
|
+
.then(function (data) {
|
|
9
|
+
if (data.html && data.html !== lastHtml) {
|
|
10
|
+
lastHtml = data.html;
|
|
11
|
+
contentEl.style.opacity = "0";
|
|
12
|
+
setTimeout(function () {
|
|
13
|
+
contentEl.innerHTML = data.html;
|
|
14
|
+
contentEl.style.opacity = "1";
|
|
15
|
+
}, 80);
|
|
16
|
+
}
|
|
17
|
+
})
|
|
18
|
+
.catch(function () {});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
setInterval(poll, 2000);
|
|
22
|
+
poll();
|
|
23
|
+
})();
|
|
@@ -20,16 +20,26 @@ function resetIdleTimer() {
|
|
|
20
20
|
|
|
21
21
|
const templatePath = path.join(__dirname, "frame-template.html");
|
|
22
22
|
const templateHtml = fs.readFileSync(templatePath, "utf-8");
|
|
23
|
+
const pollJs = fs.readFileSync(path.join(__dirname, "poll.js"), "utf-8");
|
|
23
24
|
|
|
24
25
|
const server = http.createServer((req, res) => {
|
|
25
26
|
resetIdleTimer();
|
|
26
27
|
|
|
27
28
|
if (req.method === "GET" && (req.url === "/" || req.url === "/index.html")) {
|
|
28
|
-
res.writeHead(200, {
|
|
29
|
+
res.writeHead(200, {
|
|
30
|
+
"Content-Type": "text/html; charset=utf-8",
|
|
31
|
+
"Content-Security-Policy": "script-src 'self'",
|
|
32
|
+
});
|
|
29
33
|
res.end(templateHtml);
|
|
30
34
|
return;
|
|
31
35
|
}
|
|
32
36
|
|
|
37
|
+
if (req.method === "GET" && req.url === "/poll.js") {
|
|
38
|
+
res.writeHead(200, { "Content-Type": "application/javascript; charset=utf-8" });
|
|
39
|
+
res.end(pollJs);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
33
43
|
if (req.method === "GET" && req.url === "/content") {
|
|
34
44
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
35
45
|
res.end(JSON.stringify({ html: currentContent }));
|
|
@@ -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.
|
|
6
|
+
version: "1.4.2"
|
|
7
7
|
created: "2026-03-23"
|
|
8
|
-
last_updated: "2026-04-
|
|
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
|
-
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
-
|
|
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
|
|
94
|
-
ai-toolkit update --local
|
|
95
|
-
ai-toolkit update --
|
|
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
|
-
|
|
237
|
-
|
|
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
|
-
|
|
241
|
-
|
|
242
|
-
|
|
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.
|
|
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.
|
|
6
|
+
version: "1.4.2"
|
|
7
7
|
created: "2026-03-23"
|
|
8
|
-
last_updated: "2026-
|
|
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.
|
|
6
|
+
version: "1.4.2"
|
|
7
7
|
created: "2026-03-23"
|
|
8
|
-
last_updated: "2026-04-
|
|
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 |
|
|
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.
|
|
6
|
+
version: "1.4.2"
|
|
7
7
|
created: "2026-03-23"
|
|
8
|
-
last_updated: "2026-
|
|
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.
|
|
6
|
+
version: "1.4.2"
|
|
7
7
|
created: "2026-03-26"
|
|
8
|
-
last_updated: "2026-
|
|
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.
|
|
6
|
+
version: "1.4.2"
|
|
7
7
|
created: "2026-03-27"
|
|
8
|
-
last_updated: "2026-04-
|
|
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
|
|
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.
|
|
6
|
+
version: "1.4.2"
|
|
7
7
|
created: "2026-03-23"
|
|
8
|
-
last_updated: "2026-04-
|
|
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 (
|
|
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
|
|