@spardutti/claude-skills 1.19.0 → 1.19.2
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/README.md +130 -44
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -1,67 +1,153 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Claude Skills
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Personal collection of reusable Claude Code skills.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Skills
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
npx @spardutti/claude-skills
|
|
9
|
-
```
|
|
7
|
+
### Frontend
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
| Skill | Description |
|
|
10
|
+
|-------|-------------|
|
|
11
|
+
| `react-best-practices` | React 19 — component design, state management, performance, React 19 features, TypeScript integration |
|
|
12
|
+
| `react-use-effect` | React 19 useEffect best practices and anti-patterns |
|
|
13
|
+
| `react-query` | TanStack React Query with @lukemorales/query-key-factory patterns |
|
|
14
|
+
| `react-single-responsibility` | React single responsibility — component splitting, hook isolation, file size limits, complexity rules |
|
|
15
|
+
| `tanstack-router-best-practices` | TanStack Router — file-based routing, type-safe navigation, loaders, search params, auth guards |
|
|
16
|
+
| `trpc-react-query` | tRPC v11 — queryOptions/mutationOptions patterns, router organization, middleware, cache invalidation, optimistic updates |
|
|
17
|
+
| `tailwind-tokens` | Enforce Tailwind CSS design tokens — no arbitrary values when a token exists |
|
|
18
|
+
| `zustand` | Zustand — store design, selectors, persist/immer middleware, slices pattern, devtools, transient updates |
|
|
19
|
+
| `dnd-kit` | @dnd-kit — sortable lists, sensors, collision detection, drag overlays, multi-container (kanban), accessibility |
|
|
20
|
+
| `framer-motion` | Motion (Framer Motion) — AnimatePresence, layout animations, variants, gestures, useAnimate, performance |
|
|
17
21
|
|
|
18
|
-
|
|
22
|
+
### Desktop
|
|
19
23
|
|
|
20
|
-
|
|
24
|
+
| Skill | Description |
|
|
25
|
+
|-------|-------------|
|
|
26
|
+
| `tauri-v2` | Tauri v2 — IPC commands, plugins, window management, system tray, global shortcuts, capabilities/permissions, events |
|
|
21
27
|
|
|
22
|
-
|
|
23
|
-
- **CLAUDE.md rule** (`skill_evaluation` block) — Instructs Claude to list every skill as ACTIVATE/SKIP before writing any code
|
|
28
|
+
### TypeScript
|
|
24
29
|
|
|
25
|
-
|
|
30
|
+
| Skill | Description |
|
|
31
|
+
|-------|-------------|
|
|
32
|
+
| `typescript-best-practices` | TypeScript 5.x — type design, type safety, generics, error handling, tsconfig |
|
|
26
33
|
|
|
27
|
-
|
|
34
|
+
### Backend
|
|
28
35
|
|
|
29
36
|
| Skill | Description |
|
|
30
37
|
|-------|-------------|
|
|
31
|
-
| `react-best-practices` | React 19 — component design, state management, performance, React 19 features, TypeScript integration |
|
|
32
|
-
| `react-use-effect` | React 19 useEffect best practices and anti-patterns |
|
|
33
|
-
| `react-query` | TanStack React Query with query-key-factory patterns |
|
|
34
|
-
| `tanstack-router-best-practices` | TanStack Router — file-based routing, type-safe navigation, loaders, search params, auth guards |
|
|
35
|
-
| `typescript-best-practices` | TypeScript 5.x — type design, type safety, generics, error handling, tsconfig |
|
|
36
|
-
| `react-single-responsibility` | React single responsibility — component splitting, hook isolation, file size limits, complexity rules |
|
|
37
|
-
| `tailwind-tokens` | Enforce Tailwind CSS design tokens — no arbitrary values when a token exists |
|
|
38
|
-
| `drf-best-practices` | Django REST Framework — thin serializers, service layer, queryset optimization, object-level permissions |
|
|
39
|
-
| `fastapi-best-practices` | FastAPI — async correctness, Pydantic validation, dependency injection, service layer, structured error handling |
|
|
40
|
-
| `security-practices` | Web security — OWASP Top 10 prevention, input validation, auth, SQL injection, XSS, CSRF, secure defaults |
|
|
41
|
-
| `alembic-migrations` | Alembic — naming conventions, autogenerate review, data migration safety, downgrades, production deployment |
|
|
42
|
-
| `testing-best-practices` | Testing — Arrange-Act-Assert, factory-based test data, test isolation, mocking boundaries, pyramid-balanced coverage |
|
|
43
|
-
| `docker-best-practices` | Docker — multi-stage builds, layer caching, security hardening, Compose Watch for local dev, health checks |
|
|
44
|
-
| `trpc-react-query` | tRPC v11 — queryOptions/mutationOptions patterns, router organization, middleware, cache invalidation, optimistic updates |
|
|
45
38
|
| `express-best-practices` | Express.js — feature-based structure, 3-layer architecture, Zod validation, centralized error handling, security middleware |
|
|
46
39
|
| `fastify-best-practices` | Fastify — plugin architecture, encapsulation, TypeBox validation/serialization, services as decorators, reply helpers, hooks |
|
|
40
|
+
| `fastapi-best-practices` | FastAPI — async correctness, Pydantic validation, dependency injection, service layer, structured error handling |
|
|
41
|
+
| `drf-best-practices` | Django REST Framework — thin serializers, service layer, queryset optimization, object-level permissions |
|
|
47
42
|
| `drizzle-orm` | Drizzle ORM — schema design, identity columns, relations, relational queries, migrations, drizzle-kit workflow, type inference |
|
|
48
|
-
| `
|
|
49
|
-
| `
|
|
50
|
-
|
|
51
|
-
|
|
43
|
+
| `alembic-migrations` | Alembic — naming conventions, autogenerate review, data migration safety, downgrades, production deployment |
|
|
44
|
+
| `docker-best-practices` | Docker — multi-stage builds, layer caching, security hardening, Compose Watch for local dev, health checks |
|
|
45
|
+
|
|
46
|
+
### Database
|
|
47
|
+
|
|
48
|
+
| Skill | Description |
|
|
49
|
+
|-------|-------------|
|
|
50
|
+
| `sql-joins` | SQL joins — LEFT JOIN traps, fan-out, NOT IN NULL bug, EXISTS vs IN, FK design, junction tables, CASCADE pitfalls |
|
|
51
|
+
| `sql-indexing` | SQL indexing — composite order, covering/partial/expression indexes, SARGability, EXPLAIN interpretation, keyset pagination |
|
|
52
|
+
| `sql-schema-design` | SQL schema — normalization, data types (TIMESTAMPTZ, NUMERIC), constraints, anti-patterns, safe migrations |
|
|
53
|
+
| `sql-orm-patterns` | SQL ORM — N+1 fixes for Prisma/Django/SQLAlchemy/ActiveRecord/TypeORM, transactions, isolation levels, locking |
|
|
54
|
+
|
|
55
|
+
### Architecture
|
|
56
|
+
|
|
57
|
+
| Skill | Description |
|
|
58
|
+
|-------|-------------|
|
|
52
59
|
| `single-responsibility` | Single Responsibility Principle — language-agnostic SRP, file size limits, CQS, separation of concerns, smell tests |
|
|
53
60
|
|
|
54
|
-
|
|
61
|
+
### Quality
|
|
62
|
+
|
|
63
|
+
| Skill | Description |
|
|
64
|
+
|-------|-------------|
|
|
65
|
+
| `testing-best-practices` | Testing — Arrange-Act-Assert, factory-based test data, test isolation, mocking boundaries, pyramid-balanced coverage |
|
|
66
|
+
| `security-practices` | Web security — OWASP Top 10 prevention, input validation, auth, SQL injection, XSS, CSRF, secure defaults |
|
|
67
|
+
|
|
68
|
+
## Commands
|
|
69
|
+
|
|
70
|
+
Portable slash commands for common git workflows. Installed to `.claude/commands/` in your project.
|
|
71
|
+
|
|
72
|
+
| Command | Description |
|
|
73
|
+
|---------|-------------|
|
|
74
|
+
| `/commit` | Smart commit — branch safety, atomic staging, conventional commits |
|
|
75
|
+
| `/pr` | Create PR — auto-detect base branch, structured summary and test plan |
|
|
76
|
+
| `/release` | Release flow — dev→main PR with semver, changelog, tag, and GitHub release |
|
|
77
|
+
| `/refactor` | Find code files over 200 lines and refactor them into smaller modules |
|
|
78
|
+
| `/deep-review` | Multi-agent deep code review — 5 parallel agents catch guard bypasses, lost async state, wrong-table queries, dead references, protocol violations |
|
|
79
|
+
|
|
80
|
+
## Quick Start
|
|
55
81
|
|
|
56
|
-
|
|
82
|
+
Run from any project directory:
|
|
57
83
|
|
|
58
|
-
|
|
59
|
-
|
|
84
|
+
```bash
|
|
85
|
+
npx @spardutti/claude-skills
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
The CLI will:
|
|
89
|
+
|
|
90
|
+
1. Fetch the latest skills and commands from GitHub
|
|
91
|
+
2. Let you pick which skills to install → `.claude/skills/`
|
|
92
|
+
3. Let you pick which commands to install → `.claude/commands/`
|
|
93
|
+
4. **Optionally set up automatic skill evaluation** (recommended — see below)
|
|
94
|
+
|
|
95
|
+
## Automatic Skill Evaluation
|
|
96
|
+
|
|
97
|
+
After installing skills, the CLI asks if you want to set up automatic skill evaluation. If you say yes, it will:
|
|
98
|
+
|
|
99
|
+
- **Create a hook** at `.claude/hooks/skill-forced-eval-hook.sh` that runs on every prompt
|
|
100
|
+
- **Update your `CLAUDE.md`** with a `skill_evaluation` rule
|
|
101
|
+
|
|
102
|
+
This forces Claude to explicitly evaluate every installed skill before writing code — listing each skill as ACTIVATE or SKIP with a reason, then calling the relevant ones. Without this, Claude may silently ignore your skills.
|
|
60
103
|
|
|
61
|
-
|
|
104
|
+
### What gets created
|
|
62
105
|
|
|
63
|
-
|
|
106
|
+
**`.claude/settings.json`** — Registers the hook:
|
|
64
107
|
|
|
65
|
-
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"hooks": {
|
|
111
|
+
"UserPromptSubmit": [
|
|
112
|
+
{
|
|
113
|
+
"hooks": [
|
|
114
|
+
{
|
|
115
|
+
"type": "command",
|
|
116
|
+
"command": ".claude/hooks/skill-forced-eval-hook.sh"
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**`CLAUDE.md`** — Appends the evaluation rule:
|
|
126
|
+
|
|
127
|
+
```yaml
|
|
128
|
+
skill_evaluation:
|
|
129
|
+
mandatory: true
|
|
130
|
+
rule: |
|
|
131
|
+
BEFORE writing ANY code, you MUST:
|
|
132
|
+
1. List EVERY skill from the system-reminder's available skills section
|
|
133
|
+
2. For each skill, write: [skill-name] → ACTIVATE / SKIP — [one-line reason]
|
|
134
|
+
3. Call Skill(name) for every skill marked ACTIVATE
|
|
135
|
+
4. Only THEN proceed to implementation
|
|
136
|
+
If you skip this evaluation, your response is INCOMPLETE and WRONG.
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### GitHub Authentication
|
|
140
|
+
|
|
141
|
+
The CLI uses the GitHub API to fetch skills. To avoid rate limits:
|
|
66
142
|
|
|
67
|
-
|
|
143
|
+
- If you have the [GitHub CLI](https://cli.github.com) installed and authenticated (`gh auth login`), the token is picked up automatically
|
|
144
|
+
- Or set `GITHUB_TOKEN` / `GH_TOKEN` environment variable
|
|
145
|
+
- Without auth, GitHub allows 60 requests/hour (the CLI uses ~6 per run)
|
|
146
|
+
|
|
147
|
+
## Manual Install
|
|
148
|
+
|
|
149
|
+
Copy a skill directory into your project's `.claude/skills/` folder:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
cp -r skills/<skill-name> /path/to/project/.claude/skills/
|
|
153
|
+
```
|
package/package.json
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spardutti/claude-skills",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.2",
|
|
4
4
|
"description": "CLI to install Claude Code skills from the claude-skills collection",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"claude-skills": "bin/cli.mjs"
|
|
8
8
|
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"prepack": "cp ../README.md README.md",
|
|
11
|
+
"postpack": "git checkout -- README.md"
|
|
12
|
+
},
|
|
9
13
|
"engines": {
|
|
10
14
|
"node": ">=18"
|
|
11
15
|
},
|