@softspark/ai-toolkit 1.3.15 → 1.4.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 +29 -0
- package/README.md +25 -16
- package/bin/ai-toolkit.js +33 -5
- package/kb/procedures/release-verification-sop.md +283 -0
- package/kb/reference/architecture-overview.md +19 -7
- package/kb/reference/competitive-features-implementation.md +51 -52
- package/kb/reference/language-rules.md +18 -4
- package/kb/reference/skills-catalog.md +1 -1
- package/llms-full.txt +378 -64
- package/llms.txt +1 -0
- package/manifest.json +1 -1
- package/package.json +4 -2
- package/scripts/dir_rules_shared.py +441 -0
- package/scripts/generate_antigravity.py +36 -0
- package/scripts/generate_augment_rules.py +107 -0
- package/scripts/generate_cline_rules.py +31 -0
- package/scripts/generate_conventions.py +37 -0
- package/scripts/generate_cursor_mdc.py +127 -0
- package/scripts/generate_roo_rules.py +30 -0
- package/scripts/generate_windsurf_rules.py +31 -0
- package/scripts/install.py +26 -1
- package/scripts/install_steps/ai_tools.py +149 -31
- package/scripts/install_steps/detect_language.py +68 -5
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 Verification](kb/procedures/release-verification-sop.md)
|
|
18
19
|
- [Agents Catalog](kb/reference/agents-catalog.md)
|
|
19
20
|
- [Anti-Pattern Registry Format](kb/reference/anti-pattern-registry-format.md)
|
|
20
21
|
- [AI Toolkit Architecture](kb/reference/architecture-overview.md)
|
|
@@ -575,6 +576,294 @@ What `uninstall` does:
|
|
|
575
576
|
|
|
576
577
|
---
|
|
577
578
|
|
|
579
|
+
## kb/procedures/release-verification-sop.md
|
|
580
|
+
|
|
581
|
+
---
|
|
582
|
+
title: "SOP: Release Verification"
|
|
583
|
+
category: procedures
|
|
584
|
+
service: ai-toolkit
|
|
585
|
+
tags: [sop, verification, release, smoke-test, install, update, qa]
|
|
586
|
+
version: "1.1.0"
|
|
587
|
+
created: "2026-04-08"
|
|
588
|
+
last_updated: "2026-04-08"
|
|
589
|
+
description: "End-to-end smoke test after installing or updating @softspark/ai-toolkit — verifies CLI, install, doctor, validation, tests, and eject from user perspective."
|
|
590
|
+
---
|
|
591
|
+
|
|
592
|
+
# SOP: Release Verification
|
|
593
|
+
|
|
594
|
+
End-to-end smoke test after installing or updating `@softspark/ai-toolkit`.
|
|
595
|
+
Verifies all critical paths from the user's perspective.
|
|
596
|
+
|
|
597
|
+
**Use this SOP when:**
|
|
598
|
+
- After `npm install -g @softspark/ai-toolkit@latest`
|
|
599
|
+
- After `ai-toolkit update`
|
|
600
|
+
- Before tagging a new version (`git tag`)
|
|
601
|
+
- Before publishing to npm (`npm publish`)
|
|
602
|
+
- As a smoke test in CI/CD
|
|
603
|
+
|
|
604
|
+
**Prerequisites:**
|
|
605
|
+
- Node.js >= 18, Python 3, `bats`, git
|
|
606
|
+
- `@softspark/ai-toolkit` installed globally
|
|
607
|
+
|
|
608
|
+
**Time:** 10-15 minutes (full), 2 minutes (quick checklist)
|
|
609
|
+
|
|
610
|
+
---
|
|
611
|
+
|
|
612
|
+
## Quick Checklist (TL;DR)
|
|
613
|
+
|
|
614
|
+
9 commands — if all pass, the release is ready:
|
|
615
|
+
|
|
616
|
+
```bash
|
|
617
|
+
# Pre-commit (Phase 0)
|
|
618
|
+
python3 scripts/generate_agents_md.py > AGENTS.md # 1. Regenerate artifacts
|
|
619
|
+
python3 scripts/generate_llms_txt.py > llms.txt # 2. Regenerate llms.txt
|
|
620
|
+
python3 scripts/validate.py --strict # 3. Validation passed?
|
|
621
|
+
npm test # 4. All tests passed?
|
|
622
|
+
|
|
623
|
+
# Post-install verification (Phases 1-7)
|
|
624
|
+
ai-toolkit --version # 5. Version OK?
|
|
625
|
+
ai-toolkit status # 6. Status OK?
|
|
626
|
+
ai-toolkit doctor # 7. Health check passed?
|
|
627
|
+
ai-toolkit install --dry-run # 8. Global install OK?
|
|
628
|
+
python3 scripts/audit_skills.py --ci # 9. Security audit clean?
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
---
|
|
632
|
+
|
|
633
|
+
## Phase 0: Pre-Commit & Pre-Push (2 min)
|
|
634
|
+
|
|
635
|
+
Run these commands **before every commit and push to main**. CI validates
|
|
636
|
+
counts but does NOT auto-regenerate — you must do it locally.
|
|
637
|
+
|
|
638
|
+
```bash
|
|
639
|
+
# 1. Regenerate generated artifacts
|
|
640
|
+
python3 scripts/generate_agents_md.py > AGENTS.md
|
|
641
|
+
python3 scripts/generate_llms_txt.py > llms.txt
|
|
642
|
+
python3 scripts/generate_llms_txt.py --full > llms-full.txt
|
|
643
|
+
|
|
644
|
+
# 2. Validate everything (catches stale counts, missing assets)
|
|
645
|
+
python3 scripts/validate.py --strict
|
|
646
|
+
|
|
647
|
+
# 3. Security audit
|
|
648
|
+
python3 scripts/audit_skills.py --ci
|
|
649
|
+
|
|
650
|
+
# 4. Run tests
|
|
651
|
+
npm test
|
|
652
|
+
|
|
653
|
+
# 5. Stage and commit
|
|
654
|
+
git add AGENTS.md llms.txt llms-full.txt
|
|
655
|
+
git add -p # stage your other changes
|
|
656
|
+
git commit -m "feat: your change description"
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
**Why local?** Branch protection on `main` requires PRs and status checks.
|
|
660
|
+
CI cannot push directly to `main`, so generated artifacts must be committed
|
|
661
|
+
by the developer as part of their PR.
|
|
662
|
+
|
|
663
|
+
**One-liner (copy-paste):**
|
|
664
|
+
```bash
|
|
665
|
+
python3 scripts/generate_agents_md.py > AGENTS.md && python3 scripts/generate_llms_txt.py > llms.txt && python3 scripts/generate_llms_txt.py --full > llms-full.txt && python3 scripts/validate.py --strict && python3 scripts/audit_skills.py --ci && npm test
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
---
|
|
669
|
+
|
|
670
|
+
## Phase 1: CLI & Version (1 min)
|
|
671
|
+
|
|
672
|
+
```bash
|
|
673
|
+
ai-toolkit --version
|
|
674
|
+
ai-toolkit --help
|
|
675
|
+
which ai-toolkit
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
**Verify:**
|
|
679
|
+
- [ ] `--version` returns correct semver (e.g., `1.4.0`)
|
|
680
|
+
- [ ] `--help` displays full command list without errors
|
|
681
|
+
- [ ] `which` points to global npm bin path
|
|
682
|
+
|
|
683
|
+
---
|
|
684
|
+
|
|
685
|
+
## Phase 2: Global Install & Status (2 min)
|
|
686
|
+
|
|
687
|
+
```bash
|
|
688
|
+
ai-toolkit install --dry-run
|
|
689
|
+
ai-toolkit status
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
**Verify `--dry-run`:**
|
|
693
|
+
- [ ] Agents >= 40
|
|
694
|
+
- [ ] Skills >= 80
|
|
695
|
+
- [ ] Hooks merged into settings.json
|
|
696
|
+
- [ ] "Other AI Tools" section lists cursor, windsurf, gemini, augment (antigravity via --local)
|
|
697
|
+
|
|
698
|
+
**Verify `status`:**
|
|
699
|
+
- [ ] Version matches expected
|
|
700
|
+
- [ ] Profile: minimal/standard/strict
|
|
701
|
+
- [ ] Modules: list of installed modules
|
|
702
|
+
- [ ] Latest: up to date / update available
|
|
703
|
+
|
|
704
|
+
---
|
|
705
|
+
|
|
706
|
+
## Phase 3: Doctor Health Check (1 min)
|
|
707
|
+
|
|
708
|
+
```bash
|
|
709
|
+
ai-toolkit doctor
|
|
710
|
+
```
|
|
711
|
+
|
|
712
|
+
**Expected sections (all OK):**
|
|
713
|
+
- Environment: node, bash, python3, bats
|
|
714
|
+
- Global Install: .claude exists, agents/skills symlinks (0 broken), settings.json hooks
|
|
715
|
+
- Hook Scripts: all present and executable
|
|
716
|
+
- Hook Configuration: 12 events registered
|
|
717
|
+
- Generated Artifacts: AGENTS.md, llms.txt, llms-full.txt
|
|
718
|
+
- Planned Assets: plugin.json, benchmarks, plugin packs
|
|
719
|
+
- Benchmark Freshness: < 30 days
|
|
720
|
+
- Stale Rules: all healthy
|
|
721
|
+
|
|
722
|
+
**Verify:**
|
|
723
|
+
- [ ] `Errors: 0 | Warnings: 0`
|
|
724
|
+
- [ ] `HEALTH CHECK PASSED`
|
|
725
|
+
|
|
726
|
+
If doctor detects problems: `ai-toolkit doctor --fix` auto-repairs
|
|
727
|
+
(broken symlinks, non-executable hooks, missing scripts, missing llms-full.txt).
|
|
728
|
+
|
|
729
|
+
---
|
|
730
|
+
|
|
731
|
+
## Phase 4: Local Install (2 min)
|
|
732
|
+
|
|
733
|
+
```bash
|
|
734
|
+
mkdir -p /tmp/ai-toolkit-verify && cd /tmp/ai-toolkit-verify
|
|
735
|
+
git init -q
|
|
736
|
+
ai-toolkit install --local --editors all --dry-run
|
|
737
|
+
cd - && rm -rf /tmp/ai-toolkit-verify
|
|
738
|
+
```
|
|
739
|
+
|
|
740
|
+
**Verify "Project-local" section:**
|
|
741
|
+
- [ ] Would create: CLAUDE.md
|
|
742
|
+
- [ ] Would create: .claude/settings.local.json
|
|
743
|
+
- [ ] Would inject: .claude/constitution.md
|
|
744
|
+
- [ ] Editors: all 8 listed (copilot, cursor, windsurf, cline, roo, aider, augment, antigravity)
|
|
745
|
+
- [ ] Would generate configs for each editor (legacy + directory-based)
|
|
746
|
+
- [ ] Would install: .git/hooks/pre-commit
|
|
747
|
+
- [ ] Would inject language rules (auto-detected)
|
|
748
|
+
|
|
749
|
+
**Also test auto-detect (no --editors flag):**
|
|
750
|
+
```bash
|
|
751
|
+
ai-toolkit install --local --dry-run
|
|
752
|
+
# → Editors: none (empty project has no existing configs)
|
|
753
|
+
```
|
|
754
|
+
|
|
755
|
+
---
|
|
756
|
+
|
|
757
|
+
## Phase 5: Validation & Security Audit (3 min)
|
|
758
|
+
|
|
759
|
+
```bash
|
|
760
|
+
python3 scripts/validate.py --strict
|
|
761
|
+
python3 scripts/audit_skills.py --ci
|
|
762
|
+
```
|
|
763
|
+
|
|
764
|
+
**Verify validate.py:**
|
|
765
|
+
- [ ] Agents >= 40, Skills >= 80, Tests >= 350
|
|
766
|
+
- [ ] Hook events: 12, Hook scripts: >= 20
|
|
767
|
+
- [ ] Plugin packs >= 10, KB documents >= 20
|
|
768
|
+
- [ ] `Errors: 0 | Warnings: 0` → `VALIDATION PASSED`
|
|
769
|
+
|
|
770
|
+
**Verify audit_skills.py:**
|
|
771
|
+
- [ ] `HIGH: 0` (MUST be zero — CI fails otherwise)
|
|
772
|
+
- [ ] `WARN: 0`
|
|
773
|
+
- [ ] `INFO: N` (acceptable — broad-access skills: orchestrate, swarm, teams)
|
|
774
|
+
|
|
775
|
+
---
|
|
776
|
+
|
|
777
|
+
## Phase 6: Tests (3-5 min)
|
|
778
|
+
|
|
779
|
+
```bash
|
|
780
|
+
npm test
|
|
781
|
+
```
|
|
782
|
+
|
|
783
|
+
**Verify:**
|
|
784
|
+
- [ ] Bats runs tests in parallel (4 jobs)
|
|
785
|
+
- [ ] All `ok` — zero `not ok`
|
|
786
|
+
- [ ] Groups: agents, autodetect, cli, generators, guards, hooks, inject,
|
|
787
|
+
install, kb, mcp, readme, profiles, uninstall, validate
|
|
788
|
+
|
|
789
|
+
**Key test areas:**
|
|
790
|
+
- Guards: rm -rf, DROP TABLE, git push --force blocked
|
|
791
|
+
- Install: idempotent, profiles, --only/--skip, orphan cleanup
|
|
792
|
+
- Eject: real files (not symlinks), inlined rules
|
|
793
|
+
- Uninstall: removes toolkit, preserves user content
|
|
794
|
+
|
|
795
|
+
---
|
|
796
|
+
|
|
797
|
+
## Phase 7: Eject (1 min)
|
|
798
|
+
|
|
799
|
+
```bash
|
|
800
|
+
mkdir -p /tmp/ai-toolkit-eject-test
|
|
801
|
+
cd /tmp/ai-toolkit-eject-test
|
|
802
|
+
ai-toolkit eject
|
|
803
|
+
cd - && rm -rf /tmp/ai-toolkit-eject-test
|
|
804
|
+
```
|
|
805
|
+
|
|
806
|
+
**Verify:**
|
|
807
|
+
- [ ] Agents copied as real files (not symlinks)
|
|
808
|
+
- [ ] Skills copied as real directories
|
|
809
|
+
- [ ] Rules inlined into CLAUDE.md
|
|
810
|
+
- [ ] constitution.md and ARCHITECTURE.md copied
|
|
811
|
+
|
|
812
|
+
---
|
|
813
|
+
|
|
814
|
+
## Troubleshooting
|
|
815
|
+
|
|
816
|
+
### `ai-toolkit: command not found`
|
|
817
|
+
|
|
818
|
+
```bash
|
|
819
|
+
npm install -g @softspark/ai-toolkit
|
|
820
|
+
# or check PATH:
|
|
821
|
+
export PATH="$(npm config get prefix)/bin:$PATH"
|
|
822
|
+
```
|
|
823
|
+
|
|
824
|
+
### Doctor: broken symlinks
|
|
825
|
+
|
|
826
|
+
```bash
|
|
827
|
+
ai-toolkit doctor --fix # auto-repair
|
|
828
|
+
ai-toolkit update # or full re-install
|
|
829
|
+
```
|
|
830
|
+
|
|
831
|
+
### Tests fail: missing bats
|
|
832
|
+
|
|
833
|
+
```bash
|
|
834
|
+
brew install bats-core # macOS
|
|
835
|
+
npm install -g bats # cross-platform
|
|
836
|
+
```
|
|
837
|
+
|
|
838
|
+
### validate.py: stale counts
|
|
839
|
+
|
|
840
|
+
README badges don't match the current agents/skills/tests counts.
|
|
841
|
+
Update README.md and re-run.
|
|
842
|
+
|
|
843
|
+
### Eject: missing skills
|
|
844
|
+
|
|
845
|
+
```bash
|
|
846
|
+
ai-toolkit update # re-link missing symlinks
|
|
847
|
+
ai-toolkit eject /tmp/test # retry
|
|
848
|
+
```
|
|
849
|
+
|
|
850
|
+
---
|
|
851
|
+
|
|
852
|
+
## Success Criteria
|
|
853
|
+
|
|
854
|
+
| Area | Criterion |
|
|
855
|
+
|------|-----------|
|
|
856
|
+
| CLI | `--version` correct, `--help` full list, `status` current |
|
|
857
|
+
| Health | `doctor`: 0 errors, 0 warnings, PASSED |
|
|
858
|
+
| Install | `--dry-run` correct counts, `--local` all configs |
|
|
859
|
+
| Quality | `validate.py --strict`: PASSED |
|
|
860
|
+
| Security | `audit_skills.py --ci`: 0 HIGH |
|
|
861
|
+
| Tests | `npm test`: N/N passed, 0 failures |
|
|
862
|
+
| Eject | Standalone .claude/ with real files |
|
|
863
|
+
| Guards | Destructive commands blocked |
|
|
864
|
+
|
|
865
|
+
---
|
|
866
|
+
|
|
578
867
|
## kb/reference/agents-catalog.md
|
|
579
868
|
|
|
580
869
|
---
|
|
@@ -934,7 +1223,7 @@ title: "AI Toolkit - Architecture Overview"
|
|
|
934
1223
|
category: reference
|
|
935
1224
|
service: ai-toolkit
|
|
936
1225
|
tags: [architecture, overview, design, structure]
|
|
937
|
-
version: "1.
|
|
1226
|
+
version: "1.4.0"
|
|
938
1227
|
created: "2026-03-23"
|
|
939
1228
|
last_updated: "2026-04-08"
|
|
940
1229
|
description: "Architecture of ai-toolkit: directory layout, global install model, skill tiers, and integration with projects."
|
|
@@ -944,7 +1233,7 @@ description: "Architecture of ai-toolkit: directory layout, global install model
|
|
|
944
1233
|
|
|
945
1234
|
## Purpose
|
|
946
1235
|
|
|
947
|
-
Shared, project-agnostic AI development toolkit for Claude Code (and compatible assistants like Cursor, Windsurf, Copilot, Gemini, Cline, Roo Code, Aider, and
|
|
1236
|
+
Shared, project-agnostic AI development toolkit for Claude Code (and compatible assistants like Cursor, Windsurf, Copilot, Gemini, Cline, Roo Code, Aider, Augment, and Google Antigravity). Provides specialized agents, skills (slash commands + knowledge), expanded lifecycle hooks, persona presets, and experimental opt-in plugin packs that teams can adopt separately from the default global install.
|
|
948
1237
|
|
|
949
1238
|
## Design Principles
|
|
950
1239
|
|
|
@@ -1034,14 +1323,19 @@ Machine (global) Project (local)
|
|
|
1034
1323
|
|
|
1035
1324
|
**`ai-toolkit update`** — re-apply after `npm install -g @softspark/ai-toolkit@latest` or after `add-rule` / `remove-rule`. Same as `install` but semantically correct for update flows.
|
|
1036
1325
|
|
|
1037
|
-
**`ai-toolkit install --local`**
|
|
1326
|
+
**`ai-toolkit install --local`** — run per project. Always installs Claude Code configs (CLAUDE.md, settings.local.json, constitution.md, language rules). Editor configs are opt-in via `--editors`:
|
|
1327
|
+
- `--editors all` — install all 8 editors (Cursor, Windsurf, Cline, Roo, Aider, Augment, Copilot, Antigravity)
|
|
1328
|
+
- `--editors cursor,aider` — install only selected editors
|
|
1329
|
+
- (no flag) — auto-detect from existing project files; `update --local` picks up whatever editors already have configs
|
|
1330
|
+
|
|
1331
|
+
Each editor gets both legacy single-file format (for backwards compat) and new directory-based format (`.cursor/rules/*.mdc`, `.windsurf/rules/*.md`, `.cline/rules/*.md`, `.roo/rules/*.md`, `.augment/rules/ai-toolkit-*.md`, `.agent/rules/*.md`, `CONVENTIONS.md`). Hooks are global-only — not merged into project settings.
|
|
1038
1332
|
|
|
1039
1333
|
## CLI Commands
|
|
1040
1334
|
|
|
1041
1335
|
| Command | Target | What it does |
|
|
1042
1336
|
|---------|--------|-------------|
|
|
1043
1337
|
| `install` | `~/.claude/` | First-time: per-file symlinks + JSON merge + marker injection + rules |
|
|
1044
|
-
| `install --local` | `./` |
|
|
1338
|
+
| `install --local` | `./` | Claude Code configs + editors via `--editors` (auto-detect or explicit) |
|
|
1045
1339
|
| `update` | `~/.claude/` | Re-apply after npm update or after add-rule/remove-rule |
|
|
1046
1340
|
| `update --local` | `./` | Re-apply + refresh project-local configs |
|
|
1047
1341
|
| `uninstall` | `~/.claude/` | Strips toolkit components (preserves user content) |
|
|
@@ -1051,13 +1345,20 @@ Machine (global) Project (local)
|
|
|
1051
1345
|
| `doctor` | toolkit | Install health, hooks, benchmark freshness, and artifact drift diagnostics |
|
|
1052
1346
|
| `benchmark-ecosystem` | toolkit | Benchmark snapshot for official Claude Code and external ecosystem repos |
|
|
1053
1347
|
| `evaluate` | toolkit | Skill quality report |
|
|
1054
|
-
| `cursor-rules` | `./` | Generates `.cursorrules` |
|
|
1055
|
-
| `
|
|
1348
|
+
| `cursor-rules` | `./` | Generates `.cursorrules` (legacy) |
|
|
1349
|
+
| `cursor-mdc` | `./` | Generates `.cursor/rules/*.mdc` (recommended) |
|
|
1350
|
+
| `windsurf-rules` | `./` | Generates `.windsurfrules` (legacy) |
|
|
1351
|
+
| `windsurf-dir-rules` | `./` | Generates `.windsurf/rules/*.md` |
|
|
1056
1352
|
| `copilot-instructions` | `./` | Generates `.github/copilot-instructions.md` |
|
|
1057
1353
|
| `gemini-md` | `./` | Generates `GEMINI.md` |
|
|
1058
|
-
| `cline-rules` | `./` | Generates `.clinerules` |
|
|
1354
|
+
| `cline-rules` | `./` | Generates `.clinerules` (legacy) |
|
|
1355
|
+
| `cline-dir-rules` | `./` | Generates `.cline/rules/*.md` |
|
|
1059
1356
|
| `roo-modes` | `./` | Generates `.roomodes` |
|
|
1357
|
+
| `roo-dir-rules` | `./` | Generates `.roo/rules/*.md` |
|
|
1060
1358
|
| `aider-conf` | `./` | Generates `.aider.conf.yml` |
|
|
1359
|
+
| `conventions-md` | `./` | Generates `CONVENTIONS.md` (Aider auto-loaded) |
|
|
1360
|
+
| `augment-dir-rules` | `./` | Generates `.augment/rules/ai-toolkit-*.md` |
|
|
1361
|
+
| `antigravity-rules` | `./` | Generates `.agent/rules/` + `.agent/workflows/` |
|
|
1061
1362
|
| `agents-md` | toolkit | Regenerates `AGENTS.md` |
|
|
1062
1363
|
| `llms-txt` | `./` | Generates `llms.txt` |
|
|
1063
1364
|
| `generate-all` | `./` | Generates all platform configs at once |
|
|
@@ -1574,15 +1875,15 @@ tags:
|
|
|
1574
1875
|
doc_type: plan
|
|
1575
1876
|
status: completed
|
|
1576
1877
|
created: "2026-04-07"
|
|
1577
|
-
last_updated: "2026-04-
|
|
1878
|
+
last_updated: "2026-04-09"
|
|
1578
1879
|
completion: "100%"
|
|
1579
1880
|
description: "Implementation plan for features identified from competitive analysis of everything-claude-code and claude-mem. Focus on learning system, language rules, advanced hooks, MCP templates, and rag-mcp integration. COMPLETED: 8/9 features shipped (1 skipped). See kb/reference/ for permanent documentation."
|
|
1580
1881
|
---
|
|
1581
1882
|
|
|
1582
1883
|
# Plan: Competitive Features — ai-toolkit
|
|
1583
1884
|
|
|
1584
|
-
**Status:** :
|
|
1585
|
-
**Completion:** 100% (
|
|
1885
|
+
**Status:** :white_check_mark: COMPLETED
|
|
1886
|
+
**Completion:** 100% (8/9 features, 1 skipped)
|
|
1586
1887
|
**Started:** 2026-04-07
|
|
1587
1888
|
**Estimated Completion:** 2026-06-15
|
|
1588
1889
|
**Source:** Competitive analysis of `affaan-m/everything-claude-code` (ECC) + `thedotmack/claude-mem`
|
|
@@ -1591,7 +1892,7 @@ description: "Implementation plan for features identified from competitive analy
|
|
|
1591
1892
|
|
|
1592
1893
|
## 1. Objective
|
|
1593
1894
|
|
|
1594
|
-
Strengthen ai-toolkit's competitive position by implementing 10 features from competitive analysis while maintaining our advantages (clean architecture,
|
|
1895
|
+
Strengthen ai-toolkit's competitive position by implementing 10 features from competitive analysis while maintaining our advantages (clean architecture, 11 editors, personas, safety constitution).
|
|
1595
1896
|
|
|
1596
1897
|
**Key design principle:** ai-toolkit is a **generic toolkit** — it does NOT know about rag-mcp or any specific consumer. Consumers (like rag-mcp) use ai-toolkit's public API (`inject-rule`, `inject-hook`, `merge-hooks`) to add their own rules and hooks.
|
|
1597
1898
|
|
|
@@ -1700,11 +2001,11 @@ app/rules/
|
|
|
1700
2001
|
| `tests/test_rules.py` | CREATE | Tests |
|
|
1701
2002
|
|
|
1702
2003
|
**Success Criteria:**
|
|
1703
|
-
- [
|
|
1704
|
-
- [
|
|
1705
|
-
- [
|
|
1706
|
-
- [ ] validate.py checks rules format
|
|
1707
|
-
- [ ] Tests: >=13 (
|
|
2004
|
+
- [x] 13 languages × 5 rule files created (70 files: 13 dirs × 5 + 5 common)
|
|
2005
|
+
- [x] `ai-toolkit install --local` auto-detects language and injects rules (two-phase: marker files + extension scan)
|
|
2006
|
+
- [x] Manual override: `ai-toolkit install --local --lang typescript` (with aliases: go→golang, c++→cpp, cs→csharp)
|
|
2007
|
+
- [ ] validate.py checks rules format (not yet implemented)
|
|
2008
|
+
- [ ] Tests: >=13 (no test_rules file yet)
|
|
1708
2009
|
|
|
1709
2010
|
---
|
|
1710
2011
|
|
|
@@ -1739,11 +2040,11 @@ app/rules/
|
|
|
1739
2040
|
| `tests/test_hooks.py` | EDIT | Tests for new hooks |
|
|
1740
2041
|
|
|
1741
2042
|
**Success Criteria:**
|
|
1742
|
-
- [
|
|
1743
|
-
- [
|
|
1744
|
-
- [
|
|
1745
|
-
- [
|
|
1746
|
-
- [
|
|
2043
|
+
- [x] 5/6 new hooks created and registerable (observe-session.sh not in app/hooks — lives in rag-mcp as consumer)
|
|
2044
|
+
- [x] guard-config blocks config edits unless `--force`
|
|
2045
|
+
- [x] mcp-health pings configured MCP servers on session start
|
|
2046
|
+
- [x] All hooks optional (enable/disable in settings.json)
|
|
2047
|
+
- [x] Tests: 89 hook tests in test_hooks.bats
|
|
1747
2048
|
|
|
1748
2049
|
---
|
|
1749
2050
|
|
|
@@ -1800,10 +2101,10 @@ ai-toolkit mcp show github # Show config details
|
|
|
1800
2101
|
| `tests/test_mcp_templates.py` | CREATE | Validate JSON schemas |
|
|
1801
2102
|
|
|
1802
2103
|
**Success Criteria:**
|
|
1803
|
-
- [
|
|
1804
|
-
- [
|
|
1805
|
-
- [
|
|
1806
|
-
- [
|
|
2104
|
+
- [x] 25 MCP template configs created
|
|
2105
|
+
- [x] `ai-toolkit mcp add <name>` merges into .mcp.json
|
|
2106
|
+
- [x] `ai-toolkit mcp list` shows all available
|
|
2107
|
+
- [x] Tests: 15 in test_mcp_manager.bats
|
|
1807
2108
|
|
|
1808
2109
|
---
|
|
1809
2110
|
|
|
@@ -1911,11 +2212,11 @@ All entries are tagged with "_source": "<source-name>" for idempotent updates.
|
|
|
1911
2212
|
| `add-rule <file.md>` | `~/.ai-toolkit/rules/` | File copy + re-inject all | Yes |
|
|
1912
2213
|
|
|
1913
2214
|
**Success Criteria:**
|
|
1914
|
-
- [
|
|
1915
|
-
- [
|
|
1916
|
-
- [
|
|
1917
|
-
- [
|
|
1918
|
-
- [
|
|
2215
|
+
- [x] `inject-hook ./my-hooks.json` merges hooks with auto-derived `_source` tag
|
|
2216
|
+
- [x] `remove-hook my-hooks` strips all entries with that `_source`
|
|
2217
|
+
- [x] Re-running is idempotent (update, not duplicate)
|
|
2218
|
+
- [x] Existing ai-toolkit hooks (`_source: "ai-toolkit"`) are never touched
|
|
2219
|
+
- [x] Tests: 17 in test_inject_hook.bats
|
|
1919
2220
|
|
|
1920
2221
|
---
|
|
1921
2222
|
|
|
@@ -2010,13 +2311,13 @@ ai-toolkit status # Show installed modules
|
|
|
2010
2311
|
```
|
|
2011
2312
|
|
|
2012
2313
|
**Success Criteria:**
|
|
2013
|
-
- [
|
|
2014
|
-
- [
|
|
2015
|
-
- [
|
|
2016
|
-
- [
|
|
2017
|
-
- [
|
|
2018
|
-
- [
|
|
2019
|
-
- [
|
|
2314
|
+
- [x] manifest.json defines all modules with dependencies
|
|
2315
|
+
- [x] install --modules allows granular selection
|
|
2316
|
+
- [x] install --auto-detect detects language from project files (two-phase: markers + extensions)
|
|
2317
|
+
- [x] state.json tracks what's installed
|
|
2318
|
+
- [x] update only changes modified files (content hash)
|
|
2319
|
+
- [x] Backward compatible with existing install
|
|
2320
|
+
- [x] Tests: 35 across test_install.bats, test_install_flags.bats, test_install_state.bats
|
|
2020
2321
|
|
|
2021
2322
|
---
|
|
2022
2323
|
|
|
@@ -2055,10 +2356,10 @@ context: fork
|
|
|
2055
2356
|
- **Recommendation** with confidence level
|
|
2056
2357
|
|
|
2057
2358
|
**Success Criteria:**
|
|
2058
|
-
- [
|
|
2059
|
-
- [
|
|
2060
|
-
- [
|
|
2061
|
-
- [ ] Tests:
|
|
2359
|
+
- [x] `/council` invocable
|
|
2360
|
+
- [x] 4 perspectives generated
|
|
2361
|
+
- [x] Structured output with recommendation
|
|
2362
|
+
- [ ] Tests: dedicated council tests not yet written
|
|
2062
2363
|
|
|
2063
2364
|
---
|
|
2064
2365
|
|
|
@@ -2075,9 +2376,9 @@ context: fork
|
|
|
2075
2376
|
- Consistency checks (before outputting content, verify voice match)
|
|
2076
2377
|
|
|
2077
2378
|
**Success Criteria:**
|
|
2078
|
-
- [
|
|
2079
|
-
- [
|
|
2080
|
-
- [ ] Tests:
|
|
2379
|
+
- [x] Skill auto-loads when writing docs/content
|
|
2380
|
+
- [x] Anti-trope list prevents generic LLM rhetoric
|
|
2381
|
+
- [ ] Tests: dedicated brand-voice tests not yet written
|
|
2081
2382
|
|
|
2082
2383
|
---
|
|
2083
2384
|
|
|
@@ -2096,10 +2397,10 @@ context: fork
|
|
|
2096
2397
|
5. Optionally hand off to verification
|
|
2097
2398
|
|
|
2098
2399
|
**Success Criteria:**
|
|
2099
|
-
- [
|
|
2100
|
-
- [
|
|
2101
|
-
- [
|
|
2102
|
-
- [ ] Tests:
|
|
2400
|
+
- [x] `/introspect` invocable when agent is stuck
|
|
2401
|
+
- [x] Classifies failure pattern
|
|
2402
|
+
- [x] Suggests recovery action
|
|
2403
|
+
- [ ] Tests: dedicated introspect tests not yet written
|
|
2103
2404
|
|
|
2104
2405
|
---
|
|
2105
2406
|
|
|
@@ -2140,10 +2441,7 @@ docs/
|
|
|
2140
2441
|
```
|
|
2141
2442
|
|
|
2142
2443
|
**Success Criteria:**
|
|
2143
|
-
-
|
|
2144
|
-
- [ ] Covers: installation, skills, agents, hooks, CLI reference
|
|
2145
|
-
- [ ] Auto-generated from existing CLAUDE.md/README.md content
|
|
2146
|
-
- [ ] Tests: Build passes
|
|
2444
|
+
- :no_entry: SKIPPED — README/CLAUDE.md sufficient, no documentation site needed
|
|
2147
2445
|
|
|
2148
2446
|
---
|
|
2149
2447
|
|
|
@@ -2189,7 +2487,7 @@ npx @softspark/ai-toolkit inject-hook ./rag-mcp-hooks.json # NEW
|
|
|
2189
2487
|
| Metric | Before | Target |
|
|
2190
2488
|
|--------|--------|--------|
|
|
2191
2489
|
| Skills | 88 | ~91 (+3 new skills) |
|
|
2192
|
-
| Hooks | 14 |
|
|
2490
|
+
| Hooks | 14 | 21 (+7, observe-session in rag-mcp) |
|
|
2193
2491
|
| Language rules | ~8 (pattern skills) | 70 (13 langs × 5 + 5 common) |
|
|
2194
2492
|
| MCP templates | 0 | 25 |
|
|
2195
2493
|
| Install granularity | 3 profiles | 3 profiles + module-level |
|
|
@@ -2220,12 +2518,14 @@ npx @softspark/ai-toolkit inject-hook ./rag-mcp-hooks.json # NEW
|
|
|
2220
2518
|
|
|
2221
2519
|
---
|
|
2222
2520
|
|
|
2223
|
-
## 9.
|
|
2521
|
+
## 9. Remaining Gaps
|
|
2224
2522
|
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2523
|
+
All major features shipped. Outstanding items:
|
|
2524
|
+
|
|
2525
|
+
1. [ ] `validate.py` does not check rules format (1.1)
|
|
2526
|
+
2. [ ] No dedicated `test_rules` test file (1.1)
|
|
2527
|
+
3. [ ] No dedicated tests for council, brand-voice, introspect skills (3.1-3.3)
|
|
2528
|
+
4. [x] `observe-session.sh` lives in rag-mcp (consumer), not ai-toolkit — by design
|
|
2229
2529
|
|
|
2230
2530
|
---
|
|
2231
2531
|
|
|
@@ -2235,7 +2535,7 @@ None — all features are independent of external systems.
|
|
|
2235
2535
|
|
|
2236
2536
|
---
|
|
2237
2537
|
|
|
2238
|
-
**Last Updated:** 2026-04-
|
|
2538
|
+
**Last Updated:** 2026-04-09
|
|
2239
2539
|
|
|
2240
2540
|
---
|
|
2241
2541
|
|
|
@@ -3388,13 +3688,16 @@ The `common/` directory uses the same structure except `frameworks.md` is replac
|
|
|
3388
3688
|
|
|
3389
3689
|
## Auto-Detection
|
|
3390
3690
|
|
|
3391
|
-
`--local` automatically enables language auto-detection. `scripts/install_steps/detect_language.py`
|
|
3691
|
+
`--local` automatically enables language auto-detection. `scripts/install_steps/detect_language.py` uses two-phase detection and merges results from both:
|
|
3392
3692
|
|
|
3393
3693
|
```bash
|
|
3394
3694
|
ai-toolkit install --local # auto-detects language (--auto-detect is implied)
|
|
3395
3695
|
```
|
|
3396
3696
|
|
|
3397
|
-
|
|
3697
|
+
### Phase 1: Marker files (config-level signals)
|
|
3698
|
+
|
|
3699
|
+
Scans for configuration files defined in each module's `auto_detect` list in `manifest.json`:
|
|
3700
|
+
|
|
3398
3701
|
1. `package.json` or `tsconfig.json` → TypeScript
|
|
3399
3702
|
2. `go.mod` → Go
|
|
3400
3703
|
3. `Cargo.toml` → Rust
|
|
@@ -3408,7 +3711,13 @@ Detection logic (first match wins when multiple markers are present):
|
|
|
3408
3711
|
11. `*.csproj` or `*.sln` → C#
|
|
3409
3712
|
12. `CMakeLists.txt` or `Makefile` → C++
|
|
3410
3713
|
|
|
3411
|
-
|
|
3714
|
+
### Phase 2: Source file extensions (actual code presence)
|
|
3715
|
+
|
|
3716
|
+
Scans top-level files and one directory level deep for source file extensions (`.py`, `.ts`, `.go`, `.rs`, `.java`, `.kt`, `.swift`, `.dart`, `.cs`, `.php`, `.cpp`, `.rb`, etc.). Skips dependency/build directories (`node_modules`, `venv`, `dist`, `build`, etc.) for speed.
|
|
3717
|
+
|
|
3718
|
+
This catches cases where marker files are misleading — e.g., a Python project with a `package.json` only for its npm CLI wrapper will correctly detect both Python (via `.py` files) and TypeScript (via `package.json`).
|
|
3719
|
+
|
|
3720
|
+
Both phases contribute; results are merged and deduplicated. Common rules are always injected regardless of detected language.
|
|
3412
3721
|
|
|
3413
3722
|
## Installation
|
|
3414
3723
|
|
|
@@ -3416,13 +3725,18 @@ Common rules are always injected regardless of detected language.
|
|
|
3416
3725
|
# Auto-detect language from project files (default with --local)
|
|
3417
3726
|
ai-toolkit install --local
|
|
3418
3727
|
|
|
3419
|
-
# Explicitly select a language
|
|
3728
|
+
# Explicitly select a language (implies --local, disables auto-detect)
|
|
3420
3729
|
ai-toolkit install --local --lang typescript
|
|
3421
3730
|
|
|
3731
|
+
# Multiple languages
|
|
3732
|
+
ai-toolkit install --local --lang go,python
|
|
3733
|
+
|
|
3422
3734
|
# Skip auto-detect, install specific modules only
|
|
3423
3735
|
ai-toolkit install --local --modules core,agents
|
|
3424
3736
|
```
|
|
3425
3737
|
|
|
3738
|
+
The `--lang` flag accepts comma-separated language names and converts them to `rules-<lang>` modules. Common aliases are supported: `go` → `golang`, `c++` → `cpp`, `c#`/`cs` → `csharp`. Using `--lang` implies `--local` and disables auto-detection.
|
|
3739
|
+
|
|
3426
3740
|
Language rules are injected into the project `CLAUDE.md` between named markers:
|
|
3427
3741
|
|
|
3428
3742
|
```
|
|
@@ -4112,7 +4426,7 @@ title: "AI Toolkit - Skills Catalog"
|
|
|
4112
4426
|
category: reference
|
|
4113
4427
|
service: ai-toolkit
|
|
4114
4428
|
tags: [skills, domain-knowledge, catalog, task-skills, hybrid-skills]
|
|
4115
|
-
version: "1.
|
|
4429
|
+
version: "1.4.0"
|
|
4116
4430
|
created: "2026-03-23"
|
|
4117
4431
|
last_updated: "2026-04-08"
|
|
4118
4432
|
description: "Complete skills catalog with task, hybrid, and knowledge skills. Includes effort levels, skill-scoped hooks, executable scripts, security auditor, and persona presets."
|
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 Verification](kb/procedures/release-verification-sop.md)
|
|
18
19
|
- [Agents Catalog](kb/reference/agents-catalog.md)
|
|
19
20
|
- [Anti-Pattern Registry Format](kb/reference/anti-pattern-registry-format.md)
|
|
20
21
|
- [AI Toolkit Architecture](kb/reference/architecture-overview.md)
|
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: 91 skills, 44 agents, multi-platform support (Claude, Cursor, Windsurf, Copilot, Gemini, Cline, Roo Code, Aider, Augment), machine-enforced safety constitution, persona presets, skill security auditor, expanded lifecycle hooks, 11 plugin packs, and benchmark tooling.",
|
|
3
|
+
"version": "1.4.0",
|
|
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.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude",
|
|
7
7
|
"claude-code",
|
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
"roo",
|
|
22
22
|
"aider",
|
|
23
23
|
"augment",
|
|
24
|
+
"antigravity",
|
|
25
|
+
"google-antigravity",
|
|
24
26
|
"multi-platform"
|
|
25
27
|
],
|
|
26
28
|
"homepage": "https://github.com/softspark/ai-toolkit",
|