@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/llms-full.txt CHANGED
@@ -15,6 +15,7 @@
15
15
  - [No Hardcoded Counts in Secondary Docs](kb/best-practices/no-hardcoded-counts.md)
16
16
  - [How-To Guides](kb/howto/README.md)
17
17
  - [SOP: Claude Toolkit Maintenance](kb/procedures/maintenance-sop.md)
18
+ - [SOP: Release Preparation](kb/procedures/release-preparation-sop.md)
18
19
  - [SOP: Release Verification](kb/procedures/release-verification-sop.md)
19
20
  - [Agents Catalog](kb/reference/agents-catalog.md)
20
21
  - [Anti-Pattern Registry Format](kb/reference/anti-pattern-registry-format.md)
@@ -84,6 +85,7 @@
84
85
  - **git-mastery**: Loaded when user asks about advanced Git workflows or history rewriting
85
86
  - **grill-me**: Stress-test a plan or design through relentless Socratic questioning, walking down each decision branch until reaching shared understanding. Use when user wants to stress-test a plan, get grilled, validate assumptions, or mentions 'grill me'.
86
87
  - **health**: Report service and infrastructure health status
88
+ - **hipaa-validate**: Validate code against HIPAA policy: PHI exposure, missing audit logging, unencrypted transmission/storage, access control gaps, temp file exposure, and missing BAA references
87
89
  - **hive-mind**: Loaded when orchestrating multi-agent swarms or consensus workflows
88
90
  - **hook-creator**: Creates new Claude Code hooks with guided workflow, strict conventions, and validation
89
91
  - **index**: Index codebase into the knowledge base
@@ -272,9 +274,9 @@ title: "SOP: Claude Toolkit Maintenance"
272
274
  category: procedures
273
275
  service: ai-toolkit
274
276
  tags: [sop, maintenance, agents, skills, install]
275
- version: "1.0.0"
277
+ version: "1.4.2"
276
278
  created: "2026-03-23"
277
- last_updated: "2026-04-02"
279
+ last_updated: "2026-04-09"
278
280
  description: "Standard operating procedures for installing, maintaining, and evolving the ai-toolkit."
279
281
  ---
280
282
 
@@ -291,18 +293,30 @@ cd /path/to/new-project
291
293
  ai-toolkit install --local
292
294
  ```
293
295
 
294
- This creates/updates:
296
+ By default, `--local` installs Claude Code configs only:
295
297
  - `CLAUDE.md` — project-specific rules template (only if missing)
296
298
  - `.claude/settings.local.json` — MCP servers, env vars, permissions (only if missing, initialized with MCP defaults)
297
299
  - `.claude/constitution.md` — toolkit constitution **injected** via markers (preserves user content)
298
- - `.github/copilot-instructions.md` — GitHub Copilot rules (marker-injected)
299
- - `.clinerules` Cline rules (marker-injected)
300
- - `.roomodes` — Roo Code custom modes (generated)
301
- - `.aider.conf.yml` — Aider configuration (generated)
302
- - `.git/hooks/pre-commit` Safety fallback for quality gates (generated)
300
+
301
+ To also install editor configs, use `--editors`:
302
+
303
+ ```bash
304
+ ai-toolkit install --local --editors all # all supported editors
305
+ ai-toolkit install --local --editors cursor,aider # specific editors only
306
+ ```
307
+
308
+ Supported editors: `cursor`, `windsurf`, `cline`, `roo`, `aider`, `augment`, `copilot`, `antigravity`.
309
+
310
+ To restrict which language rules are injected into `CLAUDE.md`, use `--lang`:
311
+
312
+ ```bash
313
+ ai-toolkit install --local --lang python,typescript
314
+ ```
303
315
 
304
316
  **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.
305
317
 
318
+ **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.
319
+
306
320
  Then edit `CLAUDE.md`:
307
321
  ```markdown
308
322
  # My Project
@@ -359,11 +373,14 @@ ai-toolkit update
359
373
  `update` is a semantic alias for `install` — use it for all re-apply flows. Supports the same flags:
360
374
 
361
375
  ```bash
362
- ai-toolkit update --only agents,hooks # re-apply only specific components
363
- ai-toolkit update --local # also refresh project-local Copilot + Cline + Roo + Aider
364
- ai-toolkit update --list # dry-run: show what would change
376
+ ai-toolkit update --only agents,hooks # re-apply only specific components
377
+ ai-toolkit update --local # refresh project-local Claude Code configs; auto-detects editors from existing project files (no --editors needed)
378
+ ai-toolkit update --local --editors cursor,windsurf # override auto-detection and target specific editors
379
+ ai-toolkit update --list # dry-run: show what would change
365
380
  ```
366
381
 
382
+ 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.
383
+
367
384
  ---
368
385
 
369
386
  ## Register a Rule from Another Repo
@@ -502,15 +519,14 @@ ai-toolkit benchmark-ecosystem --offline # benchmark snapshot
502
519
  Changes propagate instantly to all machines via symlinks. After any change:
503
520
 
504
521
  ```bash
505
- scripts/validate.py # must pass before commit
506
- npm test # must pass before commit
522
+ npm run generate:all # FIRST: regenerate AGENTS.md, llms.txt, all platform configs
523
+ scripts/validate.py # then validate — must pass before commit
524
+ npm test # then test — must pass before commit
507
525
  ```
508
526
 
509
- If you added/removed agents or skills, also regenerate derived artifacts:
510
-
511
- ```bash
512
- npm run generate:all # regenerates AGENTS.md, llms.txt, all platform configs
513
- ```
527
+ Run `generate:all` before validate and test so that generated artifacts are current when
528
+ the metadata contract tests run. Committing without regenerating first causes artifact
529
+ drift and fails CI.
514
530
 
515
531
  ## Release Checklist
516
532
 
@@ -541,7 +557,17 @@ npm test # full bats suite including metadata contracts and CLI tests
541
557
  The metadata contract tests (`tests/test_metadata_contracts.bats`) catch drift
542
558
  automatically. If they fail, fix the stale numbers before continuing.
543
559
 
544
- ### 5. Commit and tag
560
+ ### 5. Check for artifact drift
561
+
562
+ ```bash
563
+ git diff --stat
564
+ ```
565
+
566
+ Review the diff to confirm that all generated files (`AGENTS.md`, `llms.txt`, platform
567
+ configs) reflect the current state. If `generate:all` produced unexpected changes,
568
+ investigate before staging.
569
+
570
+ ### 6. Commit and tag
545
571
 
546
572
  ```bash
547
573
  git add -A
@@ -576,6 +602,288 @@ What `uninstall` does:
576
602
 
577
603
  ---
578
604
 
605
+ ## kb/procedures/release-preparation-sop.md
606
+
607
+ ---
608
+ title: "SOP: Release Preparation"
609
+ category: procedures
610
+ service: ai-toolkit
611
+ tags: [sop, release, version, publish, changelog, semver]
612
+ version: "1.5.0"
613
+ created: "2026-04-10"
614
+ last_updated: "2026-04-10"
615
+ 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."
616
+ ---
617
+
618
+ # SOP: Release Preparation
619
+
620
+ Complete checklist for preparing a new `@softspark/ai-toolkit` release.
621
+ Run this **before** tagging. After tagging and publishing, run the
622
+ [Release Verification SOP](release-verification-sop.md) to smoke-test.
623
+
624
+ **Pipeline:**
625
+ ```
626
+ Release Preparation (this SOP) → git tag → CI publish → Release Verification SOP
627
+ ```
628
+
629
+ **Time:** 5-10 minutes
630
+
631
+ ---
632
+
633
+ ## Quick Checklist (TL;DR)
634
+
635
+ ```bash
636
+ # 1. Decide version bump
637
+ # patch (1.4.2 → 1.4.3): bugfix, typo, doc fix
638
+ # minor (1.4.2 → 1.5.0): new feature, new skill, new flag
639
+ # major (1.4.2 → 2.0.0): breaking change
640
+
641
+ # 2. Sync version across all files
642
+ python3 scripts/sync_version.py X.Y.Z # if script exists, else manual
643
+
644
+ # 3. Write CHANGELOG.md entry
645
+ # 4. Regenerate artifacts
646
+ python3 scripts/generate_agents_md.py > AGENTS.md
647
+ python3 scripts/generate_llms_txt.py > llms.txt
648
+ python3 scripts/generate_llms_txt.py --full > llms-full.txt
649
+
650
+ # 5. Validate + audit + test
651
+ python3 scripts/validate.py --strict && python3 scripts/audit_skills.py --ci && npm test
652
+
653
+ # 6. Commit + tag + push
654
+ git add -A && git commit -m "chore: release vX.Y.Z"
655
+ git tag vX.Y.Z
656
+ git push origin main --tags
657
+ ```
658
+
659
+ ---
660
+
661
+ ## Phase 1: Determine Version Bump
662
+
663
+ Follow [Semantic Versioning](https://semver.org/):
664
+
665
+ | Change Type | Bump | Examples |
666
+ |-------------|------|---------|
667
+ | Bugfix, typo, doc-only | **patch** | Fix install flag, correct description |
668
+ | New feature, skill, agent, flag | **minor** | Add `/hipaa-validate`, add `--output json` |
669
+ | Breaking CLI change, removed skill, config format change | **major** | Rename `install` to `setup`, remove skill |
670
+
671
+ **Rule:** When in doubt, bump minor.
672
+
673
+ ---
674
+
675
+ ## Phase 2: Sync Version in All Files
676
+
677
+ The canonical version lives in `package.json`. These files **must** match:
678
+
679
+ ### Mandatory sync (every release)
680
+
681
+ | File | Field | How to update |
682
+ |------|-------|---------------|
683
+ | `package.json` | `"version": "X.Y.Z"` | Edit directly |
684
+ | `manifest.json` | `"version": "X.Y.Z"` | Edit directly |
685
+ | `app/.claude-plugin/plugin.json` | `"version": "X.Y.Z"` | Edit directly |
686
+
687
+ ### Auto-synced (no manual action)
688
+
689
+ | File | Mechanism |
690
+ |------|-----------|
691
+ | `package-lock.json` | Regenerated by `npm install --package-lock-only` |
692
+
693
+ ### Conditional sync (only if the doc was modified in this release)
694
+
695
+ | File | Field | When to update |
696
+ |------|-------|---------------|
697
+ | `kb/procedures/maintenance-sop.md` | frontmatter `version:` | If SOP content changed |
698
+ | `kb/reference/skills-catalog.md` | frontmatter `version:` | If skills added/removed |
699
+ | `kb/reference/agents-catalog.md` | frontmatter `version:` | If agents added/removed |
700
+ | `kb/reference/hooks-catalog.md` | frontmatter `version:` | If hooks changed |
701
+ | `kb/reference/architecture-overview.md` | frontmatter `version:` | If architecture changed |
702
+ | `kb/reference/distribution-model.md` | frontmatter `version:` | If install model changed |
703
+ | `kb/reference/global-install-model.md` | frontmatter `version:` | If install model changed |
704
+
705
+ > **Note:** KB `version:` fields track the **document version**, not the toolkit version.
706
+ > Only bump them when the document content actually changes in this release.
707
+
708
+ ### Count sync (if skills/agents/hooks changed)
709
+
710
+ | File | What to check |
711
+ |------|---------------|
712
+ | `package.json` | `"description"` — skill/agent count |
713
+ | `README.md` | Badge counts, "What You Get" table |
714
+ | `app/ARCHITECTURE.md` | Section headings with counts |
715
+
716
+ > **Tip:** `validate.py --strict` and `npm test` (metadata contract tests) catch
717
+ > count drift automatically. If tests pass, counts are correct.
718
+
719
+ ### Verification command
720
+
721
+ After syncing, verify all mandatory files match:
722
+
723
+ ```bash
724
+ VERSION=$(python3 -c "import json; print(json.load(open('package.json'))['version'])")
725
+ echo "Target: $VERSION"
726
+ echo "manifest.json: $(python3 -c "import json; print(json.load(open('manifest.json'))['version'])")"
727
+ echo "plugin.json: $(python3 -c "import json; print(json.load(open('app/.claude-plugin/plugin.json'))['version'])")"
728
+ echo "package-lock.json: $(python3 -c "import json; print(json.load(open('package-lock.json'))['version'])")"
729
+ ```
730
+
731
+ All four must print the same version. If not, fix before proceeding.
732
+
733
+ ---
734
+
735
+ ## Phase 3: Write CHANGELOG Entry
736
+
737
+ Add entry at the top of `CHANGELOG.md` (after the header, before previous release):
738
+
739
+ ```markdown
740
+ ## vX.Y.Z — Short Title (YYYY-MM-DD)
741
+
742
+ ### Added
743
+ - **Feature name** — description
744
+
745
+ ### Changed
746
+ - **What changed** — old behavior → new behavior
747
+
748
+ ### Fixed
749
+ - **Bug description** — what was broken and how it's fixed
750
+
751
+ ### Removed
752
+ - **What was removed** — migration path if any
753
+ ```
754
+
755
+ **Rules:**
756
+ - Use **bold** for feature names
757
+ - Start descriptions with a verb (Added, Changed, Fixed, Removed)
758
+ - Reference skill names with backticks and slash: `/hipaa-validate`
759
+ - Include script names: `scripts/hipaa_scan.py`
760
+ - Include count changes: `Skill count: 91 → 92`
761
+ - Date format: `YYYY-MM-DD`
762
+ - Title: short, descriptive, no version number repetition
763
+
764
+ ---
765
+
766
+ ## Phase 4: Regenerate Artifacts
767
+
768
+ ```bash
769
+ python3 scripts/generate_agents_md.py > AGENTS.md
770
+ python3 scripts/generate_llms_txt.py > llms.txt
771
+ python3 scripts/generate_llms_txt.py --full > llms-full.txt
772
+ ```
773
+
774
+ Check if anything actually changed:
775
+
776
+ ```bash
777
+ git diff --stat AGENTS.md llms.txt llms-full.txt
778
+ ```
779
+
780
+ If no diff, the artifacts are already current. If there is a diff, stage them.
781
+
782
+ ---
783
+
784
+ ## Phase 5: Validate, Audit, Test
785
+
786
+ Run the full quality gate:
787
+
788
+ ```bash
789
+ python3 scripts/validate.py --strict
790
+ python3 scripts/audit_skills.py --ci
791
+ npm test
792
+ ```
793
+
794
+ **Expected results:**
795
+ - `validate.py`: `Errors: 0 | Warnings: 0 | VALIDATION PASSED`
796
+ - `audit_skills.py`: `HIGH: 0 | WARN: 0` (INFO is acceptable)
797
+ - `npm test`: `1..N` with zero `not ok`
798
+
799
+ **One-liner:**
800
+ ```bash
801
+ python3 scripts/validate.py --strict && python3 scripts/audit_skills.py --ci && npm test
802
+ ```
803
+
804
+ **If tests fail:** Fix the issue, do NOT skip. Common failures:
805
+ - Stale counts → re-run `generate:all` or fix README/ARCHITECTURE
806
+ - Missing frontmatter → add to new KB docs
807
+ - Broken symlink → `ai-toolkit doctor --fix`
808
+
809
+ ---
810
+
811
+ ## Phase 6: Commit
812
+
813
+ Stage all release files:
814
+
815
+ ```bash
816
+ git add package.json manifest.json app/.claude-plugin/plugin.json
817
+ git add package-lock.json
818
+ git add CHANGELOG.md
819
+ git add AGENTS.md llms.txt llms-full.txt
820
+ git add -p # review and stage any other changes
821
+ ```
822
+
823
+ Commit:
824
+
825
+ ```bash
826
+ git commit -m "chore: release vX.Y.Z"
827
+ ```
828
+
829
+ ---
830
+
831
+ ## Phase 7: Tag and Push
832
+
833
+ ```bash
834
+ git tag vX.Y.Z
835
+ git push origin main --tags
836
+ ```
837
+
838
+ This triggers `.github/workflows/publish.yml` which:
839
+ 1. Runs `validate.py --strict`
840
+ 2. Runs `npm test`
841
+ 3. Publishes to npm as `@softspark/ai-toolkit@X.Y.Z`
842
+
843
+ **After CI completes:** Run the [Release Verification SOP](release-verification-sop.md)
844
+ to smoke-test the published package.
845
+
846
+ ---
847
+
848
+ ## Rollback
849
+
850
+ If a bad release was published:
851
+
852
+ ```bash
853
+ # Unpublish from npm (within 72h)
854
+ npm unpublish @softspark/ai-toolkit@X.Y.Z
855
+
856
+ # Or deprecate (preferred — doesn't break existing installs)
857
+ npm deprecate @softspark/ai-toolkit@X.Y.Z "Known issue: <description>. Use vA.B.C instead."
858
+
859
+ # Delete tag
860
+ git tag -d vX.Y.Z
861
+ git push origin --delete vX.Y.Z
862
+ ```
863
+
864
+ ---
865
+
866
+ ## Checklist Summary
867
+
868
+ | # | Step | Command / Action | Pass Criteria |
869
+ |---|------|-----------------|---------------|
870
+ | 1 | Version bump type | Decide patch/minor/major | — |
871
+ | 2 | `package.json` version | Edit `"version"` | Matches target |
872
+ | 3 | `manifest.json` version | Edit `"version"` | Matches target |
873
+ | 4 | `plugin.json` version | Edit `"version"` | Matches target |
874
+ | 5 | `package-lock.json` | `npm install --package-lock-only` | Matches target |
875
+ | 6 | Count sync | Check `package.json` description, README | `validate.py` passes |
876
+ | 7 | CHANGELOG.md | Add release entry | Entry exists for vX.Y.Z |
877
+ | 8 | Regenerate artifacts | `generate_agents_md.py`, `generate_llms_txt.py` | No unexpected diff |
878
+ | 9 | Validate | `validate.py --strict` | 0 errors, 0 warnings |
879
+ | 10 | Security audit | `audit_skills.py --ci` | 0 HIGH |
880
+ | 11 | Tests | `npm test` | All pass |
881
+ | 12 | Commit | `git commit` | Clean working tree |
882
+ | 13 | Tag | `git tag vX.Y.Z` | Tag exists |
883
+ | 14 | Push | `git push origin main --tags` | CI triggered |
884
+
885
+ ---
886
+
579
887
  ## kb/procedures/release-verification-sop.md
580
888
 
581
889
  ---
@@ -871,9 +1179,9 @@ title: "AI Toolkit - Agents Catalog"
871
1179
  category: reference
872
1180
  service: ai-toolkit
873
1181
  tags: [agents, catalog, roles, ai-development]
874
- version: "1.3.10"
1182
+ version: "1.4.2"
875
1183
  created: "2026-03-23"
876
- last_updated: "2026-03-25"
1184
+ last_updated: "2026-04-09"
877
1185
  description: "Complete catalog of specialized agents with roles, models, and use cases."
878
1186
  ---
879
1187
 
@@ -1223,9 +1531,9 @@ title: "AI Toolkit - Architecture Overview"
1223
1531
  category: reference
1224
1532
  service: ai-toolkit
1225
1533
  tags: [architecture, overview, design, structure]
1226
- version: "1.4.0"
1534
+ version: "1.4.2"
1227
1535
  created: "2026-03-23"
1228
- last_updated: "2026-04-08"
1536
+ last_updated: "2026-04-09"
1229
1537
  description: "Architecture of ai-toolkit: directory layout, global install model, skill tiers, and integration with projects."
1230
1538
  ---
1231
1539
 
@@ -1397,7 +1705,7 @@ Three tiers determine how to approach a task:
1397
1705
 
1398
1706
  | Type | Field | Invocation | Count |
1399
1707
  |------|-------|-----------|-------|
1400
- | Task | `disable-model-invocation: true` | User via `/skill` only | 28 |
1708
+ | Task | `disable-model-invocation: true` | User via `/skill` only | 29 |
1401
1709
  | Hybrid | (neither) | User via `/skill` + agent knowledge | 31 |
1402
1710
  | Knowledge | `user-invocable: false` | Claude auto-loads | 32 |
1403
1711
 
@@ -2546,9 +2854,9 @@ title: "Distribution Model"
2546
2854
  category: reference
2547
2855
  service: ai-toolkit
2548
2856
  tags: [architecture, distribution, symlinks, npm, install]
2549
- version: "1.0.0"
2857
+ version: "1.4.2"
2550
2858
  created: "2026-03-23"
2551
- last_updated: "2026-03-28"
2859
+ last_updated: "2026-04-09"
2552
2860
  description: "Reference description of how ai-toolkit is delivered and propagated on a developer machine."
2553
2861
  ---
2554
2862
 
@@ -2794,9 +3102,9 @@ title: "Global Install Model"
2794
3102
  category: reference
2795
3103
  service: ai-toolkit
2796
3104
  tags: [install, global, claude, local-setup]
2797
- version: "1.0.0"
3105
+ version: "1.4.2"
2798
3106
  created: "2026-03-26"
2799
- last_updated: "2026-03-28"
3107
+ last_updated: "2026-04-09"
2800
3108
  description: "Reference description of the global install target, local project setup, and command responsibilities in ai-toolkit."
2801
3109
  ---
2802
3110
 
@@ -2814,8 +3122,10 @@ That means one machine-level install provides agents, skills, hooks, and rules t
2814
3122
  |---------|--------|---------|
2815
3123
  | `ai-toolkit install` | `~/.claude/` | first-time machine setup |
2816
3124
  | `ai-toolkit update` | `~/.claude/` | re-apply after package or rule changes |
2817
- | `ai-toolkit install --local` | current project | create local `CLAUDE.md`, `.claude/settings.local.json`, and inject constitution + Copilot + Cline + Roo Code + Aider configs. Installs git hooks fallback. |
2818
- | `ai-toolkit update --local` | current project | refresh those local project files |
3125
+ | `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. |
3126
+ | `ai-toolkit install --local --lang <lang>` | current project | explicit language selection for rules (e.g. `--lang typescript`, `--lang go,python`); auto-detected when omitted |
3127
+ | `ai-toolkit install --modules <list>` | `~/.claude/` | selective module install (e.g. `--modules core,agents,rules-typescript`) |
3128
+ | `ai-toolkit update --local` | current project | refresh project configs; auto-detects editors from existing files |
2819
3129
  | `ai-toolkit add-rule` | `~/.ai-toolkit/rules/` | register a global rule |
2820
3130
  | `ai-toolkit remove-rule` | `~/.ai-toolkit/rules/` | unregister a global rule |
2821
3131
 
@@ -2836,6 +3146,8 @@ These files still stay local to a repository:
2836
3146
  - `.clinerules`
2837
3147
  - `.roomodes`
2838
3148
  - `.aider.conf.yml`
3149
+ - `.augment/rules/ai-toolkit-*.md`
3150
+ - `.agent/rules/*.md` and `.agent/workflows/*.md` (Google Antigravity)
2839
3151
  - `.git/hooks/pre-commit` (fallback)
2840
3152
  - project-specific documentation or safety overlays
2841
3153
 
@@ -3060,9 +3372,9 @@ title: "Hooks Catalog"
3060
3372
  category: reference
3061
3373
  service: ai-toolkit
3062
3374
  tags: [hooks, quality, safety, enforcement, settings.json]
3063
- version: "1.1.0"
3375
+ version: "1.4.2"
3064
3376
  created: "2026-03-27"
3065
- last_updated: "2026-04-07"
3377
+ last_updated: "2026-04-09"
3066
3378
  description: "Complete reference of all ai-toolkit hooks: events, scripts, installation, and runtime behavior."
3067
3379
  ---
3068
3380
 
@@ -3437,7 +3749,7 @@ Set in `.claude/settings.local.json`:
3437
3749
 
3438
3750
  **Hook script not found:**
3439
3751
  ```bash
3440
- ls ~/.ai-toolkit/hooks/ # should list 12 .sh files (plus _profile-check.sh helper)
3752
+ ls ~/.ai-toolkit/hooks/ # should list 21 .sh files (plus _profile-check.sh helper)
3441
3753
  ai-toolkit update # re-copies scripts
3442
3754
  ```
3443
3755
 
@@ -4426,9 +4738,9 @@ title: "AI Toolkit - Skills Catalog"
4426
4738
  category: reference
4427
4739
  service: ai-toolkit
4428
4740
  tags: [skills, domain-knowledge, catalog, task-skills, hybrid-skills]
4429
- version: "1.4.0"
4741
+ version: "1.4.2"
4430
4742
  created: "2026-03-23"
4431
- last_updated: "2026-04-08"
4743
+ last_updated: "2026-04-09"
4432
4744
  description: "Complete skills catalog with task, hybrid, and knowledge skills. Includes effort levels, skill-scoped hooks, executable scripts, security auditor, and persona presets."
4433
4745
  ---
4434
4746
 
@@ -4444,7 +4756,7 @@ All functionality is unified under skills. Task and hybrid skills are user-invoc
4444
4756
  | **2 — Multi-agent workflow** | `/workflow <type>` | Cross-cutting task with known pattern |
4445
4757
  | **3 — Custom parallelism** | `/orchestrate`, `/swarm` | No predefined workflow matches |
4446
4758
 
4447
- ## Task Skills (28)
4759
+ ## Task Skills (29)
4448
4760
 
4449
4761
  Task skills execute a specific action. Invoked via slash commands. `disable-model-invocation: true`.
4450
4762
 
@@ -4478,6 +4790,7 @@ Task skills execute a specific action. Invoked via slash commands. `disable-mode
4478
4790
  | **health** | `/health` | medium | Check health of project services (auto-detect) |
4479
4791
  | **prd-to-issues** | `/prd-to-issues` | medium | Break PRD into GitHub issues with vertical slices and HITL/AFK tagging |
4480
4792
  | **skill-audit** | `/skill-audit` | medium | Scan skills and agents for security risks: dangerous patterns, secrets, excessive permissions |
4793
+ | **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 |
4481
4794
 
4482
4795
  ## Hybrid Skills (31)
4483
4796
 
package/llms.txt CHANGED
@@ -15,6 +15,7 @@
15
15
  - [No Hardcoded Counts in Secondary Docs](kb/best-practices/no-hardcoded-counts.md)
16
16
  - [How-To Guides](kb/howto/README.md)
17
17
  - [SOP: Claude Toolkit Maintenance](kb/procedures/maintenance-sop.md)
18
+ - [SOP: Release Preparation](kb/procedures/release-preparation-sop.md)
18
19
  - [SOP: Release Verification](kb/procedures/release-verification-sop.md)
19
20
  - [Agents Catalog](kb/reference/agents-catalog.md)
20
21
  - [Anti-Pattern Registry Format](kb/reference/anti-pattern-registry-format.md)
package/manifest.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.4.2",
2
+ "version": "1.5.1",
3
3
  "components": {
4
4
  "agents": {
5
5
  "description": "44 specialized agents (orchestrator, backend, frontend, security, devops, etc.)",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@softspark/ai-toolkit",
3
- "version": "1.4.2",
4
- "description": "Professional-grade AI coding toolkit: 91 skills, 44 agents, multi-platform support (Claude, Cursor, Windsurf, Copilot, Gemini, Cline, Roo Code, Aider, Augment, Google Antigravity), machine-enforced safety constitution, persona presets, skill security auditor, expanded lifecycle hooks, 11 plugin packs, and benchmark tooling.",
3
+ "version": "1.5.1",
4
+ "description": "Professional-grade AI coding toolkit: 92 skills, 44 agents, multi-platform support (Claude, Cursor, Windsurf, Copilot, Gemini, Cline, Roo Code, Aider, Augment, Google Antigravity), machine-enforced safety constitution, persona presets, skill security auditor, expanded lifecycle hooks, 11 plugin packs, and benchmark tooling.",
5
5
  "keywords": [
6
6
  "claude",
7
7
  "claude-code",
@@ -257,6 +257,56 @@ def parse_args(argv: list[str]) -> dict:
257
257
  return cfg
258
258
 
259
259
 
260
+ # ---------------------------------------------------------------------------
261
+ # Input validation
262
+ # ---------------------------------------------------------------------------
263
+
264
+ VALID_COMPONENTS = {"agents", "skills", "hooks", "rules", "constitution", "architecture"}
265
+ VALID_LANGS = {"python", "typescript", "golang", "go", "rust", "java", "kotlin",
266
+ "swift", "ruby", "php", "dart", "cpp", "csharp", "c++", "c#", "cs",
267
+ "common"}
268
+
269
+
270
+ def validate_args(cfg: dict) -> None:
271
+ """Validate parsed arguments — exit non-zero on invalid values."""
272
+ from install_steps.ai_tools import ALL_EDITORS
273
+
274
+ errors: list[str] = []
275
+
276
+ # Validate --only components
277
+ if cfg["only"]:
278
+ for c in cfg["only"].split(","):
279
+ c = c.strip()
280
+ if c and c not in VALID_COMPONENTS:
281
+ errors.append(f"Unknown component in --only: '{c}' (valid: {', '.join(sorted(VALID_COMPONENTS))})")
282
+
283
+ # Validate --skip components
284
+ if cfg["skip"]:
285
+ for c in cfg["skip"].split(","):
286
+ c = c.strip()
287
+ if c and c not in VALID_COMPONENTS:
288
+ errors.append(f"Unknown component in --skip: '{c}' (valid: {', '.join(sorted(VALID_COMPONENTS))})")
289
+
290
+ # Validate --editors
291
+ if cfg["editors"] and cfg["editors"] != "all":
292
+ for e in cfg["editors"].split(","):
293
+ e = e.strip()
294
+ if e and e not in ALL_EDITORS:
295
+ errors.append(f"Unknown editor: '{e}' (valid: {', '.join(ALL_EDITORS)}, all)")
296
+
297
+ # Validate --lang
298
+ if cfg["lang"]:
299
+ for l in cfg["lang"].split(","):
300
+ l = l.strip()
301
+ if l and l.lower() not in VALID_LANGS:
302
+ errors.append(f"Unknown language: '{l}' (valid: {', '.join(sorted(VALID_LANGS - {'c++', 'c#', 'cs', 'go', 'common'}))})")
303
+
304
+ if errors:
305
+ for e in errors:
306
+ print(f"Error: {e}")
307
+ sys.exit(1)
308
+
309
+
260
310
  # ---------------------------------------------------------------------------
261
311
  # Dependency check
262
312
  # ---------------------------------------------------------------------------
@@ -408,6 +458,7 @@ def _get_toolkit_version() -> str:
408
458
 
409
459
  def main() -> None:
410
460
  cfg = parse_args(sys.argv[1:])
461
+ validate_args(cfg)
411
462
 
412
463
  # Handle --status early exit
413
464
  if cfg["status"]: