@softspark/ai-toolkit 1.3.14 → 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.
Files changed (49) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +62 -16
  3. package/app/agents/backend-specialist.md +8 -0
  4. package/app/agents/code-reviewer.md +9 -0
  5. package/app/agents/database-architect.md +8 -0
  6. package/app/agents/debugger.md +8 -0
  7. package/app/agents/devops-implementer.md +8 -0
  8. package/app/agents/documenter.md +8 -0
  9. package/app/agents/frontend-specialist.md +8 -0
  10. package/app/agents/performance-optimizer.md +8 -0
  11. package/app/agents/security-auditor.md +9 -0
  12. package/app/agents/test-engineer.md +9 -0
  13. package/app/skills/analyze/SKILL.md +15 -0
  14. package/app/skills/api-patterns/SKILL.md +10 -0
  15. package/app/skills/ci-cd-patterns/SKILL.md +10 -0
  16. package/app/skills/clean-code/SKILL.md +10 -0
  17. package/app/skills/database-patterns/SKILL.md +10 -0
  18. package/app/skills/debug/SKILL.md +16 -0
  19. package/app/skills/docs/SKILL.md +16 -0
  20. package/app/skills/git-mastery/SKILL.md +10 -0
  21. package/app/skills/onboard/SKILL.md +15 -0
  22. package/app/skills/performance-profiling/SKILL.md +10 -0
  23. package/app/skills/plan/SKILL.md +16 -0
  24. package/app/skills/refactor/SKILL.md +16 -0
  25. package/app/skills/review/SKILL.md +58 -3
  26. package/app/skills/security-patterns/SKILL.md +10 -0
  27. package/app/skills/tdd/SKILL.md +6 -0
  28. package/app/skills/testing-patterns/SKILL.md +10 -0
  29. package/bin/ai-toolkit.js +33 -5
  30. package/kb/procedures/release-verification-sop.md +283 -0
  31. package/kb/reference/architecture-overview.md +36 -7
  32. package/kb/reference/competitive-features-implementation.md +51 -52
  33. package/kb/reference/language-rules.md +18 -4
  34. package/kb/reference/skills-catalog.md +57 -1
  35. package/llms-full.txt +451 -64
  36. package/llms.txt +1 -0
  37. package/manifest.json +1 -1
  38. package/package.json +4 -2
  39. package/scripts/dir_rules_shared.py +441 -0
  40. package/scripts/generate_antigravity.py +36 -0
  41. package/scripts/generate_augment_rules.py +107 -0
  42. package/scripts/generate_cline_rules.py +31 -0
  43. package/scripts/generate_conventions.py +37 -0
  44. package/scripts/generate_cursor_mdc.py +127 -0
  45. package/scripts/generate_roo_rules.py +30 -0
  46. package/scripts/generate_windsurf_rules.py +31 -0
  47. package/scripts/install.py +26 -1
  48. package/scripts/install_steps/ai_tools.py +149 -31
  49. 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.3.14"
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 Augment). 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.
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`** (or `update --local`) — run per project, creates `CLAUDE.md` template + `.claude/settings.local.json` (only if missing, initialized with MCP defaults), and injects `constitution.md` + Copilot + Cline + Roo Code + Aider configs into local `.claude/` (preserves existing user content). Installs `--local` git hooks as a fallback for quality gates. Hooks are global-only not merged into project settings.
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` | `./` | Also set up project-local: `CLAUDE.md` + `settings.local.json` + constitution + Copilot + Cline + Roo + Aider + Git Hooks (hooks stay global-only) |
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
- | `windsurf-rules` | `./` | Generates `.windsurfrules` |
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 |
@@ -1109,6 +1410,23 @@ Skills that spawn real parallel agents use:
1109
1410
 
1110
1411
  `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` must be set for Agent Teams (tmux-based) support.
1111
1412
 
1413
+ ## Quality Guardrails
1414
+
1415
+ ### Anti-Rationalization Tables
1416
+ 15 core skills include `## Common Rationalizations` tables — domain-specific excuses with rebuttals that prevent agent drift. Skills: `/review`, `/debug`, `/refactor`, `/tdd`, `/plan`, `/docs`, `/analyze`, `security-patterns`, `testing-patterns`, `api-patterns`, `ci-cd-patterns`, `clean-code`, `performance-profiling`, `git-mastery`, `database-patterns`.
1417
+
1418
+ ### Confidence Scoring & LLM-as-Judge (`/review`)
1419
+ Review findings include per-issue confidence scores (1-10) and severity tiers (critical/major/minor/nit). A self-evaluation pass after review checks for anchoring bias, assumption vs verification, and calibrates confidence.
1420
+
1421
+ ### Agent Verification Checklists
1422
+ 10 agents have `## Verification Checklist` — domain-specific exit criteria: `code-reviewer`, `test-engineer`, `security-auditor`, `debugger`, `backend-specialist`, `frontend-specialist`, `database-architect`, `performance-optimizer`, `devops-implementer`, `documenter`.
1423
+
1424
+ ### Skill Reference Routing
1425
+ 7 core skills include `## Related Skills` suggesting follow-up skills: `/review`, `/debug`, `/plan`, `/refactor`, `/tdd`, `/docs`, `/analyze`.
1426
+
1427
+ ### Intent Capture Interview (`/onboard`)
1428
+ Step 0 interview — 5 questions to capture undocumented project intent before setup.
1429
+
1112
1430
  ## Component Relationships
1113
1431
 
1114
1432
  ```
@@ -1557,15 +1875,15 @@ tags:
1557
1875
  doc_type: plan
1558
1876
  status: completed
1559
1877
  created: "2026-04-07"
1560
- last_updated: "2026-04-07"
1878
+ last_updated: "2026-04-09"
1561
1879
  completion: "100%"
1562
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."
1563
1881
  ---
1564
1882
 
1565
1883
  # Plan: Competitive Features — ai-toolkit
1566
1884
 
1567
- **Status:** :yellow_circle: IN PROGRESS
1568
- **Completion:** 100% (9/9 features)
1885
+ **Status:** :white_check_mark: COMPLETED
1886
+ **Completion:** 100% (8/9 features, 1 skipped)
1569
1887
  **Started:** 2026-04-07
1570
1888
  **Estimated Completion:** 2026-06-15
1571
1889
  **Source:** Competitive analysis of `affaan-m/everything-claude-code` (ECC) + `thedotmack/claude-mem`
@@ -1574,7 +1892,7 @@ description: "Implementation plan for features identified from competitive analy
1574
1892
 
1575
1893
  ## 1. Objective
1576
1894
 
1577
- Strengthen ai-toolkit's competitive position by implementing 10 features from competitive analysis while maintaining our advantages (clean architecture, 9 editors, personas, safety constitution).
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).
1578
1896
 
1579
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.
1580
1898
 
@@ -1683,11 +2001,11 @@ app/rules/
1683
2001
  | `tests/test_rules.py` | CREATE | Tests |
1684
2002
 
1685
2003
  **Success Criteria:**
1686
- - [ ] 13 languages × 5 rule files created
1687
- - [ ] `ai-toolkit install --local` auto-detects language and injects rules
1688
- - [ ] Manual override: `ai-toolkit install --local --lang typescript`
1689
- - [ ] validate.py checks rules format
1690
- - [ ] Tests: >=13 (one per language)
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)
1691
2009
 
1692
2010
  ---
1693
2011
 
@@ -1722,11 +2040,11 @@ app/rules/
1722
2040
  | `tests/test_hooks.py` | EDIT | Tests for new hooks |
1723
2041
 
1724
2042
  **Success Criteria:**
1725
- - [ ] 6 new hooks created and registerable
1726
- - [ ] guard-config blocks config edits unless `--force`
1727
- - [ ] mcp-health pings configured MCP servers on session start
1728
- - [ ] All hooks optional (enable/disable in settings.json)
1729
- - [ ] Tests: >=6 (one per hook)
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
1730
2048
 
1731
2049
  ---
1732
2050
 
@@ -1783,10 +2101,10 @@ ai-toolkit mcp show github # Show config details
1783
2101
  | `tests/test_mcp_templates.py` | CREATE | Validate JSON schemas |
1784
2102
 
1785
2103
  **Success Criteria:**
1786
- - [ ] 25 MCP template configs created
1787
- - [ ] `ai-toolkit mcp add <name>` merges into .mcp.json
1788
- - [ ] `ai-toolkit mcp list` shows all available
1789
- - [ ] Tests: >=5 (schema validation)
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
1790
2108
 
1791
2109
  ---
1792
2110
 
@@ -1894,11 +2212,11 @@ All entries are tagged with "_source": "<source-name>" for idempotent updates.
1894
2212
  | `add-rule <file.md>` | `~/.ai-toolkit/rules/` | File copy + re-inject all | Yes |
1895
2213
 
1896
2214
  **Success Criteria:**
1897
- - [ ] `inject-hook ./my-hooks.json` merges hooks with auto-derived `_source` tag
1898
- - [ ] `remove-hook my-hooks` strips all entries with that `_source`
1899
- - [ ] Re-running is idempotent (update, not duplicate)
1900
- - [ ] Existing ai-toolkit hooks (`_source: "ai-toolkit"`) are never touched
1901
- - [ ] Tests: >=6 (inject, remove, idempotent, coexistence, malformed input, missing file)
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
1902
2220
 
1903
2221
  ---
1904
2222
 
@@ -1993,13 +2311,13 @@ ai-toolkit status # Show installed modules
1993
2311
  ```
1994
2312
 
1995
2313
  **Success Criteria:**
1996
- - [ ] manifest.json defines all modules with dependencies
1997
- - [ ] install --modules allows granular selection
1998
- - [ ] install --auto-detect detects language from project files
1999
- - [ ] state.json tracks what's installed
2000
- - [ ] update only changes modified files (content hash)
2001
- - [ ] Backward compatible with existing install
2002
- - [ ] Tests: >=10
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
2003
2321
 
2004
2322
  ---
2005
2323
 
@@ -2038,10 +2356,10 @@ context: fork
2038
2356
  - **Recommendation** with confidence level
2039
2357
 
2040
2358
  **Success Criteria:**
2041
- - [ ] `/council` invocable
2042
- - [ ] 4 perspectives generated
2043
- - [ ] Structured output with recommendation
2044
- - [ ] Tests: >=2
2359
+ - [x] `/council` invocable
2360
+ - [x] 4 perspectives generated
2361
+ - [x] Structured output with recommendation
2362
+ - [ ] Tests: dedicated council tests not yet written
2045
2363
 
2046
2364
  ---
2047
2365
 
@@ -2058,9 +2376,9 @@ context: fork
2058
2376
  - Consistency checks (before outputting content, verify voice match)
2059
2377
 
2060
2378
  **Success Criteria:**
2061
- - [ ] Skill auto-loads when writing docs/content
2062
- - [ ] Anti-trope list prevents generic LLM rhetoric
2063
- - [ ] Tests: >=2
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
2064
2382
 
2065
2383
  ---
2066
2384
 
@@ -2079,10 +2397,10 @@ context: fork
2079
2397
  5. Optionally hand off to verification
2080
2398
 
2081
2399
  **Success Criteria:**
2082
- - [ ] `/introspect` invocable when agent is stuck
2083
- - [ ] Classifies failure pattern
2084
- - [ ] Suggests recovery action
2085
- - [ ] Tests: >=2
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
2086
2404
 
2087
2405
  ---
2088
2406
 
@@ -2123,10 +2441,7 @@ docs/
2123
2441
  ```
2124
2442
 
2125
2443
  **Success Criteria:**
2126
- - [ ] Documentation site deployed (GitHub Pages or Vercel)
2127
- - [ ] Covers: installation, skills, agents, hooks, CLI reference
2128
- - [ ] Auto-generated from existing CLAUDE.md/README.md content
2129
- - [ ] Tests: Build passes
2444
+ - :no_entry: SKIPPED README/CLAUDE.md sufficient, no documentation site needed
2130
2445
 
2131
2446
  ---
2132
2447
 
@@ -2172,7 +2487,7 @@ npx @softspark/ai-toolkit inject-hook ./rag-mcp-hooks.json # NEW
2172
2487
  | Metric | Before | Target |
2173
2488
  |--------|--------|--------|
2174
2489
  | Skills | 88 | ~91 (+3 new skills) |
2175
- | Hooks | 14 | 20 (+6) |
2490
+ | Hooks | 14 | 21 (+7, observe-session in rag-mcp) |
2176
2491
  | Language rules | ~8 (pattern skills) | 70 (13 langs × 5 + 5 common) |
2177
2492
  | MCP templates | 0 | 25 |
2178
2493
  | Install granularity | 3 profiles | 3 profiles + module-level |
@@ -2203,12 +2518,14 @@ npx @softspark/ai-toolkit inject-hook ./rag-mcp-hooks.json # NEW
2203
2518
 
2204
2519
  ---
2205
2520
 
2206
- ## 9. Next Actions
2521
+ ## 9. Remaining Gaps
2207
2522
 
2208
- 1. [ ] **Create `app/rules/common/` (5 files)** — Start with common rules
2209
- 2. [ ] **Create `app/mcp-templates/` (25 configs)** — Quick win, high impact
2210
- 3. [ ] **Create 6 new hooks** Independent, can parallelize
2211
- 4. [ ] Review and approve this plan
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
2212
2529
 
2213
2530
  ---
2214
2531
 
@@ -2218,7 +2535,7 @@ None — all features are independent of external systems.
2218
2535
 
2219
2536
  ---
2220
2537
 
2221
- **Last Updated:** 2026-04-07
2538
+ **Last Updated:** 2026-04-09
2222
2539
 
2223
2540
  ---
2224
2541
 
@@ -3371,13 +3688,16 @@ The `common/` directory uses the same structure except `frameworks.md` is replac
3371
3688
 
3372
3689
  ## Auto-Detection
3373
3690
 
3374
- `--local` automatically enables language auto-detection. `scripts/install_steps/detect_language.py` scans the current directory for known marker files and selects matching language modules:
3691
+ `--local` automatically enables language auto-detection. `scripts/install_steps/detect_language.py` uses two-phase detection and merges results from both:
3375
3692
 
3376
3693
  ```bash
3377
3694
  ai-toolkit install --local # auto-detects language (--auto-detect is implied)
3378
3695
  ```
3379
3696
 
3380
- Detection logic (first match wins when multiple markers are present):
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
+
3381
3701
  1. `package.json` or `tsconfig.json` → TypeScript
3382
3702
  2. `go.mod` → Go
3383
3703
  3. `Cargo.toml` → Rust
@@ -3391,7 +3711,13 @@ Detection logic (first match wins when multiple markers are present):
3391
3711
  11. `*.csproj` or `*.sln` → C#
3392
3712
  12. `CMakeLists.txt` or `Makefile` → C++
3393
3713
 
3394
- Common rules are always injected regardless of detected language.
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.
3395
3721
 
3396
3722
  ## Installation
3397
3723
 
@@ -3399,13 +3725,18 @@ Common rules are always injected regardless of detected language.
3399
3725
  # Auto-detect language from project files (default with --local)
3400
3726
  ai-toolkit install --local
3401
3727
 
3402
- # Explicitly select a language
3728
+ # Explicitly select a language (implies --local, disables auto-detect)
3403
3729
  ai-toolkit install --local --lang typescript
3404
3730
 
3731
+ # Multiple languages
3732
+ ai-toolkit install --local --lang go,python
3733
+
3405
3734
  # Skip auto-detect, install specific modules only
3406
3735
  ai-toolkit install --local --modules core,agents
3407
3736
  ```
3408
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
+
3409
3740
  Language rules are injected into the project `CLAUDE.md` between named markers:
3410
3741
 
3411
3742
  ```
@@ -4095,7 +4426,7 @@ title: "AI Toolkit - Skills Catalog"
4095
4426
  category: reference
4096
4427
  service: ai-toolkit
4097
4428
  tags: [skills, domain-knowledge, catalog, task-skills, hybrid-skills]
4098
- version: "1.3.14"
4429
+ version: "1.4.0"
4099
4430
  created: "2026-03-23"
4100
4431
  last_updated: "2026-04-08"
4101
4432
  description: "Complete skills catalog with task, hybrid, and knowledge skills. Includes effort levels, skill-scoped hooks, executable scripts, security auditor, and persona presets."
@@ -4263,6 +4594,62 @@ Hybrid skills combine slash-command invocation with domain knowledge that agents
4263
4594
  |-------|-----------|--------|
4264
4595
  | **hive-mind** | `skills/hive-mind/` | Multi-agent aggregation, consensus, swarm patterns |
4265
4596
 
4597
+ ## Quality Guardrails
4598
+
4599
+ ### Anti-Rationalization Tables
4600
+
4601
+ 15 core skills include `## Common Rationalizations` — domain-specific tables of excuses and rebuttals that prevent agent drift and shortcut-taking:
4602
+
4603
+ | Skill | Example rationalization blocked |
4604
+ |-------|---------------------------------|
4605
+ | `/review` | "Small change, quick scan is enough" |
4606
+ | `/debug` | "It must be a library bug" |
4607
+ | `/refactor` | "It works, don't touch it" |
4608
+ | `/tdd` | "Too simple to test" |
4609
+ | `/plan` | "Planning is wasted time, just start coding" |
4610
+ | `/docs` | "The code is self-documenting" |
4611
+ | `/analyze` | "The linter is green, the code is fine" |
4612
+ | `security-patterns` | "It's an internal API, security doesn't matter" |
4613
+ | `testing-patterns` | "Tests slow down development" |
4614
+ | `api-patterns` | "We'll version the API later" |
4615
+ | `ci-cd-patterns` | "Manual deploys give us more control" |
4616
+ | `clean-code` | "It's readable enough" |
4617
+ | `performance-profiling` | "It feels slow, let me optimize this function" |
4618
+ | `git-mastery` | "One big commit is simpler" |
4619
+ | `database-patterns` | "We'll add indexes later when it's slow" |
4620
+
4621
+ ### Confidence Scoring (`/review`)
4622
+
4623
+ The `/review` skill outputs structured findings with:
4624
+ - **Severity**: critical / major / minor / nit
4625
+ - **Confidence score**: 1-10 per finding with calibration guide
4626
+ - **Evidence requirement**: each finding must include file:line + reasoning
4627
+
4628
+ ### Self-Evaluation — LLM-as-Judge (`/review`)
4629
+
4630
+ After completing a review, the agent performs a self-evaluation pass:
4631
+ 1. Verify vs assume — did I read actual code for each finding?
4632
+ 2. Check the inverse — if X is a problem, is NOT-X also a problem elsewhere?
4633
+ 3. Detect anchoring bias — did early findings bias toward similar patterns?
4634
+ 4. Check unhappy paths — error handling, edge cases, failure modes
4635
+ 5. Calibrate confidence — overconfident? re-examine weakest finding
4636
+
4637
+ ### Agent Verification Checklists
4638
+
4639
+ 10 key agents include `## Verification Checklist` — exit criteria before presenting results:
4640
+ `code-reviewer`, `test-engineer`, `security-auditor`, `debugger`, `backend-specialist`, `frontend-specialist`, `database-architect`, `performance-optimizer`, `devops-implementer`, `documenter`.
4641
+
4642
+ ### Skill Reference Routing
4643
+
4644
+ 7 core skills include `## Related Skills` sections suggesting logical follow-up skills:
4645
+ `/review`, `/debug`, `/plan`, `/refactor`, `/tdd`, `/docs`, `/analyze`.
4646
+
4647
+ ### Intent Capture Interview (`/onboard`)
4648
+
4649
+ Step 0 interview before setup — 5 targeted questions to capture undocumented project intent, customizing the generated `CLAUDE.md`.
4650
+
4651
+ ---
4652
+
4266
4653
  ## Advanced Features
4267
4654
 
4268
4655
  ### Effort Levels