@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.
- package/CHANGELOG.md +17 -0
- package/README.md +5 -4
- package/app/.claude-plugin/plugin.json +1 -1
- package/app/ARCHITECTURE.md +2 -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/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 +66 -36
- package/manifest.json +1 -1
- package/package.json +2 -2
- package/scripts/install.py +51 -0
package/llms-full.txt
CHANGED
|
@@ -84,6 +84,7 @@
|
|
|
84
84
|
- **git-mastery**: Loaded when user asks about advanced Git workflows or history rewriting
|
|
85
85
|
- **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
86
|
- **health**: Report service and infrastructure health status
|
|
87
|
+
- **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
88
|
- **hive-mind**: Loaded when orchestrating multi-agent swarms or consensus workflows
|
|
88
89
|
- **hook-creator**: Creates new Claude Code hooks with guided workflow, strict conventions, and validation
|
|
89
90
|
- **index**: Index codebase into the knowledge base
|
|
@@ -272,9 +273,9 @@ title: "SOP: Claude Toolkit Maintenance"
|
|
|
272
273
|
category: procedures
|
|
273
274
|
service: ai-toolkit
|
|
274
275
|
tags: [sop, maintenance, agents, skills, install]
|
|
275
|
-
version: "1.
|
|
276
|
+
version: "1.4.2"
|
|
276
277
|
created: "2026-03-23"
|
|
277
|
-
last_updated: "2026-04-
|
|
278
|
+
last_updated: "2026-04-09"
|
|
278
279
|
description: "Standard operating procedures for installing, maintaining, and evolving the ai-toolkit."
|
|
279
280
|
---
|
|
280
281
|
|
|
@@ -291,18 +292,30 @@ cd /path/to/new-project
|
|
|
291
292
|
ai-toolkit install --local
|
|
292
293
|
```
|
|
293
294
|
|
|
294
|
-
|
|
295
|
+
By default, `--local` installs Claude Code configs only:
|
|
295
296
|
- `CLAUDE.md` — project-specific rules template (only if missing)
|
|
296
297
|
- `.claude/settings.local.json` — MCP servers, env vars, permissions (only if missing, initialized with MCP defaults)
|
|
297
298
|
- `.claude/constitution.md` — toolkit constitution **injected** via markers (preserves user content)
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
-
|
|
299
|
+
|
|
300
|
+
To also install editor configs, use `--editors`:
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
ai-toolkit install --local --editors all # all supported editors
|
|
304
|
+
ai-toolkit install --local --editors cursor,aider # specific editors only
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Supported editors: `cursor`, `windsurf`, `cline`, `roo`, `aider`, `augment`, `copilot`, `antigravity`.
|
|
308
|
+
|
|
309
|
+
To restrict which language rules are injected into `CLAUDE.md`, use `--lang`:
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
ai-toolkit install --local --lang python,typescript
|
|
313
|
+
```
|
|
303
314
|
|
|
304
315
|
**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
316
|
|
|
317
|
+
**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.
|
|
318
|
+
|
|
306
319
|
Then edit `CLAUDE.md`:
|
|
307
320
|
```markdown
|
|
308
321
|
# My Project
|
|
@@ -359,11 +372,14 @@ ai-toolkit update
|
|
|
359
372
|
`update` is a semantic alias for `install` — use it for all re-apply flows. Supports the same flags:
|
|
360
373
|
|
|
361
374
|
```bash
|
|
362
|
-
ai-toolkit update --only agents,hooks
|
|
363
|
-
ai-toolkit update --local
|
|
364
|
-
ai-toolkit update --
|
|
375
|
+
ai-toolkit update --only agents,hooks # re-apply only specific components
|
|
376
|
+
ai-toolkit update --local # refresh project-local Claude Code configs; auto-detects editors from existing project files (no --editors needed)
|
|
377
|
+
ai-toolkit update --local --editors cursor,windsurf # override auto-detection and target specific editors
|
|
378
|
+
ai-toolkit update --list # dry-run: show what would change
|
|
365
379
|
```
|
|
366
380
|
|
|
381
|
+
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.
|
|
382
|
+
|
|
367
383
|
---
|
|
368
384
|
|
|
369
385
|
## Register a Rule from Another Repo
|
|
@@ -502,15 +518,14 @@ ai-toolkit benchmark-ecosystem --offline # benchmark snapshot
|
|
|
502
518
|
Changes propagate instantly to all machines via symlinks. After any change:
|
|
503
519
|
|
|
504
520
|
```bash
|
|
505
|
-
|
|
506
|
-
|
|
521
|
+
npm run generate:all # FIRST: regenerate AGENTS.md, llms.txt, all platform configs
|
|
522
|
+
scripts/validate.py # then validate — must pass before commit
|
|
523
|
+
npm test # then test — must pass before commit
|
|
507
524
|
```
|
|
508
525
|
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
npm run generate:all # regenerates AGENTS.md, llms.txt, all platform configs
|
|
513
|
-
```
|
|
526
|
+
Run `generate:all` before validate and test so that generated artifacts are current when
|
|
527
|
+
the metadata contract tests run. Committing without regenerating first causes artifact
|
|
528
|
+
drift and fails CI.
|
|
514
529
|
|
|
515
530
|
## Release Checklist
|
|
516
531
|
|
|
@@ -541,7 +556,17 @@ npm test # full bats suite including metadata contracts and CLI tests
|
|
|
541
556
|
The metadata contract tests (`tests/test_metadata_contracts.bats`) catch drift
|
|
542
557
|
automatically. If they fail, fix the stale numbers before continuing.
|
|
543
558
|
|
|
544
|
-
### 5.
|
|
559
|
+
### 5. Check for artifact drift
|
|
560
|
+
|
|
561
|
+
```bash
|
|
562
|
+
git diff --stat
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
Review the diff to confirm that all generated files (`AGENTS.md`, `llms.txt`, platform
|
|
566
|
+
configs) reflect the current state. If `generate:all` produced unexpected changes,
|
|
567
|
+
investigate before staging.
|
|
568
|
+
|
|
569
|
+
### 6. Commit and tag
|
|
545
570
|
|
|
546
571
|
```bash
|
|
547
572
|
git add -A
|
|
@@ -871,9 +896,9 @@ title: "AI Toolkit - Agents Catalog"
|
|
|
871
896
|
category: reference
|
|
872
897
|
service: ai-toolkit
|
|
873
898
|
tags: [agents, catalog, roles, ai-development]
|
|
874
|
-
version: "1.
|
|
899
|
+
version: "1.4.2"
|
|
875
900
|
created: "2026-03-23"
|
|
876
|
-
last_updated: "2026-
|
|
901
|
+
last_updated: "2026-04-09"
|
|
877
902
|
description: "Complete catalog of specialized agents with roles, models, and use cases."
|
|
878
903
|
---
|
|
879
904
|
|
|
@@ -1223,9 +1248,9 @@ title: "AI Toolkit - Architecture Overview"
|
|
|
1223
1248
|
category: reference
|
|
1224
1249
|
service: ai-toolkit
|
|
1225
1250
|
tags: [architecture, overview, design, structure]
|
|
1226
|
-
version: "1.4.
|
|
1251
|
+
version: "1.4.2"
|
|
1227
1252
|
created: "2026-03-23"
|
|
1228
|
-
last_updated: "2026-04-
|
|
1253
|
+
last_updated: "2026-04-09"
|
|
1229
1254
|
description: "Architecture of ai-toolkit: directory layout, global install model, skill tiers, and integration with projects."
|
|
1230
1255
|
---
|
|
1231
1256
|
|
|
@@ -1397,7 +1422,7 @@ Three tiers determine how to approach a task:
|
|
|
1397
1422
|
|
|
1398
1423
|
| Type | Field | Invocation | Count |
|
|
1399
1424
|
|------|-------|-----------|-------|
|
|
1400
|
-
| Task | `disable-model-invocation: true` | User via `/skill` only |
|
|
1425
|
+
| Task | `disable-model-invocation: true` | User via `/skill` only | 29 |
|
|
1401
1426
|
| Hybrid | (neither) | User via `/skill` + agent knowledge | 31 |
|
|
1402
1427
|
| Knowledge | `user-invocable: false` | Claude auto-loads | 32 |
|
|
1403
1428
|
|
|
@@ -2546,9 +2571,9 @@ title: "Distribution Model"
|
|
|
2546
2571
|
category: reference
|
|
2547
2572
|
service: ai-toolkit
|
|
2548
2573
|
tags: [architecture, distribution, symlinks, npm, install]
|
|
2549
|
-
version: "1.
|
|
2574
|
+
version: "1.4.2"
|
|
2550
2575
|
created: "2026-03-23"
|
|
2551
|
-
last_updated: "2026-
|
|
2576
|
+
last_updated: "2026-04-09"
|
|
2552
2577
|
description: "Reference description of how ai-toolkit is delivered and propagated on a developer machine."
|
|
2553
2578
|
---
|
|
2554
2579
|
|
|
@@ -2794,9 +2819,9 @@ title: "Global Install Model"
|
|
|
2794
2819
|
category: reference
|
|
2795
2820
|
service: ai-toolkit
|
|
2796
2821
|
tags: [install, global, claude, local-setup]
|
|
2797
|
-
version: "1.
|
|
2822
|
+
version: "1.4.2"
|
|
2798
2823
|
created: "2026-03-26"
|
|
2799
|
-
last_updated: "2026-
|
|
2824
|
+
last_updated: "2026-04-09"
|
|
2800
2825
|
description: "Reference description of the global install target, local project setup, and command responsibilities in ai-toolkit."
|
|
2801
2826
|
---
|
|
2802
2827
|
|
|
@@ -2814,8 +2839,10 @@ That means one machine-level install provides agents, skills, hooks, and rules t
|
|
|
2814
2839
|
|---------|--------|---------|
|
|
2815
2840
|
| `ai-toolkit install` | `~/.claude/` | first-time machine setup |
|
|
2816
2841
|
| `ai-toolkit update` | `~/.claude/` | re-apply after package or rule changes |
|
|
2817
|
-
| `ai-toolkit install --local` | current project |
|
|
2818
|
-
| `ai-toolkit
|
|
2842
|
+
| `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. |
|
|
2843
|
+
| `ai-toolkit install --local --lang <lang>` | current project | explicit language selection for rules (e.g. `--lang typescript`, `--lang go,python`); auto-detected when omitted |
|
|
2844
|
+
| `ai-toolkit install --modules <list>` | `~/.claude/` | selective module install (e.g. `--modules core,agents,rules-typescript`) |
|
|
2845
|
+
| `ai-toolkit update --local` | current project | refresh project configs; auto-detects editors from existing files |
|
|
2819
2846
|
| `ai-toolkit add-rule` | `~/.ai-toolkit/rules/` | register a global rule |
|
|
2820
2847
|
| `ai-toolkit remove-rule` | `~/.ai-toolkit/rules/` | unregister a global rule |
|
|
2821
2848
|
|
|
@@ -2836,6 +2863,8 @@ These files still stay local to a repository:
|
|
|
2836
2863
|
- `.clinerules`
|
|
2837
2864
|
- `.roomodes`
|
|
2838
2865
|
- `.aider.conf.yml`
|
|
2866
|
+
- `.augment/rules/ai-toolkit-*.md`
|
|
2867
|
+
- `.agent/rules/*.md` and `.agent/workflows/*.md` (Google Antigravity)
|
|
2839
2868
|
- `.git/hooks/pre-commit` (fallback)
|
|
2840
2869
|
- project-specific documentation or safety overlays
|
|
2841
2870
|
|
|
@@ -3060,9 +3089,9 @@ title: "Hooks Catalog"
|
|
|
3060
3089
|
category: reference
|
|
3061
3090
|
service: ai-toolkit
|
|
3062
3091
|
tags: [hooks, quality, safety, enforcement, settings.json]
|
|
3063
|
-
version: "1.
|
|
3092
|
+
version: "1.4.2"
|
|
3064
3093
|
created: "2026-03-27"
|
|
3065
|
-
last_updated: "2026-04-
|
|
3094
|
+
last_updated: "2026-04-09"
|
|
3066
3095
|
description: "Complete reference of all ai-toolkit hooks: events, scripts, installation, and runtime behavior."
|
|
3067
3096
|
---
|
|
3068
3097
|
|
|
@@ -3437,7 +3466,7 @@ Set in `.claude/settings.local.json`:
|
|
|
3437
3466
|
|
|
3438
3467
|
**Hook script not found:**
|
|
3439
3468
|
```bash
|
|
3440
|
-
ls ~/.ai-toolkit/hooks/ # should list
|
|
3469
|
+
ls ~/.ai-toolkit/hooks/ # should list 21 .sh files (plus _profile-check.sh helper)
|
|
3441
3470
|
ai-toolkit update # re-copies scripts
|
|
3442
3471
|
```
|
|
3443
3472
|
|
|
@@ -4426,9 +4455,9 @@ title: "AI Toolkit - Skills Catalog"
|
|
|
4426
4455
|
category: reference
|
|
4427
4456
|
service: ai-toolkit
|
|
4428
4457
|
tags: [skills, domain-knowledge, catalog, task-skills, hybrid-skills]
|
|
4429
|
-
version: "1.4.
|
|
4458
|
+
version: "1.4.2"
|
|
4430
4459
|
created: "2026-03-23"
|
|
4431
|
-
last_updated: "2026-04-
|
|
4460
|
+
last_updated: "2026-04-09"
|
|
4432
4461
|
description: "Complete skills catalog with task, hybrid, and knowledge skills. Includes effort levels, skill-scoped hooks, executable scripts, security auditor, and persona presets."
|
|
4433
4462
|
---
|
|
4434
4463
|
|
|
@@ -4444,7 +4473,7 @@ All functionality is unified under skills. Task and hybrid skills are user-invoc
|
|
|
4444
4473
|
| **2 — Multi-agent workflow** | `/workflow <type>` | Cross-cutting task with known pattern |
|
|
4445
4474
|
| **3 — Custom parallelism** | `/orchestrate`, `/swarm` | No predefined workflow matches |
|
|
4446
4475
|
|
|
4447
|
-
## Task Skills (
|
|
4476
|
+
## Task Skills (29)
|
|
4448
4477
|
|
|
4449
4478
|
Task skills execute a specific action. Invoked via slash commands. `disable-model-invocation: true`.
|
|
4450
4479
|
|
|
@@ -4478,6 +4507,7 @@ Task skills execute a specific action. Invoked via slash commands. `disable-mode
|
|
|
4478
4507
|
| **health** | `/health` | medium | Check health of project services (auto-detect) |
|
|
4479
4508
|
| **prd-to-issues** | `/prd-to-issues` | medium | Break PRD into GitHub issues with vertical slices and HITL/AFK tagging |
|
|
4480
4509
|
| **skill-audit** | `/skill-audit` | medium | Scan skills and agents for security risks: dangerous patterns, secrets, excessive permissions |
|
|
4510
|
+
| **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
4511
|
|
|
4482
4512
|
## Hybrid Skills (31)
|
|
4483
4513
|
|
package/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softspark/ai-toolkit",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Professional-grade AI coding toolkit:
|
|
3
|
+
"version": "1.5.0",
|
|
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",
|
package/scripts/install.py
CHANGED
|
@@ -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"]:
|