namnam-skills 1.0.4 → 2.2.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 +22 -16
- package/package.json +6 -5
- package/src/postinstall.js +185 -0
package/README.md
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
# namnam-skills
|
|
2
2
|
|
|
3
3
|
> **Universal AI Skills Installer** - One command to rule them all.
|
|
4
|
-
> Supports: Claude, Codex, Cursor, Windsurf, Cline, Aider, Gemini, and more.
|
|
4
|
+
> Supports: Claude, Codex, Cursor, Windsurf, Cline, Aider, Gemini, **Antigravity**, and more.
|
|
5
5
|
|
|
6
6
|
## Features
|
|
7
7
|
|
|
8
|
-
- **
|
|
9
|
-
- **
|
|
8
|
+
- **2000+ Skill Files** from multiple sources
|
|
9
|
+
- **9 AI Platforms** supported with auto-config generation
|
|
10
|
+
- **🚀 Auto Antigravity Integration** - Skills auto-install to `~/.gemini/antigravity/skills/`
|
|
10
11
|
- **One Command Install** - `npx namnam-skills init --all`
|
|
11
12
|
- **Modular Categories** - Install only what you need
|
|
12
13
|
- **Interactive Mode** - Choose categories interactively
|
|
@@ -15,10 +16,13 @@
|
|
|
15
16
|
## Quick Start
|
|
16
17
|
|
|
17
18
|
```bash
|
|
18
|
-
# Install all skills + generate platform configs
|
|
19
|
+
# Install all skills + generate platform configs + auto-integrate Antigravity
|
|
20
|
+
npm install namnam-skills
|
|
21
|
+
|
|
22
|
+
# Or use npx for one-time install
|
|
19
23
|
npx namnam-skills init --all
|
|
20
24
|
|
|
21
|
-
#
|
|
25
|
+
# Install interactively
|
|
22
26
|
npx namnam-skills init --interactive
|
|
23
27
|
|
|
24
28
|
# Install specific category
|
|
@@ -30,21 +34,23 @@ npx namnam-skills platforms
|
|
|
30
34
|
|
|
31
35
|
## Supported AI Platforms
|
|
32
36
|
|
|
33
|
-
| Platform | Config File | Auto-Generated |
|
|
34
|
-
|
|
35
|
-
| Claude Code | `.claude/` | ✅ |
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
37
|
+
| Platform | Config File | Auto-Generated | Auto-Integrated |
|
|
38
|
+
|----------|-------------|----------------|-----------------|
|
|
39
|
+
| Claude Code | `.claude/` | ✅ | ✅ |
|
|
40
|
+
| **Antigravity** | `~/.gemini/antigravity/skills/` | ✅ | ✅ |
|
|
41
|
+
| Cursor | `.cursorrules` | ✅ | - |
|
|
42
|
+
| Windsurf | `.windsurfrules` | ✅ | - |
|
|
43
|
+
| Cline | `.clinerules` | ✅ | - |
|
|
44
|
+
| Aider | `.aider.conf.yml` | ✅ | - |
|
|
45
|
+
| OpenAI Codex | `codex.md` | ✅ | - |
|
|
46
|
+
| Google Gemini | `GEMINI.md` | ✅ | - |
|
|
47
|
+
| Universal | `AGENTS.md` | ✅ | - |
|
|
43
48
|
|
|
44
49
|
## Available Categories
|
|
45
50
|
|
|
46
51
|
| Category | Description | Files |
|
|
47
52
|
|----------|-------------|-------|
|
|
53
|
+
| `antigravity_skills` | 240+ skill categories (web, security, DB, AI...) | 1900+ |
|
|
48
54
|
| `core` | /namnam, git, code-review, validate-and-fix | 6 |
|
|
49
55
|
| `platforms` | Config templates for all AI platforms | 7 |
|
|
50
56
|
| `official_plugins` | Anthropic: feature-dev, commit, PR review, hookify, security, ralph-loop | 11 |
|
|
@@ -57,7 +63,7 @@ npx namnam-skills platforms
|
|
|
57
63
|
| `bmad_cis` | Creative: brainstorming, design thinking | 10+ |
|
|
58
64
|
| `bmad_bmb` | Builder: agent, module, workflow builders | 6 |
|
|
59
65
|
| `bmad_core` | BMAD Core: master agent, party mode | 5 |
|
|
60
|
-
| `all` | **Everything** |
|
|
66
|
+
| `all` | **Everything** | 2000+ |
|
|
61
67
|
|
|
62
68
|
## Commands
|
|
63
69
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "namnam-skills",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Ultimate AI Skills Installer - Universal support for Claude, Codex, Cursor, Windsurf, Cline, Aider, and
|
|
3
|
+
"version": "2.2.2",
|
|
4
|
+
"description": "Ultimate AI Skills Installer - Universal support for Claude, Codex, Cursor, Windsurf, Cline, Aider, Gemini, and Antigravity. 2000+ agents, workflows, and skills with auto-integration.",
|
|
5
5
|
"author": "NamNam",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"keywords": [
|
|
@@ -25,7 +25,9 @@
|
|
|
25
25
|
"llm",
|
|
26
26
|
"coding-assistant",
|
|
27
27
|
"ai-coding",
|
|
28
|
-
"developer-tools"
|
|
28
|
+
"developer-tools",
|
|
29
|
+
"antigravity",
|
|
30
|
+
"gemini"
|
|
29
31
|
],
|
|
30
32
|
"type": "module",
|
|
31
33
|
"bin": {
|
|
@@ -47,7 +49,6 @@
|
|
|
47
49
|
"commander": "^12.1.0",
|
|
48
50
|
"fs-extra": "^11.2.0",
|
|
49
51
|
"inquirer": "^9.2.15",
|
|
50
|
-
"namnam-skills": "^1.0.2",
|
|
51
52
|
"ora": "^8.0.1"
|
|
52
53
|
},
|
|
53
54
|
"engines": {
|
|
@@ -61,4 +62,4 @@
|
|
|
61
62
|
"url": "https://github.com/namnam/namnam-skills/issues"
|
|
62
63
|
},
|
|
63
64
|
"homepage": "https://github.com/namnam/namnam-skills#readme"
|
|
64
|
-
}
|
|
65
|
+
}
|
package/src/postinstall.js
CHANGED
|
@@ -2,12 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
import fs from 'fs-extra';
|
|
4
4
|
import path from 'path';
|
|
5
|
+
import os from 'os';
|
|
5
6
|
import { fileURLToPath } from 'url';
|
|
6
7
|
import chalk from 'chalk';
|
|
7
8
|
|
|
8
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
10
|
const __dirname = path.dirname(__filename);
|
|
10
11
|
|
|
12
|
+
// Get Antigravity skills directory based on OS
|
|
13
|
+
function getAntigravitySkillsDir() {
|
|
14
|
+
const homeDir = os.homedir();
|
|
15
|
+
return path.join(homeDir, '.gemini', 'antigravity', 'skills');
|
|
16
|
+
}
|
|
17
|
+
|
|
11
18
|
// Find the actual project root (where user ran npm install)
|
|
12
19
|
function findProjectRoot() {
|
|
13
20
|
// npm sets INIT_CWD to the directory where npm install was run
|
|
@@ -77,6 +84,16 @@ async function autoInstall() {
|
|
|
77
84
|
}
|
|
78
85
|
}
|
|
79
86
|
|
|
87
|
+
// Auto-integrate with Antigravity if installed
|
|
88
|
+
try {
|
|
89
|
+
const antigravityResults = await installToAntigravity(templatesDir, silent);
|
|
90
|
+
results.success += antigravityResults.success;
|
|
91
|
+
} catch (error) {
|
|
92
|
+
if (!silent) {
|
|
93
|
+
console.log(chalk.gray(' Antigravity integration skipped'));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
80
97
|
if (!silent) {
|
|
81
98
|
if (results.success > 0) {
|
|
82
99
|
console.log(chalk.green(`✅ Installed ${results.success}+ skill files to .claude/commands/`));
|
|
@@ -159,4 +176,172 @@ async function generatePlatformFiles(projectRoot, templatesDir) {
|
|
|
159
176
|
}
|
|
160
177
|
}
|
|
161
178
|
|
|
179
|
+
// SKILL.md definitions for Antigravity integration
|
|
180
|
+
const SKILL_DEFINITIONS = {
|
|
181
|
+
'namnam-orchestrator': {
|
|
182
|
+
name: 'namnam-orchestrator',
|
|
183
|
+
description: 'Universal AI Mega Command - One command for orchestration, git, review, validate, index, and conversation management. Triggers on complex multi-step tasks, git operations, code reviews, or when user wants to coordinate multiple agents.',
|
|
184
|
+
content: `# /namnam - Universal AI Mega Command
|
|
185
|
+
|
|
186
|
+
> **One Command to Rule Them All** - Orchestrate, Git, Review, Validate, Index, and Manage Conversations.
|
|
187
|
+
|
|
188
|
+
## Quick Reference
|
|
189
|
+
|
|
190
|
+
\`\`\`bash
|
|
191
|
+
/namnam <task> # Intelligent agent orchestration
|
|
192
|
+
/namnam --full <task> # Maximum power mode
|
|
193
|
+
/namnam commit # Smart git commit
|
|
194
|
+
/namnam review # Multi-aspect code review
|
|
195
|
+
/namnam validate # Run all checks + auto-fix
|
|
196
|
+
\`\`\`
|
|
197
|
+
|
|
198
|
+
See \`namnam.md\` for complete documentation.`
|
|
199
|
+
},
|
|
200
|
+
'bmad-framework': {
|
|
201
|
+
name: 'bmad-framework',
|
|
202
|
+
description: 'BMAD (Business Method Agile Development) Framework - Comprehensive agents and workflows for PRD, architecture, epics, stories, sprints, game development, and creative innovation. Triggers on project planning, agile workflows, game design, or creative brainstorming tasks.',
|
|
203
|
+
sourceFolder: 'bmad'
|
|
204
|
+
},
|
|
205
|
+
'claudekit': {
|
|
206
|
+
name: 'claudekit',
|
|
207
|
+
description: 'ClaudeKit utilities - Oracle deep debugging, triage expert, research expert, checkpoints, code search, and subagent creation. Triggers on debugging, problem diagnosis, research tasks, or when creating custom agents/commands.',
|
|
208
|
+
sourceFolder: 'claudekit'
|
|
209
|
+
},
|
|
210
|
+
'official-plugins': {
|
|
211
|
+
name: 'official-plugins',
|
|
212
|
+
description: 'Official Anthropic Claude Code plugins - Feature development, smart commits, PR review, SDK app creation, security guidance, and more. Triggers on structured feature development, git operations, PR reviews, or security-related tasks.',
|
|
213
|
+
sourceFolder: 'official-plugins'
|
|
214
|
+
},
|
|
215
|
+
'cursor-rules': {
|
|
216
|
+
name: 'cursor-rules',
|
|
217
|
+
description: 'Expert coding rules collection for multiple languages and frameworks - TypeScript, Python, React Native, Vue, Go, Rust, DevOps, and more. Triggers when writing code in specific languages or following best practices for frameworks.',
|
|
218
|
+
sourceFolder: 'cursor-rules'
|
|
219
|
+
},
|
|
220
|
+
'system-prompts': {
|
|
221
|
+
name: 'system-prompts',
|
|
222
|
+
description: 'Industry best practices system prompts from 30+ AI tools including Claude, Cursor, Windsurf, Cline, and Antigravity. Triggers when configuring AI assistants or studying prompt engineering patterns.',
|
|
223
|
+
sourceFolder: 'system-prompts'
|
|
224
|
+
},
|
|
225
|
+
'antigravity-skills': {
|
|
226
|
+
name: 'antigravity-skills',
|
|
227
|
+
description: 'Massive collection of 240+ skill categories covering web development, security, databases, DevOps, game development, AI/ML, design, marketing, and more. This is the master index for all specialized skills.',
|
|
228
|
+
sourceFolder: 'antigravity-skills'
|
|
229
|
+
},
|
|
230
|
+
'platforms': {
|
|
231
|
+
name: 'platforms',
|
|
232
|
+
description: 'AI platform configuration templates for Claude, Cursor, Windsurf, Cline, Aider, Codex, and Gemini. Use when setting up AI assistant configurations or syncing settings across platforms.',
|
|
233
|
+
sourceFolder: 'platforms'
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
// Install skills to Antigravity
|
|
238
|
+
async function installToAntigravity(templatesDir, silent = false) {
|
|
239
|
+
const antigravityDir = getAntigravitySkillsDir();
|
|
240
|
+
|
|
241
|
+
// Check if Antigravity directory exists (user has Antigravity installed)
|
|
242
|
+
const antigravityParent = path.dirname(antigravityDir);
|
|
243
|
+
if (!(await fs.pathExists(antigravityParent))) {
|
|
244
|
+
if (!silent) {
|
|
245
|
+
console.log(chalk.gray(' Antigravity not detected, skipping...'));
|
|
246
|
+
}
|
|
247
|
+
return { success: 0, failed: 0 };
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
const results = { success: 0, failed: 0 };
|
|
251
|
+
|
|
252
|
+
try {
|
|
253
|
+
// Ensure skills directory exists
|
|
254
|
+
await fs.ensureDir(antigravityDir);
|
|
255
|
+
|
|
256
|
+
// Copy ALL templates to Antigravity skills folder
|
|
257
|
+
const allFolders = [
|
|
258
|
+
'antigravity-skills', 'bmad', 'claudekit', 'cursor-rules',
|
|
259
|
+
'official-plugins', 'platforms', 'system-prompts', 'vercel-skills'
|
|
260
|
+
];
|
|
261
|
+
|
|
262
|
+
for (const folder of allFolders) {
|
|
263
|
+
try {
|
|
264
|
+
const srcDir = path.join(templatesDir, folder);
|
|
265
|
+
if (await fs.pathExists(srcDir)) {
|
|
266
|
+
await fs.copy(srcDir, path.join(antigravityDir, folder), { overwrite: true });
|
|
267
|
+
results.success += await countFiles(srcDir);
|
|
268
|
+
}
|
|
269
|
+
} catch (error) {
|
|
270
|
+
results.failed++;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// Copy namnam.md
|
|
275
|
+
const namnamSrc = path.join(templatesDir, 'namnam.md');
|
|
276
|
+
if (await fs.pathExists(namnamSrc)) {
|
|
277
|
+
await fs.copy(namnamSrc, path.join(antigravityDir, 'namnam.md'), { overwrite: true });
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
// Copy antigravity-skills-index.json
|
|
281
|
+
const indexSrc = path.join(templatesDir, 'antigravity-skills-index.json');
|
|
282
|
+
if (await fs.pathExists(indexSrc)) {
|
|
283
|
+
await fs.copy(indexSrc, path.join(antigravityDir, 'antigravity-skills-index.json'), { overwrite: true });
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// Create SKILL.md files for each skill definition
|
|
287
|
+
for (const [skillName, skillDef] of Object.entries(SKILL_DEFINITIONS)) {
|
|
288
|
+
try {
|
|
289
|
+
const skillDir = path.join(antigravityDir, skillName);
|
|
290
|
+
await fs.ensureDir(skillDir);
|
|
291
|
+
|
|
292
|
+
const skillMdPath = path.join(skillDir, 'SKILL.md');
|
|
293
|
+
const skillMdContent = `---
|
|
294
|
+
name: ${skillDef.name}
|
|
295
|
+
description: ${skillDef.description}
|
|
296
|
+
license: MIT
|
|
297
|
+
metadata:
|
|
298
|
+
author: NamNam
|
|
299
|
+
version: "2.0.0"
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
${skillDef.content || `# ${skillDef.name}\n\nSee the skill folder for complete documentation.`}
|
|
303
|
+
`;
|
|
304
|
+
await fs.writeFile(skillMdPath, skillMdContent);
|
|
305
|
+
|
|
306
|
+
// If sourceFolder is different from skillName, copy contents
|
|
307
|
+
if (skillDef.sourceFolder && skillDef.sourceFolder !== skillName) {
|
|
308
|
+
const srcDir = path.join(antigravityDir, skillDef.sourceFolder);
|
|
309
|
+
if (await fs.pathExists(srcDir)) {
|
|
310
|
+
// Copy contents into the skill folder (merge)
|
|
311
|
+
const items = await fs.readdir(srcDir, { withFileTypes: true });
|
|
312
|
+
for (const item of items) {
|
|
313
|
+
const srcPath = path.join(srcDir, item.name);
|
|
314
|
+
const destPath = path.join(skillDir, item.name);
|
|
315
|
+
if (!(await fs.pathExists(destPath))) {
|
|
316
|
+
await fs.copy(srcPath, destPath);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
} catch (error) {
|
|
322
|
+
// Skip individual skill errors
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// Copy namnam.md into namnam-orchestrator folder
|
|
327
|
+
const namnamOrchestratorDir = path.join(antigravityDir, 'namnam-orchestrator');
|
|
328
|
+
await fs.ensureDir(namnamOrchestratorDir);
|
|
329
|
+
if (await fs.pathExists(namnamSrc)) {
|
|
330
|
+
await fs.copy(namnamSrc, path.join(namnamOrchestratorDir, 'namnam.md'), { overwrite: true });
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
if (!silent && results.success > 0) {
|
|
334
|
+
console.log(chalk.green(`✅ Integrated ${results.success}+ skills to Antigravity`));
|
|
335
|
+
console.log(chalk.gray(` Location: ${antigravityDir}`));
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
} catch (error) {
|
|
339
|
+
if (!silent) {
|
|
340
|
+
console.log(chalk.yellow(`⚠️ Antigravity integration skipped: ${error.message}`));
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
return results;
|
|
345
|
+
}
|
|
346
|
+
|
|
162
347
|
autoInstall();
|