@softspark/ai-toolkit 2.4.1 → 2.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.
Files changed (37) hide show
  1. package/AGENTS.md +32 -19
  2. package/CHANGELOG.md +23 -0
  3. package/README.md +11 -11
  4. package/app/.claude-plugin/plugin.json +1 -1
  5. package/app/agents/code-reviewer.md +6 -7
  6. package/app/agents/frontend-specialist.md +33 -2
  7. package/app/agents/seo-specialist.md +1 -1
  8. package/app/personas/frontend-lead.md +48 -5
  9. package/app/skills/a11y-validate/SKILL.md +377 -0
  10. package/app/skills/a11y-validate/reference/aria-patterns.md +259 -0
  11. package/app/skills/a11y-validate/reference/eaa-compliance.md +252 -0
  12. package/app/skills/a11y-validate/reference/mobile-eaa.md +329 -0
  13. package/app/skills/a11y-validate/reference/wcag-2-1-aa.md +285 -0
  14. package/app/skills/a11y-validate/reference/wcag-2-2-aa.md +221 -0
  15. package/app/skills/a11y-validate/scripts/a11y-scanner.py +639 -0
  16. package/app/skills/clean-code/reference/python.md +3 -3
  17. package/app/skills/design-engineering/SKILL.md +2 -5
  18. package/app/skills/review/SKILL.md +30 -6
  19. package/app/skills/seo-validate/SKILL.md +460 -0
  20. package/app/skills/seo-validate/reference/core-web-vitals.md +445 -0
  21. package/app/skills/seo-validate/reference/geo-aeo-patterns.md +259 -0
  22. package/app/skills/seo-validate/reference/geo-guidelines.md +248 -0
  23. package/app/skills/seo-validate/reference/schema-types.md +465 -0
  24. package/app/skills/seo-validate/reference/spa-ssg-patterns.md +351 -0
  25. package/app/skills/seo-validate/reference/w3c-guidelines.md +289 -0
  26. package/app/skills/seo-validate/scripts/seo-scanner.py +549 -0
  27. package/bin/ai-toolkit.js +4 -4
  28. package/kb/reference/architecture-overview.md +1 -1
  29. package/kb/reference/comparison.md +1 -1
  30. package/kb/reference/skills-catalog.md +3 -1
  31. package/llms-full.txt +10 -6
  32. package/manifest.json +3 -3
  33. package/package.json +2 -2
  34. package/scripts/config_cli.py +4 -10
  35. package/scripts/doctor.py +3 -3
  36. package/scripts/install_steps/ai_tools.py +1 -1
  37. package/scripts/plugin.py +1 -1
package/llms-full.txt CHANGED
@@ -56,6 +56,7 @@
56
56
 
57
57
  ## Skills
58
58
 
59
+ - **a11y-validate**: Validate code against accessibility standards: WCAG 2.1 Level AA, EN 301 549, and the European Accessibility Act (EAA / Directive EU 2019/882). Covers semantics, text alternatives, keyboard/focus, color/contrast, forms, media, ARIA, motion, mobile, and EAA documentation requirements. Framework-aware (React/Next/Nuxt/Astro/Gatsby/SvelteKit/Remix/Angular/Vue/React Native/Flutter/static HTML).
59
60
  - **agent-creator**: Creates new specialized agents with frontmatter, tool selection, and delegation guidance
60
61
  - **analyze**: Analyze code quality, complexity, and patterns
61
62
  - **api-patterns**: Loaded when user asks about REST API design or GraphQL patterns
@@ -133,6 +134,7 @@
133
134
  - **rust-patterns**: Loaded when user asks about Rust development patterns
134
135
  - **search**: Search the knowledge base with semantic and hybrid modes
135
136
  - **security-patterns**: Loaded when user asks about security, OWASP, or auth patterns
137
+ - **seo-validate**: Validate code against SEO best practices: W3C semantics, meta/OG tags, Schema.org, hreflang, Core Web Vitals (LCP/INP/CLS), resource hints, GEO, SPA/SSG/CSR crawlability, technical SEO, accessibility-for-SEO. Supports React/Next/Nuxt/Astro/Gatsby/SvelteKit/Remix/Angular/Vue/static HTML.
136
138
  - **skill-audit**: Scan skills and agents for security risks: dangerous patterns, secrets, excessive permissions
137
139
  - **skill-creator**: Create new skills from templates with guided workflow
138
140
  - **subagent-development**: Execute implementation plans using fresh subagents per task with two-stage review: spec compliance first, then code quality. Use when executing plans with independent tasks.
@@ -4456,7 +4458,7 @@ service: ai-toolkit
4456
4458
  tags: [architecture, overview, design, structure]
4457
4459
  version: "1.4.4"
4458
4460
  created: "2026-03-23"
4459
- last_updated: "2026-04-13"
4461
+ last_updated: "2026-04-15"
4460
4462
  description: "Architecture of ai-toolkit: directory layout, global install model, editor-aware MCP install, Codex translation layer, skill tiers, and integration with projects."
4461
4463
  ---
4462
4464
 
@@ -4636,7 +4638,7 @@ Three tiers determine how to approach a task:
4636
4638
 
4637
4639
  | Type | Field | Invocation | Count |
4638
4640
  |------|-------|-----------|-------|
4639
- | Task | `disable-model-invocation: true` | User via `/skill` only | 29 |
4641
+ | Task | `disable-model-invocation: true` | User via `/skill` only | 30 |
4640
4642
  | Hybrid | (neither) | User via `/skill` + agent knowledge | 31 |
4641
4643
  | Knowledge | `user-invocable: false` | Claude auto-loads | 32 |
4642
4644
 
@@ -4786,7 +4788,7 @@ Severity levels: HIGH (blocks deployment), WARN (should fix), INFO (best practic
4786
4788
  ## Extension Points
4787
4789
 
4788
4790
  ### MCP Templates
4789
- `app/plugins/mcp-templates/` contains 26 ready-to-use MCP server config templates. Opt-in via `ai-toolkit install --modules mcp-templates` or activated automatically with `--profile strict|full`.
4791
+ `app/mcp-templates/` contains 26 ready-to-use MCP server config templates. Opt-in via `ai-toolkit install --modules mcp-templates` or activated automatically with `--profile strict|full`.
4790
4792
 
4791
4793
  ### Language Rules
4792
4794
  `app/rules/` provides language-specific rule files covering 13 languages (TypeScript, Python, Go, Rust, Java, Kotlin, Swift, Dart, C#, PHP, C++, Ruby, common). Auto-detected from project files via `--auto-detect` or selectable with `--modules rules-<lang>`. See README.md for current count.
@@ -5137,7 +5139,7 @@ category: reference
5137
5139
  service: ai-toolkit
5138
5140
  tags: [cli, commands, reference, install, update, plugin, mcp]
5139
5141
  created: "2026-04-13"
5140
- last_updated: "2026-04-13"
5142
+ last_updated: "2026-04-15"
5141
5143
  description: "Complete CLI reference for all ai-toolkit commands, options, and flags."
5142
5144
  ---
5143
5145
 
@@ -5430,7 +5432,7 @@ description: "Feature comparison of ai-toolkit vs other Claude Code toolkits and
5430
5432
 
5431
5433
  | Feature | ai-toolkit | everything-claude-code | wshobson/agents | ruflo |
5432
5434
  |---------|---------------|----------------------|-----------------|-------|
5433
- | Skills | 92 | 100+ | 146 | 20+ |
5435
+ | Skills | 93 | 100+ | 146 | 20+ |
5434
5436
  | Agents | 44 | 30+ | 112 | 20+ |
5435
5437
  | Machine-enforced constitution | **Yes** | No (docs only) | No | No |
5436
5438
  | Skill-scoped lifecycle hooks | **Yes** | No | No | No |
@@ -8553,7 +8555,7 @@ All functionality is unified under skills. Task and hybrid skills are user-invoc
8553
8555
  | **2 — Multi-agent workflow** | `/workflow <type>` | Cross-cutting task with known pattern |
8554
8556
  | **3 — Custom parallelism** | `/orchestrate`, `/swarm` | No predefined workflow matches |
8555
8557
 
8556
- ## Task Skills (29)
8558
+ ## Task Skills (30)
8557
8559
 
8558
8560
  Task skills execute a specific action. Invoked via slash commands. `disable-model-invocation: true`.
8559
8561
 
@@ -8588,6 +8590,8 @@ Task skills execute a specific action. Invoked via slash commands. `disable-mode
8588
8590
  | **prd-to-issues** | `/prd-to-issues` | medium | Break PRD into GitHub issues with vertical slices and HITL/AFK tagging |
8589
8591
  | **skill-audit** | `/skill-audit` | medium | Scan skills and agents for security risks: dangerous patterns, secrets, excessive permissions |
8590
8592
  | **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 |
8593
+ | **a11y-validate** | `/a11y-validate` | medium | Scan codebase for accessibility violations: WCAG 2.1 Level AA, EN 301 549, European Accessibility Act (EAA / EU 2019/882). Covers semantics, keyboard, focus, color contrast, forms, media, ARIA, motion, mobile (React Native + Flutter), and EAA accessibility-statement documentation. |
8594
+ | **seo-validate** | `/seo-validate` | medium | Scan codebase for SEO issues: W3C semantics, meta/OG tags, Schema.org, hreflang, Core Web Vitals (LCP/INP/CLS), resource hints, GEO, SPA/SSG/CSR crawlability, technical SEO, accessibility-for-SEO. Framework-aware (Next/Nuxt/Astro/Gatsby/SvelteKit/Remix/Angular/Vue/static HTML). |
8591
8595
 
8592
8596
  ## Hybrid Skills (31)
8593
8597
 
package/manifest.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.4.1",
2
+ "version": "2.5.0",
3
3
  "components": {
4
4
  "agents": {
5
5
  "description": "44 specialized agents (orchestrator, backend, frontend, security, devops, etc.)",
@@ -9,7 +9,7 @@
9
9
  "tags": ["core", "agents"]
10
10
  },
11
11
  "skills": {
12
- "description": "92 skills (29 task + 31 hybrid + 32 knowledge)",
12
+ "description": "94 skills (31 task + 31 hybrid + 32 knowledge)",
13
13
  "path": "app/skills",
14
14
  "target": ".claude/skills",
15
15
  "type": "symlink",
@@ -90,7 +90,7 @@
90
90
  "default": true
91
91
  },
92
92
  "skills": {
93
- "description": "92 skills (task, hybrid, knowledge)",
93
+ "description": "94 skills (task, hybrid, knowledge)",
94
94
  "default": true
95
95
  },
96
96
  "rules-common": {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@softspark/ai-toolkit",
3
- "version": "2.4.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, Codex CLI), machine-enforced safety constitution, persona presets, skill security auditor, expanded lifecycle hooks, 11 plugin packs, and benchmark tooling.",
3
+ "version": "2.5.0",
4
+ "description": "Professional-grade AI coding toolkit: 94 skills, 44 agents, multi-platform support (Claude, Cursor, Windsurf, Copilot, Gemini, Cline, Roo Code, Aider, Augment, Google Antigravity, Codex CLI), 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",
@@ -96,17 +96,11 @@ def cmd_validate(args: list[str]) -> int:
96
96
  print(f" ✗ Merge failed: {e}")
97
97
  return 1
98
98
 
99
- checks = [
100
- ("schema valid", True),
101
- ("no forbidden overrides", True),
102
- ("constitution articles intact", True),
103
- ]
104
-
99
+ # Summary — these passed because validation above would have returned 1
100
+ print(f"schema valid")
101
+ print(f"no forbidden overrides")
105
102
  if extends:
106
- checks.append(("extends resolved", True))
107
-
108
- for label, ok in checks:
109
- print(f" {'✓' if ok else '✗'} {label}")
103
+ print(f"extends resolved")
110
104
 
111
105
  print("\n Config valid ✓")
112
106
  return 0
package/scripts/doctor.py CHANGED
@@ -454,13 +454,13 @@ def check_stale_rules(dr: DiagResult, fix_mode: bool) -> None:
454
454
  for rule_file in sorted(RULES_DIR.iterdir()):
455
455
  # Check for stale symlinks
456
456
  if rule_file.is_symlink() and not rule_file.exists():
457
- print(f" WARNING: Stale symlink: {rule_file}")
457
+ dr.warn(f"Stale symlink: {rule_file}")
458
458
  stale += 1
459
459
  if fix_mode:
460
460
  rule_file.unlink()
461
- print(" FIXED: removed stale symlink")
461
+ dr.fixed(f"removed stale symlink: {rule_file.name}")
462
462
  elif rule_file.is_file() and rule_file.stat().st_size == 0:
463
- print(f" WARNING: Empty rule file: {rule_file}")
463
+ dr.warn(f"Empty rule file: {rule_file}")
464
464
  stale += 1
465
465
 
466
466
  if stale == 0:
@@ -194,7 +194,7 @@ def run_script(script_name: str, *args: str, capture: bool = False) -> str:
194
194
  # All known editor identifiers for --editors flag
195
195
  ALL_EDITORS = [
196
196
  "copilot", "cursor", "windsurf", "cline", "roo",
197
- "aider", "augment", "antigravity", "codex",
197
+ "aider", "augment", "antigravity", "codex", "gemini",
198
198
  ]
199
199
 
200
200
  # Map of project files/dirs → editor names for auto-detection
package/scripts/plugin.py CHANGED
@@ -912,7 +912,7 @@ def cmd_status(editors: list[str]) -> None:
912
912
  print(f" Hooks: {', '.join(h.name for h in hooks)}")
913
913
  elif editor == "codex":
914
914
  rules_dir = CODEX_ROOT / ".agents" / "rules"
915
- rule_files = sorted(rules_dir.glob(f"ai-toolkit-plugin-{name}-*.md")) if rules_dir.is_dir() else []
915
+ rule_files = sorted(rules_dir.glob(f"plugin-{name}-*.md")) if rules_dir.is_dir() else []
916
916
  if rule_files:
917
917
  print(f" Rules: {', '.join(f.name for f in rule_files)}")
918
918
  if name == "memory-pack":