@softspark/ai-toolkit 2.6.1 → 2.6.2
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 +10 -0
- package/README.md +5 -22
- package/app/.claude-plugin/plugin.json +1 -1
- package/kb/procedures/release-preparation-sop.md +6 -3
- package/llms-full.txt +6 -3
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/scripts/eject.py +5 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,16 @@ Versioning follows [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## v2.6.2 — Eject Count Fix (2026-04-17)
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **`ai-toolkit eject` skill count** — reported `95 skills` while `validate.py` reported `94`. Root cause: eject iterated every directory under `app/skills/`, including the shared `_lib/` helper (no `SKILL.md`). Now matches `validate.py` semantics — skips underscore-prefixed dirs and requires `SKILL.md` for the count. `_lib/` is still copied so dependent skills (`ci`, `test`, `build`, `lint`) keep working after eject.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
- **Two eject tests** in `tests/test_eject.bats` — `eject reports skill count matching validate.py (excludes _lib helpers)` and `eject still copies _lib helper directory for dependent skills`. Test count: 658 → 660.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
10
20
|
## v2.6.1 — HIPAA Scanner Precision (2026-04-17)
|
|
11
21
|
|
|
12
22
|
### Changed
|
package/README.md
CHANGED
|
@@ -6,31 +6,14 @@
|
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](app/skills/)
|
|
8
8
|
[](app/agents/)
|
|
9
|
-
[](tests/)
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
## What's New in v2.6.
|
|
13
|
+
## What's New in v2.6.2
|
|
14
14
|
|
|
15
|
-
-
|
|
16
|
-
- **
|
|
17
|
-
- **`SECURE_SSL_REDIRECT = False` HIGH → WARN** — commonly False in dev settings; reviewer confirms prod config instead of flooding every Django project with HIGH findings
|
|
18
|
-
- **11 new bats tests** (`tests/test_hipaa_scan.bats`) — fixture-driven positive/negative cases covering the Python pattern expansion and isolation guarantee. Test count: 647 → 658
|
|
19
|
-
|
|
20
|
-
## What's New in v2.6.0
|
|
21
|
-
|
|
22
|
-
- **opencode integration** — `ai-toolkit install --editors opencode` generates `AGENTS.md`, `.opencode/agents/`, `.opencode/commands/`, plus a JS plugin bridging our Bash hooks to opencode's lifecycle events
|
|
23
|
-
- **opencode MCP merge** — `.mcp.json` servers are translated into `opencode.json` under the `mcp` key, preserving user-authored entries
|
|
24
|
-
- **Global opencode configs** — `~/.config/opencode/{AGENTS.md,agents/,commands/}` managed from `state.json`, auto-refreshed on `update`
|
|
25
|
-
- **Shared AGENTS.md** — opencode and Codex CLI both read the same `AGENTS.md` via distinct marker sections; installing both does not clobber either
|
|
26
|
-
|
|
27
|
-
## What's New in v2.5.0
|
|
28
|
-
|
|
29
|
-
- **`/seo-validate`** — 9-category SEO scanner with automated `seo-scanner.py` script (community contribution)
|
|
30
|
-
- **`/a11y-validate`** — WCAG 2.1/2.2 + EAA accessibility scanner with `a11y-scanner.py` script (community contribution)
|
|
31
|
-
- **Design Craft** — 7-domain impeccable design vocabulary in `frontend-specialist` + `frontend-lead` persona
|
|
32
|
-
- **GEO/AEO reference** — Answer Engine Optimization patterns for AI answer engines
|
|
33
|
-
- **94 skills** — 31 task + 31 hybrid + 32 knowledge
|
|
15
|
+
- **`ai-toolkit eject` skill count** now matches `validate.py` — previously reported `95 skills` because the shared `_lib/` helper directory (no `SKILL.md`) was counted. Now skips underscore-prefixed dirs and requires `SKILL.md`; `_lib/` is still copied so dependent skills (`ci`, `test`, `build`, `lint`) keep working after eject.
|
|
16
|
+
- **Two new eject tests** — `eject reports skill count matching validate.py` and `eject still copies _lib helper directory for dependent skills`. Test count: 658 → 660.
|
|
34
17
|
|
|
35
18
|
See [CHANGELOG.md](CHANGELOG.md) for full history.
|
|
36
19
|
|
|
@@ -158,7 +141,7 @@ ai-toolkit/
|
|
|
158
141
|
│ └── ARCHITECTURE.md # Full system design
|
|
159
142
|
├── kb/ # Reference docs, procedures, plans
|
|
160
143
|
├── scripts/ # Validation, install, evaluation scripts
|
|
161
|
-
├── tests/ # Bats test suite (
|
|
144
|
+
├── tests/ # Bats test suite (660 tests)
|
|
162
145
|
└── CHANGELOG.md
|
|
163
146
|
```
|
|
164
147
|
|
|
@@ -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": "2.6.
|
|
4
|
+
"version": "2.6.2",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "SoftSpark",
|
|
7
7
|
"url": "https://github.com/softspark"
|
|
@@ -3,9 +3,9 @@ title: "SOP: Release Preparation"
|
|
|
3
3
|
category: procedures
|
|
4
4
|
service: ai-toolkit
|
|
5
5
|
tags: [sop, release, version, publish, changelog, semver]
|
|
6
|
-
version: "1.
|
|
6
|
+
version: "1.6.0"
|
|
7
7
|
created: "2026-04-10"
|
|
8
|
-
last_updated: "2026-04-
|
|
8
|
+
last_updated: "2026-04-17"
|
|
9
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
10
|
---
|
|
11
11
|
|
|
@@ -163,12 +163,15 @@ Add entry at the top of `CHANGELOG.md` (after the header, before previous releas
|
|
|
163
163
|
|
|
164
164
|
1. Change the heading version: `## What's New in vX.Y.Z`
|
|
165
165
|
2. Replace bullet points with 3-5 highlights from this release
|
|
166
|
-
3. Keep the `
|
|
166
|
+
3. **Keep only the latest version block.** Delete the previous `## What's New in vA.B.C` section(s). README is the shop window, not the archive — users see the current release, full history lives in `CHANGELOG.md`.
|
|
167
|
+
4. Keep the `See [CHANGELOG.md](CHANGELOG.md) for full history.` link directly below the bullet list.
|
|
167
168
|
|
|
168
169
|
> **Warning:** This section is the first thing users see after the badges.
|
|
169
170
|
> A stale version here (e.g., "What's New in v2.1.3" when shipping v2.3.0)
|
|
170
171
|
> signals an unmaintained project. Do NOT skip this step.
|
|
171
172
|
|
|
173
|
+
> **Single-version rule:** README.md must contain **exactly one** `## What's New in vX.Y.Z` heading at any time. If you find multiple stacked (e.g. v2.6.1 + v2.6.0 + v2.5.0), that is a SOP drift — collapse to the latest on the next release commit.
|
|
174
|
+
|
|
172
175
|
---
|
|
173
176
|
|
|
174
177
|
## Phase 4: Regenerate Artifacts
|
package/llms-full.txt
CHANGED
|
@@ -3518,9 +3518,9 @@ title: "SOP: Release Preparation"
|
|
|
3518
3518
|
category: procedures
|
|
3519
3519
|
service: ai-toolkit
|
|
3520
3520
|
tags: [sop, release, version, publish, changelog, semver]
|
|
3521
|
-
version: "1.
|
|
3521
|
+
version: "1.6.0"
|
|
3522
3522
|
created: "2026-04-10"
|
|
3523
|
-
last_updated: "2026-04-
|
|
3523
|
+
last_updated: "2026-04-17"
|
|
3524
3524
|
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."
|
|
3525
3525
|
---
|
|
3526
3526
|
|
|
@@ -3678,12 +3678,15 @@ Add entry at the top of `CHANGELOG.md` (after the header, before previous releas
|
|
|
3678
3678
|
|
|
3679
3679
|
1. Change the heading version: `## What's New in vX.Y.Z`
|
|
3680
3680
|
2. Replace bullet points with 3-5 highlights from this release
|
|
3681
|
-
3. Keep the `
|
|
3681
|
+
3. **Keep only the latest version block.** Delete the previous `## What's New in vA.B.C` section(s). README is the shop window, not the archive — users see the current release, full history lives in `CHANGELOG.md`.
|
|
3682
|
+
4. Keep the `See [CHANGELOG.md](CHANGELOG.md) for full history.` link directly below the bullet list.
|
|
3682
3683
|
|
|
3683
3684
|
> **Warning:** This section is the first thing users see after the badges.
|
|
3684
3685
|
> A stale version here (e.g., "What's New in v2.1.3" when shipping v2.3.0)
|
|
3685
3686
|
> signals an unmaintained project. Do NOT skip this step.
|
|
3686
3687
|
|
|
3688
|
+
> **Single-version rule:** README.md must contain **exactly one** `## What's New in vX.Y.Z` heading at any time. If you find multiple stacked (e.g. v2.6.1 + v2.6.0 + v2.5.0), that is a SOP drift — collapse to the latest on the next release commit.
|
|
3689
|
+
|
|
3687
3690
|
---
|
|
3688
3691
|
|
|
3689
3692
|
## Phase 4: Regenerate Artifacts
|
package/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softspark/ai-toolkit",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.2",
|
|
4
4
|
"description": "Professional-grade AI coding toolkit: 94 skills, 44 agents, multi-platform support (Claude, Cursor, Windsurf, Copilot, Gemini, Cline, Roo Code, Aider, Augment, Google Antigravity, Codex CLI, opencode), machine-enforced safety constitution, persona presets, skill security auditor, expanded lifecycle hooks, 11 plugin packs, and benchmark tooling.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude",
|
package/scripts/eject.py
CHANGED
|
@@ -69,7 +69,11 @@ def main() -> None:
|
|
|
69
69
|
if dest.exists():
|
|
70
70
|
shutil.rmtree(dest)
|
|
71
71
|
shutil.copytree(skill, dest)
|
|
72
|
-
|
|
72
|
+
# Count only real skills. Underscore-prefixed dirs (e.g. `_lib/`)
|
|
73
|
+
# are shared helpers that must be copied so dependent skills keep
|
|
74
|
+
# working, but are not skills themselves — matches validate.py.
|
|
75
|
+
if not skill.name.startswith("_") and (skill / "SKILL.md").is_file():
|
|
76
|
+
skill_count += 1
|
|
73
77
|
print(f" Copied: {skill_count} skills")
|
|
74
78
|
|
|
75
79
|
# -- CLAUDE.md: inline all rules -----------------------------------------
|