@softspark/ai-toolkit 4.19.0 → 4.20.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 (216) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/LICENSE +201 -21
  3. package/NOTICE +55 -0
  4. package/README.md +23 -13
  5. package/app/.claude-plugin/plugin.json +2 -2
  6. package/app/hooks/_hook-io.sh +4 -0
  7. package/app/hooks/_locate-toolkit.sh +4 -0
  8. package/app/hooks/_profile-check.sh +4 -0
  9. package/app/hooks/_search-capability.sh +4 -0
  10. package/app/hooks/_session-paths.sh +4 -0
  11. package/app/hooks/ai-toolkit-statusline.sh +4 -0
  12. package/app/hooks/commit-quality.sh +4 -0
  13. package/app/hooks/config-desync-guard.sh +4 -0
  14. package/app/hooks/governance-capture.sh +4 -0
  15. package/app/hooks/guard-config.sh +4 -0
  16. package/app/hooks/guard-destructive.sh +4 -0
  17. package/app/hooks/guard-path.sh +4 -0
  18. package/app/hooks/instructions-audit.sh +4 -0
  19. package/app/hooks/loop-guard.sh +4 -0
  20. package/app/hooks/mcp-health.sh +4 -0
  21. package/app/hooks/notify-waiting.sh +4 -0
  22. package/app/hooks/post-tool-use.sh +4 -0
  23. package/app/hooks/pre-compact-save.sh +4 -0
  24. package/app/hooks/pre-compact.sh +4 -0
  25. package/app/hooks/quality-check.sh +4 -0
  26. package/app/hooks/quality-gate.sh +4 -0
  27. package/app/hooks/revert-guard.sh +4 -0
  28. package/app/hooks/save-session.sh +4 -0
  29. package/app/hooks/search-tracker.sh +4 -0
  30. package/app/hooks/session-end.sh +4 -0
  31. package/app/hooks/session-start.sh +4 -0
  32. package/app/hooks/stop-search-check.sh +4 -0
  33. package/app/hooks/subagent-start.sh +4 -0
  34. package/app/hooks/subagent-stop.sh +4 -0
  35. package/app/hooks/test-cohesion.sh +4 -0
  36. package/app/hooks/track-usage.sh +4 -0
  37. package/app/hooks/user-prompt-submit.sh +4 -0
  38. package/app/plugins/README.md +15 -15
  39. package/app/plugins/enterprise-pack/hooks/output-style.sh +4 -0
  40. package/app/plugins/enterprise-pack/hooks/status-line.sh +4 -0
  41. package/app/plugins/memory-pack/hooks/observation-capture.sh +4 -0
  42. package/app/plugins/memory-pack/hooks/session-summary.sh +4 -0
  43. package/app/plugins/memory-pack/scripts/init_db.py +4 -0
  44. package/app/plugins/memory-pack/scripts/strip_private.py +4 -0
  45. package/app/skills/_lib/__init__.py +4 -0
  46. package/app/skills/_lib/detect_utils.py +4 -0
  47. package/app/skills/a11y-validate/scripts/a11y-scanner.py +4 -0
  48. package/app/skills/analyze/scripts/complexity.py +4 -0
  49. package/app/skills/brand-voice/scripts/measure.py +4 -0
  50. package/app/skills/build/scripts/detect-build.py +4 -0
  51. package/app/skills/ci/scripts/ci-detect.py +4 -0
  52. package/app/skills/commit/scripts/pre-commit-check.py +4 -0
  53. package/app/skills/cve-scan/scripts/cve_scan.py +4 -0
  54. package/app/skills/debug/scripts/error-parser.py +4 -0
  55. package/app/skills/deploy/scripts/pre_deploy_check.py +4 -0
  56. package/app/skills/docs/scripts/doc-inventory.py +4 -0
  57. package/app/skills/explain/scripts/dependency-graph.py +4 -0
  58. package/app/skills/explore/scripts/visualize.py +4 -0
  59. package/app/skills/fix/scripts/error-classifier.py +4 -0
  60. package/app/skills/health/scripts/health_check.py +4 -0
  61. package/app/skills/hipaa-validate/scripts/hipaa_scan.py +4 -0
  62. package/app/skills/lint/scripts/detect-linters.py +4 -0
  63. package/app/skills/migrate/scripts/migration-status.py +4 -0
  64. package/app/skills/plugin-creator/SKILL.md +18 -8
  65. package/app/skills/pr/scripts/pr-summary.py +4 -0
  66. package/app/skills/refactor/scripts/refactor-scan.py +4 -0
  67. package/app/skills/review/scripts/diff-analyzer.py +4 -0
  68. package/app/skills/rollback/scripts/rollback_info.py +4 -0
  69. package/app/skills/seo-validate/scripts/seo-scanner.py +4 -0
  70. package/app/skills/skill-creator/templates/reasoning-engine/search.py +4 -0
  71. package/app/skills/test/scripts/detect-runner.py +4 -0
  72. package/app/skills/write-a-prd/scripts/poll.js +4 -0
  73. package/benchmarks/ecosystem-doctor-snapshot.json +3 -3
  74. package/benchmarks/run.py +4 -0
  75. package/bin/ai-toolkit.js +4 -0
  76. package/kb/{planning/drop-cascade-hooks-after-sunset.md → history/completed/drop-cascade-hooks-after-sunset-20260710.md} +24 -0
  77. package/kb/{reference/language-packs.md → history/completed/language-packs-removed-20260727.md} +32 -7
  78. package/kb/{planning/mcp-context-trim-v4-prd.md → history/completed/mcp-context-trim-v4-prd-obsoleted-20260727.md} +43 -9
  79. package/kb/history/completed/no-op-plugin-packs-removed-20260727.md +127 -0
  80. package/kb/history/completed/tool-output-token-reduction-closed-20260727.md +190 -0
  81. package/kb/procedures/release-preparation-sop.md +83 -5
  82. package/kb/reference/comparison.md +1 -1
  83. package/kb/reference/enterprise-config-guide.md +1 -1
  84. package/kb/reference/licensing.md +148 -0
  85. package/kb/reference/plugin-pack-conventions.md +24 -16
  86. package/llms-full.txt +1181 -529
  87. package/llms.txt +6 -3
  88. package/manifest.json +1 -1
  89. package/package.json +3 -2
  90. package/scripts/_common.py +4 -0
  91. package/scripts/add_rule.py +4 -0
  92. package/scripts/audit_skills.py +4 -0
  93. package/scripts/benchmark_config.py +4 -0
  94. package/scripts/benchmark_ecosystem.py +4 -0
  95. package/scripts/check_deps.py +4 -0
  96. package/scripts/claude_app.py +4 -0
  97. package/scripts/codex_skill_adapter.py +4 -0
  98. package/scripts/compile_slm.py +4 -0
  99. package/scripts/config_cli.py +4 -0
  100. package/scripts/config_lock.py +4 -0
  101. package/scripts/config_merger.py +4 -0
  102. package/scripts/config_resolver.py +4 -0
  103. package/scripts/config_scaffold.py +5 -1
  104. package/scripts/config_validator.py +4 -0
  105. package/scripts/create_skill.py +4 -0
  106. package/scripts/dir_rules_shared.py +4 -0
  107. package/scripts/doctor.py +4 -0
  108. package/scripts/ecosystem_doctor.py +4 -0
  109. package/scripts/eject.py +4 -0
  110. package/scripts/emission.py +4 -0
  111. package/scripts/evaluate_skills.py +4 -0
  112. package/scripts/frontmatter.py +4 -0
  113. package/scripts/generate_agents_md.py +4 -0
  114. package/scripts/generate_aider_conf.py +4 -0
  115. package/scripts/generate_antigravity.py +4 -0
  116. package/scripts/generate_augment.py +4 -0
  117. package/scripts/generate_augment_agents.py +4 -0
  118. package/scripts/generate_augment_commands.py +4 -0
  119. package/scripts/generate_augment_hooks.py +4 -0
  120. package/scripts/generate_augment_rules.py +4 -0
  121. package/scripts/generate_augment_skills.py +4 -0
  122. package/scripts/generate_cline.py +4 -0
  123. package/scripts/generate_cline_rules.py +4 -0
  124. package/scripts/generate_cline_skills.py +4 -0
  125. package/scripts/generate_codex.py +4 -0
  126. package/scripts/generate_codex_agents.py +4 -0
  127. package/scripts/generate_codex_hooks.py +4 -0
  128. package/scripts/generate_codex_skills.py +4 -0
  129. package/scripts/generate_conventions.py +4 -0
  130. package/scripts/generate_copilot.py +4 -0
  131. package/scripts/generate_copilot_hooks.py +4 -0
  132. package/scripts/generate_cursor_agents.py +4 -0
  133. package/scripts/generate_cursor_hooks.py +4 -0
  134. package/scripts/generate_cursor_mdc.py +4 -0
  135. package/scripts/generate_cursor_rules.py +4 -0
  136. package/scripts/generate_cursor_skills.py +4 -0
  137. package/scripts/generate_devin_hooks.py +4 -0
  138. package/scripts/generate_gemini.py +4 -0
  139. package/scripts/generate_gemini_commands.py +4 -0
  140. package/scripts/generate_gemini_hooks.py +4 -0
  141. package/scripts/generate_gemini_skills.py +4 -0
  142. package/scripts/generate_language_rules_skills.py +4 -0
  143. package/scripts/generate_llms_txt.py +4 -0
  144. package/scripts/generate_opencode.py +4 -0
  145. package/scripts/generate_opencode_agents.py +4 -0
  146. package/scripts/generate_opencode_commands.py +4 -0
  147. package/scripts/generate_opencode_json.py +4 -0
  148. package/scripts/generate_opencode_plugin.py +4 -0
  149. package/scripts/generate_roo_modes.py +4 -0
  150. package/scripts/generate_roo_rules.py +4 -0
  151. package/scripts/generate_windsurf.py +4 -0
  152. package/scripts/generate_windsurf_rules.py +4 -0
  153. package/scripts/generate_windsurf_skills.py +4 -0
  154. package/scripts/generator_base.py +4 -0
  155. package/scripts/harvest_ecosystem.py +4 -0
  156. package/scripts/hook_sources.py +4 -0
  157. package/scripts/inject_hook_cli.py +4 -0
  158. package/scripts/inject_mcp_cli.py +4 -0
  159. package/scripts/inject_rule_cli.py +4 -0
  160. package/scripts/inject_section_cli.py +4 -0
  161. package/scripts/injection.py +4 -0
  162. package/scripts/install.py +4 -0
  163. package/scripts/install_git_hooks.py +4 -0
  164. package/scripts/install_steps/__init__.py +4 -0
  165. package/scripts/install_steps/ai_tools.py +4 -0
  166. package/scripts/install_steps/detect_language.py +4 -0
  167. package/scripts/install_steps/hooks.py +4 -0
  168. package/scripts/install_steps/install_state.py +4 -0
  169. package/scripts/install_steps/markers.py +4 -0
  170. package/scripts/install_steps/project_registry.py +4 -0
  171. package/scripts/install_steps/symlinks.py +4 -0
  172. package/scripts/instruction_core.py +4 -0
  173. package/scripts/mcp_editors.py +4 -0
  174. package/scripts/mcp_manager.py +4 -0
  175. package/scripts/mcp_sources.py +4 -0
  176. package/scripts/merge-hooks.py +4 -0
  177. package/scripts/migrate.py +4 -0
  178. package/scripts/output_filter_retirement.py +4 -0
  179. package/scripts/pack_codebase.py +4 -0
  180. package/scripts/paths.py +4 -0
  181. package/scripts/plugin.py +4 -0
  182. package/scripts/plugin_schema.py +4 -0
  183. package/scripts/projects_cli.py +4 -0
  184. package/scripts/propagate_global.py +4 -0
  185. package/scripts/remove_rule.py +4 -0
  186. package/scripts/rule_sources.py +4 -0
  187. package/scripts/secure_fs.py +4 -0
  188. package/scripts/session_state.py +4 -0
  189. package/scripts/session_token_stats.py +4 -0
  190. package/scripts/skill_pointer.py +4 -0
  191. package/scripts/stats.py +4 -0
  192. package/scripts/sync.py +4 -0
  193. package/scripts/test_cohesion.py +4 -0
  194. package/scripts/uninstall.py +4 -0
  195. package/scripts/update_projects.py +4 -0
  196. package/scripts/url_fetch.py +4 -0
  197. package/scripts/validate.py +4 -0
  198. package/scripts/version_check.py +4 -0
  199. package/app/plugins/csharp-pack/README.md +0 -11
  200. package/app/plugins/csharp-pack/plugin.json +0 -18
  201. package/app/plugins/frontend-pack/README.md +0 -14
  202. package/app/plugins/frontend-pack/plugin.json +0 -22
  203. package/app/plugins/java-pack/README.md +0 -11
  204. package/app/plugins/java-pack/plugin.json +0 -18
  205. package/app/plugins/kotlin-pack/README.md +0 -11
  206. package/app/plugins/kotlin-pack/plugin.json +0 -18
  207. package/app/plugins/research-pack/README.md +0 -14
  208. package/app/plugins/research-pack/plugin.json +0 -22
  209. package/app/plugins/ruby-pack/README.md +0 -11
  210. package/app/plugins/ruby-pack/plugin.json +0 -18
  211. package/app/plugins/rust-pack/README.md +0 -11
  212. package/app/plugins/rust-pack/plugin.json +0 -18
  213. package/app/plugins/security-pack/README.md +0 -15
  214. package/app/plugins/security-pack/plugin.json +0 -23
  215. package/app/plugins/swift-pack/README.md +0 -11
  216. package/app/plugins/swift-pack/plugin.json +0 -18
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Generate .opencode/agents/*.md files for opencode (https://opencode.ai).
3
7
 
4
8
  Each ai-toolkit agent becomes an opencode subagent with frontmatter:
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Generate .opencode/commands/*.md files for opencode (https://opencode.ai).
3
7
 
4
8
  User-invocable skills become opencode slash commands. Knowledge skills
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Merge MCP servers from .mcp.json into opencode.json for opencode.
3
7
 
4
8
  opencode MCP config: https://opencode.ai/docs/mcp-servers/
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Generate the ai-toolkit opencode plugin at ``.opencode/plugins/ai-toolkit-hooks.js``.
3
7
 
4
8
  opencode plugins are JS/TS modules with a NAMED export that receive a
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Generate ``.roomodes`` JSON from ``app/agents/*.md``.
3
7
 
4
8
  Roo Code's custom mode format supports these top-level properties:
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Generate .roo/rules/*.md shared rules for Roo Code.
3
7
 
4
8
  Roo Code reads shared rules from .roo/rules/*.md (applied to all modes).
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Generate .windsurfrules from app/agents/*.md and app/skills/*/SKILL.md.
3
7
 
4
8
  Usage: ./scripts/generate_windsurf.py > .windsurfrules
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Generate ``.devin/rules/*.md`` and ``.windsurf/rules/*.md`` (and workflows)
3
7
  for Devin Desktop (formerly Windsurf).
4
8
 
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Generate a Devin/Windsurf skill pointer.
3
7
 
4
8
  Current Devin docs list ``.windsurf/skills/`` as a supported cross-tool skill
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Shared generator pipeline for producing AI tool configs.
2
6
 
3
7
  Each generator declares its output format via a config dict.
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """harvest-ecosystem — Refresh machine-readable ecosystem snapshot.
3
7
 
4
8
  Usage:
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """URL source registry for remotely-sourced hooks.
3
7
 
4
8
  Tracks which hooks were registered from a URL so that `ai-toolkit update`
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Inject external hooks into Claude settings and native Codex hooks.
3
7
 
4
8
  Allows external tools (MCP servers, plugins, etc.) to register their own
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Inject external MCP server templates into .mcp.json and all editor configs.
3
7
 
4
8
  Allows external tools (MCP servers, plugins) to register their own MCP server
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """CLI wrapper around inject_rule() and remove_rule_section() from _common.
3
7
 
4
8
  Injects a rule file into CLAUDE.md using idempotent marker-based injection.
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """CLI wrapper around inject_section() from _common.
3
7
 
4
8
  Injects content between TOOLKIT markers into any file.
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Marker-based section injection and rule management.
2
6
 
3
7
  Handles idempotent injection of content between TOOLKIT markers
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """AI Toolkit Installer.
3
7
 
4
8
  Installs toolkit GLOBALLY -- Claude Code + all supported AI tools.
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Install a fallback pre-commit hook for the ai-toolkit.
3
7
 
4
8
  Used for non-Claude editors to enforce the constitution and quality gates.
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Install step modules.
2
6
 
3
7
  Each module handles one installation concern.
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Install global and project-local AI tool configs."""
2
6
  from __future__ import annotations
3
7
 
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Detect project language from file markers and source file extensions."""
2
6
  from __future__ import annotations
3
7
 
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Hook installation: copy scripts, merge JSON, output styles."""
2
6
  from __future__ import annotations
3
7
 
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Track installed modules and versions in ~/.softspark/ai-toolkit/state.json."""
2
6
  from __future__ import annotations
3
7
 
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Marker file injection and rule installation."""
2
6
  from __future__ import annotations
3
7
 
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Project registry — tracks which directories have ai-toolkit installed locally.
2
6
 
3
7
  Stores registry in ~/.softspark/ai-toolkit/projects.json.
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Agent and skill symlink management."""
2
6
  from __future__ import annotations
3
7
 
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Render shared editor instructions from canonical ai-toolkit sources."""
2
6
  from __future__ import annotations
3
7
 
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Editor-specific MCP config adapters for ai-toolkit."""
3
7
 
4
8
  from __future__ import annotations
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """MCP template manager -- add, remove, inspect, and install MCP configs.
3
7
 
4
8
  Usage:
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """URL source registry for externally-injected MCP templates.
3
7
 
4
8
  Tracks which MCP templates were registered from a URL or local file so that
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Merge ai-toolkit hooks into a settings.json file (or strip them).
3
7
 
4
8
  Usage:
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Migrate ai-toolkit data from ~/.ai-toolkit to ~/.softspark/ai-toolkit.
3
7
 
4
8
  Called automatically by install.py and ai-toolkit.js on first run.
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Retirement cleanup for the v4.16.x native tool-output filter.
2
6
 
3
7
  v4.16.0 and v4.16.1 installed a PostToolUse filter that wrote files outside the
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Pack a codebase into a single AI-friendly markdown file under a token budget.
3
7
 
4
8
  Walks the current working directory (or --root), respects .gitignore, ranks files
package/scripts/paths.py CHANGED
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Centralized path constants for ai-toolkit.
2
6
 
3
7
  All scripts MUST import paths from here — never hardcode ~/.ai-toolkit or
package/scripts/plugin.py CHANGED
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """ai-toolkit plugin — install, remove, update, clean, and list plugin packs.
3
7
 
4
8
  Usage:
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Plugin manifest schema validation.
2
6
 
3
7
  Single source of truth for validating plugin.json manifests.
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """CLI for managing the ai-toolkit project registry.
3
7
 
4
8
  Usage:
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Propagate rules, hooks, and MCP configs to all globally installed editors.
3
7
 
4
8
  Called automatically after inject-rule, inject-hook, add-rule, remove-rule,
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """remove-rule -- Unregister a rule (opposite of add-rule).
3
7
 
4
8
  Removes the rule file from ~/.softspark/ai-toolkit/rules/ (so it is no longer
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """URL source registry for remotely-sourced rules.
3
7
 
4
8
  Tracks which rules were registered from a URL so that `ai-toolkit update`
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Pinned-directory filesystem mutations for trusted configuration roots.
2
6
 
3
7
  All mutating syscalls operate relative to directory descriptors opened with
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Session edit state tracker for ai-toolkit hooks.
3
7
 
4
8
  Stores per-session file edits so hooks can:
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Read Claude Code session JSONL files and report real token usage.
3
7
 
4
8
  Claude Code writes one JSONL line per message to:
@@ -1,3 +1,7 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
3
+ # Source: https://github.com/softspark/ai-toolkit
4
+
1
5
  """Shared generator for editor-native ai-toolkit skill catalogue pointers."""
2
6
  from __future__ import annotations
3
7
 
package/scripts/stats.py CHANGED
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """ai-toolkit stats -- Show skill usage statistics.
3
7
 
4
8
  Reads ~/.softspark/ai-toolkit/stats.json (populated by track-usage.sh hook)
package/scripts/sync.py CHANGED
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """ai-toolkit sync — Sync config to/from GitHub Gist.
3
7
 
4
8
  Usage:
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Test cohesion resolver for ai-toolkit hooks.
3
7
 
4
8
  Reads a project-local or toolkit-default test-cohesion-map and answers:
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Safely remove ai-toolkit-managed runtime data and customizations.
3
7
 
4
8
  The default scope is the current user's global install. ``--local`` targets a
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Update all registered projects in parallel.
3
7
 
4
8
  Reads ~/.softspark/ai-toolkit/projects.json and runs install.py --local in each
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Shared URL fetch utility for ai-toolkit.
3
7
 
4
8
  HTTPS-only, timeout-capped, size-limited fetcher used by both
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """AI Toolkit Validator.
3
7
 
4
8
  Checks all agent and skill files for correctness, validates hook events,
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2024-2026 Lukasz Krzemien (biuro@softspark.eu)
4
+ # Source: https://github.com/softspark/ai-toolkit
5
+
2
6
  """Check if a newer version of ai-toolkit is available on npm.
3
7
 
4
8
  Caches the result for 24 hours to avoid hitting npm on every session.
@@ -1,11 +0,0 @@
1
- # csharp-pack
2
-
3
- Curated C# and .NET development patterns pack.
4
-
5
- ## Includes
6
- - Skills: `csharp-patterns`
7
-
8
- ## Use When
9
- - writing C# code and need idiomatic .NET patterns,
10
- - setting up new ASP.NET Core or Entity Framework projects,
11
- - reviewing C# code for nullable reference types, async/await, and LINQ best practices.
@@ -1,18 +0,0 @@
1
- {
2
- "name": "csharp-pack",
3
- "description": "Domain plugin pack for C# and .NET development patterns.",
4
- "version": "1.0.0",
5
- "domain": "csharp",
6
- "type": "plugin-pack",
7
- "status": "experimental",
8
- "requires": {
9
- "ai-toolkit": ">=1.0.0",
10
- "claude-code": ">=1.0.33"
11
- },
12
- "includes": {
13
- "agents": [],
14
- "skills": ["csharp-patterns"],
15
- "rules": [],
16
- "hooks": []
17
- }
18
- }
@@ -1,14 +0,0 @@
1
- # frontend-pack
2
-
3
- Curated frontend delivery pack.
4
-
5
- ## Includes
6
- - Agents: `frontend-specialist`, `seo-specialist`, `code-reviewer`
7
- - Skills: `design-engineering`, `typescript-patterns`, `/docs`
8
- - Hooks: `post-tool-use.sh`
9
-
10
- ## Use When
11
- - shipping UI-heavy features,
12
- - enforcing accessibility and responsive behavior,
13
- - reviewing frontend quality and polish.
14
-
@@ -1,22 +0,0 @@
1
- {
2
- "name": "frontend-pack",
3
- "description": "Domain plugin pack for UI architecture, design quality, accessibility, and frontend delivery workflows.",
4
- "version": "1.0.0",
5
- "domain": "frontend",
6
- "type": "plugin-pack",
7
- "status": "experimental",
8
- "requires": {
9
- "ai-toolkit": ">=1.0.0",
10
- "claude-code": ">=1.0.33"
11
- },
12
- "includes": {
13
- "agents": ["frontend-specialist", "seo-specialist", "code-reviewer"],
14
- "skills": ["design-engineering", "typescript-patterns", "docs"],
15
- "rules": [],
16
- "hooks": ["post-tool-use.sh"]
17
- },
18
- "hook_events": {
19
- "post-tool-use.sh": "PostToolUse"
20
- }
21
- }
22
-
@@ -1,11 +0,0 @@
1
- # java-pack
2
-
3
- Curated Java development patterns pack.
4
-
5
- ## Includes
6
- - Skills: `java-patterns`
7
-
8
- ## Use When
9
- - writing Java code and need modern idioms (records, sealed classes, virtual threads),
10
- - setting up new Maven or Gradle projects,
11
- - reviewing Java code for Spring Boot and JUnit 5 best practices.
@@ -1,18 +0,0 @@
1
- {
2
- "name": "java-pack",
3
- "description": "Domain plugin pack for Java development patterns and idiomatic conventions.",
4
- "version": "1.0.0",
5
- "domain": "java",
6
- "type": "plugin-pack",
7
- "status": "experimental",
8
- "requires": {
9
- "ai-toolkit": ">=1.0.0",
10
- "claude-code": ">=1.0.33"
11
- },
12
- "includes": {
13
- "agents": [],
14
- "skills": ["java-patterns"],
15
- "rules": [],
16
- "hooks": []
17
- }
18
- }