@jarrodmedrano/claude-skills 1.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/.claude/skills/code-review/README.md +33 -0
- package/.claude/skills/code-review/claude-code-review-custom.yml +100 -0
- package/.claude/skills/code-review/claude-code-review.yml +75 -0
- package/.claude/skills/code-review/pragmatic-code-review-slash-command.md +42 -0
- package/.claude/skills/code-review/pragmatic-code-review-subagent.md +99 -0
- package/.claude/skills/design-review/README.md +31 -0
- package/.claude/skills/design-review/design-principles-example.md +129 -0
- package/.claude/skills/design-review/design-review-agent.md +107 -0
- package/.claude/skills/design-review/design-review-claude-md-snippet.md +24 -0
- package/.claude/skills/design-review/design-review-slash-command.md +38 -0
- package/.claude/skills/new-backend.md +76 -0
- package/.claude/skills/new-fullstack.md +75 -0
- package/.claude/skills/new-website.md +42 -0
- package/.claude/skills/project-setup.md +60 -0
- package/.claude/skills/security-review/README.md +31 -0
- package/.claude/skills/security-review/security-review-slash-command.md +191 -0
- package/.claude/skills/security-review/security.yml +24 -0
- package/README.md +186 -0
- package/bin/cli.js +44 -0
- package/package.json +40 -0
- package/scripts/install.js +75 -0
- package/scripts/update.js +6 -0
package/README.md
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# Claude Code Skills
|
|
2
|
+
|
|
3
|
+
Reusable Claude Code skills for web development projects. This package provides a collection of powerful skills for scaffolding and managing projects with Claude Code.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
### Install as npm package (recommended)
|
|
8
|
+
|
|
9
|
+
In any project where you want to use these skills:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @jarrodmedrano/claude-skills
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The skills will automatically be copied to your project's `.claude/skills/` directory during installation.
|
|
16
|
+
|
|
17
|
+
### Use as local directory
|
|
18
|
+
|
|
19
|
+
Alternatively, you can use this directory directly as your Claude Code projects hub.
|
|
20
|
+
|
|
21
|
+
## Quick Start
|
|
22
|
+
|
|
23
|
+
Once installed, you can use custom skills to quickly scaffold new projects:
|
|
24
|
+
|
|
25
|
+
### Available Skills
|
|
26
|
+
|
|
27
|
+
#### `/new-website [project-name]`
|
|
28
|
+
Create a new frontend web project with your choice of:
|
|
29
|
+
- Next.js (App Router + TypeScript + Tailwind)
|
|
30
|
+
- React + Vite
|
|
31
|
+
- Vue 3 + Vite
|
|
32
|
+
- Vanilla JS/TS
|
|
33
|
+
|
|
34
|
+
**Example:**
|
|
35
|
+
```
|
|
36
|
+
/new-website my-portfolio
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
#### `/new-backend [project-name]`
|
|
40
|
+
Create a new backend/API project with:
|
|
41
|
+
- Express.js + TypeScript
|
|
42
|
+
- Fastify + TypeScript
|
|
43
|
+
- NestJS
|
|
44
|
+
- Hono
|
|
45
|
+
|
|
46
|
+
**Example:**
|
|
47
|
+
```
|
|
48
|
+
/new-backend my-api
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
#### `/new-fullstack [project-name]`
|
|
52
|
+
Create a full-stack application with:
|
|
53
|
+
- Next.js (with API routes)
|
|
54
|
+
- T3 Stack (Next.js + tRPC + Prisma)
|
|
55
|
+
- MERN Stack
|
|
56
|
+
- Monorepo (separate frontend/backend)
|
|
57
|
+
|
|
58
|
+
**Example:**
|
|
59
|
+
```
|
|
60
|
+
/new-fullstack my-saas-app
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
#### `/project-setup [project-name]`
|
|
64
|
+
Initialize any type of project with tooling:
|
|
65
|
+
- Libraries
|
|
66
|
+
- CLI tools
|
|
67
|
+
- Static sites
|
|
68
|
+
- Browser extensions
|
|
69
|
+
- Electron apps
|
|
70
|
+
- Component libraries
|
|
71
|
+
|
|
72
|
+
**Example:**
|
|
73
|
+
```
|
|
74
|
+
/project-setup my-tool
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Directory Structure
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
jarrod-claude/
|
|
81
|
+
├── .claude/
|
|
82
|
+
│ └── skills/ # Custom Claude Code skills
|
|
83
|
+
├── project-1/ # Your projects will be created here
|
|
84
|
+
├── project-2/
|
|
85
|
+
└── README.md # This file
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Usage Tips
|
|
89
|
+
|
|
90
|
+
1. **Starting a new project**: Use one of the skills above
|
|
91
|
+
2. **Working on existing project**: Navigate to the project directory or specify the path
|
|
92
|
+
3. **Custom skills**: Add new skills in `.claude/skills/` as markdown files
|
|
93
|
+
|
|
94
|
+
## What Gets Created
|
|
95
|
+
|
|
96
|
+
When you use these skills, Claude will:
|
|
97
|
+
- Create the project directory
|
|
98
|
+
- Initialize with the chosen framework/stack
|
|
99
|
+
- Install dependencies
|
|
100
|
+
- Set up TypeScript configuration
|
|
101
|
+
- Create basic project structure
|
|
102
|
+
- Initialize git repository
|
|
103
|
+
- Generate README with getting started instructions
|
|
104
|
+
|
|
105
|
+
## Next Steps
|
|
106
|
+
|
|
107
|
+
1. Navigate to this directory in your terminal
|
|
108
|
+
2. Run `claude` to start Claude Code
|
|
109
|
+
3. Use `/new-website my-first-site` (or any skill) to create your first project
|
|
110
|
+
4. Claude will guide you through setup options
|
|
111
|
+
|
|
112
|
+
## Updating Skills
|
|
113
|
+
|
|
114
|
+
To get the latest skills after updating the package:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
npm update @jarrodmedrano/claude-skills
|
|
118
|
+
npm run update-skills
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Or use the CLI:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
npx claude-skills update
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## CLI Commands
|
|
128
|
+
|
|
129
|
+
The package includes a CLI for managing skills:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
npx claude-skills install # Install/reinstall skills
|
|
133
|
+
npx claude-skills update # Update skills to latest
|
|
134
|
+
npx claude-skills list # List all available skills
|
|
135
|
+
npx claude-skills help # Show help
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Publishing Your Own Version
|
|
139
|
+
|
|
140
|
+
If you want to publish your own version of these skills:
|
|
141
|
+
|
|
142
|
+
1. Update the package name in [package.json](package.json):
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"name": "@yourusername/claude-skills"
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
2. Publish to npm:
|
|
150
|
+
```bash
|
|
151
|
+
npm login
|
|
152
|
+
npm publish --access public
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
3. Others can install with:
|
|
156
|
+
```bash
|
|
157
|
+
npm install @yourusername/claude-skills
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Development
|
|
161
|
+
|
|
162
|
+
To add new skills:
|
|
163
|
+
|
|
164
|
+
1. Create a `.md` file in [.claude/skills/](.claude/skills/) or a directory for complex skills
|
|
165
|
+
2. Follow the existing skill format
|
|
166
|
+
3. Update the version in [package.json](package.json)
|
|
167
|
+
4. Publish the new version
|
|
168
|
+
|
|
169
|
+
## Customization
|
|
170
|
+
|
|
171
|
+
You can modify the skills in [.claude/skills/](.claude/skills/) to match your preferred setup, add new frameworks, or change default configurations.
|
|
172
|
+
|
|
173
|
+
## Requirements
|
|
174
|
+
|
|
175
|
+
- Node.js (v18+ recommended)
|
|
176
|
+
- npm or pnpm
|
|
177
|
+
- Git
|
|
178
|
+
- Claude Code CLI
|
|
179
|
+
|
|
180
|
+
## License
|
|
181
|
+
|
|
182
|
+
MIT
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
Happy coding!
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { copySkills } = require('../scripts/install');
|
|
4
|
+
|
|
5
|
+
const args = process.argv.slice(2);
|
|
6
|
+
const command = args[0];
|
|
7
|
+
|
|
8
|
+
switch (command) {
|
|
9
|
+
case 'install':
|
|
10
|
+
console.log('Installing Claude Code skills...');
|
|
11
|
+
copySkills();
|
|
12
|
+
break;
|
|
13
|
+
|
|
14
|
+
case 'update':
|
|
15
|
+
console.log('Updating Claude Code skills...');
|
|
16
|
+
copySkills();
|
|
17
|
+
break;
|
|
18
|
+
|
|
19
|
+
case 'list':
|
|
20
|
+
console.log('Available Claude Code Skills:\n');
|
|
21
|
+
console.log('Web Development:');
|
|
22
|
+
console.log(' /new-website - Create frontend projects (React, Next.js, Vue, Vanilla)');
|
|
23
|
+
console.log(' /new-backend - Create backend APIs (Express, Fastify, NestJS, Hono)');
|
|
24
|
+
console.log(' /new-fullstack - Create full-stack apps (Next.js, T3, MERN, Monorepo)');
|
|
25
|
+
console.log(' /project-setup - Initialize any project with tooling\n');
|
|
26
|
+
console.log('Code Quality:');
|
|
27
|
+
console.log(' /code-review - Code review workflows');
|
|
28
|
+
console.log(' /design-review - Design review workflows');
|
|
29
|
+
console.log(' /security-review - Security review workflows\n');
|
|
30
|
+
break;
|
|
31
|
+
|
|
32
|
+
case 'help':
|
|
33
|
+
default:
|
|
34
|
+
console.log('Claude Code Skills CLI\n');
|
|
35
|
+
console.log('Usage: claude-skills <command>\n');
|
|
36
|
+
console.log('Commands:');
|
|
37
|
+
console.log(' install - Install skills to current project');
|
|
38
|
+
console.log(' update - Update skills to latest version');
|
|
39
|
+
console.log(' list - List all available skills');
|
|
40
|
+
console.log(' help - Show this help message\n');
|
|
41
|
+
console.log('After installation, use skills in Claude Code:');
|
|
42
|
+
console.log(' Example: /new-website my-app');
|
|
43
|
+
break;
|
|
44
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jarrodmedrano/claude-skills",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Reusable Claude Code skills for web development projects",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"claude-skills": "./bin/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"postinstall": "node scripts/install.js",
|
|
11
|
+
"update-skills": "node scripts/update.js"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"claude-code",
|
|
15
|
+
"claude",
|
|
16
|
+
"skills",
|
|
17
|
+
"web-development",
|
|
18
|
+
"scaffolding",
|
|
19
|
+
"project-setup"
|
|
20
|
+
],
|
|
21
|
+
"author": "Jarrod Medrano",
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"files": [
|
|
24
|
+
".claude/skills/**/*",
|
|
25
|
+
"scripts/**/*",
|
|
26
|
+
"bin/**/*",
|
|
27
|
+
"README.md"
|
|
28
|
+
],
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=18.0.0"
|
|
31
|
+
},
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "https://github.com/jarrodmedrano/jarrod-claude-skills.git"
|
|
35
|
+
},
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/jarrodmedrano/jarrod-claude-skills/issues"
|
|
38
|
+
},
|
|
39
|
+
"homepage": "https://github.com/jarrodmedrano/jarrod-claude-skills#readme"
|
|
40
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Post-install script that copies Claude Code skills to the project's .claude directory
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
function copySkills() {
|
|
11
|
+
// Find the project root (where package.json is, going up from node_modules)
|
|
12
|
+
let currentDir = process.cwd();
|
|
13
|
+
|
|
14
|
+
// If we're in node_modules, go up to find the project root
|
|
15
|
+
if (currentDir.includes('node_modules')) {
|
|
16
|
+
const parts = currentDir.split(path.sep);
|
|
17
|
+
const nodeModulesIndex = parts.lastIndexOf('node_modules');
|
|
18
|
+
currentDir = parts.slice(0, nodeModulesIndex).join(path.sep);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const targetDir = path.join(currentDir, '.claude', 'skills');
|
|
22
|
+
const sourceDir = path.join(__dirname, '..', '.claude', 'skills');
|
|
23
|
+
|
|
24
|
+
// Create .claude/skills directory if it doesn't exist
|
|
25
|
+
if (!fs.existsSync(targetDir)) {
|
|
26
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
27
|
+
console.log('✓ Created .claude/skills directory');
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Copy skills
|
|
31
|
+
try {
|
|
32
|
+
copyRecursive(sourceDir, targetDir);
|
|
33
|
+
console.log('✓ Claude Code skills installed successfully!');
|
|
34
|
+
console.log(` Skills location: ${targetDir}`);
|
|
35
|
+
console.log('\nAvailable skills:');
|
|
36
|
+
console.log(' /new-website - Create frontend projects');
|
|
37
|
+
console.log(' /new-backend - Create backend APIs');
|
|
38
|
+
console.log(' /new-fullstack - Create full-stack apps');
|
|
39
|
+
console.log(' /project-setup - Initialize any project');
|
|
40
|
+
console.log(' /code-review - Code review workflows');
|
|
41
|
+
console.log(' /design-review - Design review workflows');
|
|
42
|
+
console.log(' /security-review - Security review workflows');
|
|
43
|
+
console.log('\nTo update skills later, run: npm run update-skills');
|
|
44
|
+
} catch (error) {
|
|
45
|
+
console.error('Error copying skills:', error.message);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function copyRecursive(src, dest) {
|
|
51
|
+
const exists = fs.existsSync(src);
|
|
52
|
+
const stats = exists && fs.statSync(src);
|
|
53
|
+
const isDirectory = exists && stats.isDirectory();
|
|
54
|
+
|
|
55
|
+
if (isDirectory) {
|
|
56
|
+
if (!fs.existsSync(dest)) {
|
|
57
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
58
|
+
}
|
|
59
|
+
fs.readdirSync(src).forEach(childItem => {
|
|
60
|
+
copyRecursive(
|
|
61
|
+
path.join(src, childItem),
|
|
62
|
+
path.join(dest, childItem)
|
|
63
|
+
);
|
|
64
|
+
});
|
|
65
|
+
} else {
|
|
66
|
+
fs.copyFileSync(src, dest);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Only run if this is being executed directly (not required as a module)
|
|
71
|
+
if (require.main === module) {
|
|
72
|
+
copySkills();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
module.exports = { copySkills };
|