claude-code-templates 1.22.1 → 1.24.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 +56 -0
- package/package.json +1 -1
- package/src/index.js +69 -7
package/README.md
CHANGED
|
@@ -38,6 +38,7 @@ npx claude-code-templates@latest --health-check
|
|
|
38
38
|
| **Commands** | Custom slash commands for development tasks | `/generate-tests`, `/check-file`, `/optimize-bundle` |
|
|
39
39
|
| **Agents** | AI specialists for specific domains | API security audit, React performance, database optimization |
|
|
40
40
|
| **MCPs** | External service integrations | GitHub, databases, development tools |
|
|
41
|
+
| **Skills** | Modular capabilities with progressive disclosure | PDF processing, algorithmic art, MCP builder |
|
|
41
42
|
| **Analytics** | Real-time monitoring dashboard | Live session tracking, usage statistics, exports |
|
|
42
43
|
|
|
43
44
|
## 🛠️ Supported Technologies
|
|
@@ -95,6 +96,61 @@ npx claude-code-templates@latest --remove-agent customer-support
|
|
|
95
96
|
|
|
96
97
|
The agents use the Claude Code SDK internally to provide specialized AI assistance with domain-specific knowledge and best practices.
|
|
97
98
|
|
|
99
|
+
## 🎨 Skills (Anthropic Format)
|
|
100
|
+
|
|
101
|
+
Install modular capabilities that Claude loads dynamically using Anthropic's progressive disclosure pattern:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Install individual skills
|
|
105
|
+
npx claude-code-templates@latest --skill pdf-processing-pro
|
|
106
|
+
npx claude-code-templates@latest --skill algorithmic-art
|
|
107
|
+
npx claude-code-templates@latest --skill mcp-builder
|
|
108
|
+
|
|
109
|
+
# Install multiple skills
|
|
110
|
+
npx claude-code-templates@latest --skill pdf-anthropic,docx,xlsx,pptx
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Featured Skills
|
|
114
|
+
|
|
115
|
+
#### 🎨 Creative & Design
|
|
116
|
+
- **algorithmic-art** - Create generative art using p5.js with seeded randomness
|
|
117
|
+
- **canvas-design** - Design beautiful visual art in .png and .pdf formats
|
|
118
|
+
- **slack-gif-creator** - Create animated GIFs optimized for Slack
|
|
119
|
+
|
|
120
|
+
#### 💻 Development & Technical
|
|
121
|
+
- **mcp-builder** - Guide for creating high-quality MCP servers
|
|
122
|
+
- **artifacts-builder** - Build complex HTML artifacts with React and Tailwind
|
|
123
|
+
- **webapp-testing** - Test local web applications using Playwright
|
|
124
|
+
- **skill-creator** - Guide for creating effective skills
|
|
125
|
+
|
|
126
|
+
#### 📄 Document Processing
|
|
127
|
+
- **pdf-processing-pro** - Production-ready PDF toolkit (forms, tables, OCR)
|
|
128
|
+
- **pdf-anthropic** - Anthropic's comprehensive PDF manipulation toolkit
|
|
129
|
+
- **docx** - Create, edit, and analyze Word documents
|
|
130
|
+
- **xlsx** - Create, edit, and analyze Excel spreadsheets
|
|
131
|
+
- **pptx** - Create, edit, and analyze PowerPoint presentations
|
|
132
|
+
|
|
133
|
+
#### 🏢 Enterprise & Communication
|
|
134
|
+
- **brand-guidelines** - Apply Anthropic's official brand guidelines
|
|
135
|
+
- **internal-comms** - Write internal communications (reports, newsletters, FAQs)
|
|
136
|
+
- **theme-factory** - Style artifacts with professional themes
|
|
137
|
+
|
|
138
|
+
### Skills Architecture
|
|
139
|
+
|
|
140
|
+
Skills follow Anthropic's progressive disclosure pattern:
|
|
141
|
+
- **Metadata** - Always loaded (name, description)
|
|
142
|
+
- **Instructions** - Loaded when skill is triggered
|
|
143
|
+
- **Resources** - Reference files loaded only when needed
|
|
144
|
+
- **Scripts** - Execute without loading code into context
|
|
145
|
+
|
|
146
|
+
### Attribution
|
|
147
|
+
|
|
148
|
+
Skills from [anthropics/skills](https://github.com/anthropics/skills):
|
|
149
|
+
- **Open Source** (Apache 2.0): algorithmic-art, mcp-builder, skill-creator, artifacts-builder, and more
|
|
150
|
+
- **Source-Available** (Reference): docx, pdf-anthropic, pptx, xlsx
|
|
151
|
+
|
|
152
|
+
See [ANTHROPIC_ATTRIBUTION.md](cli-tool/components/skills/ANTHROPIC_ATTRIBUTION.md) for complete license information.
|
|
153
|
+
|
|
98
154
|
## 📖 Documentation
|
|
99
155
|
|
|
100
156
|
**[📚 Complete Documentation](https://docs.aitmpl.com/)** - Comprehensive guides, examples, and API reference
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-code-templates",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.24.0",
|
|
4
4
|
"description": "CLI tool to setup Claude Code configurations with framework-specific commands, automation hooks and MCP Servers for your projects",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"bin": {
|
package/src/index.js
CHANGED
|
@@ -1395,8 +1395,12 @@ async function installIndividualSkill(skillName, targetDir, options) {
|
|
|
1395
1395
|
console.log(chalk.blue(`💡 Installing skill: ${skillName}`));
|
|
1396
1396
|
|
|
1397
1397
|
try {
|
|
1398
|
+
// Skills can be in format: "skill-name" or "category/skill-name"
|
|
1399
|
+
// Extract the actual skill name (last part of the path)
|
|
1400
|
+
const skillBaseName = skillName.includes('/') ? skillName.split('/').pop() : skillName;
|
|
1401
|
+
|
|
1398
1402
|
// Skills always use SKILL.md as the main file (Anthropic standard)
|
|
1399
|
-
// Format: skills/skill-name/SKILL.md
|
|
1403
|
+
// Format: skills/category/skill-name/SKILL.md
|
|
1400
1404
|
const githubUrl = `https://raw.githubusercontent.com/davila7/claude-code-templates/main/cli-tool/components/skills/${skillName}/SKILL.md`;
|
|
1401
1405
|
|
|
1402
1406
|
console.log(chalk.gray(`📥 Downloading from GitHub (main branch)...`));
|
|
@@ -1405,7 +1409,8 @@ async function installIndividualSkill(skillName, targetDir, options) {
|
|
|
1405
1409
|
if (!response.ok) {
|
|
1406
1410
|
if (response.status === 404) {
|
|
1407
1411
|
console.log(chalk.red(`❌ Skill "${skillName}" not found`));
|
|
1408
|
-
console.log(chalk.yellow('
|
|
1412
|
+
console.log(chalk.yellow('💡 Tip: Use format "category/skill-name" (e.g., creative-design/algorithmic-art)'));
|
|
1413
|
+
console.log(chalk.yellow('Available categories: creative-design, development, document-processing, enterprise-communication'));
|
|
1409
1414
|
return false;
|
|
1410
1415
|
}
|
|
1411
1416
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
@@ -1413,16 +1418,15 @@ async function installIndividualSkill(skillName, targetDir, options) {
|
|
|
1413
1418
|
|
|
1414
1419
|
const skillContent = await response.text();
|
|
1415
1420
|
|
|
1416
|
-
// Check if there are additional files to download (e.g., referenced .md files)
|
|
1421
|
+
// Check if there are additional files to download (e.g., referenced .md files, scripts, reference)
|
|
1417
1422
|
const additionalFiles = {};
|
|
1418
1423
|
|
|
1419
|
-
// Look for references to additional files like [FORMS.md](FORMS.md)
|
|
1420
|
-
const referencePattern = /\[([A-Z_]+\.md)\]\(\1\)/g;
|
|
1424
|
+
// 1. Look for references to additional files like [FORMS.md](FORMS.md) or [reference](./reference/)
|
|
1425
|
+
const referencePattern = /\[([A-Z_]+\.md)\]\(\1\)|\[.*?\]\(\.\/([a-z_]+)\/\)/g;
|
|
1421
1426
|
let match;
|
|
1422
|
-
const skillBaseName = skillName;
|
|
1423
1427
|
|
|
1424
1428
|
while ((match = referencePattern.exec(skillContent)) !== null) {
|
|
1425
|
-
const referencedFile = match[1];
|
|
1429
|
+
const referencedFile = match[1] || match[2];
|
|
1426
1430
|
const referencedUrl = githubUrl.replace('SKILL.md', referencedFile);
|
|
1427
1431
|
|
|
1428
1432
|
try {
|
|
@@ -1442,6 +1446,64 @@ async function installIndividualSkill(skillName, targetDir, options) {
|
|
|
1442
1446
|
}
|
|
1443
1447
|
}
|
|
1444
1448
|
|
|
1449
|
+
// 2. Try to download common directories (scripts/, reference/) from GitHub API
|
|
1450
|
+
const githubApiUrl = `https://api.github.com/repos/davila7/claude-code-templates/contents/cli-tool/components/skills/${skillName}`;
|
|
1451
|
+
|
|
1452
|
+
try {
|
|
1453
|
+
const dirResponse = await fetch(githubApiUrl, {
|
|
1454
|
+
headers: {
|
|
1455
|
+
'Accept': 'application/vnd.github.v3+json',
|
|
1456
|
+
'User-Agent': 'claude-code-templates'
|
|
1457
|
+
}
|
|
1458
|
+
});
|
|
1459
|
+
|
|
1460
|
+
if (dirResponse.ok) {
|
|
1461
|
+
const dirContents = await dirResponse.json();
|
|
1462
|
+
|
|
1463
|
+
// Find directories (scripts, reference, templates)
|
|
1464
|
+
for (const item of dirContents) {
|
|
1465
|
+
if (item.type === 'dir' && ['scripts', 'reference', 'templates'].includes(item.name)) {
|
|
1466
|
+
console.log(chalk.gray(`📂 Found directory: ${item.name}/`));
|
|
1467
|
+
|
|
1468
|
+
// Fetch directory contents recursively
|
|
1469
|
+
const subdirResponse = await fetch(item.url, {
|
|
1470
|
+
headers: {
|
|
1471
|
+
'Accept': 'application/vnd.github.v3+json',
|
|
1472
|
+
'User-Agent': 'claude-code-templates'
|
|
1473
|
+
}
|
|
1474
|
+
});
|
|
1475
|
+
|
|
1476
|
+
if (subdirResponse.ok) {
|
|
1477
|
+
const subdirContents = await subdirResponse.json();
|
|
1478
|
+
|
|
1479
|
+
for (const file of subdirContents) {
|
|
1480
|
+
if (file.type === 'file') {
|
|
1481
|
+
try {
|
|
1482
|
+
const fileResponse = await fetch(file.download_url);
|
|
1483
|
+
if (fileResponse.ok) {
|
|
1484
|
+
const fileContent = await fileResponse.text();
|
|
1485
|
+
const isExecutable = file.name.endsWith('.py') || file.name.endsWith('.sh');
|
|
1486
|
+
|
|
1487
|
+
additionalFiles[`.claude/skills/${skillBaseName}/${item.name}/${file.name}`] = {
|
|
1488
|
+
content: fileContent,
|
|
1489
|
+
executable: isExecutable
|
|
1490
|
+
};
|
|
1491
|
+
console.log(chalk.green(`✓ Downloaded: ${item.name}/${file.name}`));
|
|
1492
|
+
}
|
|
1493
|
+
} catch (err) {
|
|
1494
|
+
console.log(chalk.gray(` (Could not download ${item.name}/${file.name})`));
|
|
1495
|
+
}
|
|
1496
|
+
}
|
|
1497
|
+
}
|
|
1498
|
+
}
|
|
1499
|
+
}
|
|
1500
|
+
}
|
|
1501
|
+
}
|
|
1502
|
+
} catch (error) {
|
|
1503
|
+
// GitHub API access optional, continue if not available
|
|
1504
|
+
console.log(chalk.gray(` (Could not access GitHub API for directory listing)`));
|
|
1505
|
+
}
|
|
1506
|
+
|
|
1445
1507
|
// Create .claude/skills/skill-name directory (Anthropic standard structure)
|
|
1446
1508
|
const skillsDir = path.join(targetDir, '.claude', 'skills');
|
|
1447
1509
|
const skillSubDir = path.join(skillsDir, skillBaseName);
|