@softspark/ai-toolkit 1.9.0 → 2.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.
- package/CHANGELOG.md +33 -14
- package/README.md +18 -18
- package/app/ARCHITECTURE.md +3 -3
- package/app/hooks/governance-capture.sh +1 -1
- package/app/hooks/pre-compact-save.sh +1 -1
- package/app/hooks/session-context.sh +1 -1
- package/app/hooks/track-usage.sh +2 -2
- package/app/hooks.json +20 -20
- package/app/plugins/memory-pack/README.md +1 -1
- package/app/plugins/memory-pack/hooks/observation-capture.sh +2 -2
- package/app/plugins/memory-pack/hooks/session-summary.sh +1 -1
- package/app/plugins/memory-pack/scripts/init_db.py +2 -2
- package/app/plugins/memory-pack/skills/mem-search/SKILL.md +3 -3
- package/app/skills/hook-creator/SKILL.md +2 -2
- package/app/skills/mem-search/SKILL.md +3 -3
- package/app/skills/repeat/SKILL.md +1 -1
- package/bin/ai-toolkit.js +9 -4
- package/kb/history/completed/enterprise-config-inheritance-plan-20260412.md +32 -34
- package/kb/history/completed/offline-slm-profile-plan-20260411.md +12 -12
- package/kb/planning/cloud-security-pack-plan.md +3 -3
- package/kb/procedures/maintenance-sop.md +3 -3
- package/kb/reference/architecture-overview.md +5 -5
- package/kb/reference/benchmark-config.md +1 -1
- package/kb/reference/competitive-features-implementation.md +2 -2
- package/kb/reference/enterprise-config-guide.md +9 -9
- package/kb/reference/extension-api.md +1 -1
- package/kb/reference/global-install-model.md +2 -2
- package/kb/reference/hooks-catalog.md +30 -30
- package/kb/reference/integrations.md +3 -3
- package/kb/reference/manifest-install.md +4 -4
- package/kb/reference/plugin-pack-conventions.md +5 -5
- package/kb/reference/stats.md +3 -3
- package/kb/reference/sync.md +3 -3
- package/llms-full.txt +118 -899
- package/llms.txt +0 -1
- package/manifest.json +3 -3
- package/package.json +1 -1
- package/scripts/add_rule.py +3 -2
- package/scripts/benchmark_config.py +3 -1
- package/scripts/compile_slm.py +9 -7
- package/scripts/config_cli.py +7 -7
- package/scripts/config_lock.py +12 -4
- package/scripts/config_merger.py +1 -1
- package/scripts/config_resolver.py +20 -7
- package/scripts/config_scaffold.py +4 -4
- package/scripts/config_validator.py +3 -3
- package/scripts/dir_rules_shared.py +1 -1
- package/scripts/doctor.py +3 -2
- package/scripts/install.py +12 -7
- package/scripts/install_git_hooks.py +1 -1
- package/scripts/install_steps/ai_tools.py +4 -4
- package/scripts/install_steps/hooks.py +1 -1
- package/scripts/install_steps/install_state.py +8 -6
- package/scripts/install_steps/project_registry.py +5 -5
- package/scripts/migrate.py +199 -0
- package/scripts/paths.py +50 -0
- package/scripts/plugin.py +8 -6
- package/scripts/remove_rule.py +5 -4
- package/scripts/stats.py +3 -2
- package/scripts/sync.py +3 -2
- package/scripts/update_projects.py +1 -1
- package/scripts/version_check.py +5 -2
- package/kb/planning/local-dashboard-plan.md +0 -773
|
@@ -13,17 +13,17 @@ description: "Complete reference of all ai-toolkit hooks: events, scripts, insta
|
|
|
13
13
|
|
|
14
14
|
## Overview
|
|
15
15
|
|
|
16
|
-
ai-toolkit provides 21 global hook entries across 12 lifecycle events that enforce quality, safety, and workflow rules across all Claude Code sessions. Hooks are merged into `~/.claude/settings.json` on install, with logic in standalone scripts at `~/.ai-toolkit/hooks/`.
|
|
16
|
+
ai-toolkit provides 21 global hook entries across 12 lifecycle events that enforce quality, safety, and workflow rules across all Claude Code sessions. Hooks are merged into `~/.claude/settings.json` on install, with logic in standalone scripts at `~/.softspark/ai-toolkit/hooks/`.
|
|
17
17
|
|
|
18
18
|
## Installation
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
ai-toolkit install # copies scripts to ~/.ai-toolkit/hooks/, merges into settings.json
|
|
21
|
+
ai-toolkit install # copies scripts to ~/.softspark/ai-toolkit/hooks/, merges into settings.json
|
|
22
22
|
ai-toolkit update # re-copies scripts, re-merges (idempotent)
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
**File locations:**
|
|
26
|
-
- Scripts: `~/.ai-toolkit/hooks/*.sh`
|
|
26
|
+
- Scripts: `~/.softspark/ai-toolkit/hooks/*.sh`
|
|
27
27
|
- Config: `~/.claude/settings.json` → `hooks` key
|
|
28
28
|
- Source: `ai-toolkit/app/hooks/*.sh` + `app/hooks.json`
|
|
29
29
|
|
|
@@ -35,7 +35,7 @@ ai-toolkit update # re-copies scripts, re-merges (idempotent)
|
|
|
35
35
|
|-------|-------|
|
|
36
36
|
| Event | `SessionStart` |
|
|
37
37
|
| Matcher | `startup\|compact` |
|
|
38
|
-
| Script | `~/.ai-toolkit/hooks/session-start.sh` |
|
|
38
|
+
| Script | `~/.softspark/ai-toolkit/hooks/session-start.sh` |
|
|
39
39
|
| Fires | Session start + after context compaction |
|
|
40
40
|
|
|
41
41
|
**Actions:**
|
|
@@ -50,7 +50,7 @@ ai-toolkit update # re-copies scripts, re-merges (idempotent)
|
|
|
50
50
|
|-------|-------|
|
|
51
51
|
| Event | `Notification` |
|
|
52
52
|
| Matcher | *(all)* |
|
|
53
|
-
| Script | `~/.ai-toolkit/hooks/notify-waiting.sh` |
|
|
53
|
+
| Script | `~/.softspark/ai-toolkit/hooks/notify-waiting.sh` |
|
|
54
54
|
| Fires | Claude Code waiting for user input |
|
|
55
55
|
|
|
56
56
|
**Action:** Cross-platform desktop notification ("Claude Code needs your attention"):
|
|
@@ -64,7 +64,7 @@ ai-toolkit update # re-copies scripts, re-merges (idempotent)
|
|
|
64
64
|
|-------|-------|
|
|
65
65
|
| Event | `PreToolUse` |
|
|
66
66
|
| Matcher | `Bash` |
|
|
67
|
-
| Script | `~/.ai-toolkit/hooks/guard-destructive.sh` |
|
|
67
|
+
| Script | `~/.softspark/ai-toolkit/hooks/guard-destructive.sh` |
|
|
68
68
|
| Fires | Before any Bash command |
|
|
69
69
|
|
|
70
70
|
**Action:** Blocks (exit 2) commands matching destructive patterns:
|
|
@@ -80,7 +80,7 @@ ai-toolkit update # re-copies scripts, re-merges (idempotent)
|
|
|
80
80
|
|-------|-------|
|
|
81
81
|
| Event | `PreToolUse` |
|
|
82
82
|
| Matcher | `Bash\|Read\|Edit\|Write\|MultiEdit\|Glob\|Grep\|NotebookEdit\|mcp__filesystem__.*` |
|
|
83
|
-
| Script | `~/.ai-toolkit/hooks/guard-path.sh` |
|
|
83
|
+
| Script | `~/.softspark/ai-toolkit/hooks/guard-path.sh` |
|
|
84
84
|
| Fires | Before any file access tool (including Bash, MCP filesystem) |
|
|
85
85
|
|
|
86
86
|
**Action:** Blocks (exit 2) when a path contains `/Users/<wrong>` or `/home/<wrong>` that doesn't match the actual `$HOME`. Prevents Claude from hallucinating or confusing similar usernames (common with non-ASCII names like Polish names).
|
|
@@ -93,7 +93,7 @@ ai-toolkit update # re-copies scripts, re-merges (idempotent)
|
|
|
93
93
|
|-------|-------|
|
|
94
94
|
| Event | `UserPromptSubmit` |
|
|
95
95
|
| Matcher | *(all)* |
|
|
96
|
-
| Script | `~/.ai-toolkit/hooks/user-prompt-submit.sh` |
|
|
96
|
+
| Script | `~/.softspark/ai-toolkit/hooks/user-prompt-submit.sh` |
|
|
97
97
|
| Fires | Before Claude starts working on a submitted prompt |
|
|
98
98
|
|
|
99
99
|
**Action:** Adds a lightweight governance reminder: plan mode for architectural work, evidence-first debugging, KB-first research, and validation expectations.
|
|
@@ -106,10 +106,10 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
106
106
|
|-------|-------|
|
|
107
107
|
| Event | `UserPromptSubmit` |
|
|
108
108
|
| Matcher | *(all)* |
|
|
109
|
-
| Script | `~/.ai-toolkit/hooks/track-usage.sh` |
|
|
109
|
+
| Script | `~/.softspark/ai-toolkit/hooks/track-usage.sh` |
|
|
110
110
|
| Fires | Before Claude starts working on a submitted prompt |
|
|
111
111
|
|
|
112
|
-
**Action:** Records skill invocations (slash commands like `/commit`, `/review`) to `~/.ai-toolkit/stats.json` for local usage analytics. Non-slash prompts are ignored.
|
|
112
|
+
**Action:** Records skill invocations (slash commands like `/commit`, `/review`) to `~/.softspark/ai-toolkit/stats.json` for local usage analytics. Non-slash prompts are ignored.
|
|
113
113
|
|
|
114
114
|
### PostToolUse (edit feedback) — `post-tool-use.sh`
|
|
115
115
|
|
|
@@ -117,7 +117,7 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
117
117
|
|-------|-------|
|
|
118
118
|
| Event | `PostToolUse` |
|
|
119
119
|
| Matcher | `Edit\|MultiEdit\|Write` |
|
|
120
|
-
| Script | `~/.ai-toolkit/hooks/post-tool-use.sh` |
|
|
120
|
+
| Script | `~/.softspark/ai-toolkit/hooks/post-tool-use.sh` |
|
|
121
121
|
| Fires | After file edit/write tool operations |
|
|
122
122
|
|
|
123
123
|
**Action:** Adds a lightweight reminder to run relevant validation, tests, and documentation updates after edits.
|
|
@@ -130,7 +130,7 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
130
130
|
|-------|-------|
|
|
131
131
|
| Event | `Stop` |
|
|
132
132
|
| Matcher | *(all)* |
|
|
133
|
-
| Script | `~/.ai-toolkit/hooks/quality-check.sh` |
|
|
133
|
+
| Script | `~/.softspark/ai-toolkit/hooks/quality-check.sh` |
|
|
134
134
|
| Fires | After every Claude response |
|
|
135
135
|
|
|
136
136
|
**Action:** Runs language-appropriate linter:
|
|
@@ -148,7 +148,7 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
148
148
|
|-------|-------|
|
|
149
149
|
| Event | `Stop` |
|
|
150
150
|
| Matcher | *(all)* |
|
|
151
|
-
| Script | `~/.ai-toolkit/hooks/save-session.sh` |
|
|
151
|
+
| Script | `~/.softspark/ai-toolkit/hooks/save-session.sh` |
|
|
152
152
|
| Fires | After every Claude response |
|
|
153
153
|
|
|
154
154
|
**Action:** Writes enriched session context to `.claude/session-context.md` for cross-session persistence. Captures:
|
|
@@ -164,7 +164,7 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
164
164
|
|-------|-------|
|
|
165
165
|
| Event | `TaskCompleted` |
|
|
166
166
|
| Matcher | *(all)* |
|
|
167
|
-
| Script | `~/.ai-toolkit/hooks/quality-gate.sh` |
|
|
167
|
+
| Script | `~/.softspark/ai-toolkit/hooks/quality-gate.sh` |
|
|
168
168
|
| Fires | When an Agent Teams task is marked complete |
|
|
169
169
|
|
|
170
170
|
**Action:** Runs lint/typecheck. **Blocks completion (exit 2)** if errors found. Strict profile also runs `mypy --strict`.
|
|
@@ -177,7 +177,7 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
177
177
|
|-------|-------|
|
|
178
178
|
| Event | `SubagentStart` |
|
|
179
179
|
| Matcher | *(all)* |
|
|
180
|
-
| Script | `~/.ai-toolkit/hooks/subagent-start.sh` |
|
|
180
|
+
| Script | `~/.softspark/ai-toolkit/hooks/subagent-start.sh` |
|
|
181
181
|
| Fires | When a subagent is spawned |
|
|
182
182
|
|
|
183
183
|
**Action:** Reminds subagents to stay narrow in scope, gather evidence first, and return explicit validation notes.
|
|
@@ -190,7 +190,7 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
190
190
|
|-------|-------|
|
|
191
191
|
| Event | `SubagentStop` |
|
|
192
192
|
| Matcher | *(all)* |
|
|
193
|
-
| Script | `~/.ai-toolkit/hooks/subagent-stop.sh` |
|
|
193
|
+
| Script | `~/.softspark/ai-toolkit/hooks/subagent-stop.sh` |
|
|
194
194
|
| Fires | When a subagent completes |
|
|
195
195
|
|
|
196
196
|
**Action:** Enforces a concise handoff checklist: findings, files touched, tests run, risks, and docs follow-up.
|
|
@@ -203,7 +203,7 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
203
203
|
|-------|-------|
|
|
204
204
|
| Event | `PreCompact` |
|
|
205
205
|
| Matcher | *(all)* |
|
|
206
|
-
| Script | `~/.ai-toolkit/hooks/pre-compact.sh` |
|
|
206
|
+
| Script | `~/.softspark/ai-toolkit/hooks/pre-compact.sh` |
|
|
207
207
|
| Fires | Before context compaction |
|
|
208
208
|
|
|
209
209
|
**Actions (prioritized — higher priority items survive tighter token budgets):**
|
|
@@ -221,7 +221,7 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
221
221
|
|-------|-------|
|
|
222
222
|
| Event | `SessionEnd` |
|
|
223
223
|
| Matcher | *(all)* |
|
|
224
|
-
| Script | `~/.ai-toolkit/hooks/session-end.sh` |
|
|
224
|
+
| Script | `~/.softspark/ai-toolkit/hooks/session-end.sh` |
|
|
225
225
|
| Fires | When a Claude session ends |
|
|
226
226
|
|
|
227
227
|
**Action:** Writes `.claude/session-end.md` with a lightweight handoff note for the next session and reminds the next session to review preserved context.
|
|
@@ -248,7 +248,7 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
248
248
|
|-------|-------|
|
|
249
249
|
| Event | `PreToolUse` |
|
|
250
250
|
| Matcher | `Edit\|Write\|MultiEdit` |
|
|
251
|
-
| Script | `~/.ai-toolkit/hooks/guard-config.sh` |
|
|
251
|
+
| Script | `~/.softspark/ai-toolkit/hooks/guard-config.sh` |
|
|
252
252
|
| Fires | Before any file write/edit operation |
|
|
253
253
|
|
|
254
254
|
**Action:** Blocks (exit 2) edits to linter and formatter config files — `.eslintrc`, `.eslintrc.*`, `eslint.config.*`, `.prettierrc`, `.prettierrc.*`, `prettier.config.*`, `tsconfig.json`, `tsconfig.*.json` — unless the request contains an explicit acknowledgment phrase (e.g. "intentionally editing config"). Returns a human-readable explanation to Claude so it can ask the user for confirmation before retrying.
|
|
@@ -259,7 +259,7 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
259
259
|
|-------|-------|
|
|
260
260
|
| Event | `SessionStart` |
|
|
261
261
|
| Matcher | *(all)* |
|
|
262
|
-
| Script | `~/.ai-toolkit/hooks/mcp-health.sh` |
|
|
262
|
+
| Script | `~/.softspark/ai-toolkit/hooks/mcp-health.sh` |
|
|
263
263
|
| Fires | Session start |
|
|
264
264
|
|
|
265
265
|
**Action:** Non-blocking (always exits 0). Reads MCP server definitions from `~/.claude/settings.json` and any local `.mcp.json`. For each configured server, checks whether the required runtime command (`npx`, `uvx`, `docker`, etc.) is available in `$PATH`. Emits warnings for any missing runtimes, including install hints (e.g. "npm install -g npx"). Helps surface MCP misconfiguration early without interrupting the session.
|
|
@@ -270,10 +270,10 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
270
270
|
|-------|-------|
|
|
271
271
|
| Event | `PostToolUse` |
|
|
272
272
|
| Matcher | *(all)* |
|
|
273
|
-
| Script | `~/.ai-toolkit/hooks/governance-capture.sh` |
|
|
273
|
+
| Script | `~/.softspark/ai-toolkit/hooks/governance-capture.sh` |
|
|
274
274
|
| Fires | After any tool use |
|
|
275
275
|
|
|
276
|
-
**Action:** Non-blocking (always exits 0). Logs security-sensitive operations (Bash commands, file writes to sensitive paths, large writes) to `~/.ai-toolkit/governance.log` with ISO timestamp, session ID, tool name, and a content excerpt. Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
276
|
+
**Action:** Non-blocking (always exits 0). Logs security-sensitive operations (Bash commands, file writes to sensitive paths, large writes) to `~/.softspark/ai-toolkit/governance.log` with ISO timestamp, session ID, tool name, and a content excerpt. Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
277
277
|
|
|
278
278
|
### PreCompact — `pre-compact-save.sh`
|
|
279
279
|
|
|
@@ -281,10 +281,10 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
281
281
|
|-------|-------|
|
|
282
282
|
| Event | `PreCompact` |
|
|
283
283
|
| Matcher | *(all)* |
|
|
284
|
-
| Script | `~/.ai-toolkit/hooks/pre-compact-save.sh` |
|
|
284
|
+
| Script | `~/.softspark/ai-toolkit/hooks/pre-compact-save.sh` |
|
|
285
285
|
| Fires | Before context compaction |
|
|
286
286
|
|
|
287
|
-
**Action:** Saves a timestamped context snapshot to `~/.ai-toolkit/compactions/YYYY-MM-DD_HH-MM-SS.txt`. Captures session ID, working directory, git branch and status, and environment metadata. Provides an audit trail of what was in context at each compaction point. Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
287
|
+
**Action:** Saves a timestamped context snapshot to `~/.softspark/ai-toolkit/compactions/YYYY-MM-DD_HH-MM-SS.txt`. Captures session ID, working directory, git branch and status, and environment metadata. Provides an audit trail of what was in context at each compaction point. Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
288
288
|
|
|
289
289
|
### PreToolUse (commit quality) — `commit-quality.sh`
|
|
290
290
|
|
|
@@ -292,7 +292,7 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
292
292
|
|-------|-------|
|
|
293
293
|
| Event | `PreToolUse` |
|
|
294
294
|
| Matcher | `Bash` |
|
|
295
|
-
| Script | `~/.ai-toolkit/hooks/commit-quality.sh` |
|
|
295
|
+
| Script | `~/.softspark/ai-toolkit/hooks/commit-quality.sh` |
|
|
296
296
|
| Fires | Before any Bash command |
|
|
297
297
|
|
|
298
298
|
**Action:** Non-blocking (always exits 0). Inspects Bash commands containing `git commit`. Extracts the commit message from the `-m` flag and checks it against Conventional Commits format (`type: description`, where type is one of feat/fix/docs/refactor/test/chore/ci/perf/style/revert). Emits an advisory warning if the message does not match — the commit is not blocked, only nudged. Commands without `git commit` or without a `-m` message (e.g. interactive commits) are ignored.
|
|
@@ -303,10 +303,10 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
303
303
|
|-------|-------|
|
|
304
304
|
| Event | `SessionStart` |
|
|
305
305
|
| Matcher | *(all)* |
|
|
306
|
-
| Script | `~/.ai-toolkit/hooks/session-context.sh` |
|
|
306
|
+
| Script | `~/.softspark/ai-toolkit/hooks/session-context.sh` |
|
|
307
307
|
| Fires | Session start |
|
|
308
308
|
|
|
309
|
-
**Action:** Captures an environment snapshot to `~/.ai-toolkit/sessions/current-context.json`. Records working directory, git branch, git status summary, Node.js version, Python version, and timestamp. Used by other hooks and tools to access session metadata without re-running discovery commands. Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
309
|
+
**Action:** Captures an environment snapshot to `~/.softspark/ai-toolkit/sessions/current-context.json`. Records working directory, git branch, git status summary, Node.js version, Python version, and timestamp. Used by other hooks and tools to access session metadata without re-running discovery commands. Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
310
310
|
|
|
311
311
|
## Runtime Profiles
|
|
312
312
|
|
|
@@ -325,7 +325,7 @@ Set in `.claude/settings.local.json`:
|
|
|
325
325
|
## Architecture
|
|
326
326
|
|
|
327
327
|
```
|
|
328
|
-
~/.ai-toolkit/
|
|
328
|
+
~/.softspark/ai-toolkit/
|
|
329
329
|
├── rules/ # Registered rules (add-rule.sh)
|
|
330
330
|
└── hooks/ # Hook scripts (copied on install)
|
|
331
331
|
├── _profile-check.sh # Shared: profile skip logic (sourced by hooks)
|
|
@@ -350,7 +350,7 @@ Set in `.claude/settings.local.json`:
|
|
|
350
350
|
└── session-end.sh
|
|
351
351
|
|
|
352
352
|
~/.claude/settings.json
|
|
353
|
-
└── hooks: # Hook definitions referencing ~/.ai-toolkit/hooks/
|
|
353
|
+
└── hooks: # Hook definitions referencing ~/.softspark/ai-toolkit/hooks/
|
|
354
354
|
├── SessionStart → session-start.sh, mcp-health.sh, session-context.sh
|
|
355
355
|
├── Notification → osascript (inline)
|
|
356
356
|
├── PreToolUse → guard-destructive.sh, guard-path.sh, guard-config.sh, commit-quality.sh
|
|
@@ -380,7 +380,7 @@ Set in `.claude/settings.local.json`:
|
|
|
380
380
|
|
|
381
381
|
**Hook script not found:**
|
|
382
382
|
```bash
|
|
383
|
-
ls ~/.ai-toolkit/hooks/ # should list 21 .sh files (plus _profile-check.sh helper)
|
|
383
|
+
ls ~/.softspark/ai-toolkit/hooks/ # should list 21 .sh files (plus _profile-check.sh helper)
|
|
384
384
|
ai-toolkit update # re-copies scripts
|
|
385
385
|
```
|
|
386
386
|
|
|
@@ -25,9 +25,9 @@ ai-toolkit add-rule ./jira-rules.md
|
|
|
25
25
|
ai-toolkit update # inject now
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
After registration, `ai-toolkit update` will always re-inject the rule. Registry location: `~/.ai-toolkit/rules/`.
|
|
28
|
+
After registration, `ai-toolkit update` will always re-inject the rule. Registry location: `~/.softspark/ai-toolkit/rules/`.
|
|
29
29
|
|
|
30
|
-
To unregister a rule (removes from `~/.ai-toolkit/rules/` and strips the block from `CLAUDE.md`):
|
|
30
|
+
To unregister a rule (removes from `~/.softspark/ai-toolkit/rules/` and strips the block from `CLAUDE.md`):
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
33
|
ai-toolkit remove-rule jira-rules
|
|
@@ -55,7 +55,7 @@ Content outside markers is never touched. Re-running updates only the marked blo
|
|
|
55
55
|
|
|
56
56
|
1. Create `<name>-rules.md` in your repo with Claude-relevant conventions
|
|
57
57
|
2. Register it: `ai-toolkit add-rule ./<name>-rules.md`
|
|
58
|
-
3. Verify it appears in: `~/.ai-toolkit/rules/<name>-rules.md`
|
|
58
|
+
3. Verify it appears in: `~/.softspark/ai-toolkit/rules/<name>-rules.md`
|
|
59
59
|
4. On next `install` it will be listed in: `Rules injected: ... <name>-rules`
|
|
60
60
|
5. Add an entry below documenting the integration
|
|
61
61
|
|
|
@@ -6,7 +6,7 @@ tags: [install, manifest, modules, profiles, auto-detect, state-tracking]
|
|
|
6
6
|
version: "1.0.0"
|
|
7
7
|
created: "2026-04-07"
|
|
8
8
|
last_updated: "2026-04-07"
|
|
9
|
-
description: "Reference for the manifest-driven install system: 17 modules, 4 profiles, auto-detection, and state tracking in ~/.ai-toolkit/state.json."
|
|
9
|
+
description: "Reference for the manifest-driven install system: 17 modules, 4 profiles, auto-detection, and state tracking in ~/.softspark/ai-toolkit/state.json."
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Manifest-Driven Install System
|
|
@@ -107,7 +107,7 @@ Lists all currently installed modules with version and install timestamp:
|
|
|
107
107
|
|
|
108
108
|
```bash
|
|
109
109
|
ai-toolkit status
|
|
110
|
-
# Installed modules (from ~/.ai-toolkit/state.json):
|
|
110
|
+
# Installed modules (from ~/.softspark/ai-toolkit/state.json):
|
|
111
111
|
# core v1.3.0 installed 2026-04-07T10:00:00Z
|
|
112
112
|
# agents v1.3.0 installed 2026-04-07T10:00:00Z
|
|
113
113
|
# skills v1.3.0 installed 2026-04-07T10:00:00Z
|
|
@@ -121,7 +121,7 @@ Re-applies installed modules, skipping files whose content hash has not changed
|
|
|
121
121
|
|
|
122
122
|
## State Tracking
|
|
123
123
|
|
|
124
|
-
Installed module state is persisted to `~/.ai-toolkit/state.json`:
|
|
124
|
+
Installed module state is persisted to `~/.softspark/ai-toolkit/state.json`:
|
|
125
125
|
|
|
126
126
|
```json
|
|
127
127
|
{
|
|
@@ -145,7 +145,7 @@ Installed module state is persisted to `~/.ai-toolkit/state.json`:
|
|
|
145
145
|
|------|---------|
|
|
146
146
|
| `manifest.json` | Module and profile definitions |
|
|
147
147
|
| `scripts/install_steps/detect_language.py` | Auto-detect project language from marker files |
|
|
148
|
-
| `scripts/install_steps/install_state.py` | Read/write `~/.ai-toolkit/state.json` |
|
|
148
|
+
| `scripts/install_steps/install_state.py` | Read/write `~/.softspark/ai-toolkit/state.json` |
|
|
149
149
|
|
|
150
150
|
## Backward Compatibility
|
|
151
151
|
|
|
@@ -87,11 +87,11 @@ ai-toolkit plugin status # show installed packs with data stats
|
|
|
87
87
|
### What `plugin install` Does
|
|
88
88
|
|
|
89
89
|
1. **Verifies** referenced agents/skills exist in `~/.claude/` (links them from core if missing)
|
|
90
|
-
2. **Copies** plugin-specific hooks to `~/.ai-toolkit/hooks/plugin-<pack>-<hook>.sh`
|
|
91
|
-
3. **Copies** plugin-specific scripts to `~/.ai-toolkit/plugin-scripts/<pack>/`
|
|
90
|
+
2. **Copies** plugin-specific hooks to `~/.softspark/ai-toolkit/hooks/plugin-<pack>-<hook>.sh`
|
|
91
|
+
3. **Copies** plugin-specific scripts to `~/.softspark/ai-toolkit/plugin-scripts/<pack>/`
|
|
92
92
|
4. **Runs** init scripts if present (e.g. `init_db.py` for memory-pack — safe to re-run, preserves data)
|
|
93
93
|
5. **Merges** plugin hooks into `~/.claude/settings.json` (tagged with `_source: ai-toolkit-plugin-<name>`)
|
|
94
|
-
6. **Records** installed state to `~/.ai-toolkit/plugins.json`
|
|
94
|
+
6. **Records** installed state to `~/.softspark/ai-toolkit/plugins.json`
|
|
95
95
|
|
|
96
96
|
### What `plugin update` Does
|
|
97
97
|
|
|
@@ -108,8 +108,8 @@ ai-toolkit plugin status # show installed packs with data stats
|
|
|
108
108
|
|
|
109
109
|
### What `plugin remove` Does
|
|
110
110
|
|
|
111
|
-
1. **Removes** plugin hooks from `~/.ai-toolkit/hooks/`
|
|
112
|
-
2. **Removes** plugin scripts from `~/.ai-toolkit/plugin-scripts/`
|
|
111
|
+
1. **Removes** plugin hooks from `~/.softspark/ai-toolkit/hooks/`
|
|
112
|
+
2. **Removes** plugin scripts from `~/.softspark/ai-toolkit/plugin-scripts/`
|
|
113
113
|
3. **Strips** plugin hook entries from `settings.json` (by `_source` tag)
|
|
114
114
|
4. **Updates** `plugins.json` state
|
|
115
115
|
5. **Leaves** core agents/skills untouched (they belong to the base install)
|
package/kb/reference/stats.md
CHANGED
|
@@ -13,7 +13,7 @@ description: "Local usage tracking for skill invocations. CLI command, JSON form
|
|
|
13
13
|
|
|
14
14
|
## Overview
|
|
15
15
|
|
|
16
|
-
`ai-toolkit stats` tracks how often each skill is invoked via slash commands. All data is local — stored in `~/.ai-toolkit/stats.json`. No telemetry, no network calls.
|
|
16
|
+
`ai-toolkit stats` tracks how often each skill is invoked via slash commands. All data is local — stored in `~/.softspark/ai-toolkit/stats.json`. No telemetry, no network calls.
|
|
17
17
|
|
|
18
18
|
## CLI Commands
|
|
19
19
|
|
|
@@ -29,7 +29,7 @@ A `UserPromptSubmit` hook (`track-usage.sh`) fires on every prompt. When the pro
|
|
|
29
29
|
|
|
30
30
|
### Hook Details
|
|
31
31
|
- **Event**: `UserPromptSubmit`
|
|
32
|
-
- **Script**: `~/.ai-toolkit/hooks/track-usage.sh`
|
|
32
|
+
- **Script**: `~/.softspark/ai-toolkit/hooks/track-usage.sh`
|
|
33
33
|
- **Detection**: `grep -oE '^/[a-z][a-z0-9-]*'`
|
|
34
34
|
- **Storage**: Atomic write via python3 `os.replace()`
|
|
35
35
|
- **Overhead**: ~50ms (python3 startup + JSON read/write)
|
|
@@ -64,6 +64,6 @@ debug 8 2026-03-27 16:45:00
|
|
|
64
64
|
Total invocations: 65
|
|
65
65
|
Unique skills: 3
|
|
66
66
|
|
|
67
|
-
File: ~/.ai-toolkit/stats.json
|
|
67
|
+
File: ~/.softspark/ai-toolkit/stats.json
|
|
68
68
|
Reset: ai-toolkit stats --reset
|
|
69
69
|
```
|
package/kb/reference/sync.md
CHANGED
|
@@ -28,8 +28,8 @@ ai-toolkit sync --import <file|url> # Import from file or URL
|
|
|
28
28
|
|
|
29
29
|
| Data | Included | Source |
|
|
30
30
|
|------|----------|--------|
|
|
31
|
-
| Custom rules | Yes | `~/.ai-toolkit/rules/*.md` |
|
|
32
|
-
| Usage stats | Yes | `~/.ai-toolkit/stats.json` |
|
|
31
|
+
| Custom rules | Yes | `~/.softspark/ai-toolkit/rules/*.md` |
|
|
32
|
+
| Usage stats | Yes | `~/.softspark/ai-toolkit/stats.json` |
|
|
33
33
|
| Toolkit version | Yes (metadata) | `package.json` |
|
|
34
34
|
| Agents/skills | No | Installed via `npm` |
|
|
35
35
|
| Hooks | No | Installed via `ai-toolkit install` |
|
|
@@ -39,7 +39,7 @@ ai-toolkit sync --import <file|url> # Import from file or URL
|
|
|
39
39
|
### First machine (export)
|
|
40
40
|
```bash
|
|
41
41
|
ai-toolkit sync --push
|
|
42
|
-
# Creates secret Gist, saves ID to ~/.ai-toolkit/.gist-id
|
|
42
|
+
# Creates secret Gist, saves ID to ~/.softspark/ai-toolkit/.gist-id
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
### Second machine (import)
|