@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.
- package/CHANGELOG.md +97 -0
- package/LICENSE +201 -21
- package/NOTICE +55 -0
- package/README.md +23 -13
- package/app/.claude-plugin/plugin.json +2 -2
- package/app/hooks/_hook-io.sh +4 -0
- package/app/hooks/_locate-toolkit.sh +4 -0
- package/app/hooks/_profile-check.sh +4 -0
- package/app/hooks/_search-capability.sh +4 -0
- package/app/hooks/_session-paths.sh +4 -0
- package/app/hooks/ai-toolkit-statusline.sh +4 -0
- package/app/hooks/commit-quality.sh +4 -0
- package/app/hooks/config-desync-guard.sh +4 -0
- package/app/hooks/governance-capture.sh +4 -0
- package/app/hooks/guard-config.sh +4 -0
- package/app/hooks/guard-destructive.sh +4 -0
- package/app/hooks/guard-path.sh +4 -0
- package/app/hooks/instructions-audit.sh +4 -0
- package/app/hooks/loop-guard.sh +4 -0
- package/app/hooks/mcp-health.sh +4 -0
- package/app/hooks/notify-waiting.sh +4 -0
- package/app/hooks/post-tool-use.sh +4 -0
- package/app/hooks/pre-compact-save.sh +4 -0
- package/app/hooks/pre-compact.sh +4 -0
- package/app/hooks/quality-check.sh +4 -0
- package/app/hooks/quality-gate.sh +4 -0
- package/app/hooks/revert-guard.sh +4 -0
- package/app/hooks/save-session.sh +4 -0
- package/app/hooks/search-tracker.sh +4 -0
- package/app/hooks/session-end.sh +4 -0
- package/app/hooks/session-start.sh +4 -0
- package/app/hooks/stop-search-check.sh +4 -0
- package/app/hooks/subagent-start.sh +4 -0
- package/app/hooks/subagent-stop.sh +4 -0
- package/app/hooks/test-cohesion.sh +4 -0
- package/app/hooks/track-usage.sh +4 -0
- package/app/hooks/user-prompt-submit.sh +4 -0
- package/app/plugins/README.md +15 -15
- package/app/plugins/enterprise-pack/hooks/output-style.sh +4 -0
- package/app/plugins/enterprise-pack/hooks/status-line.sh +4 -0
- package/app/plugins/memory-pack/hooks/observation-capture.sh +4 -0
- package/app/plugins/memory-pack/hooks/session-summary.sh +4 -0
- package/app/plugins/memory-pack/scripts/init_db.py +4 -0
- package/app/plugins/memory-pack/scripts/strip_private.py +4 -0
- package/app/skills/_lib/__init__.py +4 -0
- package/app/skills/_lib/detect_utils.py +4 -0
- package/app/skills/a11y-validate/scripts/a11y-scanner.py +4 -0
- package/app/skills/analyze/scripts/complexity.py +4 -0
- package/app/skills/brand-voice/scripts/measure.py +4 -0
- package/app/skills/build/scripts/detect-build.py +4 -0
- package/app/skills/ci/scripts/ci-detect.py +4 -0
- package/app/skills/commit/scripts/pre-commit-check.py +4 -0
- package/app/skills/cve-scan/scripts/cve_scan.py +4 -0
- package/app/skills/debug/scripts/error-parser.py +4 -0
- package/app/skills/deploy/scripts/pre_deploy_check.py +4 -0
- package/app/skills/docs/scripts/doc-inventory.py +4 -0
- package/app/skills/explain/scripts/dependency-graph.py +4 -0
- package/app/skills/explore/scripts/visualize.py +4 -0
- package/app/skills/fix/scripts/error-classifier.py +4 -0
- package/app/skills/health/scripts/health_check.py +4 -0
- package/app/skills/hipaa-validate/scripts/hipaa_scan.py +4 -0
- package/app/skills/lint/scripts/detect-linters.py +4 -0
- package/app/skills/migrate/scripts/migration-status.py +4 -0
- package/app/skills/plugin-creator/SKILL.md +18 -8
- package/app/skills/pr/scripts/pr-summary.py +4 -0
- package/app/skills/refactor/scripts/refactor-scan.py +4 -0
- package/app/skills/review/scripts/diff-analyzer.py +4 -0
- package/app/skills/rollback/scripts/rollback_info.py +4 -0
- package/app/skills/seo-validate/scripts/seo-scanner.py +4 -0
- package/app/skills/skill-creator/templates/reasoning-engine/search.py +4 -0
- package/app/skills/test/scripts/detect-runner.py +4 -0
- package/app/skills/write-a-prd/scripts/poll.js +4 -0
- package/benchmarks/ecosystem-doctor-snapshot.json +3 -3
- package/benchmarks/run.py +4 -0
- package/bin/ai-toolkit.js +4 -0
- package/kb/{planning/drop-cascade-hooks-after-sunset.md → history/completed/drop-cascade-hooks-after-sunset-20260710.md} +24 -0
- package/kb/{reference/language-packs.md → history/completed/language-packs-removed-20260727.md} +32 -7
- package/kb/{planning/mcp-context-trim-v4-prd.md → history/completed/mcp-context-trim-v4-prd-obsoleted-20260727.md} +43 -9
- package/kb/history/completed/no-op-plugin-packs-removed-20260727.md +127 -0
- package/kb/history/completed/tool-output-token-reduction-closed-20260727.md +190 -0
- package/kb/procedures/release-preparation-sop.md +83 -5
- package/kb/reference/comparison.md +1 -1
- package/kb/reference/enterprise-config-guide.md +1 -1
- package/kb/reference/licensing.md +148 -0
- package/kb/reference/plugin-pack-conventions.md +24 -16
- package/llms-full.txt +1181 -529
- package/llms.txt +6 -3
- package/manifest.json +1 -1
- package/package.json +3 -2
- package/scripts/_common.py +4 -0
- package/scripts/add_rule.py +4 -0
- package/scripts/audit_skills.py +4 -0
- package/scripts/benchmark_config.py +4 -0
- package/scripts/benchmark_ecosystem.py +4 -0
- package/scripts/check_deps.py +4 -0
- package/scripts/claude_app.py +4 -0
- package/scripts/codex_skill_adapter.py +4 -0
- package/scripts/compile_slm.py +4 -0
- package/scripts/config_cli.py +4 -0
- package/scripts/config_lock.py +4 -0
- package/scripts/config_merger.py +4 -0
- package/scripts/config_resolver.py +4 -0
- package/scripts/config_scaffold.py +5 -1
- package/scripts/config_validator.py +4 -0
- package/scripts/create_skill.py +4 -0
- package/scripts/dir_rules_shared.py +4 -0
- package/scripts/doctor.py +4 -0
- package/scripts/ecosystem_doctor.py +4 -0
- package/scripts/eject.py +4 -0
- package/scripts/emission.py +4 -0
- package/scripts/evaluate_skills.py +4 -0
- package/scripts/frontmatter.py +4 -0
- package/scripts/generate_agents_md.py +4 -0
- package/scripts/generate_aider_conf.py +4 -0
- package/scripts/generate_antigravity.py +4 -0
- package/scripts/generate_augment.py +4 -0
- package/scripts/generate_augment_agents.py +4 -0
- package/scripts/generate_augment_commands.py +4 -0
- package/scripts/generate_augment_hooks.py +4 -0
- package/scripts/generate_augment_rules.py +4 -0
- package/scripts/generate_augment_skills.py +4 -0
- package/scripts/generate_cline.py +4 -0
- package/scripts/generate_cline_rules.py +4 -0
- package/scripts/generate_cline_skills.py +4 -0
- package/scripts/generate_codex.py +4 -0
- package/scripts/generate_codex_agents.py +4 -0
- package/scripts/generate_codex_hooks.py +4 -0
- package/scripts/generate_codex_skills.py +4 -0
- package/scripts/generate_conventions.py +4 -0
- package/scripts/generate_copilot.py +4 -0
- package/scripts/generate_copilot_hooks.py +4 -0
- package/scripts/generate_cursor_agents.py +4 -0
- package/scripts/generate_cursor_hooks.py +4 -0
- package/scripts/generate_cursor_mdc.py +4 -0
- package/scripts/generate_cursor_rules.py +4 -0
- package/scripts/generate_cursor_skills.py +4 -0
- package/scripts/generate_devin_hooks.py +4 -0
- package/scripts/generate_gemini.py +4 -0
- package/scripts/generate_gemini_commands.py +4 -0
- package/scripts/generate_gemini_hooks.py +4 -0
- package/scripts/generate_gemini_skills.py +4 -0
- package/scripts/generate_language_rules_skills.py +4 -0
- package/scripts/generate_llms_txt.py +4 -0
- package/scripts/generate_opencode.py +4 -0
- package/scripts/generate_opencode_agents.py +4 -0
- package/scripts/generate_opencode_commands.py +4 -0
- package/scripts/generate_opencode_json.py +4 -0
- package/scripts/generate_opencode_plugin.py +4 -0
- package/scripts/generate_roo_modes.py +4 -0
- package/scripts/generate_roo_rules.py +4 -0
- package/scripts/generate_windsurf.py +4 -0
- package/scripts/generate_windsurf_rules.py +4 -0
- package/scripts/generate_windsurf_skills.py +4 -0
- package/scripts/generator_base.py +4 -0
- package/scripts/harvest_ecosystem.py +4 -0
- package/scripts/hook_sources.py +4 -0
- package/scripts/inject_hook_cli.py +4 -0
- package/scripts/inject_mcp_cli.py +4 -0
- package/scripts/inject_rule_cli.py +4 -0
- package/scripts/inject_section_cli.py +4 -0
- package/scripts/injection.py +4 -0
- package/scripts/install.py +4 -0
- package/scripts/install_git_hooks.py +4 -0
- package/scripts/install_steps/__init__.py +4 -0
- package/scripts/install_steps/ai_tools.py +4 -0
- package/scripts/install_steps/detect_language.py +4 -0
- package/scripts/install_steps/hooks.py +4 -0
- package/scripts/install_steps/install_state.py +4 -0
- package/scripts/install_steps/markers.py +4 -0
- package/scripts/install_steps/project_registry.py +4 -0
- package/scripts/install_steps/symlinks.py +4 -0
- package/scripts/instruction_core.py +4 -0
- package/scripts/mcp_editors.py +4 -0
- package/scripts/mcp_manager.py +4 -0
- package/scripts/mcp_sources.py +4 -0
- package/scripts/merge-hooks.py +4 -0
- package/scripts/migrate.py +4 -0
- package/scripts/output_filter_retirement.py +4 -0
- package/scripts/pack_codebase.py +4 -0
- package/scripts/paths.py +4 -0
- package/scripts/plugin.py +4 -0
- package/scripts/plugin_schema.py +4 -0
- package/scripts/projects_cli.py +4 -0
- package/scripts/propagate_global.py +4 -0
- package/scripts/remove_rule.py +4 -0
- package/scripts/rule_sources.py +4 -0
- package/scripts/secure_fs.py +4 -0
- package/scripts/session_state.py +4 -0
- package/scripts/session_token_stats.py +4 -0
- package/scripts/skill_pointer.py +4 -0
- package/scripts/stats.py +4 -0
- package/scripts/sync.py +4 -0
- package/scripts/test_cohesion.py +4 -0
- package/scripts/uninstall.py +4 -0
- package/scripts/update_projects.py +4 -0
- package/scripts/url_fetch.py +4 -0
- package/scripts/validate.py +4 -0
- package/scripts/version_check.py +4 -0
- package/app/plugins/csharp-pack/README.md +0 -11
- package/app/plugins/csharp-pack/plugin.json +0 -18
- package/app/plugins/frontend-pack/README.md +0 -14
- package/app/plugins/frontend-pack/plugin.json +0 -22
- package/app/plugins/java-pack/README.md +0 -11
- package/app/plugins/java-pack/plugin.json +0 -18
- package/app/plugins/kotlin-pack/README.md +0 -11
- package/app/plugins/kotlin-pack/plugin.json +0 -18
- package/app/plugins/research-pack/README.md +0 -14
- package/app/plugins/research-pack/plugin.json +0 -22
- package/app/plugins/ruby-pack/README.md +0 -11
- package/app/plugins/ruby-pack/plugin.json +0 -18
- package/app/plugins/rust-pack/README.md +0 -11
- package/app/plugins/rust-pack/plugin.json +0 -18
- package/app/plugins/security-pack/README.md +0 -15
- package/app/plugins/security-pack/plugin.json +0 -23
- package/app/plugins/swift-pack/README.md +0 -11
- package/app/plugins/swift-pack/plugin.json +0 -18
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# post-tool-use.sh — Lightweight feedback after file edits.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: PostToolUse
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# pre-compact-save.sh — Save conversation context summary before compaction.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: PreCompact
|
package/app/hooks/pre-compact.sh
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# pre-compact.sh — Save critical context before conversation compaction.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: PreCompact
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# quality-check.sh — Multi-language lint check after Claude stops.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: Stop
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# quality-gate.sh — Block task completion if lint/type errors found.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: Stop, TaskCompleted
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# revert-guard.sh — Block git revert/restore on files edited in this session.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: PreToolUse
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# save-session.sh — Persist session context on stop for cross-session continuity.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: Stop
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# search-tracker.sh — Clear search-required flag when a search tool runs.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: PostToolUse
|
package/app/hooks/session-end.sh
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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-end.sh — Persist a lightweight handoff note when a Claude session ends.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: SessionEnd
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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-start.sh — Inject mandatory rules reminder + session context on startup/compact.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: SessionStart (startup|compact)
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# stop-search-check.sh — Block Stop when search-first rule was skipped.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: Stop
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# subagent-start.sh — Remind subagents to stay scoped and evidence-driven.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: SubagentStart
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# subagent-stop.sh — Enforce a concise completion checklist for subagents.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: SubagentStop
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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.sh — Run related tests after edits, block if they fail.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: PostToolUse
|
package/app/hooks/track-usage.sh
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# track-usage.sh — Track skill invocations for usage stats.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: UserPromptSubmit
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# user-prompt-submit.sh — Lightweight prompt governance reminder before execution.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: UserPromptSubmit
|
package/app/plugins/README.md
CHANGED
|
@@ -17,21 +17,21 @@ Plugin packs can target:
|
|
|
17
17
|
These packs are not directly uploadable Claude app plugins. For Claude Chat,
|
|
18
18
|
Desktop, and Cowork use `ai-toolkit claude-app export`.
|
|
19
19
|
|
|
20
|
-
Current packs (
|
|
21
|
-
- `
|
|
22
|
-
- `enterprise-pack`
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
- `
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
20
|
+
Current packs (2):
|
|
21
|
+
- `memory-pack` — SQLite cross-session memory. Owns 2 hooks, 2 scripts and its own skill.
|
|
22
|
+
- `enterprise-pack` — owns the `status-line` and `output-style` hooks.
|
|
23
|
+
|
|
24
|
+
**A pack must install something the core install does not.** `ai-toolkit install`
|
|
25
|
+
links every core skill and agent, so a pack whose manifest names only core assets
|
|
26
|
+
puts zero files on disk. Nine packs did exactly that and were removed in v4.20.0
|
|
27
|
+
(`csharp`, `java`, `kotlin`, `ruby`, `rust`, `swift`, `frontend`, `research`,
|
|
28
|
+
`security`) — see
|
|
29
|
+
[`no-op-plugin-packs-removed-20260727.md`](../../kb/history/completed/no-op-plugin-packs-removed-20260727.md).
|
|
30
|
+
Nothing was lost with them: the language packs never held their own content.
|
|
31
|
+
`rust-patterns`, `java-patterns` and the rest are core skills and stayed where
|
|
32
|
+
they were.
|
|
33
|
+
|
|
34
|
+
Neither remaining pack fetches anything at install time. `rtk-pack` did, and was
|
|
35
35
|
retired in v4.19.0; see `kb/history/completed/rtk-pack-retirement-20260727.md`
|
|
36
36
|
before proposing another pack of that shape.
|
|
37
37
|
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/bin/bash
|
|
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
|
# output-style.sh — Optional enterprise reporting style module.
|
|
3
7
|
# Not installed by default; intended for opt-in plugin-pack adoption.
|
|
4
8
|
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/bin/bash
|
|
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
|
# status-line.sh — Optional enterprise status line module.
|
|
3
7
|
# Not installed by default; intended for opt-in plugin-pack adoption.
|
|
4
8
|
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
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
|
# observation-capture.sh — Capture tool actions into SQLite memory database.
|
|
3
7
|
#
|
|
4
8
|
# Fires on: PostToolUse
|
|
@@ -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
|
"""Initialize SQLite memory database for ai-toolkit memory-pack.
|
|
3
7
|
|
|
4
8
|
Creates ~/.softspark/ai-toolkit/memory.db with sessions, observations, and FTS5 tables.
|
|
@@ -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 utilities for skill detection scripts.
|
|
2
6
|
|
|
3
7
|
Provides common constants, file helpers, and a standard main() wrapper
|
|
@@ -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
|
"""Accessibility scanner -- pattern-matching heuristics for WCAG violations.
|
|
3
7
|
|
|
4
8
|
Stdlib only. No external dependencies.
|
|
@@ -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
|
"""Code complexity analysis script.
|
|
3
7
|
|
|
4
8
|
Scans a project directory and reports file counts by extension, largest
|
|
@@ -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
|
"""Measure token reduction of brand-voice output modes against fixtures.
|
|
3
7
|
|
|
4
8
|
Reads each fixture directory containing default.md, concise.md, strict.md,
|
|
@@ -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
|
"""Detect build system, package manager, and available build/dev/docker commands.
|
|
3
7
|
|
|
4
8
|
Scans a project directory for Node.js, Python, Flutter/Dart, Go, Rust,
|
|
@@ -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
|
"""Detect CI platform, analyze configuration, and suggest improvements.
|
|
3
7
|
|
|
4
8
|
Scans a project directory for CI/CD configuration files (GitHub Actions,
|
|
@@ -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
|
"""Pre-commit validation: staged files, secrets detection, commit type suggestion."""
|
|
3
7
|
import json, subprocess, re, sys
|
|
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
|
"""CVE dependency scanner — detect ecosystems and run native audit tools.
|
|
3
7
|
|
|
4
8
|
Stdlib only. No external dependencies.
|
|
@@ -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
|
"""Parse error messages and stack traces from stdin for structured diagnosis.
|
|
3
7
|
|
|
4
8
|
Reads raw error output piped from a failing command or log file,
|
|
@@ -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
|
"""Pre-deployment readiness checklist.
|
|
3
7
|
|
|
4
8
|
Runs a series of checks (git clean, branch, Docker, env file, build
|
|
@@ -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
|
"""Extract import graph from source files and generate Mermaid syntax."""
|
|
3
7
|
|
|
4
8
|
import json
|
|
@@ -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 an interactive collapsible tree visualization of a codebase.
|
|
3
7
|
|
|
4
8
|
Usage: python visualize.py [directory]
|
|
@@ -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
|
"""Parse lint/test error output from stdin and classify as auto-fixable or manual.
|
|
3
7
|
|
|
4
8
|
Reads multi-tool error output (ruff, mypy, ESLint, tsc, phpstan) from
|
|
@@ -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
|
"""Health check script for common services.
|
|
3
7
|
|
|
4
8
|
Probes Docker services, an HTTP health endpoint, disk usage, and
|
|
@@ -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
|
"""HIPAA compliance scanner — pattern-matching heuristics for PHI exposure.
|
|
3
7
|
|
|
4
8
|
Stdlib only. No external dependencies.
|
|
@@ -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
|
"""Detect available linters and build combined lint/format commands for a project.
|
|
3
7
|
|
|
4
8
|
Scans a project directory for Python, Node.js, PHP, Go, and Dart
|
|
@@ -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
|
"""Detect migration tool and report status with commands reference.
|
|
3
7
|
|
|
4
8
|
Scans a project directory for well-known migration configuration files
|
|
@@ -39,10 +39,10 @@ app/plugins/<plugin-name>/
|
|
|
39
39
|
|
|
40
40
|
```json
|
|
41
41
|
{
|
|
42
|
-
"name": "
|
|
43
|
-
"description": "Domain plugin pack for
|
|
42
|
+
"name": "memory-pack",
|
|
43
|
+
"description": "Domain plugin pack for persistent cross-session memory.",
|
|
44
44
|
"version": "1.0.0",
|
|
45
|
-
"domain": "
|
|
45
|
+
"domain": "memory",
|
|
46
46
|
"type": "plugin-pack",
|
|
47
47
|
"status": "experimental",
|
|
48
48
|
"requires": {
|
|
@@ -50,18 +50,27 @@ app/plugins/<plugin-name>/
|
|
|
50
50
|
"claude-code": ">=1.0.33"
|
|
51
51
|
},
|
|
52
52
|
"includes": {
|
|
53
|
-
"agents": [
|
|
54
|
-
"skills": ["
|
|
53
|
+
"agents": [],
|
|
54
|
+
"skills": ["mem-search"],
|
|
55
55
|
"rules": [],
|
|
56
|
-
"hooks": []
|
|
56
|
+
"hooks": ["observation-capture.sh", "session-summary.sh"]
|
|
57
|
+
},
|
|
58
|
+
"hook_events": {
|
|
59
|
+
"observation-capture.sh": "PostToolUse",
|
|
60
|
+
"session-summary.sh": "Stop"
|
|
57
61
|
}
|
|
58
62
|
}
|
|
59
63
|
```
|
|
60
64
|
|
|
65
|
+
The two hooks are files the pack **owns**, under `app/plugins/memory-pack/hooks/`.
|
|
66
|
+
That is what makes this a pack rather than a bookmark: installing it puts scripts
|
|
67
|
+
on disk and entries in the host's hook config that were not there before.
|
|
68
|
+
|
|
61
69
|
## Authoring Rules
|
|
62
70
|
|
|
63
|
-
- **MUST** keep packs domain-scoped — "
|
|
64
|
-
- **MUST**
|
|
71
|
+
- **MUST** keep packs domain-scoped — "memory-pack", "mobile-pack", not "misc-pack"
|
|
72
|
+
- **MUST** install something the core install does not already provide. `ai-toolkit install` links every core skill and agent, so a pack whose `includes` names only core assets installs **zero files** and is a no-op. Verify before shipping: install core into a throwaway `HOME`, then install the pack, and confirm the file count changed. Nine packs were removed in v4.20.0 for failing exactly this check.
|
|
73
|
+
- **MUST** reference existing toolkit assets rather than forking them — but referencing alone is not a pack. A pack earns its existence through hooks, scripts, or assets of its own; the reference list is context, not content.
|
|
65
74
|
- **MUST** ship a valid `plugin.json` with `name`, `description`, `version`, `domain`, `type`, `status`, and `includes`
|
|
66
75
|
- **NEVER** have a pack silently alter default global install behavior — experimental packs are **opt-in only**
|
|
67
76
|
- **NEVER** copy an agent or skill file into a pack when referencing the toolkit-level version suffices; duplication creates drift
|
|
@@ -79,6 +88,7 @@ app/plugins/<plugin-name>/
|
|
|
79
88
|
## Validation Checklist
|
|
80
89
|
|
|
81
90
|
- [ ] `app/plugins/<plugin-name>/plugin.json` exists and parses as JSON
|
|
91
|
+
- [ ] **The pack installs a non-zero number of files.** `ai-toolkit install` into a throwaway `HOME`, then `plugin install <name>`, and confirm the reported file count is above zero on every runtime the pack claims. A pack reporting `(0 file items)` does nothing and must not ship.
|
|
82
92
|
- [ ] `README.md` explains purpose, included assets, and opt-in flow
|
|
83
93
|
- [ ] Referenced agents and skills exist or are created in the same change set
|
|
84
94
|
- [ ] Optional hooks are executable and use `#!/bin/bash`
|
|
@@ -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 structured PR summary from the git log.
|
|
3
7
|
|
|
4
8
|
Parses commits between a base branch and HEAD using the Conventional
|
|
@@ -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
|
"""Detect code smells deterministically: long functions, deep nesting, large files."""
|
|
3
7
|
|
|
4
8
|
import json
|
|
@@ -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
|
"""Analyze a git diff for risk assessment, file categorization, and secrets detection.
|
|
3
7
|
|
|
4
8
|
Compares the current branch against a base branch (default ``main``),
|
|
@@ -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
|
"""Gather rollback context: git state, migrations, docker services.
|
|
3
7
|
|
|
4
8
|
Detects the current git state, identifies the migration tool in use,
|
|
@@ -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
|
"""SEO scanner -- pattern-matching heuristics for common SEO issues.
|
|
3
7
|
|
|
4
8
|
Stdlib only. No external dependencies.
|
|
@@ -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
|
"""Generic domain reasoning engine for ai-toolkit skills.
|
|
3
7
|
|
|
4
8
|
Multi-domain search across a categorized knowledge base with anti-pattern filtering.
|
|
@@ -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
|
"""Auto-detect test framework and runner from project configuration files.
|
|
3
7
|
|
|
4
8
|
Scans a project directory for well-known config files (pyproject.toml,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"last_run": "2026-07-
|
|
2
|
+
"last_run": "2026-07-27T11:02:34Z",
|
|
3
3
|
"schema_version": 1,
|
|
4
4
|
"tools": {
|
|
5
5
|
"aider": {
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
68
|
"claude-app": {
|
|
69
|
-
"docs_hash": "
|
|
69
|
+
"docs_hash": "08443e412637cd52",
|
|
70
70
|
"headings": [
|
|
71
71
|
"Add global and folder instructions",
|
|
72
72
|
"Availability",
|
|
@@ -364,7 +364,7 @@
|
|
|
364
364
|
}
|
|
365
365
|
},
|
|
366
366
|
"gemini-cli": {
|
|
367
|
-
"docs_hash": "
|
|
367
|
+
"docs_hash": "6e930c2fa0b827f5",
|
|
368
368
|
"headings": [
|
|
369
369
|
"Breadcrumbs",
|
|
370
370
|
"Directory actions",
|
package/benchmarks/run.py
CHANGED
package/bin/ai-toolkit.js
CHANGED