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.
Files changed (147) hide show
  1. package/DEVELOPMENT.md +510 -510
  2. package/README.md +105 -105
  3. package/agents/developer.md +56 -56
  4. package/agents/frontend-design.md +69 -69
  5. package/agents/mobile-reviewer.md +36 -36
  6. package/agents/review-code.md +49 -49
  7. package/agents/security-scanner.md +50 -50
  8. package/agents/tester.md +72 -72
  9. package/bin/cli.js +535 -535
  10. package/landing/index.html +1526 -1526
  11. package/package.json +42 -42
  12. package/skills/active-life-dev/SKILL.md +157 -157
  13. package/skills/active-life-dev/docs/auth.md +187 -187
  14. package/skills/active-life-dev/docs/customers.md +216 -216
  15. package/skills/active-life-dev/docs/integrations.md +209 -209
  16. package/skills/active-life-dev/docs/inventory.md +192 -192
  17. package/skills/active-life-dev/docs/modules.md +181 -181
  18. package/skills/active-life-dev/docs/orders.md +180 -180
  19. package/skills/active-life-dev/docs/patterns.md +319 -319
  20. package/skills/active-life-dev/docs/products.md +216 -216
  21. package/skills/active-life-dev/docs/schema.md +502 -502
  22. package/skills/active-life-dev/docs/setup.md +169 -169
  23. package/skills/active-life-dev/docs/vouchers.md +144 -144
  24. package/skills/ai-asset-generator/SKILL.md +247 -247
  25. package/skills/ai-asset-generator/docs/gen-image.md +273 -273
  26. package/skills/ai-asset-generator/docs/genvideo.md +340 -340
  27. package/skills/ai-asset-generator/docs/remove-background.md +19 -19
  28. package/skills/ai-asset-generator/lib/bg-remove.mjs +54 -54
  29. package/skills/ai-asset-generator/lib/env.mjs +48 -48
  30. package/skills/ai-asset-generator/lib/kie-client.mjs +111 -111
  31. package/skills/ai-build-ai/SKILL.md +127 -127
  32. package/skills/ai-build-ai/docs/agent-teams.md +293 -293
  33. package/skills/ai-build-ai/docs/checkpointing.md +161 -161
  34. package/skills/ai-build-ai/docs/create-agent.md +399 -399
  35. package/skills/ai-build-ai/docs/create-mcp.md +395 -395
  36. package/skills/ai-build-ai/docs/create-skill.md +299 -299
  37. package/skills/ai-build-ai/docs/headless-mode.md +614 -614
  38. package/skills/ai-build-ai/docs/hooks.md +578 -578
  39. package/skills/ai-build-ai/docs/memory-claude-md.md +375 -375
  40. package/skills/ai-build-ai/docs/output-styles.md +208 -208
  41. package/skills/ai-build-ai/docs/overview.md +162 -162
  42. package/skills/ai-build-ai/docs/permissions.md +391 -391
  43. package/skills/ai-build-ai/docs/plugins.md +396 -396
  44. package/skills/ai-build-ai/docs/sandbox.md +262 -262
  45. package/skills/ai-build-ai/docs/team-lead-workflow.md +648 -648
  46. package/skills/ant-design/SKILL.md +323 -323
  47. package/skills/ant-design/docs/components.md +160 -160
  48. package/skills/ant-design/docs/data-entry.md +406 -406
  49. package/skills/ant-design/docs/display.md +594 -594
  50. package/skills/ant-design/docs/feedback.md +451 -451
  51. package/skills/ant-design/docs/key-components.md +414 -414
  52. package/skills/ant-design/docs/navigation.md +310 -310
  53. package/skills/ant-design/docs/pro-components.md +543 -543
  54. package/skills/ant-design/docs/setup.md +213 -213
  55. package/skills/ant-design/docs/theme.md +265 -265
  56. package/skills/flutter-performance/SKILL.md +803 -803
  57. package/skills/flutter-performance/references/flutter-patterns.md +595 -595
  58. package/skills/icon-generator/SKILL.md +270 -270
  59. package/skills/mobile-app-review/SKILL.md +321 -321
  60. package/skills/mobile-app-review/references/apple-review.md +132 -132
  61. package/skills/mobile-app-review/references/google-play-review.md +203 -203
  62. package/skills/mongodb/SKILL.md +667 -667
  63. package/skills/mongodb/references/mongoose-patterns.md +368 -368
  64. package/skills/nestjs-architecture/SKILL.md +1086 -1086
  65. package/skills/nestjs-architecture/references/advanced-patterns.md +590 -590
  66. package/skills/openclaw-builder/SKILL.md +115 -115
  67. package/skills/openclaw-builder/docs/acp-guide.md +117 -117
  68. package/skills/openclaw-builder/docs/automation-guide.md +135 -135
  69. package/skills/openclaw-builder/docs/browser-guide.md +217 -217
  70. package/skills/openclaw-builder/docs/channels-guide.md +150 -150
  71. package/skills/openclaw-builder/docs/commands-guide.md +130 -130
  72. package/skills/openclaw-builder/docs/config-guide.md +195 -195
  73. package/skills/openclaw-builder/docs/exec-guide.md +194 -194
  74. package/skills/openclaw-builder/docs/hooks-guide.md +132 -132
  75. package/skills/openclaw-builder/docs/models-auth-guide.md +140 -140
  76. package/skills/openclaw-builder/docs/multi-agent-guide.md +373 -373
  77. package/skills/openclaw-builder/docs/plugins-guide.md +134 -134
  78. package/skills/openclaw-builder/docs/remote-gateway-guide.md +184 -184
  79. package/skills/openclaw-builder/docs/sandboxing-guide.md +207 -207
  80. package/skills/openclaw-builder/docs/security-guide.md +232 -232
  81. package/skills/openclaw-builder/docs/skills-guide.md +92 -92
  82. package/skills/openclaw-builder/docs/webhooks-guide.md +179 -179
  83. package/skills/openclaw-builder/docs/workspace-memory-guide.md +130 -130
  84. package/skills/react-fsd-architecture/SKILL.md +65 -693
  85. package/skills/react-fsd-architecture/docs/anti-patterns.md +163 -0
  86. package/skills/react-fsd-architecture/docs/core-concepts.md +153 -0
  87. package/skills/react-fsd-architecture/docs/entity-conventions.md +245 -0
  88. package/skills/react-fsd-architecture/docs/form-architecture.md +292 -0
  89. package/skills/react-fsd-architecture/docs/list-architecture.md +342 -0
  90. package/skills/react-fsd-architecture/references/fsd-patterns.md +747 -747
  91. package/skills/react-fsd-architecture/references/rhf-patterns.md +253 -0
  92. package/skills/react-native-expo/SKILL.md +128 -128
  93. package/skills/react-native-expo/references/data-layer.md +252 -252
  94. package/skills/react-native-expo/references/design-system.md +252 -252
  95. package/skills/react-native-expo/references/navigation.md +199 -199
  96. package/skills/react-native-expo/references/performance.md +229 -229
  97. package/skills/react-native-expo/references/platform-services.md +179 -179
  98. package/skills/react-native-expo/references/state-management.md +209 -209
  99. package/skills/react-native-expo/references/ui-patterns.md +301 -301
  100. package/skills/react-native-performance/SKILL.md +74 -74
  101. package/skills/react-native-performance/docs/01-architecture.md +1154 -1154
  102. package/skills/react-native-performance/docs/02-rendering.md +1547 -1547
  103. package/skills/react-native-performance/docs/03-startup.md +1432 -1432
  104. package/skills/react-native-performance/docs/04-memory.md +2302 -2302
  105. package/skills/react-native-performance/docs/05-navigation.md +1039 -1039
  106. package/skills/react-native-performance/docs/06-network-state.md +1249 -1249
  107. package/skills/react-native-performance/docs/07-bundle-size.md +1687 -1687
  108. package/skills/react-native-performance/docs/08-algorithms.md +2415 -2415
  109. package/skills/react-native-performance/docs/09-animations.md +1724 -1724
  110. package/skills/react-native-performance/docs/10-senior-tricks.md +1565 -1565
  111. package/skills/react-native-performance/docs/11-anti-patterns.md +224 -224
  112. package/skills/react-native-performance/docs/12-monitoring.md +969 -969
  113. package/skills/react-native-performance/docs/13-checklist.md +155 -155
  114. package/skills/react-native-performance/scanners/scan-all.sh +138 -138
  115. package/skills/react-native-performance/scanners/scan-animations.sh +250 -250
  116. package/skills/react-native-performance/scanners/scan-build-config.sh +83 -83
  117. package/skills/react-native-performance/scanners/scan-bundle-size.sh +209 -209
  118. package/skills/react-native-performance/scanners/scan-console-devtools.sh +311 -271
  119. package/skills/react-native-performance/scanners/scan-images.sh +212 -212
  120. package/skills/react-native-performance/scanners/scan-memory-leaks.sh +286 -263
  121. package/skills/react-native-performance/scanners/scan-navigation.sh +244 -244
  122. package/skills/react-native-performance/scanners/scan-rendering.sh +208 -208
  123. package/skills/react-native-performance/scanners/scan-state-network.sh +262 -262
  124. package/skills/react-native-performance/scanners/scan-typescript-perf.sh +97 -97
  125. package/skills/react-native-performance/scanners/scan-unused-assets.sh +302 -302
  126. package/skills/react-query/SKILL.md +685 -685
  127. package/skills/react-query/references/query-patterns.md +365 -365
  128. package/skills/review-code/SKILL.md +374 -374
  129. package/skills/review-code/references/clean-code-principles.md +395 -395
  130. package/skills/review-code/references/frontend-patterns.md +136 -136
  131. package/skills/review-code/references/nestjs-patterns.md +184 -184
  132. package/skills/security-scanner/SKILL.md +366 -366
  133. package/skills/security-scanner/references/nestjs-security.md +260 -260
  134. package/skills/security-scanner/references/nextjs-security.md +201 -201
  135. package/skills/security-scanner/references/react-native-security.md +199 -199
  136. package/skills/ui-ux-pro-max/SKILL.md +377 -377
  137. package/skills/ui-ux-pro-max/data/icons.csv +101 -101
  138. package/skills/ui-ux-pro-max/data/react-performance.csv +45 -45
  139. package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -54
  140. package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -53
  141. package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -51
  142. package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -59
  143. package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -61
  144. package/skills/ui-ux-pro-max/data/typography.csv +57 -57
  145. package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -101
  146. package/skills/ui-ux-pro-max/data/web-interface.csv +31 -31
  147. 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.