@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 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: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
7
7
  [![Skills](https://img.shields.io/badge/skills-94-brightgreen)](app/skills/)
8
8
  [![Agents](https://img.shields.io/badge/agents-44-blue)](app/agents/)
9
- [![Tests](https://img.shields.io/badge/tests-658%20passing-success)](tests/)
9
+ [![Tests](https://img.shields.io/badge/tests-660%20passing-success)](tests/)
10
10
 
11
11
  ---
12
12
 
13
- ## What's New in v2.6.1
13
+ ## What's New in v2.6.2
14
14
 
15
- - **HIPAA scanner precision** — Cat 3 TLS regexes anchored (`ssl.CERT_NONE`, `[,(] ssl=False`) to eliminate false positives on feature flags and constant names
16
- - **Cross-language isolation** — new `LANG_EXTENSIONS` filter ensures Python regexes don't match `.java` files in mixed projects, and vice versa
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 (658 tests)
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.1",
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.5.0"
6
+ version: "1.6.0"
7
7
  created: "2026-04-10"
8
- last_updated: "2026-04-13"
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 `See [CHANGELOG.md](CHANGELOG.md) for full history.` link
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.5.0"
3521
+ version: "1.6.0"
3522
3522
  created: "2026-04-10"
3523
- last_updated: "2026-04-13"
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 `See [CHANGELOG.md](CHANGELOG.md) for full history.` link
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
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.6.1",
2
+ "version": "2.6.2",
3
3
  "components": {
4
4
  "agents": {
5
5
  "description": "44 specialized agents (orchestrator, backend, frontend, security, devops, etc.)",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softspark/ai-toolkit",
3
- "version": "2.6.1",
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
- skill_count += 1
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 -----------------------------------------