@spardutti/claude-skills 1.8.0 → 1.9.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/README.md +4 -1
- package/lib/setup-hook.mjs +0 -26
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -33,13 +33,16 @@ Together, these force Claude to explicitly evaluate and activate relevant skills
|
|
|
33
33
|
| `react-query` | TanStack React Query with query-key-factory patterns |
|
|
34
34
|
| `tanstack-router-best-practices` | TanStack Router — file-based routing, type-safe navigation, loaders, search params, auth guards |
|
|
35
35
|
| `typescript-best-practices` | TypeScript 5.x — type design, type safety, generics, error handling, tsconfig |
|
|
36
|
-
| `single-responsibility` |
|
|
36
|
+
| `react-single-responsibility` | React single responsibility — component splitting, hook isolation, file size limits, complexity rules |
|
|
37
37
|
| `tailwind-tokens` | Enforce Tailwind CSS design tokens — no arbitrary values when a token exists |
|
|
38
38
|
| `drf-best-practices` | Django REST Framework — thin serializers, service layer, queryset optimization, object-level permissions |
|
|
39
39
|
| `fastapi-best-practices` | FastAPI — async correctness, Pydantic validation, dependency injection, service layer, structured error handling |
|
|
40
40
|
| `security-practices` | Web security — OWASP Top 10 prevention, input validation, auth, SQL injection, XSS, CSRF, secure defaults |
|
|
41
41
|
| `alembic-migrations` | Alembic — naming conventions, autogenerate review, data migration safety, downgrades, production deployment |
|
|
42
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
|
+
| `express-best-practices` | Express.js — feature-based structure, 3-layer architecture, Zod validation, centralized error handling, security middleware |
|
|
43
46
|
|
|
44
47
|
## GitHub Authentication
|
|
45
48
|
|
package/lib/setup-hook.mjs
CHANGED
|
@@ -42,8 +42,6 @@ exit 0
|
|
|
42
42
|
|
|
43
43
|
const HOOK_FILENAME = "skill-forced-eval-hook.sh";
|
|
44
44
|
|
|
45
|
-
const PRETOOL_PROMPT = `REMINDER: This project has skills installed in .claude/skills/. Before writing code you MUST evaluate and activate relevant skills using the Skill() tool. If you have not done this yet in the current conversation, STOP and do it now before proceeding with this edit. Always return 'approve'.`;
|
|
46
|
-
|
|
47
45
|
export async function setupHook(targetDir = process.cwd()) {
|
|
48
46
|
const resolved = resolve(targetDir);
|
|
49
47
|
const hooksDir = join(resolved, ".claude", "hooks");
|
|
@@ -84,34 +82,10 @@ export async function setupHook(targetDir = process.cwd()) {
|
|
|
84
82
|
settings.hooks.UserPromptSubmit = [promptHookEntry];
|
|
85
83
|
}
|
|
86
84
|
|
|
87
|
-
// --- PreToolUse hook (LLM prompt reminder to evaluate skills before writing code) ---
|
|
88
|
-
const pretoolHookEntry = {
|
|
89
|
-
matcher: "Edit|Write|NotebookEdit",
|
|
90
|
-
hooks: [
|
|
91
|
-
{
|
|
92
|
-
type: "prompt",
|
|
93
|
-
prompt: PRETOOL_PROMPT,
|
|
94
|
-
timeout: 15,
|
|
95
|
-
},
|
|
96
|
-
],
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
if (Array.isArray(settings.hooks.PreToolUse)) {
|
|
100
|
-
const alreadyInstalled = settings.hooks.PreToolUse.some((entry) =>
|
|
101
|
-
entry.hooks?.some((h) => h.type === "prompt" && h.prompt?.includes("REMINDER"))
|
|
102
|
-
);
|
|
103
|
-
if (!alreadyInstalled) {
|
|
104
|
-
settings.hooks.PreToolUse.push(pretoolHookEntry);
|
|
105
|
-
}
|
|
106
|
-
} else {
|
|
107
|
-
settings.hooks.PreToolUse = [pretoolHookEntry];
|
|
108
|
-
}
|
|
109
|
-
|
|
110
85
|
await writeFile(settingsPath, JSON.stringify(settings, null, 2) + "\n", {
|
|
111
86
|
mode: 0o644,
|
|
112
87
|
});
|
|
113
88
|
|
|
114
89
|
console.log(` Hook installed: .claude/hooks/${HOOK_FILENAME}`);
|
|
115
|
-
console.log(` Hook installed: PreToolUse prompt hook (Edit|Write|NotebookEdit)`);
|
|
116
90
|
console.log(` Settings updated: .claude/settings.json`);
|
|
117
91
|
}
|