@softspark/ai-toolkit 1.0.0 → 1.2.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 +34 -1
- package/README.md +22 -12
- package/app/.claude-plugin/plugin.json +2 -2
- package/app/ARCHITECTURE.md +7 -5
- package/app/hooks/pre-compact.sh +44 -10
- package/app/personas/backend-lead.md +27 -0
- package/app/personas/devops-eng.md +27 -0
- package/app/personas/frontend-lead.md +26 -0
- package/app/personas/junior-dev.md +28 -0
- package/app/rules/claude-toolkit-rules.md +1 -1
- package/app/skills/api-patterns/SKILL.md +1 -0
- package/app/skills/app-builder/SKILL.md +1 -0
- package/app/skills/ci-cd-patterns/SKILL.md +1 -0
- package/app/skills/clean-code/SKILL.md +1 -0
- package/app/skills/csharp-patterns/SKILL.md +1 -0
- package/app/skills/database-patterns/SKILL.md +1 -0
- package/app/skills/debugging-tactics/SKILL.md +1 -1
- package/app/skills/design-engineering/SKILL.md +1 -0
- package/app/skills/docker-devops/SKILL.md +1 -0
- package/app/skills/documentation-standards/SKILL.md +1 -0
- package/app/skills/ecommerce-patterns/SKILL.md +1 -0
- package/app/skills/flutter-patterns/SKILL.md +1 -0
- package/app/skills/git-mastery/SKILL.md +1 -1
- package/app/skills/hive-mind/SKILL.md +1 -0
- package/app/skills/java-patterns/SKILL.md +1 -0
- package/app/skills/kotlin-patterns/SKILL.md +1 -0
- package/app/skills/mcp-patterns/SKILL.md +1 -0
- package/app/skills/migration-patterns/SKILL.md +1 -0
- package/app/skills/observability-patterns/SKILL.md +1 -0
- package/app/skills/onboard/SKILL.md +2 -0
- package/app/skills/orchestrate/SKILL.md +1 -1
- package/app/skills/performance-profiling/SKILL.md +1 -1
- package/app/skills/persona/SKILL.md +57 -0
- package/app/skills/plan-writing/SKILL.md +1 -0
- package/app/skills/pr/scripts/pr-summary.py +6 -3
- package/app/skills/rag-patterns/SKILL.md +1 -0
- package/app/skills/research-mastery/SKILL.md +1 -0
- package/app/skills/ruby-patterns/SKILL.md +1 -0
- package/app/skills/rust-patterns/SKILL.md +1 -0
- package/app/skills/security-patterns/SKILL.md +1 -0
- package/app/skills/skill-audit/SKILL.md +137 -0
- package/app/skills/subagent-development/SKILL.md +1 -1
- package/app/skills/swarm/SKILL.md +1 -1
- package/app/skills/swift-patterns/SKILL.md +1 -1
- package/app/skills/teams/SKILL.md +1 -1
- package/app/skills/testing-patterns/SKILL.md +1 -0
- package/app/skills/typescript-patterns/SKILL.md +1 -0
- package/app/skills/verification-before-completion/SKILL.md +1 -0
- package/app/skills/workflow/SKILL.md +1 -1
- package/kb/reference/architecture-overview.md +28 -5
- package/kb/reference/hooks-catalog.md +6 -4
- package/kb/reference/skills-catalog.md +5 -3
- package/llms.txt +2 -2
- package/package.json +3 -2
- package/scripts/audit_skills.py +290 -0
- package/scripts/generate_augment.py +46 -0
- package/scripts/install.py +32 -2
- package/scripts/install_steps/ai_tools.py +10 -1
- package/scripts/install_steps/hooks.py +30 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: persona
|
|
3
|
+
description: "Switch engineering persona at runtime: backend-lead, frontend-lead, devops-eng, junior-dev"
|
|
4
|
+
effort: low
|
|
5
|
+
user-invocable: true
|
|
6
|
+
argument-hint: "[backend-lead | frontend-lead | devops-eng | junior-dev | --list | --clear]"
|
|
7
|
+
allowed-tools: Read, Glob
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# /persona - Runtime Persona Switching
|
|
11
|
+
|
|
12
|
+
$ARGUMENTS
|
|
13
|
+
|
|
14
|
+
Switch your working persona without re-installing. Personas adjust communication style, preferred skills, and code review priorities for the current session.
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
/persona backend-lead # Activate backend lead persona
|
|
20
|
+
/persona frontend-lead # Activate frontend lead persona
|
|
21
|
+
/persona devops-eng # Activate DevOps engineer persona
|
|
22
|
+
/persona junior-dev # Activate junior developer persona
|
|
23
|
+
/persona --list # Show available personas
|
|
24
|
+
/persona --clear # Reset to default (no persona)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Available Personas
|
|
28
|
+
|
|
29
|
+
| Persona | Focus | Preferred Skills |
|
|
30
|
+
|---------|-------|-----------------|
|
|
31
|
+
| `backend-lead` | System design, scalability, data integrity, API stability | `/workflow backend-feature`, `/tdd` |
|
|
32
|
+
| `frontend-lead` | Component architecture, a11y, state management, Core Web Vitals | `/design-an-interface`, `/review` |
|
|
33
|
+
| `devops-eng` | IaC, CI/CD, blast radius, rollback safety, observability | `/workflow infrastructure-change`, `/deploy` |
|
|
34
|
+
| `junior-dev` | Step-by-step explanations, learning resources, small PRs | `/explain`, `/explore`, `/debug` |
|
|
35
|
+
|
|
36
|
+
## Steps
|
|
37
|
+
|
|
38
|
+
1. Parse `$ARGUMENTS`
|
|
39
|
+
2. If `--list`: read all `app/personas/*.md` files via Glob, display table with name and first-line summary
|
|
40
|
+
3. If `--clear`: respond with "Persona cleared. Using default behavior for the rest of this session."
|
|
41
|
+
4. If persona name given:
|
|
42
|
+
a. Read the persona file from `app/personas/{name}.md` (relative to toolkit root)
|
|
43
|
+
b. If file not found, try the installed location: `~/.claude/skills/persona/../../../app/personas/{name}.md`
|
|
44
|
+
c. Display the persona content to Claude
|
|
45
|
+
d. State: "**Persona active: {name}**. I will follow these guidelines for the rest of this session."
|
|
46
|
+
5. If no argument: show usage and available personas
|
|
47
|
+
|
|
48
|
+
## How It Works
|
|
49
|
+
|
|
50
|
+
Unlike `--persona` at install time (which injects into CLAUDE.md permanently), `/persona` applies for the **current session only**. The persona file content is loaded into the conversation context and Claude follows it until the session ends or `/persona --clear` is called.
|
|
51
|
+
|
|
52
|
+
## Rules
|
|
53
|
+
|
|
54
|
+
- This skill is READ-ONLY — it never writes files
|
|
55
|
+
- Persona stays active for the current session only
|
|
56
|
+
- Only one persona active at a time — switching replaces the previous one
|
|
57
|
+
- Valid personas are defined by `.md` files in `app/personas/`
|
|
@@ -36,15 +36,18 @@ CONVENTIONAL_TYPES: dict[str, str] = {
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
def run(cmd: str) -> str:
|
|
39
|
-
"""Run a
|
|
39
|
+
"""Run a command and return stripped stdout.
|
|
40
40
|
|
|
41
41
|
Args:
|
|
42
|
-
cmd:
|
|
42
|
+
cmd: Command string (split via shlex, no shell).
|
|
43
43
|
|
|
44
44
|
Returns:
|
|
45
45
|
Stripped standard output of the command.
|
|
46
46
|
"""
|
|
47
|
-
|
|
47
|
+
import shlex
|
|
48
|
+
# Strip shell redirects (2>/dev/null) — subprocess captures stderr anyway
|
|
49
|
+
clean = re.sub(r'\s*2>/dev/null\s*', '', cmd)
|
|
50
|
+
r = subprocess.run(shlex.split(clean), capture_output=True, text=True)
|
|
48
51
|
return r.stdout.strip()
|
|
49
52
|
|
|
50
53
|
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-audit
|
|
3
|
+
description: "Scan skills and agents for security risks: dangerous patterns, secrets, excessive permissions"
|
|
4
|
+
effort: medium
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
argument-hint: "[skill-name | --all | --fix]"
|
|
7
|
+
allowed-tools: Read, Grep, Glob, Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# /skill-audit - Skill Security Scanner
|
|
11
|
+
|
|
12
|
+
$ARGUMENTS
|
|
13
|
+
|
|
14
|
+
Scan skill and agent definitions for security risks before installation or after changes.
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
/skill-audit # Audit all skills
|
|
20
|
+
/skill-audit debug # Audit specific skill
|
|
21
|
+
/skill-audit --all --fix # Audit all + auto-fix safe issues
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## What This Command Does
|
|
25
|
+
|
|
26
|
+
1. **Scan SKILL.md frontmatter** for permission issues
|
|
27
|
+
2. **Scan scripts/** for dangerous code patterns
|
|
28
|
+
3. **Scan reference/** for hardcoded secrets
|
|
29
|
+
4. **Report** findings with severity levels
|
|
30
|
+
5. **Auto-fix** safe issues when `--fix` is passed
|
|
31
|
+
|
|
32
|
+
## Security Checks
|
|
33
|
+
|
|
34
|
+
### Frontmatter Checks
|
|
35
|
+
|
|
36
|
+
| Check | Severity | Description |
|
|
37
|
+
|-------|----------|-------------|
|
|
38
|
+
| Overly permissive tools | WARN | `allowed-tools` includes Bash + Write + Edit without justification |
|
|
39
|
+
| Missing allowed-tools | WARN | No tool restriction = full access |
|
|
40
|
+
| Knowledge skill with Bash | HIGH | `user-invocable: false` skills should not need Bash |
|
|
41
|
+
| Missing effort field | INFO | Best practice to declare effort |
|
|
42
|
+
|
|
43
|
+
### Script Checks (Python)
|
|
44
|
+
|
|
45
|
+
| Pattern | Severity | Description |
|
|
46
|
+
|---------|----------|-------------|
|
|
47
|
+
| `eval(` / `exec(` | HIGH | Arbitrary code execution |
|
|
48
|
+
| `os.system(` | HIGH | Shell injection risk |
|
|
49
|
+
| `subprocess.*shell=True` | HIGH | Shell injection risk |
|
|
50
|
+
| `__import__` | WARN | Dynamic imports |
|
|
51
|
+
| `pickle.loads` | HIGH | Deserialization attack |
|
|
52
|
+
| `open(.*'w')` without path validation | WARN | Arbitrary file write |
|
|
53
|
+
|
|
54
|
+
### Script Checks (Bash)
|
|
55
|
+
|
|
56
|
+
| Pattern | Severity | Description |
|
|
57
|
+
|---------|----------|-------------|
|
|
58
|
+
| `curl.*\| bash` | HIGH | Remote code execution |
|
|
59
|
+
| `curl.*\| sh` | HIGH | Remote code execution |
|
|
60
|
+
| `wget.*\| bash` | HIGH | Remote code execution |
|
|
61
|
+
| `rm -rf /` or `rm -rf ~` | HIGH | Destructive command |
|
|
62
|
+
| Unquoted `$variables` in commands | WARN | Word splitting / injection |
|
|
63
|
+
| `chmod 777` | WARN | Overly permissive |
|
|
64
|
+
|
|
65
|
+
### Secret Detection
|
|
66
|
+
|
|
67
|
+
| Pattern | Severity | Description |
|
|
68
|
+
|---------|----------|-------------|
|
|
69
|
+
| `AKIA[0-9A-Z]{16}` | HIGH | AWS access key |
|
|
70
|
+
| `sk-[a-zA-Z0-9]{20,}` | HIGH | API key pattern |
|
|
71
|
+
| `password\s*=\s*['"][^'"]+` | WARN | Hardcoded password |
|
|
72
|
+
| `token\s*=\s*['"][^'"]+` | WARN | Hardcoded token |
|
|
73
|
+
| `-----BEGIN.*PRIVATE KEY` | HIGH | Private key |
|
|
74
|
+
| `ghp_[a-zA-Z0-9]{36}` | HIGH | GitHub PAT |
|
|
75
|
+
|
|
76
|
+
## Output Format
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
## Skill Audit Report
|
|
80
|
+
|
|
81
|
+
### Summary
|
|
82
|
+
- Skills scanned: N
|
|
83
|
+
- HIGH: N | WARN: N | INFO: N
|
|
84
|
+
|
|
85
|
+
### Findings
|
|
86
|
+
|
|
87
|
+
#### [HIGH] skill-name/scripts/helper.py:12
|
|
88
|
+
Pattern: `eval(user_input)`
|
|
89
|
+
Risk: Arbitrary code execution
|
|
90
|
+
Fix: Replace with `ast.literal_eval()` or explicit parsing
|
|
91
|
+
|
|
92
|
+
#### [WARN] skill-name/SKILL.md (frontmatter)
|
|
93
|
+
Pattern: Missing `allowed-tools`
|
|
94
|
+
Risk: Skill has unrestricted tool access
|
|
95
|
+
Fix: Add `allowed-tools: Read, Grep, Glob` (principle of least privilege)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Steps
|
|
99
|
+
|
|
100
|
+
1. Determine scope: single skill (`$ARGUMENTS`) or all skills
|
|
101
|
+
2. For each skill directory in `app/skills/`:
|
|
102
|
+
a. Read `SKILL.md` — check frontmatter fields
|
|
103
|
+
b. Glob `scripts/**/*.py` — scan for dangerous Python patterns
|
|
104
|
+
c. Glob `scripts/**/*.sh` — scan for dangerous Bash patterns
|
|
105
|
+
d. Grep all files for secret patterns
|
|
106
|
+
3. Also scan `app/agents/*.md` for overly broad tool lists
|
|
107
|
+
4. Collect findings, sort by severity (HIGH > WARN > INFO)
|
|
108
|
+
5. If `--fix` is passed:
|
|
109
|
+
- Add missing `allowed-tools` to SKILL.md frontmatter (suggest minimal set)
|
|
110
|
+
- Replace `eval(` with `ast.literal_eval(` where safe
|
|
111
|
+
- Do NOT auto-fix HIGH severity — only report
|
|
112
|
+
6. Print audit report
|
|
113
|
+
|
|
114
|
+
## Deterministic Scanner
|
|
115
|
+
|
|
116
|
+
For CI pipelines or non-interactive use, run the Python scanner directly:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Human-readable output
|
|
120
|
+
python3 scripts/audit_skills.py
|
|
121
|
+
|
|
122
|
+
# JSON output (for CI parsing)
|
|
123
|
+
python3 scripts/audit_skills.py --json
|
|
124
|
+
|
|
125
|
+
# CI mode: exit 1 on any HIGH finding
|
|
126
|
+
python3 scripts/audit_skills.py --ci
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
The `/skill-audit` slash command wraps this scanner with Claude's analysis for remediation suggestions.
|
|
130
|
+
|
|
131
|
+
## Rules
|
|
132
|
+
|
|
133
|
+
- Never modify files without `--fix` flag
|
|
134
|
+
- HIGH severity findings should block deployment
|
|
135
|
+
- This skill is READ-ONLY by default
|
|
136
|
+
- Scan both `app/skills/` and `app/agents/` directories
|
|
137
|
+
- Exit with non-zero status if any HIGH findings exist (for CI integration)
|
|
@@ -4,7 +4,7 @@ description: "Execute implementation plans using fresh subagents per task with t
|
|
|
4
4
|
user-invocable: true
|
|
5
5
|
effort: high
|
|
6
6
|
argument-hint: "[plan file or task description]"
|
|
7
|
-
allowed-tools: Read, Write, Edit, Grep, Glob, Bash, Agent
|
|
7
|
+
allowed-tools: Read, Write, Edit, Grep, Glob, Bash, Agent, TaskCreate, TaskList, TaskUpdate, TaskGet
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Subagent Development
|
|
@@ -7,7 +7,7 @@ argument-hint: "[map-reduce|consensus|relay] [task]"
|
|
|
7
7
|
context: fork
|
|
8
8
|
agent: orchestrator
|
|
9
9
|
model: opus
|
|
10
|
-
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Agent, TeamCreate, TeamDelete, SendMessage, TaskCreate, TaskList, TaskUpdate
|
|
10
|
+
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Agent, TeamCreate, TeamDelete, SendMessage, TaskCreate, TaskList, TaskUpdate, TaskGet, TaskOutput, TaskStop
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# /swarm - Parallel Agent Swarm
|
|
@@ -3,6 +3,7 @@ name: swift-patterns
|
|
|
3
3
|
description: "Loaded when user asks about Swift or iOS development patterns"
|
|
4
4
|
effort: medium
|
|
5
5
|
user-invocable: false
|
|
6
|
+
allowed-tools: Read
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# Swift / iOS Patterns
|
|
@@ -487,7 +488,6 @@ Schemes: separate Debug/Release/Testing. Enable ASan + TSan in test schemes.
|
|
|
487
488
|
---
|
|
488
489
|
|
|
489
490
|
## Anti-Patterns
|
|
490
|
-
|
|
491
491
|
| Anti-Pattern | Problem | Fix |
|
|
492
492
|
|---|---|---|
|
|
493
493
|
| Force unwrap `!` | Runtime crash | `guard let`, `if let`, `??` |
|
|
@@ -4,7 +4,7 @@ description: "Launch pre-configured Agent Teams for common workflows"
|
|
|
4
4
|
effort: max
|
|
5
5
|
user-invocable: true
|
|
6
6
|
argument-hint: "<preset> [task-description]"
|
|
7
|
-
allowed-tools: Bash, Read, Write, Edit, Glob, Grep
|
|
7
|
+
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Agent, TeamCreate, TeamDelete, SendMessage, TaskCreate, TaskList, TaskUpdate, TaskGet
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# /teams - Agent Teams Presets
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: verification-before-completion
|
|
3
3
|
description: "Loaded when agent is about to claim work is complete, fixed, or passing — requires running verification commands and confirming output before making any success claims. Evidence before assertions, always."
|
|
4
4
|
user-invocable: false
|
|
5
|
+
allowed-tools: Read
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Verification Before Completion
|
|
@@ -7,7 +7,7 @@ argument-hint: "[type] [task description]"
|
|
|
7
7
|
context: fork
|
|
8
8
|
agent: orchestrator
|
|
9
9
|
model: opus
|
|
10
|
-
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Agent, TeamCreate, TeamDelete, SendMessage, TaskCreate, TaskList, TaskUpdate
|
|
10
|
+
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Agent, TeamCreate, TeamDelete, SendMessage, TaskCreate, TaskList, TaskUpdate, TaskGet, TaskOutput, TaskStop
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# /workflow - Autonomous Agent Workflow
|
|
@@ -13,7 +13,7 @@ description: "Architecture of ai-toolkit: directory layout, global install model
|
|
|
13
13
|
|
|
14
14
|
## Purpose
|
|
15
15
|
|
|
16
|
-
Shared, project-agnostic AI development toolkit for Claude Code (and compatible assistants like Cursor, Windsurf, Copilot, Gemini, Cline, Roo Code, and
|
|
16
|
+
Shared, project-agnostic AI development toolkit for Claude Code (and compatible assistants like Cursor, Windsurf, Copilot, Gemini, Cline, Roo Code, Aider, and Augment). Provides 47 specialized agents, 87 skills (slash commands + knowledge), expanded lifecycle hooks, persona presets, and experimental opt-in plugin packs that teams can adopt separately from the default global install.
|
|
17
17
|
|
|
18
18
|
## Design Principles
|
|
19
19
|
|
|
@@ -31,7 +31,7 @@ ai-toolkit/
|
|
|
31
31
|
ai-toolkit.js # CLI entry point (install, init, add-rule, ...)
|
|
32
32
|
app/ # All toolkit components
|
|
33
33
|
agents/ # 47 agent definitions (.md + YAML frontmatter)
|
|
34
|
-
skills/ #
|
|
34
|
+
skills/ # 87 skills: task, hybrid, knowledge
|
|
35
35
|
rules/ # Rules auto-injected into ~/.claude/CLAUDE.md
|
|
36
36
|
hooks/ # Hook scripts (copied to ~/.ai-toolkit/hooks/)
|
|
37
37
|
hooks.json # Hook definitions (merged into ~/.claude/settings.json)
|
|
@@ -165,8 +165,8 @@ Three tiers determine how to approach a task:
|
|
|
165
165
|
|
|
166
166
|
| Type | Field | Invocation | Count |
|
|
167
167
|
|------|-------|-----------|-------|
|
|
168
|
-
| Task | `disable-model-invocation: true` | User via `/skill` only |
|
|
169
|
-
| Hybrid | (neither) | User via `/skill` + agent knowledge |
|
|
168
|
+
| Task | `disable-model-invocation: true` | User via `/skill` only | 28 |
|
|
169
|
+
| Hybrid | (neither) | User via `/skill` + agent knowledge | 28 |
|
|
170
170
|
| Knowledge | `user-invocable: false` | Claude auto-loads | 31 |
|
|
171
171
|
|
|
172
172
|
## Multi-Agent Execution
|
|
@@ -209,7 +209,7 @@ Agents (code-reviewer, debugger, devops-implementer, ...)
|
|
|
209
209
|
| TeammateIdle | Agent Teams: idle | *(inline)* | Completeness reminder |
|
|
210
210
|
| SubagentStart | Subagent spawn | `subagent-start.sh` | Scope reminder for subagents |
|
|
211
211
|
| SubagentStop | Subagent completion | `subagent-stop.sh` | Handoff checklist for subagents |
|
|
212
|
-
| PreCompact | Before compaction | `pre-compact.sh` | Save context
|
|
212
|
+
| PreCompact | Before compaction | `pre-compact.sh` | Save prioritized context: instincts > tasks > git state > decisions |
|
|
213
213
|
| SessionEnd | Session end | `session-end.sh` | Persist handoff note for the next session |
|
|
214
214
|
|
|
215
215
|
Scripts at `~/.ai-toolkit/hooks/`. See [hooks-catalog.md](hooks-catalog.md) for details.
|
|
@@ -224,6 +224,29 @@ Scripts at `~/.ai-toolkit/hooks/`. See [hooks-catalog.md](hooks-catalog.md) for
|
|
|
224
224
|
| IV Self-Preservation | Constitution is read-only, kill switch via system-governor |
|
|
225
225
|
| V Resource Governance | No destructive commands without confirmation |
|
|
226
226
|
|
|
227
|
+
## Persona Presets
|
|
228
|
+
|
|
229
|
+
Optional engineering personas injected via `ai-toolkit install --persona <name>`. Each persona adds role-specific communication style, preferred skills, and code review priorities to CLAUDE.md.
|
|
230
|
+
|
|
231
|
+
| Persona | Focus |
|
|
232
|
+
|---------|-------|
|
|
233
|
+
| `backend-lead` | System design, scalability, data integrity, API stability |
|
|
234
|
+
| `frontend-lead` | Component architecture, a11y, state management, Core Web Vitals |
|
|
235
|
+
| `devops-eng` | Infrastructure as code, CI/CD, rollback safety, observability |
|
|
236
|
+
| `junior-dev` | Step-by-step explanations, learning resources, small PRs |
|
|
237
|
+
|
|
238
|
+
Persona files live in `app/personas/*.md` and use the same `inject_rule` mechanism as registered rules.
|
|
239
|
+
|
|
240
|
+
## Skill Security Auditing
|
|
241
|
+
|
|
242
|
+
`/skill-audit` scans `app/skills/` and `app/agents/` for security risks:
|
|
243
|
+
- **Frontmatter**: overly permissive `allowed-tools`, knowledge skills with Bash
|
|
244
|
+
- **Scripts**: `eval()`, `exec()`, `os.system()`, `subprocess(shell=True)`, `pickle.loads`
|
|
245
|
+
- **Secrets**: AWS keys, GitHub PATs, private keys, hardcoded passwords
|
|
246
|
+
- **Bash**: `curl | bash`, unquoted variables, `chmod 777`
|
|
247
|
+
|
|
248
|
+
Severity levels: HIGH (blocks deployment), WARN (should fix), INFO (best practice). CI-ready with non-zero exit on HIGH findings.
|
|
249
|
+
|
|
227
250
|
## Agent Model Tiers
|
|
228
251
|
|
|
229
252
|
| Model | Purpose | Count |
|
|
@@ -199,10 +199,12 @@ Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
|
199
199
|
| Script | `~/.ai-toolkit/hooks/pre-compact.sh` |
|
|
200
200
|
| Fires | Before context compaction |
|
|
201
201
|
|
|
202
|
-
**Actions:**
|
|
203
|
-
1.
|
|
204
|
-
2.
|
|
205
|
-
3.
|
|
202
|
+
**Actions (prioritized — higher priority items survive tighter token budgets):**
|
|
203
|
+
1. **Mandatory reload reminder** — always emitted, instructs Claude to re-read CLAUDE.md and active tasks
|
|
204
|
+
2. **Active instincts** — lists each instinct with confidence score and pattern name from `.claude/instincts/*.md`
|
|
205
|
+
3. **Session context** — preserves task state from `.claude/session-context.md` (if exists)
|
|
206
|
+
4. **Git working state** — branch name, uncommitted change count, last commit (if inside a git repo)
|
|
207
|
+
5. **Key decisions** — last 10 lines from `.claude/decisions.md` (if exists)
|
|
206
208
|
|
|
207
209
|
Skipped when `TOOLKIT_HOOK_PROFILE=minimal`.
|
|
208
210
|
|
|
@@ -9,7 +9,7 @@ last_updated: "2026-04-01"
|
|
|
9
9
|
description: "Complete catalog of 85 skills: 27 task, 27 hybrid, 31 knowledge. Includes effort levels, skill-scoped hooks, executable scripts, and creator workflows."
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
# Skills Catalog (
|
|
12
|
+
# Skills Catalog (87 skills)
|
|
13
13
|
|
|
14
14
|
All functionality is unified under skills. Task and hybrid skills are user-invocable as slash commands. Knowledge skills provide domain patterns auto-loaded by agents.
|
|
15
15
|
|
|
@@ -21,7 +21,7 @@ All functionality is unified under skills. Task and hybrid skills are user-invoc
|
|
|
21
21
|
| **2 — Multi-agent workflow** | `/workflow <type>` | Cross-cutting task with known pattern |
|
|
22
22
|
| **3 — Custom parallelism** | `/orchestrate`, `/swarm` | No predefined workflow matches |
|
|
23
23
|
|
|
24
|
-
## Task Skills (
|
|
24
|
+
## Task Skills (28)
|
|
25
25
|
|
|
26
26
|
Task skills execute a specific action. Invoked via slash commands. `disable-model-invocation: true`.
|
|
27
27
|
|
|
@@ -54,8 +54,9 @@ Task skills execute a specific action. Invoked via slash commands. `disable-mode
|
|
|
54
54
|
| **plugin-creator** | `/plugin-creator` | high | Create experimental opt-in plugin packs with manifests, conventions, and optional modules |
|
|
55
55
|
| **health** | `/health` | medium | Check health of project services (auto-detect) |
|
|
56
56
|
| **prd-to-issues** | `/prd-to-issues` | medium | Break PRD into GitHub issues with vertical slices and HITL/AFK tagging |
|
|
57
|
+
| **skill-audit** | `/skill-audit` | medium | Scan skills and agents for security risks: dangerous patterns, secrets, excessive permissions |
|
|
57
58
|
|
|
58
|
-
## Hybrid Skills (
|
|
59
|
+
## Hybrid Skills (28)
|
|
59
60
|
|
|
60
61
|
Hybrid skills combine slash-command invocation with domain knowledge that agents reference.
|
|
61
62
|
|
|
@@ -88,6 +89,7 @@ Hybrid skills combine slash-command invocation with domain knowledge that agents
|
|
|
88
89
|
| **subagent-development** | `/subagent-development` | high | Execute plans with 2-stage review (spec + quality) per task |
|
|
89
90
|
| **repeat** | `/repeat` | medium | Autonomous loop with safety controls (Ralph Wiggum pattern) |
|
|
90
91
|
| **mem-search** | `/mem-search` | medium | Search past coding sessions via natural language (memory-pack) |
|
|
92
|
+
| **persona** | `/persona` | low | Switch engineering persona at runtime (backend-lead, frontend-lead, devops-eng, junior-dev) |
|
|
91
93
|
|
|
92
94
|
### `/workflow` types
|
|
93
95
|
|
package/llms.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ai-toolkit
|
|
2
2
|
|
|
3
|
-
> Professional-grade Claude Code toolkit:
|
|
3
|
+
> Professional-grade Claude Code toolkit: 87 skills, 47 agents, machine-enforced constitution, quality hooks.
|
|
4
4
|
|
|
5
5
|
## Documentation
|
|
6
6
|
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
- [Plugin Pack Conventions](kb/reference/plugin-pack-conventions.md)
|
|
33
33
|
- [Quick Wins Implementation Summary](kb/reference/quick-wins-implementation-summary.md)
|
|
34
34
|
- [Skill Templates](kb/reference/skill-templates.md)
|
|
35
|
-
- [Skills Catalog (
|
|
35
|
+
- [Skills Catalog (87 skills)](kb/reference/skills-catalog.md)
|
|
36
36
|
- [Skills Unification Model](kb/reference/skills-unification.md)
|
|
37
37
|
- [Usage Statistics](kb/reference/stats.md)
|
|
38
38
|
- [Config Sync](kb/reference/sync.md)
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softspark/ai-toolkit",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Professional-grade AI coding toolkit:
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "Professional-grade AI coding toolkit: 87 skills, 47 agents, multi-platform support (Claude, Cursor, Windsurf, Copilot, Gemini, Cline, Roo Code, Aider, Augment), machine-enforced safety constitution, persona presets, skill security auditor, expanded lifecycle hooks, 11 plugin packs, and benchmark tooling.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude",
|
|
7
7
|
"claude-code",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"roo-code",
|
|
21
21
|
"roo",
|
|
22
22
|
"aider",
|
|
23
|
+
"augment",
|
|
23
24
|
"multi-platform"
|
|
24
25
|
],
|
|
25
26
|
"homepage": "https://github.com/softspark/ai-toolkit",
|