@softspark/ai-toolkit 1.0.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 (327) hide show
  1. package/AGENTS.md +412 -0
  2. package/CHANGELOG.md +68 -0
  3. package/LICENSE +21 -0
  4. package/README.md +632 -0
  5. package/action.yml +53 -0
  6. package/app/.claude-plugin/plugin.json +44 -0
  7. package/app/ARCHITECTURE.md +306 -0
  8. package/app/CLAUDE.md.template +23 -0
  9. package/app/agents/ai-engineer.md +128 -0
  10. package/app/agents/backend-specialist.md +193 -0
  11. package/app/agents/business-intelligence.md +54 -0
  12. package/app/agents/chaos-monkey.md +67 -0
  13. package/app/agents/chief-of-staff.md +51 -0
  14. package/app/agents/code-archaeologist.md +127 -0
  15. package/app/agents/code-reviewer.md +184 -0
  16. package/app/agents/command-expert.md +131 -0
  17. package/app/agents/data-analyst.md +205 -0
  18. package/app/agents/data-scientist.md +151 -0
  19. package/app/agents/database-architect.md +317 -0
  20. package/app/agents/debugger.md +238 -0
  21. package/app/agents/devops-implementer.md +194 -0
  22. package/app/agents/documenter.md +364 -0
  23. package/app/agents/explorer-agent.md +145 -0
  24. package/app/agents/fact-checker.md +172 -0
  25. package/app/agents/frontend-specialist.md +209 -0
  26. package/app/agents/game-developer.md +216 -0
  27. package/app/agents/incident-responder.md +226 -0
  28. package/app/agents/infrastructure-architect.md +127 -0
  29. package/app/agents/infrastructure-validator.md +247 -0
  30. package/app/agents/llm-ops-engineer.md +237 -0
  31. package/app/agents/mcp-expert.md +228 -0
  32. package/app/agents/mcp-server-architect.md +195 -0
  33. package/app/agents/mcp-testing-engineer.md +292 -0
  34. package/app/agents/meta-architect.md +58 -0
  35. package/app/agents/ml-engineer.md +136 -0
  36. package/app/agents/mobile-developer.md +190 -0
  37. package/app/agents/night-watchman.md +55 -0
  38. package/app/agents/nlp-engineer.md +154 -0
  39. package/app/agents/orchestrator.md +437 -0
  40. package/app/agents/performance-optimizer.md +254 -0
  41. package/app/agents/predictive-analyst.md +57 -0
  42. package/app/agents/product-manager.md +194 -0
  43. package/app/agents/project-planner.md +287 -0
  44. package/app/agents/prompt-engineer.md +103 -0
  45. package/app/agents/qa-automation-engineer.md +182 -0
  46. package/app/agents/rag-engineer.md +201 -0
  47. package/app/agents/research-synthesizer.md +138 -0
  48. package/app/agents/search-specialist.md +101 -0
  49. package/app/agents/security-architect.md +62 -0
  50. package/app/agents/security-auditor.md +293 -0
  51. package/app/agents/seo-specialist.md +111 -0
  52. package/app/agents/system-governor.md +57 -0
  53. package/app/agents/tech-lead.md +62 -0
  54. package/app/agents/technical-researcher.md +103 -0
  55. package/app/agents/test-engineer.md +264 -0
  56. package/app/constitution.md +38 -0
  57. package/app/hooks/_profile-check.sh +11 -0
  58. package/app/hooks/guard-destructive.sh +74 -0
  59. package/app/hooks/guard-path.sh +73 -0
  60. package/app/hooks/post-tool-use.sh +35 -0
  61. package/app/hooks/pre-compact.sh +31 -0
  62. package/app/hooks/quality-check.sh +22 -0
  63. package/app/hooks/quality-gate.sh +49 -0
  64. package/app/hooks/save-session.sh +24 -0
  65. package/app/hooks/session-end.sh +37 -0
  66. package/app/hooks/session-start.sh +29 -0
  67. package/app/hooks/subagent-start.sh +16 -0
  68. package/app/hooks/subagent-stop.sh +16 -0
  69. package/app/hooks/track-usage.sh +50 -0
  70. package/app/hooks/user-prompt-submit.sh +25 -0
  71. package/app/hooks.json +178 -0
  72. package/app/mcp-defaults.json +23 -0
  73. package/app/output-styles/golden-rules.md +43 -0
  74. package/app/plugins/README.md +19 -0
  75. package/app/plugins/csharp-pack/README.md +11 -0
  76. package/app/plugins/csharp-pack/plugin.json +18 -0
  77. package/app/plugins/enterprise-pack/README.md +16 -0
  78. package/app/plugins/enterprise-pack/hooks/output-style.sh +6 -0
  79. package/app/plugins/enterprise-pack/hooks/status-line.sh +8 -0
  80. package/app/plugins/enterprise-pack/plugin.json +24 -0
  81. package/app/plugins/frontend-pack/README.md +14 -0
  82. package/app/plugins/frontend-pack/plugin.json +22 -0
  83. package/app/plugins/java-pack/README.md +11 -0
  84. package/app/plugins/java-pack/plugin.json +18 -0
  85. package/app/plugins/kotlin-pack/README.md +11 -0
  86. package/app/plugins/kotlin-pack/plugin.json +18 -0
  87. package/app/plugins/memory-pack/README.md +24 -0
  88. package/app/plugins/memory-pack/hooks/observation-capture.sh +67 -0
  89. package/app/plugins/memory-pack/hooks/session-summary.sh +71 -0
  90. package/app/plugins/memory-pack/plugin.json +22 -0
  91. package/app/plugins/memory-pack/scripts/init_db.py +81 -0
  92. package/app/plugins/memory-pack/scripts/strip_private.py +22 -0
  93. package/app/plugins/memory-pack/skills/mem-search/SKILL.md +70 -0
  94. package/app/plugins/research-pack/README.md +14 -0
  95. package/app/plugins/research-pack/plugin.json +22 -0
  96. package/app/plugins/ruby-pack/README.md +11 -0
  97. package/app/plugins/ruby-pack/plugin.json +18 -0
  98. package/app/plugins/rust-pack/README.md +11 -0
  99. package/app/plugins/rust-pack/plugin.json +18 -0
  100. package/app/plugins/security-pack/README.md +15 -0
  101. package/app/plugins/security-pack/plugin.json +23 -0
  102. package/app/plugins/swift-pack/README.md +11 -0
  103. package/app/plugins/swift-pack/plugin.json +18 -0
  104. package/app/rules/claude-toolkit-rules.md +21 -0
  105. package/app/rules/git-conventions.md +5 -0
  106. package/app/rules/quality-gates.md +10 -0
  107. package/app/skills/_lib/__init__.py +1 -0
  108. package/app/skills/_lib/detect_utils.py +150 -0
  109. package/app/skills/agent-creator/SKILL.md +82 -0
  110. package/app/skills/analyze/SKILL.md +92 -0
  111. package/app/skills/analyze/scripts/complexity.py +165 -0
  112. package/app/skills/api-patterns/SKILL.md +305 -0
  113. package/app/skills/app-builder/SKILL.md +187 -0
  114. package/app/skills/architecture-audit/SKILL.md +141 -0
  115. package/app/skills/architecture-decision/SKILL.md +55 -0
  116. package/app/skills/architecture-decision/templates/adr-template.md +36 -0
  117. package/app/skills/biz-scan/SKILL.md +30 -0
  118. package/app/skills/briefing/SKILL.md +27 -0
  119. package/app/skills/build/SKILL.md +97 -0
  120. package/app/skills/build/scripts/detect-build.py +151 -0
  121. package/app/skills/chaos/SKILL.md +32 -0
  122. package/app/skills/ci/SKILL.md +77 -0
  123. package/app/skills/ci/scripts/ci-detect.py +135 -0
  124. package/app/skills/ci/templates/github-actions-node.yml +38 -0
  125. package/app/skills/ci/templates/github-actions-python.yml +42 -0
  126. package/app/skills/ci-cd-patterns/SKILL.md +299 -0
  127. package/app/skills/clean-code/SKILL.md +110 -0
  128. package/app/skills/clean-code/reference/dart.md +18 -0
  129. package/app/skills/clean-code/reference/go.md +23 -0
  130. package/app/skills/clean-code/reference/php.md +32 -0
  131. package/app/skills/clean-code/reference/python.md +180 -0
  132. package/app/skills/clean-code/reference/typescript.md +26 -0
  133. package/app/skills/command-creator/SKILL.md +83 -0
  134. package/app/skills/commit/SKILL.md +98 -0
  135. package/app/skills/commit/scripts/pre-commit-check.py +87 -0
  136. package/app/skills/commit/templates/conventional-commit.md +52 -0
  137. package/app/skills/csharp-patterns/SKILL.md +450 -0
  138. package/app/skills/database-patterns/SKILL.md +297 -0
  139. package/app/skills/debug/SKILL.md +154 -0
  140. package/app/skills/debug/scripts/error-parser.py +187 -0
  141. package/app/skills/debugging-tactics/SKILL.md +136 -0
  142. package/app/skills/deploy/SKILL.md +130 -0
  143. package/app/skills/deploy/scripts/pre_deploy_check.py +171 -0
  144. package/app/skills/deploy/templates/deployment-checklist.md +31 -0
  145. package/app/skills/design-an-interface/SKILL.md +105 -0
  146. package/app/skills/design-engineering/SKILL.md +260 -0
  147. package/app/skills/docker-devops/SKILL.md +303 -0
  148. package/app/skills/docs/SKILL.md +145 -0
  149. package/app/skills/docs/scripts/doc-inventory.py +176 -0
  150. package/app/skills/docs/templates/adr-template.md +36 -0
  151. package/app/skills/docs/templates/readme-template.md +67 -0
  152. package/app/skills/documentation-standards/SKILL.md +191 -0
  153. package/app/skills/ecommerce-patterns/SKILL.md +209 -0
  154. package/app/skills/evaluate/SKILL.md +132 -0
  155. package/app/skills/evolve/SKILL.md +27 -0
  156. package/app/skills/explain/SKILL.md +54 -0
  157. package/app/skills/explain/scripts/dependency-graph.py +215 -0
  158. package/app/skills/explore/SKILL.md +112 -0
  159. package/app/skills/explore/scripts/visualize.py +117 -0
  160. package/app/skills/fix/SKILL.md +78 -0
  161. package/app/skills/fix/scripts/error-classifier.py +191 -0
  162. package/app/skills/flutter-patterns/SKILL.md +254 -0
  163. package/app/skills/git-mastery/SKILL.md +70 -0
  164. package/app/skills/grill-me/SKILL.md +38 -0
  165. package/app/skills/health/SKILL.md +91 -0
  166. package/app/skills/health/scripts/health_check.py +162 -0
  167. package/app/skills/hive-mind/SKILL.md +56 -0
  168. package/app/skills/hook-creator/SKILL.md +107 -0
  169. package/app/skills/index/SKILL.md +74 -0
  170. package/app/skills/instinct-review/SKILL.md +77 -0
  171. package/app/skills/java-patterns/SKILL.md +442 -0
  172. package/app/skills/kotlin-patterns/SKILL.md +446 -0
  173. package/app/skills/lint/SKILL.md +103 -0
  174. package/app/skills/lint/scripts/detect-linters.py +112 -0
  175. package/app/skills/mcp-patterns/SKILL.md +270 -0
  176. package/app/skills/mem-search/SKILL.md +70 -0
  177. package/app/skills/migrate/SKILL.md +90 -0
  178. package/app/skills/migrate/scripts/migration-status.py +195 -0
  179. package/app/skills/migration-patterns/SKILL.md +260 -0
  180. package/app/skills/night-watch/SKILL.md +28 -0
  181. package/app/skills/observability-patterns/SKILL.md +203 -0
  182. package/app/skills/onboard/SKILL.md +76 -0
  183. package/app/skills/orchestrate/SKILL.md +86 -0
  184. package/app/skills/panic/SKILL.md +30 -0
  185. package/app/skills/performance-profiling/SKILL.md +59 -0
  186. package/app/skills/plan/SKILL.md +110 -0
  187. package/app/skills/plan/templates/plan-template.md +40 -0
  188. package/app/skills/plan-writing/SKILL.md +201 -0
  189. package/app/skills/plugin-creator/SKILL.md +78 -0
  190. package/app/skills/pr/SKILL.md +129 -0
  191. package/app/skills/pr/scripts/pr-summary.py +175 -0
  192. package/app/skills/prd-to-issues/SKILL.md +108 -0
  193. package/app/skills/prd-to-plan/SKILL.md +120 -0
  194. package/app/skills/predict/SKILL.md +30 -0
  195. package/app/skills/qa-session/SKILL.md +110 -0
  196. package/app/skills/rag-patterns/SKILL.md +203 -0
  197. package/app/skills/refactor/SKILL.md +124 -0
  198. package/app/skills/refactor/scripts/refactor-scan.py +210 -0
  199. package/app/skills/refactor-plan/SKILL.md +112 -0
  200. package/app/skills/repeat/SKILL.md +149 -0
  201. package/app/skills/research-mastery/SKILL.md +56 -0
  202. package/app/skills/review/SKILL.md +141 -0
  203. package/app/skills/review/scripts/diff-analyzer.py +170 -0
  204. package/app/skills/rollback/SKILL.md +87 -0
  205. package/app/skills/rollback/scripts/rollback_info.py +149 -0
  206. package/app/skills/ruby-patterns/SKILL.md +454 -0
  207. package/app/skills/rust-patterns/SKILL.md +446 -0
  208. package/app/skills/search/SKILL.md +64 -0
  209. package/app/skills/security-patterns/SKILL.md +91 -0
  210. package/app/skills/security-patterns/reference/authentication.md +37 -0
  211. package/app/skills/security-patterns/reference/authorization.md +22 -0
  212. package/app/skills/security-patterns/reference/input-validation.md +30 -0
  213. package/app/skills/security-patterns/reference/oauth-csrf-audit.md +131 -0
  214. package/app/skills/skill-creator/SKILL.md +154 -0
  215. package/app/skills/skill-creator/templates/dashboard/index.html +130 -0
  216. package/app/skills/skill-creator/templates/reasoning-engine/assets/example.json +12 -0
  217. package/app/skills/skill-creator/templates/reasoning-engine/search.py +110 -0
  218. package/app/skills/subagent-development/SKILL.md +225 -0
  219. package/app/skills/subagent-development/reference/code-quality-reviewer-prompt.md +145 -0
  220. package/app/skills/subagent-development/reference/implementer-prompt.md +118 -0
  221. package/app/skills/subagent-development/reference/spec-reviewer-prompt.md +100 -0
  222. package/app/skills/swarm/SKILL.md +81 -0
  223. package/app/skills/swift-patterns/SKILL.md +500 -0
  224. package/app/skills/tdd/SKILL.md +174 -0
  225. package/app/skills/tdd/reference/deep-modules.md +32 -0
  226. package/app/skills/tdd/reference/interface-design.md +32 -0
  227. package/app/skills/tdd/reference/mocking.md +52 -0
  228. package/app/skills/tdd/reference/refactoring.md +10 -0
  229. package/app/skills/tdd/reference/tests.md +59 -0
  230. package/app/skills/teams/SKILL.md +101 -0
  231. package/app/skills/test/SKILL.md +107 -0
  232. package/app/skills/test/scripts/detect-runner.py +113 -0
  233. package/app/skills/testing-patterns/SKILL.md +73 -0
  234. package/app/skills/testing-patterns/reference/flutter-testing.md +33 -0
  235. package/app/skills/testing-patterns/reference/go-testing.md +52 -0
  236. package/app/skills/testing-patterns/reference/php-phpunit.md +39 -0
  237. package/app/skills/testing-patterns/reference/python-pytest.md +228 -0
  238. package/app/skills/testing-patterns/reference/typescript-vitest.md +50 -0
  239. package/app/skills/triage-issue/SKILL.md +120 -0
  240. package/app/skills/typescript-patterns/SKILL.md +256 -0
  241. package/app/skills/ubiquitous-language/SKILL.md +74 -0
  242. package/app/skills/verification-before-completion/SKILL.md +108 -0
  243. package/app/skills/workflow/SKILL.md +250 -0
  244. package/app/skills/write-a-prd/SKILL.md +129 -0
  245. package/app/skills/write-a-prd/reference/visual-companion.md +78 -0
  246. package/app/skills/write-a-prd/scripts/frame-template.html +111 -0
  247. package/app/skills/write-a-prd/scripts/visual-server.cjs +79 -0
  248. package/app/templates/skill/generator/SKILL.md.template +40 -0
  249. package/app/templates/skill/knowledge/SKILL.md.template +52 -0
  250. package/app/templates/skill/linter/SKILL.md.template +34 -0
  251. package/app/templates/skill/reviewer/SKILL.md.template +51 -0
  252. package/app/templates/skill/workflow/SKILL.md.template +49 -0
  253. package/benchmarks/README.md +111 -0
  254. package/benchmarks/ecosystem-dashboard.json +148 -0
  255. package/benchmarks/ecosystem-harvest.json +148 -0
  256. package/benchmarks/results.json +38 -0
  257. package/benchmarks/run.py +351 -0
  258. package/bin/ai-toolkit.js +345 -0
  259. package/kb/best-practices/README.md +11 -0
  260. package/kb/howto/README.md +11 -0
  261. package/kb/procedures/maintenance-sop.md +306 -0
  262. package/kb/reference/agents-catalog.md +124 -0
  263. package/kb/reference/anti-pattern-registry-format.md +221 -0
  264. package/kb/reference/architecture-overview.md +232 -0
  265. package/kb/reference/benchmark-config.md +62 -0
  266. package/kb/reference/ci-integration.md +66 -0
  267. package/kb/reference/claude-ecosystem-benchmark-snapshot.md +80 -0
  268. package/kb/reference/claude-ecosystem-expansion-foundations.md +102 -0
  269. package/kb/reference/commands-catalog.md +21 -0
  270. package/kb/reference/distribution-model.md +63 -0
  271. package/kb/reference/global-install-model.md +56 -0
  272. package/kb/reference/hierarchical-override-pattern.md +200 -0
  273. package/kb/reference/hooks-catalog.md +306 -0
  274. package/kb/reference/integrations.md +88 -0
  275. package/kb/reference/language-packs.md +52 -0
  276. package/kb/reference/merge-friendly-install-model.md +58 -0
  277. package/kb/reference/plugin-pack-conventions.md +151 -0
  278. package/kb/reference/quick-wins-implementation-summary.md +70 -0
  279. package/kb/reference/skill-templates.md +50 -0
  280. package/kb/reference/skills-catalog.md +215 -0
  281. package/kb/reference/skills-unification.md +57 -0
  282. package/kb/reference/stats.md +69 -0
  283. package/kb/reference/sync.md +76 -0
  284. package/kb/troubleshooting/README.md +11 -0
  285. package/llms-full.txt +3068 -0
  286. package/llms.txt +39 -0
  287. package/package.json +75 -0
  288. package/scripts/_common.py +160 -0
  289. package/scripts/add_rule.py +50 -0
  290. package/scripts/benchmark_config.py +127 -0
  291. package/scripts/benchmark_ecosystem.py +288 -0
  292. package/scripts/check_deps.py +260 -0
  293. package/scripts/create_skill.py +118 -0
  294. package/scripts/doctor.py +504 -0
  295. package/scripts/eject.py +113 -0
  296. package/scripts/emission.py +256 -0
  297. package/scripts/evaluate_skills.py +260 -0
  298. package/scripts/frontmatter.py +58 -0
  299. package/scripts/generate_agents_md.py +91 -0
  300. package/scripts/generate_aider_conf.py +51 -0
  301. package/scripts/generate_cline.py +35 -0
  302. package/scripts/generate_copilot.py +30 -0
  303. package/scripts/generate_cursor_rules.py +35 -0
  304. package/scripts/generate_gemini.py +28 -0
  305. package/scripts/generate_llms_txt.py +164 -0
  306. package/scripts/generate_roo_modes.py +80 -0
  307. package/scripts/generate_windsurf.py +35 -0
  308. package/scripts/generator_base.py +140 -0
  309. package/scripts/harvest_ecosystem.py +50 -0
  310. package/scripts/inject_rule_cli.py +101 -0
  311. package/scripts/inject_section_cli.py +47 -0
  312. package/scripts/injection.py +180 -0
  313. package/scripts/install.py +236 -0
  314. package/scripts/install_git_hooks.py +71 -0
  315. package/scripts/install_steps/__init__.py +5 -0
  316. package/scripts/install_steps/ai_tools.py +261 -0
  317. package/scripts/install_steps/hooks.py +90 -0
  318. package/scripts/install_steps/markers.py +79 -0
  319. package/scripts/install_steps/symlinks.py +87 -0
  320. package/scripts/merge-hooks.py +192 -0
  321. package/scripts/plugin.py +642 -0
  322. package/scripts/plugin_schema.py +138 -0
  323. package/scripts/remove_rule.py +58 -0
  324. package/scripts/stats.py +81 -0
  325. package/scripts/sync.py +215 -0
  326. package/scripts/uninstall.py +292 -0
  327. package/scripts/validate.py +700 -0
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env bash
2
+ # session-start.sh — Inject mandatory rules reminder + session context on startup/compact.
3
+ #
4
+ # Fires on: SessionStart (startup|compact)
5
+ # Output goes to Claude's context as plain text.
6
+
7
+ # 1. Mandatory rules reminder
8
+ echo "MANDATORY: Before answering ANY technical question, apply ALL rules from your CLAUDE.md files (global + project). Follow the exact order of operations defined there. Do NOT skip mandatory steps even if you think you already know the answer."
9
+ echo "REMINDER: When writing features or fixing bugs, ensure tests cover the changes. When modifying API, config, or setup, update relevant documentation. Propose these steps to the user — do not silently skip them."
10
+
11
+ # 2. Load session context (if available)
12
+ SESSION_FILE=".claude/session-context.md"
13
+ if [ -f "$SESSION_FILE" ]; then
14
+ echo "=== Session Context ==="
15
+ cat "$SESSION_FILE"
16
+ echo "====================="
17
+ fi
18
+
19
+ # 3. Load active instincts (if any)
20
+ INSTINCTS_DIR=".claude/instincts"
21
+ if [ -d "$INSTINCTS_DIR" ] && ls "$INSTINCTS_DIR"/*.md >/dev/null 2>&1; then
22
+ echo "=== Active Instincts ==="
23
+ for f in "$INSTINCTS_DIR"/*.md; do
24
+ echo "- $(head -1 "$f")"
25
+ done
26
+ echo "========================"
27
+ fi
28
+
29
+ exit 0
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env bash
2
+ # subagent-start.sh — Remind subagents to stay scoped and evidence-driven.
3
+ #
4
+ # Fires on: SubagentStart
5
+ # Matcher: all
6
+ # Skipped when TOOLKIT_HOOK_PROFILE=minimal.
7
+
8
+ # shellcheck source=_profile-check.sh
9
+ source "$(dirname "$0")/_profile-check.sh"
10
+
11
+ SUBAGENT="${CLAUDE_SUBAGENT_NAME:-${CLAUDE_TOOL_INPUT_SUBAGENT_TYPE:-subagent}}"
12
+
13
+ echo "SubagentStart: ${SUBAGENT} owns a narrow scope. Read only the necessary files first, cite evidence, and return explicit validation notes with any edits."
14
+
15
+ exit 0
16
+
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env bash
2
+ # subagent-stop.sh — Enforce a concise completion checklist for subagents.
3
+ #
4
+ # Fires on: SubagentStop
5
+ # Matcher: all
6
+ # Skipped when TOOLKIT_HOOK_PROFILE=minimal.
7
+
8
+ # shellcheck source=_profile-check.sh
9
+ source "$(dirname "$0")/_profile-check.sh"
10
+
11
+ SUBAGENT="${CLAUDE_SUBAGENT_NAME:-${CLAUDE_TOOL_INPUT_SUBAGENT_TYPE:-subagent}}"
12
+
13
+ echo "SubagentStop: ${SUBAGENT} should report findings, exact files touched, tests run, remaining risks, and any docs that must be updated by the lead agent."
14
+
15
+ exit 0
16
+
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env bash
2
+ # track-usage.sh — Track skill invocations for usage stats.
3
+ #
4
+ # Fires on: UserPromptSubmit
5
+ # Writes to: ~/.ai-toolkit/stats.json
6
+ #
7
+ # Detects /skill-name pattern from user prompt and increments counter.
8
+ # Uses atomic write via python3 os.replace() to prevent corruption.
9
+
10
+ STATS_FILE="${HOME}/.ai-toolkit/stats.json"
11
+ PROMPT_TEXT="${CLAUDE_USER_PROMPT:-${CLAUDE_PROMPT:-}}"
12
+
13
+ # Only track if prompt starts with a slash command
14
+ SKILL_NAME=$(printf '%s' "$PROMPT_TEXT" | grep -oE '^/[a-z][a-z0-9-]*' | head -1 | sed 's|^/||')
15
+ [ -z "$SKILL_NAME" ] && exit 0
16
+
17
+ # Ensure directory exists
18
+ mkdir -p "$(dirname "$STATS_FILE")"
19
+
20
+ # Atomic update via python3
21
+ python3 - "$STATS_FILE" "$SKILL_NAME" <<'PY'
22
+ import json
23
+ import sys
24
+ import os
25
+ from datetime import datetime, timezone
26
+
27
+ stats_file = sys.argv[1]
28
+ skill = sys.argv[2]
29
+
30
+ data = {}
31
+ if os.path.exists(stats_file):
32
+ try:
33
+ with open(stats_file) as f:
34
+ data = json.load(f)
35
+ except (json.JSONDecodeError, IOError):
36
+ data = {}
37
+
38
+ now = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S")
39
+ if skill not in data:
40
+ data[skill] = {"count": 0, "last_used": now}
41
+ data[skill]["count"] += 1
42
+ data[skill]["last_used"] = now
43
+
44
+ tmp = stats_file + ".tmp"
45
+ with open(tmp, "w") as f:
46
+ json.dump(data, f, indent=2)
47
+ os.replace(tmp, stats_file)
48
+ PY
49
+
50
+ exit 0
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env bash
2
+ # user-prompt-submit.sh — Lightweight prompt governance reminder before execution.
3
+ #
4
+ # Fires on: UserPromptSubmit
5
+ # Matcher: all
6
+ # Skipped when TOOLKIT_HOOK_PROFILE=minimal.
7
+
8
+ # shellcheck source=_profile-check.sh
9
+ source "$(dirname "$0")/_profile-check.sh"
10
+
11
+ PROMPT_TEXT="${CLAUDE_USER_PROMPT:-${CLAUDE_PROMPT:-}}"
12
+ LOWERED="$(printf '%s' "$PROMPT_TEXT" | tr '[:upper:]' '[:lower:]')"
13
+
14
+ echo "STOP. Execute Step 0 before responding: check your CLAUDE.md for search-first rules. If search-first rules exist, call the required search tool NOW — before any other tool or text output. If you skip this step, the user will interrupt you."
15
+
16
+ if printf '%s' "$LOWERED" | grep -Eq 'architecture|design|migration|deploy|rollback|refactor|plugin|workflow'; then
17
+ echo "UserPromptSubmit: task looks architectural or multi-step. Use plan mode, define success criteria, and validate before marking done."
18
+ elif printf '%s' "$LOWERED" | grep -Eq 'bug|error|fail|failing|incident|outage|debug'; then
19
+ echo "UserPromptSubmit: debugging request detected. Gather evidence first, then propose the smallest safe fix and targeted tests."
20
+ else
21
+ echo "UserPromptSubmit: apply KB-first research, keep changes minimal, and update tests/docs when behavior changes."
22
+ fi
23
+
24
+ exit 0
25
+
package/app/hooks.json ADDED
@@ -0,0 +1,178 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "_source": "ai-toolkit",
6
+ "matcher": "startup|compact",
7
+ "hooks": [
8
+ {
9
+ "type": "command",
10
+ "command": "\"$HOME/.ai-toolkit/hooks/session-start.sh\""
11
+ }
12
+ ]
13
+ }
14
+ ],
15
+ "Notification": [
16
+ {
17
+ "_source": "ai-toolkit",
18
+ "matcher": "",
19
+ "hooks": [
20
+ {
21
+ "type": "command",
22
+ "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
23
+ }
24
+ ]
25
+ }
26
+ ],
27
+ "PreToolUse": [
28
+ {
29
+ "_source": "ai-toolkit",
30
+ "matcher": "Bash",
31
+ "hooks": [
32
+ {
33
+ "type": "command",
34
+ "command": "\"$HOME/.ai-toolkit/hooks/guard-destructive.sh\""
35
+ }
36
+ ]
37
+ },
38
+ {
39
+ "_source": "ai-toolkit",
40
+ "matcher": "Bash|Read|Edit|Write|MultiEdit|Glob|Grep|NotebookEdit|mcp__filesystem__.*",
41
+ "hooks": [
42
+ {
43
+ "type": "command",
44
+ "command": "\"$HOME/.ai-toolkit/hooks/guard-path.sh\""
45
+ }
46
+ ]
47
+ }
48
+ ],
49
+ "UserPromptSubmit": [
50
+ {
51
+ "_source": "ai-toolkit",
52
+ "matcher": "",
53
+ "hooks": [
54
+ {
55
+ "type": "command",
56
+ "command": "\"$HOME/.ai-toolkit/hooks/user-prompt-submit.sh\""
57
+ }
58
+ ]
59
+ },
60
+ {
61
+ "_source": "ai-toolkit",
62
+ "matcher": "",
63
+ "hooks": [
64
+ {
65
+ "type": "command",
66
+ "command": "\"$HOME/.ai-toolkit/hooks/track-usage.sh\""
67
+ }
68
+ ]
69
+ }
70
+ ],
71
+ "PostToolUse": [
72
+ {
73
+ "_source": "ai-toolkit",
74
+ "matcher": "Edit|MultiEdit|Write",
75
+ "hooks": [
76
+ {
77
+ "type": "command",
78
+ "command": "\"$HOME/.ai-toolkit/hooks/post-tool-use.sh\""
79
+ }
80
+ ]
81
+ }
82
+ ],
83
+ "Stop": [
84
+ {
85
+ "_source": "ai-toolkit",
86
+ "matcher": "",
87
+ "hooks": [
88
+ {
89
+ "type": "command",
90
+ "command": "\"$HOME/.ai-toolkit/hooks/quality-check.sh\""
91
+ }
92
+ ]
93
+ },
94
+ {
95
+ "_source": "ai-toolkit",
96
+ "matcher": "",
97
+ "hooks": [
98
+ {
99
+ "type": "command",
100
+ "command": "\"$HOME/.ai-toolkit/hooks/save-session.sh\""
101
+ }
102
+ ]
103
+ }
104
+ ],
105
+ "TaskCompleted": [
106
+ {
107
+ "_source": "ai-toolkit",
108
+ "matcher": "",
109
+ "hooks": [
110
+ {
111
+ "type": "command",
112
+ "command": "\"$HOME/.ai-toolkit/hooks/quality-gate.sh\""
113
+ }
114
+ ]
115
+ }
116
+ ],
117
+ "TeammateIdle": [
118
+ {
119
+ "_source": "ai-toolkit",
120
+ "matcher": "",
121
+ "hooks": [
122
+ {
123
+ "type": "command",
124
+ "command": "echo 'Teammate going idle. Verify: (1) All assigned files modified, (2) Tests written for changes, (3) Documentation updated if needed.'"
125
+ }
126
+ ]
127
+ }
128
+ ],
129
+ "SubagentStart": [
130
+ {
131
+ "_source": "ai-toolkit",
132
+ "matcher": "",
133
+ "hooks": [
134
+ {
135
+ "type": "command",
136
+ "command": "\"$HOME/.ai-toolkit/hooks/subagent-start.sh\""
137
+ }
138
+ ]
139
+ }
140
+ ],
141
+ "SubagentStop": [
142
+ {
143
+ "_source": "ai-toolkit",
144
+ "matcher": "",
145
+ "hooks": [
146
+ {
147
+ "type": "command",
148
+ "command": "\"$HOME/.ai-toolkit/hooks/subagent-stop.sh\""
149
+ }
150
+ ]
151
+ }
152
+ ],
153
+ "PreCompact": [
154
+ {
155
+ "_source": "ai-toolkit",
156
+ "matcher": "",
157
+ "hooks": [
158
+ {
159
+ "type": "command",
160
+ "command": "\"$HOME/.ai-toolkit/hooks/pre-compact.sh\""
161
+ }
162
+ ]
163
+ }
164
+ ],
165
+ "SessionEnd": [
166
+ {
167
+ "_source": "ai-toolkit",
168
+ "matcher": "",
169
+ "hooks": [
170
+ {
171
+ "type": "command",
172
+ "command": "\"$HOME/.ai-toolkit/hooks/session-end.sh\""
173
+ }
174
+ ]
175
+ }
176
+ ]
177
+ }
178
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "mcpServers": {
3
+ "filesystem": {
4
+ "command": "npx",
5
+ "args": [
6
+ "-y",
7
+ "@modelcontextprotocol/server-filesystem",
8
+ "."
9
+ ]
10
+ },
11
+ "github": {
12
+ "command": "npx",
13
+ "args": [
14
+ "-y",
15
+ "@modelcontextprotocol/server-github"
16
+ ],
17
+ "env": {
18
+ "GITHUB_PERSONAL_ACCESS_TOKEN": ""
19
+ }
20
+ }
21
+ },
22
+ "env": {}
23
+ }
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: Golden Rules
3
+ description: Enforces critical rules at system prompt level that Claude tends to ignore in CLAUDE.md
4
+ keep-coding-instructions: true
5
+ ---
6
+
7
+ ## Mandatory Step 0 — Search First
8
+
9
+ Before responding to ANY user message, check your CLAUDE.md files for search-first rules. If search-first rules exist (e.g., "call smart_query() BEFORE outputting text"), you MUST call the required search tool BEFORE using any other tool or outputting any text. If you skip this, the user will interrupt you.
10
+
11
+ **Exception:** Skip this step when you are acting as an orchestrator, coordinator, or multi-agent leader (e.g., `/orchestrate`, `/workflow`, `/swarm`, `/teams`). These roles should decompose and delegate immediately — not search first.
12
+
13
+ ## Path Safety
14
+
15
+ NEVER guess or hallucinate user home directory paths. Use `~` or `$HOME` instead of hardcoded `/Users/<username>/` or `/home/<username>/`. When an absolute path is needed, run `echo $HOME` first. Do NOT construct paths with assumed usernames.
16
+
17
+ ## Git Commits
18
+
19
+ Do NOT add `Co-Authored-By: Claude` or any AI co-authorship to commits. Do NOT add Claude signatures or attribution. Use conventional commits: `feat:`, `fix:`, `docs:`, `refactor:`, `test:`, `chore:`.
20
+
21
+ ## kb_id vs file_path
22
+
23
+ When using RAG/KB tools: `get_document(path=...)` takes `kb_id` from search results. `Read`/`Edit` take filesystem `file_path`. DO NOT CONFUSE these fields.
24
+
25
+ ## Tool Discipline
26
+
27
+ Use dedicated tools — NEVER use Bash equivalents: `Read` not `cat`/`head`/`tail`, `Grep` not `grep`/`rg`, `Glob` not `find`/`ls`, `Edit` not `sed`/`awk`, `Write` not `echo >`. The only exception is when the user explicitly asks for a shell command.
28
+
29
+ ## Language Match
30
+
31
+ Respond in the same language the user writes in. If the user writes in Polish, respond in Polish. Do NOT switch to English unless the user does.
32
+
33
+ ## No Phantom Files
34
+
35
+ Do NOT create new files (README.md, docs, configs, helpers) unless the user explicitly asks. Prefer editing existing files. One-off logic stays inline — no premature abstractions.
36
+
37
+ ## Minimal Changes
38
+
39
+ Do ONLY what was asked. No "while I'm here" improvements, no extra refactoring, no added docstrings, no bonus error handling. A bug fix is just a bug fix. A feature is just that feature.
40
+
41
+ ## User Preferences
42
+
43
+ Style: Direct & efficient. No pleasantries. Measurable results. Methodology: Provide >=3 alternatives. Use Socratic questioning. Review: Apply "Devil's Advocate" critique.
@@ -0,0 +1,19 @@
1
+ # Plugin Packs
2
+
3
+ Experimental opt-in plugin packs that group existing ai-toolkit assets by domain.
4
+
5
+ These packs are **not** installed automatically by `ai-toolkit install` and are **not** part of the default install.
6
+ They serve three purposes:
7
+
8
+ 1. formalize a plugin-pack contract compatible with Claude Code plugin manifests,
9
+ 2. provide curated bundles by domain,
10
+ 3. give `plugin-creator` a concrete scaffold to follow.
11
+
12
+ Current packs:
13
+ - `security-pack`
14
+ - `research-pack`
15
+ - `frontend-pack`
16
+ - `enterprise-pack`
17
+
18
+ See `kb/reference/plugin-pack-conventions.md` for pack rules, validation, and adoption guidance.
19
+
@@ -0,0 +1,11 @@
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.
@@ -0,0 +1,18 @@
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
+ }
@@ -0,0 +1,16 @@
1
+ # enterprise-pack
2
+
3
+ Curated enterprise governance and observability pack.
4
+
5
+ ## Includes
6
+ - Agents: `chief-of-staff`, `documenter`, `infrastructure-architect`
7
+ - Skills: `/briefing`, `/docs`, `/plugin-creator`
8
+ - Hooks: `session-end.sh`
9
+ - Optional modules: `hooks/status-line.sh`, `hooks/output-style.sh`
10
+
11
+ ## Optional Modules
12
+ These scripts are examples for teams that want richer enterprise UX without changing the default global hook surface.
13
+
14
+ - `status-line.sh` — compact one-line status summary for long sessions
15
+ - `output-style.sh` — output formatting hints for enterprise reporting flows
16
+
@@ -0,0 +1,6 @@
1
+ #!/bin/bash
2
+ # output-style.sh — Optional enterprise reporting style module.
3
+ # Not installed by default; intended for opt-in plugin-pack adoption.
4
+
5
+ echo "output-style: prefer concise executive summaries, numbered findings, explicit risks, and measurable next actions."
6
+
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+ # status-line.sh — Optional enterprise status line module.
3
+ # Not installed by default; intended for opt-in plugin-pack adoption.
4
+
5
+ BRANCH="$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo 'no-git')"
6
+ PENDING=$(git status --short 2>/dev/null | wc -l | xargs || echo 0)
7
+ echo "status-line: branch=${BRANCH} pending_changes=${PENDING}"
8
+
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "enterprise-pack",
3
+ "description": "Domain plugin pack for enterprise governance, operational reporting, and optional observability modules.",
4
+ "version": "1.0.0",
5
+ "domain": "enterprise",
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": ["chief-of-staff", "documenter", "infrastructure-architect"],
14
+ "skills": ["briefing", "docs", "plugin-creator"],
15
+ "rules": [],
16
+ "hooks": ["session-end.sh", "hooks/status-line.sh", "hooks/output-style.sh"]
17
+ },
18
+ "hook_events": {
19
+ "session-end.sh": "SessionEnd",
20
+ "status-line.sh": "Stop",
21
+ "output-style.sh": "Stop"
22
+ }
23
+ }
24
+
@@ -0,0 +1,14 @@
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
+
@@ -0,0 +1,22 @@
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
+
@@ -0,0 +1,11 @@
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.
@@ -0,0 +1,18 @@
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
+ }
@@ -0,0 +1,11 @@
1
+ # kotlin-pack
2
+
3
+ Curated Kotlin development patterns pack.
4
+
5
+ ## Includes
6
+ - Skills: `kotlin-patterns`
7
+
8
+ ## Use When
9
+ - writing Kotlin code and need idiomatic patterns (coroutines, sealed classes, DSLs),
10
+ - setting up new Kotlin projects with Gradle KTS,
11
+ - reviewing Kotlin code for null safety and concurrency best practices.
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "kotlin-pack",
3
+ "description": "Domain plugin pack for Kotlin development patterns and idiomatic conventions.",
4
+ "version": "1.0.0",
5
+ "domain": "kotlin",
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": ["kotlin-patterns"],
15
+ "rules": [],
16
+ "hooks": []
17
+ }
18
+ }
@@ -0,0 +1,24 @@
1
+ # memory-pack
2
+
3
+ Persistent session memory with SQLite storage and full-text search.
4
+
5
+ ## Includes
6
+ - Skills: `/mem-search` (FTS5 search across past sessions)
7
+ - Hooks: `observation-capture.sh` (PostToolUse), `session-summary.sh` (Stop)
8
+ - Scripts: `init_db.py` (database setup), `strip_private.py` (privacy filter)
9
+
10
+ ## How It Works
11
+ 1. **Capture**: Every tool use is recorded to `~/.ai-toolkit/memory.db` (PostToolUse hook)
12
+ 2. **Summarize**: Session summary generated on each Stop hook (tools used, observation count, time range)
13
+ 3. **Search**: `/mem-search <query>` runs FTS5 full-text search with progressive disclosure
14
+ 4. **Privacy**: Content between `<private>...</private>` tags is stripped before storage
15
+
16
+ ## Database Schema
17
+ - `sessions` — one row per Claude Code session (id, project_dir, started_at, ended_at, summary)
18
+ - `observations` — captured tool actions (session_id, tool_name, content, created_at)
19
+ - `observations_fts` — FTS5 virtual table for full-text search (auto-synced via triggers)
20
+
21
+ ## Use When
22
+ - searching for past decisions, code changes, or debugging sessions,
23
+ - resuming work across sessions without losing context,
24
+ - reviewing what tools were used in a previous session.