gin-skills 1.0.4 → 1.0.6
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/DEVELOPMENT.md +510 -510
- package/README.md +105 -105
- package/agents/developer.md +56 -56
- package/agents/frontend-design.md +69 -69
- package/agents/mobile-reviewer.md +36 -36
- package/agents/review-code.md +49 -49
- package/agents/security-scanner.md +50 -50
- package/agents/tester.md +72 -72
- package/bin/cli.js +535 -535
- package/landing/index.html +1526 -1526
- package/package.json +42 -42
- package/skills/active-life-dev/SKILL.md +157 -157
- package/skills/active-life-dev/docs/auth.md +187 -187
- package/skills/active-life-dev/docs/customers.md +216 -216
- package/skills/active-life-dev/docs/integrations.md +209 -209
- package/skills/active-life-dev/docs/inventory.md +192 -192
- package/skills/active-life-dev/docs/modules.md +181 -181
- package/skills/active-life-dev/docs/orders.md +180 -180
- package/skills/active-life-dev/docs/patterns.md +319 -319
- package/skills/active-life-dev/docs/products.md +216 -216
- package/skills/active-life-dev/docs/schema.md +502 -502
- package/skills/active-life-dev/docs/setup.md +169 -169
- package/skills/active-life-dev/docs/vouchers.md +144 -144
- package/skills/ai-asset-generator/SKILL.md +247 -247
- package/skills/ai-asset-generator/docs/gen-image.md +273 -273
- package/skills/ai-asset-generator/docs/genvideo.md +340 -340
- package/skills/ai-asset-generator/docs/remove-background.md +19 -19
- package/skills/ai-asset-generator/lib/bg-remove.mjs +54 -54
- package/skills/ai-asset-generator/lib/env.mjs +48 -48
- package/skills/ai-asset-generator/lib/kie-client.mjs +111 -111
- package/skills/ai-build-ai/SKILL.md +127 -127
- package/skills/ai-build-ai/docs/agent-teams.md +293 -293
- package/skills/ai-build-ai/docs/checkpointing.md +161 -161
- package/skills/ai-build-ai/docs/create-agent.md +399 -399
- package/skills/ai-build-ai/docs/create-mcp.md +395 -395
- package/skills/ai-build-ai/docs/create-skill.md +299 -299
- package/skills/ai-build-ai/docs/headless-mode.md +614 -614
- package/skills/ai-build-ai/docs/hooks.md +578 -578
- package/skills/ai-build-ai/docs/memory-claude-md.md +375 -375
- package/skills/ai-build-ai/docs/output-styles.md +208 -208
- package/skills/ai-build-ai/docs/overview.md +162 -162
- package/skills/ai-build-ai/docs/permissions.md +391 -391
- package/skills/ai-build-ai/docs/plugins.md +396 -396
- package/skills/ai-build-ai/docs/sandbox.md +262 -262
- package/skills/ai-build-ai/docs/team-lead-workflow.md +648 -648
- package/skills/ant-design/SKILL.md +323 -323
- package/skills/ant-design/docs/components.md +160 -160
- package/skills/ant-design/docs/data-entry.md +406 -406
- package/skills/ant-design/docs/display.md +594 -594
- package/skills/ant-design/docs/feedback.md +451 -451
- package/skills/ant-design/docs/key-components.md +414 -414
- package/skills/ant-design/docs/navigation.md +310 -310
- package/skills/ant-design/docs/pro-components.md +543 -543
- package/skills/ant-design/docs/setup.md +213 -213
- package/skills/ant-design/docs/theme.md +265 -265
- package/skills/flutter-performance/SKILL.md +803 -803
- package/skills/flutter-performance/references/flutter-patterns.md +595 -595
- package/skills/icon-generator/SKILL.md +270 -270
- package/skills/mobile-app-review/SKILL.md +321 -321
- package/skills/mobile-app-review/references/apple-review.md +132 -132
- package/skills/mobile-app-review/references/google-play-review.md +203 -203
- package/skills/mongodb/SKILL.md +667 -667
- package/skills/mongodb/references/mongoose-patterns.md +368 -368
- package/skills/nestjs-architecture/SKILL.md +1086 -1086
- package/skills/nestjs-architecture/references/advanced-patterns.md +590 -590
- package/skills/openclaw-builder/SKILL.md +115 -115
- package/skills/openclaw-builder/docs/acp-guide.md +117 -117
- package/skills/openclaw-builder/docs/automation-guide.md +135 -135
- package/skills/openclaw-builder/docs/browser-guide.md +217 -217
- package/skills/openclaw-builder/docs/channels-guide.md +150 -150
- package/skills/openclaw-builder/docs/commands-guide.md +130 -130
- package/skills/openclaw-builder/docs/config-guide.md +195 -195
- package/skills/openclaw-builder/docs/exec-guide.md +194 -194
- package/skills/openclaw-builder/docs/hooks-guide.md +132 -132
- package/skills/openclaw-builder/docs/models-auth-guide.md +140 -140
- package/skills/openclaw-builder/docs/multi-agent-guide.md +373 -373
- package/skills/openclaw-builder/docs/plugins-guide.md +134 -134
- package/skills/openclaw-builder/docs/remote-gateway-guide.md +184 -184
- package/skills/openclaw-builder/docs/sandboxing-guide.md +207 -207
- package/skills/openclaw-builder/docs/security-guide.md +232 -232
- package/skills/openclaw-builder/docs/skills-guide.md +92 -92
- package/skills/openclaw-builder/docs/webhooks-guide.md +179 -179
- package/skills/openclaw-builder/docs/workspace-memory-guide.md +130 -130
- package/skills/react-fsd-architecture/SKILL.md +65 -693
- package/skills/react-fsd-architecture/docs/anti-patterns.md +163 -0
- package/skills/react-fsd-architecture/docs/core-concepts.md +153 -0
- package/skills/react-fsd-architecture/docs/entity-conventions.md +245 -0
- package/skills/react-fsd-architecture/docs/form-architecture.md +292 -0
- package/skills/react-fsd-architecture/docs/list-architecture.md +342 -0
- package/skills/react-fsd-architecture/references/fsd-patterns.md +747 -747
- package/skills/react-fsd-architecture/references/rhf-patterns.md +253 -0
- package/skills/react-native-expo/SKILL.md +128 -128
- package/skills/react-native-expo/references/data-layer.md +252 -252
- package/skills/react-native-expo/references/design-system.md +252 -252
- package/skills/react-native-expo/references/navigation.md +199 -199
- package/skills/react-native-expo/references/performance.md +229 -229
- package/skills/react-native-expo/references/platform-services.md +179 -179
- package/skills/react-native-expo/references/state-management.md +209 -209
- package/skills/react-native-expo/references/ui-patterns.md +301 -301
- package/skills/react-native-performance/SKILL.md +74 -74
- package/skills/react-native-performance/docs/01-architecture.md +1154 -1154
- package/skills/react-native-performance/docs/02-rendering.md +1547 -1547
- package/skills/react-native-performance/docs/03-startup.md +1432 -1432
- package/skills/react-native-performance/docs/04-memory.md +2302 -2302
- package/skills/react-native-performance/docs/05-navigation.md +1039 -1039
- package/skills/react-native-performance/docs/06-network-state.md +1249 -1249
- package/skills/react-native-performance/docs/07-bundle-size.md +1687 -1687
- package/skills/react-native-performance/docs/08-algorithms.md +2415 -2415
- package/skills/react-native-performance/docs/09-animations.md +1724 -1724
- package/skills/react-native-performance/docs/10-senior-tricks.md +1565 -1565
- package/skills/react-native-performance/docs/11-anti-patterns.md +224 -224
- package/skills/react-native-performance/docs/12-monitoring.md +969 -969
- package/skills/react-native-performance/docs/13-checklist.md +155 -155
- package/skills/react-native-performance/scanners/scan-all.sh +138 -138
- package/skills/react-native-performance/scanners/scan-animations.sh +250 -250
- package/skills/react-native-performance/scanners/scan-build-config.sh +83 -83
- package/skills/react-native-performance/scanners/scan-bundle-size.sh +209 -209
- package/skills/react-native-performance/scanners/scan-console-devtools.sh +311 -271
- package/skills/react-native-performance/scanners/scan-images.sh +212 -212
- package/skills/react-native-performance/scanners/scan-memory-leaks.sh +286 -263
- package/skills/react-native-performance/scanners/scan-navigation.sh +244 -244
- package/skills/react-native-performance/scanners/scan-rendering.sh +208 -208
- package/skills/react-native-performance/scanners/scan-state-network.sh +262 -262
- package/skills/react-native-performance/scanners/scan-typescript-perf.sh +97 -97
- package/skills/react-native-performance/scanners/scan-unused-assets.sh +302 -302
- package/skills/react-query/SKILL.md +685 -685
- package/skills/react-query/references/query-patterns.md +365 -365
- package/skills/review-code/SKILL.md +374 -374
- package/skills/review-code/references/clean-code-principles.md +395 -395
- package/skills/review-code/references/frontend-patterns.md +136 -136
- package/skills/review-code/references/nestjs-patterns.md +184 -184
- package/skills/security-scanner/SKILL.md +366 -366
- package/skills/security-scanner/references/nestjs-security.md +260 -260
- package/skills/security-scanner/references/nextjs-security.md +201 -201
- package/skills/security-scanner/references/react-native-security.md +199 -199
- package/skills/ui-ux-pro-max/SKILL.md +377 -377
- package/skills/ui-ux-pro-max/data/icons.csv +101 -101
- package/skills/ui-ux-pro-max/data/react-performance.csv +45 -45
- package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -54
- package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -53
- package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -51
- package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -59
- package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -61
- package/skills/ui-ux-pro-max/data/typography.csv +57 -57
- package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -101
- package/skills/ui-ux-pro-max/data/web-interface.csv +31 -31
- package/skills/ai-asset-generator/output/logo/logo.png +0 -0
package/DEVELOPMENT.md
CHANGED
|
@@ -1,510 +1,510 @@
|
|
|
1
|
-
# GinStudio Skills — Development Guide
|
|
2
|
-
|
|
3
|
-
Everything you need to contribute skills, release new versions, and manage the CLI.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Table of Contents
|
|
8
|
-
|
|
9
|
-
1. [Project Structure](#project-structure)
|
|
10
|
-
2. [How to Add a New Skill](#how-to-add-a-new-skill)
|
|
11
|
-
3. [How to Add a New Agent](#how-to-add-a-new-agent)
|
|
12
|
-
4. [How to Release (Publish to npm)](#how-to-release-publish-to-npm)
|
|
13
|
-
5. [CLI Reference](#cli-reference)
|
|
14
|
-
6. [How Users Install Skills](#how-users-install-skills)
|
|
15
|
-
7. [How to Upgrade Installed Skills](#how-to-upgrade-installed-skills)
|
|
16
|
-
8. [How to Uninstall](#how-to-uninstall)
|
|
17
|
-
9. [Local Development & Testing](#local-development--testing)
|
|
18
|
-
10. [Troubleshooting](#troubleshooting)
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Project Structure
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
ginstudio-skills/
|
|
26
|
-
├── bin/
|
|
27
|
-
│ └── cli.js # npm CLI entrypoint (gin-skills)
|
|
28
|
-
├── skills/
|
|
29
|
-
│ └── my-skill/ # One directory per skill
|
|
30
|
-
│ ├── SKILL.md # Main skill file (required)
|
|
31
|
-
│ ├── docs/ # Supporting docs loaded at runtime
|
|
32
|
-
│ └── scripts/ # Shell scripts used by the skill
|
|
33
|
-
├── agents/
|
|
34
|
-
│ ├── my-agent.md # Single-file agent (simple)
|
|
35
|
-
│ └── my-agent/ # Directory agent (with supporting files)
|
|
36
|
-
│ └── agent.md
|
|
37
|
-
├── package.json # npm package config
|
|
38
|
-
├── .npmignore # Files excluded from npm publish
|
|
39
|
-
├── .gitignore
|
|
40
|
-
├── README.md
|
|
41
|
-
└── DEVELOPMENT.md # This file
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## How to Add a New Skill
|
|
47
|
-
|
|
48
|
-
### 1. Create the skill directory
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
mkdir -p skills/my-skill/docs
|
|
52
|
-
mkdir -p skills/my-skill/scripts
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### 2. Write `SKILL.md` (required)
|
|
56
|
-
|
|
57
|
-
Every skill needs a `SKILL.md` at `skills/my-skill/SKILL.md`.
|
|
58
|
-
|
|
59
|
-
**Minimal template:**
|
|
60
|
-
|
|
61
|
-
```markdown
|
|
62
|
-
---
|
|
63
|
-
name: my-skill
|
|
64
|
-
description: |
|
|
65
|
-
Short description visible to Claude when deciding to load this skill.
|
|
66
|
-
- MANDATORY TRIGGERS: keyword1, keyword2, keyword3
|
|
67
|
-
- Use this skill when the user wants to: do X, Y, Z
|
|
68
|
-
argument-hint: "[optional | args | here]"
|
|
69
|
-
disable-model-invocation: false
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
# My Skill Title
|
|
73
|
-
|
|
74
|
-
You are an expert in [domain]. Help the user [goal].
|
|
75
|
-
|
|
76
|
-
## Step 1 — Do Something
|
|
77
|
-
|
|
78
|
-
...instructions...
|
|
79
|
-
|
|
80
|
-
## Step 2 — Do Something Else
|
|
81
|
-
|
|
82
|
-
...
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
**SKILL.md frontmatter fields:**
|
|
86
|
-
|
|
87
|
-
| Field | Required | Description |
|
|
88
|
-
|-------|----------|-------------|
|
|
89
|
-
| `name` | yes | Identifier, must match the directory name |
|
|
90
|
-
| `description` | yes | Shown to Claude; include `MANDATORY TRIGGERS` keywords |
|
|
91
|
-
| `argument-hint` | no | Shown in `/skill-name [hint]` |
|
|
92
|
-
| `disable-model-invocation` | no | Set `true` to block Claude from calling models inside the skill |
|
|
93
|
-
| `user-invocable` | no | Set `false` for domain-knowledge skills that auto-load but aren't called directly |
|
|
94
|
-
|
|
95
|
-
**Rules:**
|
|
96
|
-
- Keep `SKILL.md` under **500 lines**. Move excess content to `docs/`.
|
|
97
|
-
- Put reusable deep-dives in `docs/*.md` and load them via a script or inline reference.
|
|
98
|
-
- Scripts go in `scripts/` and are invoked with `` !`bash skills/my-skill/scripts/my-script.sh $ARGUMENTS` ``.
|
|
99
|
-
|
|
100
|
-
### 3. Load docs dynamically (optional)
|
|
101
|
-
|
|
102
|
-
Create `scripts/load-tutorial.sh` if your skill routes to different docs based on arguments:
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
#!/bin/bash
|
|
106
|
-
TOPIC="${1:-overview}"
|
|
107
|
-
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
108
|
-
DOCS_DIR="$SCRIPT_DIR/../docs"
|
|
109
|
-
|
|
110
|
-
case "$TOPIC" in
|
|
111
|
-
intro) cat "$DOCS_DIR/intro.md" ;;
|
|
112
|
-
advanced) cat "$DOCS_DIR/advanced.md" ;;
|
|
113
|
-
*) cat "$DOCS_DIR/overview.md" ;;
|
|
114
|
-
esac
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
Then in `SKILL.md`:
|
|
118
|
-
|
|
119
|
-
```markdown
|
|
120
|
-
!`bash skills/my-skill/scripts/load-tutorial.sh $ARGUMENTS`
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### 4. Register the skill's auto-triggers
|
|
124
|
-
|
|
125
|
-
The `description` field in the frontmatter is used by Claude to decide when to auto-load the skill. Include:
|
|
126
|
-
|
|
127
|
-
```yaml
|
|
128
|
-
description: |
|
|
129
|
-
Brief one-liner.
|
|
130
|
-
- MANDATORY TRIGGERS: the exact words or phrases that should trigger it
|
|
131
|
-
- Use this skill when the user wants to: create X, build Y, fix Z
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
### 5. Test the skill locally
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
# Install from local repo to a test .claude directory
|
|
138
|
-
node bin/cli.js --skills my-skill -t /tmp/test-project
|
|
139
|
-
|
|
140
|
-
# Verify it's there
|
|
141
|
-
ls /tmp/test-project/.claude/skills/my-skill/
|
|
142
|
-
|
|
143
|
-
# In Claude Code, invoke directly
|
|
144
|
-
/my-skill
|
|
145
|
-
# Or let it auto-trigger by describing your goal
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
## How to Add a New Agent
|
|
151
|
-
|
|
152
|
-
Agents live in `agents/` and are copied to `.claude/agents/` during install.
|
|
153
|
-
|
|
154
|
-
### Simple agent (single `.md` file)
|
|
155
|
-
|
|
156
|
-
Create `agents/my-agent.md`:
|
|
157
|
-
|
|
158
|
-
```markdown
|
|
159
|
-
---
|
|
160
|
-
name: my-agent
|
|
161
|
-
description: Use this agent to do X. TRIGGER when user asks about Y.
|
|
162
|
-
tools: Read, Grep, Glob, Bash
|
|
163
|
-
model: claude-haiku-4-5-20251001
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
You are a specialized agent for [domain].
|
|
167
|
-
|
|
168
|
-
## Capabilities
|
|
169
|
-
...
|
|
170
|
-
|
|
171
|
-
## Instructions
|
|
172
|
-
...
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
### Directory agent (with supporting files)
|
|
176
|
-
|
|
177
|
-
Create `agents/my-agent/` directory with an `agent.md` (or any `.md`) and supporting scripts/configs.
|
|
178
|
-
|
|
179
|
-
### Agent frontmatter fields
|
|
180
|
-
|
|
181
|
-
| Field | Description |
|
|
182
|
-
|-------|-------------|
|
|
183
|
-
| `name` | Agent identifier |
|
|
184
|
-
| `description` | When to invoke; visible in `/agents` list |
|
|
185
|
-
| `tools` | Comma-separated tool allowlist (restricts what the agent can call) |
|
|
186
|
-
| `model` | Override the model (e.g., `claude-haiku-4-5-20251001` for speed) |
|
|
187
|
-
|
|
188
|
-
### Test the agent
|
|
189
|
-
|
|
190
|
-
```bash
|
|
191
|
-
node bin/cli.js --agents my-agent -t /tmp/test-project
|
|
192
|
-
# In Claude Code: "Use the my-agent agent to [task]"
|
|
193
|
-
# Or: /agents to verify it appears
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
---
|
|
197
|
-
|
|
198
|
-
## How to Release (Publish to npm)
|
|
199
|
-
|
|
200
|
-
### Prerequisites
|
|
201
|
-
|
|
202
|
-
- npm account with access to the `gin-skills` package
|
|
203
|
-
- `npm login` completed
|
|
204
|
-
|
|
205
|
-
### Step 1 — Bump the version
|
|
206
|
-
|
|
207
|
-
```bash
|
|
208
|
-
# patch: 1.0.0 → 1.0.1 (bug fixes, content updates)
|
|
209
|
-
npm version patch
|
|
210
|
-
|
|
211
|
-
# minor: 1.0.0 → 1.1.0 (new skills/agents added)
|
|
212
|
-
npm version minor
|
|
213
|
-
|
|
214
|
-
# major: 1.0.0 → 2.0.0 (breaking changes to CLI or skill format)
|
|
215
|
-
npm version major
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
This updates `package.json` and creates a git tag automatically.
|
|
219
|
-
|
|
220
|
-
### Step 2 — Preview what will be published
|
|
221
|
-
|
|
222
|
-
```bash
|
|
223
|
-
npm pack --dry-run
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
Check that:
|
|
227
|
-
- No `node_modules/` is included
|
|
228
|
-
- No `screenshots/`, `evals/`, or large media files
|
|
229
|
-
- All `skills/` and `agents/` directories are present
|
|
230
|
-
- Total size is reasonable (< 2MB target)
|
|
231
|
-
|
|
232
|
-
### Step 3 — Publish
|
|
233
|
-
|
|
234
|
-
```bash
|
|
235
|
-
npm publish
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
For a pre-release (beta):
|
|
239
|
-
|
|
240
|
-
```bash
|
|
241
|
-
npm version prerelease --preid=beta # 1.1.0-beta.0
|
|
242
|
-
npm publish --tag beta
|
|
243
|
-
# Users install with: npx gin-skills@beta
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
### Step 4 — Push the tag
|
|
247
|
-
|
|
248
|
-
```bash
|
|
249
|
-
git push && git push --tags
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
### What `.npmignore` excludes
|
|
253
|
-
|
|
254
|
-
The `.npmignore` file keeps the package small by excluding:
|
|
255
|
-
|
|
256
|
-
```
|
|
257
|
-
**/screenshots/ # demo images
|
|
258
|
-
**/evals/ # evaluation files
|
|
259
|
-
**/*.mov, *.mp4 # video files
|
|
260
|
-
node_modules/
|
|
261
|
-
install.py, install.js # legacy installers
|
|
262
|
-
*.local.json
|
|
263
|
-
**/.env*
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
To add more exclusions, edit `.npmignore`. **Do not add a `files` field to `package.json`** — it overrides `.npmignore` and can accidentally include everything.
|
|
267
|
-
|
|
268
|
-
---
|
|
269
|
-
|
|
270
|
-
## CLI Reference
|
|
271
|
-
|
|
272
|
-
```
|
|
273
|
-
gin-skills [command] [options]
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
### Default: `install`
|
|
277
|
-
|
|
278
|
-
```bash
|
|
279
|
-
gin-skills # Interactive TUI — select skills/agents
|
|
280
|
-
gin-skills --all # Install everything, no prompts
|
|
281
|
-
gin-skills --skills react-query,mongodb
|
|
282
|
-
gin-skills --agents developer,tester
|
|
283
|
-
gin-skills -g # Install to ~/.claude (global)
|
|
284
|
-
gin-skills -t /path/to/project # Install to specific project
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
### `upgrade`
|
|
288
|
-
|
|
289
|
-
Re-copies installed skills/agents from the bundled version.
|
|
290
|
-
|
|
291
|
-
```bash
|
|
292
|
-
gin-skills upgrade # Interactive — choose what to upgrade
|
|
293
|
-
gin-skills upgrade --all # Upgrade everything
|
|
294
|
-
gin-skills upgrade -t /path/to/project
|
|
295
|
-
gin-skills upgrade -g
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
### `uninstall` (alias: `remove`)
|
|
299
|
-
|
|
300
|
-
Removes installed skills/agents from the target `.claude/` directory.
|
|
301
|
-
|
|
302
|
-
```bash
|
|
303
|
-
gin-skills uninstall # Interactive — choose what to remove
|
|
304
|
-
gin-skills uninstall -t /path/to/project
|
|
305
|
-
gin-skills uninstall -g
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
### `status` (alias: `info`)
|
|
309
|
-
|
|
310
|
-
Shows which skills/agents are installed vs available.
|
|
311
|
-
|
|
312
|
-
```bash
|
|
313
|
-
gin-skills status
|
|
314
|
-
gin-skills status -t /path/to/project
|
|
315
|
-
gin-skills status -g
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
### `list` (alias: `ls`)
|
|
319
|
-
|
|
320
|
-
Lists all skills and agents bundled in this package (not what's installed).
|
|
321
|
-
|
|
322
|
-
```bash
|
|
323
|
-
gin-skills list
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
### `versions` (alias: `ver`)
|
|
327
|
-
|
|
328
|
-
Fetches all published versions from the npm registry.
|
|
329
|
-
|
|
330
|
-
```bash
|
|
331
|
-
gin-skills versions
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
### Global flags (work on all commands)
|
|
335
|
-
|
|
336
|
-
| Flag | Short | Description |
|
|
337
|
-
|------|-------|-------------|
|
|
338
|
-
| `--global` | `-g` | Target `~/.claude/` (available in all projects) |
|
|
339
|
-
| `--target <path>` | `-t` | Target a specific project directory |
|
|
340
|
-
| `--version` | `-V` | Print CLI version |
|
|
341
|
-
| `--help` | `-h` | Print help |
|
|
342
|
-
|
|
343
|
-
---
|
|
344
|
-
|
|
345
|
-
## How Users Install Skills
|
|
346
|
-
|
|
347
|
-
### One-time install (recommended)
|
|
348
|
-
|
|
349
|
-
```bash
|
|
350
|
-
npx gin-skills
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
Runs the interactive TUI to select skills and agents.
|
|
354
|
-
|
|
355
|
-
### Install to a specific project
|
|
356
|
-
|
|
357
|
-
```bash
|
|
358
|
-
cd /path/to/my-project
|
|
359
|
-
npx gin-skills
|
|
360
|
-
# or
|
|
361
|
-
npx gin-skills -t /path/to/my-project
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
### Install globally (all projects)
|
|
365
|
-
|
|
366
|
-
```bash
|
|
367
|
-
npx gin-skills -g
|
|
368
|
-
# or
|
|
369
|
-
npx gin-skills --global
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
### Non-interactive (CI/scripts)
|
|
373
|
-
|
|
374
|
-
```bash
|
|
375
|
-
npx gin-skills --all # all skills + agents
|
|
376
|
-
npx gin-skills --skills react-query,mongodb # specific skills only
|
|
377
|
-
npx gin-skills --agents developer # specific agent only
|
|
378
|
-
npx gin-skills --all -g # everything, globally
|
|
379
|
-
```
|
|
380
|
-
|
|
381
|
-
---
|
|
382
|
-
|
|
383
|
-
## How to Upgrade Installed Skills
|
|
384
|
-
|
|
385
|
-
When a new version of `gin-skills` is published, users upgrade their installed skills by running:
|
|
386
|
-
|
|
387
|
-
```bash
|
|
388
|
-
# Interactive — choose which skills/agents to upgrade
|
|
389
|
-
npx gin-skills@latest upgrade
|
|
390
|
-
|
|
391
|
-
# Upgrade everything silently
|
|
392
|
-
npx gin-skills@latest upgrade --all
|
|
393
|
-
|
|
394
|
-
# Upgrade in a specific project
|
|
395
|
-
npx gin-skills@latest upgrade -t /path/to/project
|
|
396
|
-
```
|
|
397
|
-
|
|
398
|
-
The `upgrade` command re-copies skills/agents from the npm package, overwriting the existing files. Only skills/agents already installed are shown.
|
|
399
|
-
|
|
400
|
-
---
|
|
401
|
-
|
|
402
|
-
## How to Uninstall
|
|
403
|
-
|
|
404
|
-
### Remove specific skills/agents interactively
|
|
405
|
-
|
|
406
|
-
```bash
|
|
407
|
-
gin-skills uninstall
|
|
408
|
-
# or from any version:
|
|
409
|
-
npx gin-skills uninstall
|
|
410
|
-
```
|
|
411
|
-
|
|
412
|
-
### Remove from a specific project
|
|
413
|
-
|
|
414
|
-
```bash
|
|
415
|
-
gin-skills uninstall -t /path/to/project
|
|
416
|
-
```
|
|
417
|
-
|
|
418
|
-
### Remove globally installed skills
|
|
419
|
-
|
|
420
|
-
```bash
|
|
421
|
-
gin-skills uninstall -g
|
|
422
|
-
```
|
|
423
|
-
|
|
424
|
-
### Manual removal
|
|
425
|
-
|
|
426
|
-
Skills are plain directories — you can also delete them manually:
|
|
427
|
-
|
|
428
|
-
```bash
|
|
429
|
-
# Remove a specific skill
|
|
430
|
-
rm -rf .claude/skills/my-skill
|
|
431
|
-
|
|
432
|
-
# Remove a specific agent
|
|
433
|
-
rm .claude/agents/my-agent.md
|
|
434
|
-
# or
|
|
435
|
-
rm -rf .claude/agents/my-agent/
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
---
|
|
439
|
-
|
|
440
|
-
## Local Development & Testing
|
|
441
|
-
|
|
442
|
-
### Setup
|
|
443
|
-
|
|
444
|
-
```bash
|
|
445
|
-
cd ginstudio-skills
|
|
446
|
-
npm install
|
|
447
|
-
```
|
|
448
|
-
|
|
449
|
-
### Run CLI locally
|
|
450
|
-
|
|
451
|
-
```bash
|
|
452
|
-
node bin/cli.js --help
|
|
453
|
-
node bin/cli.js list
|
|
454
|
-
node bin/cli.js status -t /tmp/test
|
|
455
|
-
node bin/cli.js --all -t /tmp/test
|
|
456
|
-
node bin/cli.js upgrade --all -t /tmp/test
|
|
457
|
-
node bin/cli.js uninstall -t /tmp/test
|
|
458
|
-
```
|
|
459
|
-
|
|
460
|
-
### Link globally for testing
|
|
461
|
-
|
|
462
|
-
```bash
|
|
463
|
-
npm link
|
|
464
|
-
# Now you can run: gin-skills --help
|
|
465
|
-
npm unlink gin-skills # when done
|
|
466
|
-
```
|
|
467
|
-
|
|
468
|
-
### Test pack before publishing
|
|
469
|
-
|
|
470
|
-
```bash
|
|
471
|
-
npm pack --dry-run # preview what's included
|
|
472
|
-
npm pack # creates gin-skills-x.x.x.tgz
|
|
473
|
-
# Test install from the tgz:
|
|
474
|
-
npx ./gin-skills-x.x.x.tgz
|
|
475
|
-
```
|
|
476
|
-
|
|
477
|
-
---
|
|
478
|
-
|
|
479
|
-
## Troubleshooting
|
|
480
|
-
|
|
481
|
-
### Skills not appearing in Claude Code
|
|
482
|
-
|
|
483
|
-
Run `/agents` or restart Claude Code after installing. Skills are picked up on session start.
|
|
484
|
-
|
|
485
|
-
### `npx gin-skills` installs an old version
|
|
486
|
-
|
|
487
|
-
Force the latest:
|
|
488
|
-
|
|
489
|
-
```bash
|
|
490
|
-
npx gin-skills@latest
|
|
491
|
-
# or clear npx cache:
|
|
492
|
-
npx --yes gin-skills@latest
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
### Target not recognized
|
|
496
|
-
|
|
497
|
-
If `-t /path/to/project` seems to be ignored, make sure you're passing it **after** the command:
|
|
498
|
-
|
|
499
|
-
```bash
|
|
500
|
-
gin-skills upgrade -t /path/to/project ✓
|
|
501
|
-
gin-skills -t /path/to/project upgrade ✗ (flag consumed by parent)
|
|
502
|
-
```
|
|
503
|
-
|
|
504
|
-
### Package is too large
|
|
505
|
-
|
|
506
|
-
Check `.npmignore` is present and `package.json` has no `files` field. Run `npm pack --dry-run` to inspect.
|
|
507
|
-
|
|
508
|
-
### Skill doesn't auto-trigger
|
|
509
|
-
|
|
510
|
-
Verify the `description` frontmatter in `SKILL.md` includes `MANDATORY TRIGGERS` with the exact words the user would say.
|
|
1
|
+
# GinStudio Skills — Development Guide
|
|
2
|
+
|
|
3
|
+
Everything you need to contribute skills, release new versions, and manage the CLI.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Table of Contents
|
|
8
|
+
|
|
9
|
+
1. [Project Structure](#project-structure)
|
|
10
|
+
2. [How to Add a New Skill](#how-to-add-a-new-skill)
|
|
11
|
+
3. [How to Add a New Agent](#how-to-add-a-new-agent)
|
|
12
|
+
4. [How to Release (Publish to npm)](#how-to-release-publish-to-npm)
|
|
13
|
+
5. [CLI Reference](#cli-reference)
|
|
14
|
+
6. [How Users Install Skills](#how-users-install-skills)
|
|
15
|
+
7. [How to Upgrade Installed Skills](#how-to-upgrade-installed-skills)
|
|
16
|
+
8. [How to Uninstall](#how-to-uninstall)
|
|
17
|
+
9. [Local Development & Testing](#local-development--testing)
|
|
18
|
+
10. [Troubleshooting](#troubleshooting)
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Project Structure
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
ginstudio-skills/
|
|
26
|
+
├── bin/
|
|
27
|
+
│ └── cli.js # npm CLI entrypoint (gin-skills)
|
|
28
|
+
├── skills/
|
|
29
|
+
│ └── my-skill/ # One directory per skill
|
|
30
|
+
│ ├── SKILL.md # Main skill file (required)
|
|
31
|
+
│ ├── docs/ # Supporting docs loaded at runtime
|
|
32
|
+
│ └── scripts/ # Shell scripts used by the skill
|
|
33
|
+
├── agents/
|
|
34
|
+
│ ├── my-agent.md # Single-file agent (simple)
|
|
35
|
+
│ └── my-agent/ # Directory agent (with supporting files)
|
|
36
|
+
│ └── agent.md
|
|
37
|
+
├── package.json # npm package config
|
|
38
|
+
├── .npmignore # Files excluded from npm publish
|
|
39
|
+
├── .gitignore
|
|
40
|
+
├── README.md
|
|
41
|
+
└── DEVELOPMENT.md # This file
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## How to Add a New Skill
|
|
47
|
+
|
|
48
|
+
### 1. Create the skill directory
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
mkdir -p skills/my-skill/docs
|
|
52
|
+
mkdir -p skills/my-skill/scripts
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 2. Write `SKILL.md` (required)
|
|
56
|
+
|
|
57
|
+
Every skill needs a `SKILL.md` at `skills/my-skill/SKILL.md`.
|
|
58
|
+
|
|
59
|
+
**Minimal template:**
|
|
60
|
+
|
|
61
|
+
```markdown
|
|
62
|
+
---
|
|
63
|
+
name: my-skill
|
|
64
|
+
description: |
|
|
65
|
+
Short description visible to Claude when deciding to load this skill.
|
|
66
|
+
- MANDATORY TRIGGERS: keyword1, keyword2, keyword3
|
|
67
|
+
- Use this skill when the user wants to: do X, Y, Z
|
|
68
|
+
argument-hint: "[optional | args | here]"
|
|
69
|
+
disable-model-invocation: false
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
# My Skill Title
|
|
73
|
+
|
|
74
|
+
You are an expert in [domain]. Help the user [goal].
|
|
75
|
+
|
|
76
|
+
## Step 1 — Do Something
|
|
77
|
+
|
|
78
|
+
...instructions...
|
|
79
|
+
|
|
80
|
+
## Step 2 — Do Something Else
|
|
81
|
+
|
|
82
|
+
...
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**SKILL.md frontmatter fields:**
|
|
86
|
+
|
|
87
|
+
| Field | Required | Description |
|
|
88
|
+
|-------|----------|-------------|
|
|
89
|
+
| `name` | yes | Identifier, must match the directory name |
|
|
90
|
+
| `description` | yes | Shown to Claude; include `MANDATORY TRIGGERS` keywords |
|
|
91
|
+
| `argument-hint` | no | Shown in `/skill-name [hint]` |
|
|
92
|
+
| `disable-model-invocation` | no | Set `true` to block Claude from calling models inside the skill |
|
|
93
|
+
| `user-invocable` | no | Set `false` for domain-knowledge skills that auto-load but aren't called directly |
|
|
94
|
+
|
|
95
|
+
**Rules:**
|
|
96
|
+
- Keep `SKILL.md` under **500 lines**. Move excess content to `docs/`.
|
|
97
|
+
- Put reusable deep-dives in `docs/*.md` and load them via a script or inline reference.
|
|
98
|
+
- Scripts go in `scripts/` and are invoked with `` !`bash skills/my-skill/scripts/my-script.sh $ARGUMENTS` ``.
|
|
99
|
+
|
|
100
|
+
### 3. Load docs dynamically (optional)
|
|
101
|
+
|
|
102
|
+
Create `scripts/load-tutorial.sh` if your skill routes to different docs based on arguments:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
#!/bin/bash
|
|
106
|
+
TOPIC="${1:-overview}"
|
|
107
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
108
|
+
DOCS_DIR="$SCRIPT_DIR/../docs"
|
|
109
|
+
|
|
110
|
+
case "$TOPIC" in
|
|
111
|
+
intro) cat "$DOCS_DIR/intro.md" ;;
|
|
112
|
+
advanced) cat "$DOCS_DIR/advanced.md" ;;
|
|
113
|
+
*) cat "$DOCS_DIR/overview.md" ;;
|
|
114
|
+
esac
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Then in `SKILL.md`:
|
|
118
|
+
|
|
119
|
+
```markdown
|
|
120
|
+
!`bash skills/my-skill/scripts/load-tutorial.sh $ARGUMENTS`
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### 4. Register the skill's auto-triggers
|
|
124
|
+
|
|
125
|
+
The `description` field in the frontmatter is used by Claude to decide when to auto-load the skill. Include:
|
|
126
|
+
|
|
127
|
+
```yaml
|
|
128
|
+
description: |
|
|
129
|
+
Brief one-liner.
|
|
130
|
+
- MANDATORY TRIGGERS: the exact words or phrases that should trigger it
|
|
131
|
+
- Use this skill when the user wants to: create X, build Y, fix Z
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### 5. Test the skill locally
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# Install from local repo to a test .claude directory
|
|
138
|
+
node bin/cli.js --skills my-skill -t /tmp/test-project
|
|
139
|
+
|
|
140
|
+
# Verify it's there
|
|
141
|
+
ls /tmp/test-project/.claude/skills/my-skill/
|
|
142
|
+
|
|
143
|
+
# In Claude Code, invoke directly
|
|
144
|
+
/my-skill
|
|
145
|
+
# Or let it auto-trigger by describing your goal
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## How to Add a New Agent
|
|
151
|
+
|
|
152
|
+
Agents live in `agents/` and are copied to `.claude/agents/` during install.
|
|
153
|
+
|
|
154
|
+
### Simple agent (single `.md` file)
|
|
155
|
+
|
|
156
|
+
Create `agents/my-agent.md`:
|
|
157
|
+
|
|
158
|
+
```markdown
|
|
159
|
+
---
|
|
160
|
+
name: my-agent
|
|
161
|
+
description: Use this agent to do X. TRIGGER when user asks about Y.
|
|
162
|
+
tools: Read, Grep, Glob, Bash
|
|
163
|
+
model: claude-haiku-4-5-20251001
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
You are a specialized agent for [domain].
|
|
167
|
+
|
|
168
|
+
## Capabilities
|
|
169
|
+
...
|
|
170
|
+
|
|
171
|
+
## Instructions
|
|
172
|
+
...
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Directory agent (with supporting files)
|
|
176
|
+
|
|
177
|
+
Create `agents/my-agent/` directory with an `agent.md` (or any `.md`) and supporting scripts/configs.
|
|
178
|
+
|
|
179
|
+
### Agent frontmatter fields
|
|
180
|
+
|
|
181
|
+
| Field | Description |
|
|
182
|
+
|-------|-------------|
|
|
183
|
+
| `name` | Agent identifier |
|
|
184
|
+
| `description` | When to invoke; visible in `/agents` list |
|
|
185
|
+
| `tools` | Comma-separated tool allowlist (restricts what the agent can call) |
|
|
186
|
+
| `model` | Override the model (e.g., `claude-haiku-4-5-20251001` for speed) |
|
|
187
|
+
|
|
188
|
+
### Test the agent
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
node bin/cli.js --agents my-agent -t /tmp/test-project
|
|
192
|
+
# In Claude Code: "Use the my-agent agent to [task]"
|
|
193
|
+
# Or: /agents to verify it appears
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## How to Release (Publish to npm)
|
|
199
|
+
|
|
200
|
+
### Prerequisites
|
|
201
|
+
|
|
202
|
+
- npm account with access to the `gin-skills` package
|
|
203
|
+
- `npm login` completed
|
|
204
|
+
|
|
205
|
+
### Step 1 — Bump the version
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# patch: 1.0.0 → 1.0.1 (bug fixes, content updates)
|
|
209
|
+
npm version patch
|
|
210
|
+
|
|
211
|
+
# minor: 1.0.0 → 1.1.0 (new skills/agents added)
|
|
212
|
+
npm version minor
|
|
213
|
+
|
|
214
|
+
# major: 1.0.0 → 2.0.0 (breaking changes to CLI or skill format)
|
|
215
|
+
npm version major
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
This updates `package.json` and creates a git tag automatically.
|
|
219
|
+
|
|
220
|
+
### Step 2 — Preview what will be published
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
npm pack --dry-run
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Check that:
|
|
227
|
+
- No `node_modules/` is included
|
|
228
|
+
- No `screenshots/`, `evals/`, or large media files
|
|
229
|
+
- All `skills/` and `agents/` directories are present
|
|
230
|
+
- Total size is reasonable (< 2MB target)
|
|
231
|
+
|
|
232
|
+
### Step 3 — Publish
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
npm publish
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
For a pre-release (beta):
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
npm version prerelease --preid=beta # 1.1.0-beta.0
|
|
242
|
+
npm publish --tag beta
|
|
243
|
+
# Users install with: npx gin-skills@beta
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Step 4 — Push the tag
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
git push && git push --tags
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### What `.npmignore` excludes
|
|
253
|
+
|
|
254
|
+
The `.npmignore` file keeps the package small by excluding:
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
**/screenshots/ # demo images
|
|
258
|
+
**/evals/ # evaluation files
|
|
259
|
+
**/*.mov, *.mp4 # video files
|
|
260
|
+
node_modules/
|
|
261
|
+
install.py, install.js # legacy installers
|
|
262
|
+
*.local.json
|
|
263
|
+
**/.env*
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
To add more exclusions, edit `.npmignore`. **Do not add a `files` field to `package.json`** — it overrides `.npmignore` and can accidentally include everything.
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
## CLI Reference
|
|
271
|
+
|
|
272
|
+
```
|
|
273
|
+
gin-skills [command] [options]
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Default: `install`
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
gin-skills # Interactive TUI — select skills/agents
|
|
280
|
+
gin-skills --all # Install everything, no prompts
|
|
281
|
+
gin-skills --skills react-query,mongodb
|
|
282
|
+
gin-skills --agents developer,tester
|
|
283
|
+
gin-skills -g # Install to ~/.claude (global)
|
|
284
|
+
gin-skills -t /path/to/project # Install to specific project
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### `upgrade`
|
|
288
|
+
|
|
289
|
+
Re-copies installed skills/agents from the bundled version.
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
gin-skills upgrade # Interactive — choose what to upgrade
|
|
293
|
+
gin-skills upgrade --all # Upgrade everything
|
|
294
|
+
gin-skills upgrade -t /path/to/project
|
|
295
|
+
gin-skills upgrade -g
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### `uninstall` (alias: `remove`)
|
|
299
|
+
|
|
300
|
+
Removes installed skills/agents from the target `.claude/` directory.
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
gin-skills uninstall # Interactive — choose what to remove
|
|
304
|
+
gin-skills uninstall -t /path/to/project
|
|
305
|
+
gin-skills uninstall -g
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### `status` (alias: `info`)
|
|
309
|
+
|
|
310
|
+
Shows which skills/agents are installed vs available.
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
gin-skills status
|
|
314
|
+
gin-skills status -t /path/to/project
|
|
315
|
+
gin-skills status -g
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### `list` (alias: `ls`)
|
|
319
|
+
|
|
320
|
+
Lists all skills and agents bundled in this package (not what's installed).
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
gin-skills list
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### `versions` (alias: `ver`)
|
|
327
|
+
|
|
328
|
+
Fetches all published versions from the npm registry.
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
gin-skills versions
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### Global flags (work on all commands)
|
|
335
|
+
|
|
336
|
+
| Flag | Short | Description |
|
|
337
|
+
|------|-------|-------------|
|
|
338
|
+
| `--global` | `-g` | Target `~/.claude/` (available in all projects) |
|
|
339
|
+
| `--target <path>` | `-t` | Target a specific project directory |
|
|
340
|
+
| `--version` | `-V` | Print CLI version |
|
|
341
|
+
| `--help` | `-h` | Print help |
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## How Users Install Skills
|
|
346
|
+
|
|
347
|
+
### One-time install (recommended)
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
npx gin-skills
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
Runs the interactive TUI to select skills and agents.
|
|
354
|
+
|
|
355
|
+
### Install to a specific project
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
cd /path/to/my-project
|
|
359
|
+
npx gin-skills
|
|
360
|
+
# or
|
|
361
|
+
npx gin-skills -t /path/to/my-project
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### Install globally (all projects)
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
npx gin-skills -g
|
|
368
|
+
# or
|
|
369
|
+
npx gin-skills --global
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### Non-interactive (CI/scripts)
|
|
373
|
+
|
|
374
|
+
```bash
|
|
375
|
+
npx gin-skills --all # all skills + agents
|
|
376
|
+
npx gin-skills --skills react-query,mongodb # specific skills only
|
|
377
|
+
npx gin-skills --agents developer # specific agent only
|
|
378
|
+
npx gin-skills --all -g # everything, globally
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
## How to Upgrade Installed Skills
|
|
384
|
+
|
|
385
|
+
When a new version of `gin-skills` is published, users upgrade their installed skills by running:
|
|
386
|
+
|
|
387
|
+
```bash
|
|
388
|
+
# Interactive — choose which skills/agents to upgrade
|
|
389
|
+
npx gin-skills@latest upgrade
|
|
390
|
+
|
|
391
|
+
# Upgrade everything silently
|
|
392
|
+
npx gin-skills@latest upgrade --all
|
|
393
|
+
|
|
394
|
+
# Upgrade in a specific project
|
|
395
|
+
npx gin-skills@latest upgrade -t /path/to/project
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
The `upgrade` command re-copies skills/agents from the npm package, overwriting the existing files. Only skills/agents already installed are shown.
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
## How to Uninstall
|
|
403
|
+
|
|
404
|
+
### Remove specific skills/agents interactively
|
|
405
|
+
|
|
406
|
+
```bash
|
|
407
|
+
gin-skills uninstall
|
|
408
|
+
# or from any version:
|
|
409
|
+
npx gin-skills uninstall
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
### Remove from a specific project
|
|
413
|
+
|
|
414
|
+
```bash
|
|
415
|
+
gin-skills uninstall -t /path/to/project
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### Remove globally installed skills
|
|
419
|
+
|
|
420
|
+
```bash
|
|
421
|
+
gin-skills uninstall -g
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### Manual removal
|
|
425
|
+
|
|
426
|
+
Skills are plain directories — you can also delete them manually:
|
|
427
|
+
|
|
428
|
+
```bash
|
|
429
|
+
# Remove a specific skill
|
|
430
|
+
rm -rf .claude/skills/my-skill
|
|
431
|
+
|
|
432
|
+
# Remove a specific agent
|
|
433
|
+
rm .claude/agents/my-agent.md
|
|
434
|
+
# or
|
|
435
|
+
rm -rf .claude/agents/my-agent/
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
---
|
|
439
|
+
|
|
440
|
+
## Local Development & Testing
|
|
441
|
+
|
|
442
|
+
### Setup
|
|
443
|
+
|
|
444
|
+
```bash
|
|
445
|
+
cd ginstudio-skills
|
|
446
|
+
npm install
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
### Run CLI locally
|
|
450
|
+
|
|
451
|
+
```bash
|
|
452
|
+
node bin/cli.js --help
|
|
453
|
+
node bin/cli.js list
|
|
454
|
+
node bin/cli.js status -t /tmp/test
|
|
455
|
+
node bin/cli.js --all -t /tmp/test
|
|
456
|
+
node bin/cli.js upgrade --all -t /tmp/test
|
|
457
|
+
node bin/cli.js uninstall -t /tmp/test
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
### Link globally for testing
|
|
461
|
+
|
|
462
|
+
```bash
|
|
463
|
+
npm link
|
|
464
|
+
# Now you can run: gin-skills --help
|
|
465
|
+
npm unlink gin-skills # when done
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
### Test pack before publishing
|
|
469
|
+
|
|
470
|
+
```bash
|
|
471
|
+
npm pack --dry-run # preview what's included
|
|
472
|
+
npm pack # creates gin-skills-x.x.x.tgz
|
|
473
|
+
# Test install from the tgz:
|
|
474
|
+
npx ./gin-skills-x.x.x.tgz
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
---
|
|
478
|
+
|
|
479
|
+
## Troubleshooting
|
|
480
|
+
|
|
481
|
+
### Skills not appearing in Claude Code
|
|
482
|
+
|
|
483
|
+
Run `/agents` or restart Claude Code after installing. Skills are picked up on session start.
|
|
484
|
+
|
|
485
|
+
### `npx gin-skills` installs an old version
|
|
486
|
+
|
|
487
|
+
Force the latest:
|
|
488
|
+
|
|
489
|
+
```bash
|
|
490
|
+
npx gin-skills@latest
|
|
491
|
+
# or clear npx cache:
|
|
492
|
+
npx --yes gin-skills@latest
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
### Target not recognized
|
|
496
|
+
|
|
497
|
+
If `-t /path/to/project` seems to be ignored, make sure you're passing it **after** the command:
|
|
498
|
+
|
|
499
|
+
```bash
|
|
500
|
+
gin-skills upgrade -t /path/to/project ✓
|
|
501
|
+
gin-skills -t /path/to/project upgrade ✗ (flag consumed by parent)
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
### Package is too large
|
|
505
|
+
|
|
506
|
+
Check `.npmignore` is present and `package.json` has no `files` field. Run `npm pack --dry-run` to inspect.
|
|
507
|
+
|
|
508
|
+
### Skill doesn't auto-trigger
|
|
509
|
+
|
|
510
|
+
Verify the `description` frontmatter in `SKILL.md` includes `MANDATORY TRIGGERS` with the exact words the user would say.
|