panopticon-cli 0.4.6 → 0.4.8

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 (114) hide show
  1. package/package.json +3 -2
  2. package/scripts/heartbeat-hook +149 -0
  3. package/scripts/install-git-hooks.sh +66 -0
  4. package/scripts/notify-complete +79 -0
  5. package/scripts/postinstall.mjs +49 -0
  6. package/scripts/pre-tool-hook +60 -0
  7. package/scripts/record-cost-event.js +94 -0
  8. package/scripts/record-cost-event.ts +113 -0
  9. package/scripts/restart-dashboard.sh +59 -0
  10. package/scripts/setup-certs.sh +66 -0
  11. package/scripts/specialist-stop-hook +106 -0
  12. package/scripts/stop-hook +58 -0
  13. package/scripts/validate-merge.sh +119 -0
  14. package/skills/beads/README.md +120 -0
  15. package/skills/beads/SKILL.md +214 -0
  16. package/skills/beads/adr/0001-bd-prime-as-source-of-truth.md +59 -0
  17. package/skills/beads/resources/AGENTS.md +62 -0
  18. package/skills/beads/resources/ASYNC_GATES.md +168 -0
  19. package/skills/beads/resources/BOUNDARIES.md +469 -0
  20. package/skills/beads/resources/CHEMISTRY_PATTERNS.md +197 -0
  21. package/skills/beads/resources/CLI_REFERENCE.md +558 -0
  22. package/skills/beads/resources/DEPENDENCIES.md +747 -0
  23. package/skills/beads/resources/INTEGRATION_PATTERNS.md +407 -0
  24. package/skills/beads/resources/ISSUE_CREATION.md +139 -0
  25. package/skills/beads/resources/MOLECULES.md +354 -0
  26. package/skills/beads/resources/PATTERNS.md +341 -0
  27. package/skills/beads/resources/RESUMABILITY.md +207 -0
  28. package/skills/beads/resources/STATIC_DATA.md +54 -0
  29. package/skills/beads/resources/TROUBLESHOOTING.md +489 -0
  30. package/skills/beads/resources/WORKFLOWS.md +623 -0
  31. package/skills/beads/resources/WORKTREES.md +94 -0
  32. package/skills/beads-completion-check/SKILL.md +90 -0
  33. package/skills/beads-panopticon-guide/SKILL.md +171 -0
  34. package/skills/bug-fix/SKILL.md +32 -0
  35. package/skills/clear-writing/SKILL.md +105 -0
  36. package/skills/clear-writing/references/elements-of-style/01-introductory.md +3 -0
  37. package/skills/clear-writing/references/elements-of-style/02-elementary-rules-of-usage.md +214 -0
  38. package/skills/clear-writing/references/elements-of-style/03-elementary-principles-of-composition.md +398 -0
  39. package/skills/clear-writing/references/elements-of-style/04-a-few-matters-of-form.md +89 -0
  40. package/skills/clear-writing/references/elements-of-style/05-words-and-expressions-commonly-misused.md +342 -0
  41. package/skills/clear-writing/references/signs-of-ai-writing.md +901 -0
  42. package/skills/code-review/SKILL.md +37 -0
  43. package/skills/code-review-performance/SKILL.md +53 -0
  44. package/skills/code-review-security/SKILL.md +35 -0
  45. package/skills/dependency-update/SKILL.md +30 -0
  46. package/skills/feature-work/SKILL.md +39 -0
  47. package/skills/incident-response/SKILL.md +32 -0
  48. package/skills/knowledge-capture/SKILL.md +463 -0
  49. package/skills/onboard-codebase/SKILL.md +34 -0
  50. package/skills/opus-plan/SKILL.md +400 -0
  51. package/skills/pan-approve/SKILL.md +136 -0
  52. package/skills/pan-code-review/SKILL.md +249 -0
  53. package/skills/pan-config/SKILL.md +164 -0
  54. package/skills/pan-convoy-synthesis/SKILL.md +249 -0
  55. package/skills/pan-diagnose/SKILL.md +360 -0
  56. package/skills/pan-docker/SKILL.md +279 -0
  57. package/skills/pan-docs/SKILL.md +113 -0
  58. package/skills/pan-down/SKILL.md +434 -0
  59. package/skills/pan-health/SKILL.md +240 -0
  60. package/skills/pan-help/SKILL.md +237 -0
  61. package/skills/pan-install/SKILL.md +339 -0
  62. package/skills/pan-issue/SKILL.md +596 -0
  63. package/skills/pan-kill/SKILL.md +172 -0
  64. package/skills/pan-logs/SKILL.md +255 -0
  65. package/skills/pan-network/SKILL.md +320 -0
  66. package/skills/pan-oversee/SKILL.md +290 -0
  67. package/skills/pan-plan/SKILL.md +521 -0
  68. package/skills/pan-projects/SKILL.md +239 -0
  69. package/skills/pan-quickstart/SKILL.md +440 -0
  70. package/skills/pan-reload/SKILL.md +44 -0
  71. package/skills/pan-rescue/SKILL.md +271 -0
  72. package/skills/pan-restart/SKILL.md +53 -0
  73. package/skills/pan-setup/SKILL.md +478 -0
  74. package/skills/pan-skill-creator/SKILL.md +168 -0
  75. package/skills/pan-skill-creator/references/output-patterns.md +141 -0
  76. package/skills/pan-skill-creator/references/workflows.md +90 -0
  77. package/skills/pan-skill-creator/scripts/init_skill.py +176 -0
  78. package/skills/pan-status/SKILL.md +493 -0
  79. package/skills/pan-subagent-creator/SKILL.md +295 -0
  80. package/skills/pan-subagent-creator/assets/validate-readonly-query.sh +35 -0
  81. package/skills/pan-subagent-creator/references/example-agents.md +308 -0
  82. package/skills/pan-subagent-creator/scripts/init_agent.py +126 -0
  83. package/skills/pan-sync/SKILL.md +272 -0
  84. package/skills/pan-tell/SKILL.md +157 -0
  85. package/skills/pan-test-config/SKILL.md +208 -0
  86. package/skills/pan-tracker/SKILL.md +288 -0
  87. package/skills/pan-up/SKILL.md +458 -0
  88. package/skills/pan-workspace-config/SKILL.md +303 -0
  89. package/skills/refactor/SKILL.md +30 -0
  90. package/skills/refactor-radar/SKILL.md +475 -0
  91. package/skills/release/SKILL.md +25 -0
  92. package/skills/send-feedback-to-agent/SKILL.md +98 -0
  93. package/skills/session-health/SKILL.md +76 -0
  94. package/skills/session-health/scripts/check_sessions.py +166 -0
  95. package/skills/skill-creator/SKILL.md +92 -0
  96. package/skills/skill-creator/scripts/init_skill.py +152 -0
  97. package/skills/skill-creator/scripts/package_skill.py +123 -0
  98. package/skills/stitch-design-md/README.md +34 -0
  99. package/skills/stitch-design-md/SKILL.md +172 -0
  100. package/skills/stitch-design-md/examples/DESIGN.md +154 -0
  101. package/skills/stitch-react-components/README.md +36 -0
  102. package/skills/stitch-react-components/SKILL.md +47 -0
  103. package/skills/stitch-react-components/examples/gold-standard-card.tsx +80 -0
  104. package/skills/stitch-react-components/package-lock.json +231 -0
  105. package/skills/stitch-react-components/package.json +16 -0
  106. package/skills/stitch-react-components/resources/architecture-checklist.md +15 -0
  107. package/skills/stitch-react-components/resources/component-template.tsx +37 -0
  108. package/skills/stitch-react-components/resources/stitch-api-reference.md +14 -0
  109. package/skills/stitch-react-components/resources/style-guide.json +27 -0
  110. package/skills/stitch-react-components/scripts/fetch-stitch.sh +30 -0
  111. package/skills/stitch-react-components/scripts/validate.js +68 -0
  112. package/skills/stitch-setup/SKILL.md +94 -0
  113. package/skills/web-design-guidelines/SKILL.md +39 -0
  114. package/skills/work-complete/SKILL.md +79 -0
@@ -0,0 +1,478 @@
1
+ ---
2
+ name: pan-setup
3
+ description: First-time configuration wizard for Panopticon
4
+ triggers:
5
+ - configure panopticon
6
+ - setup panopticon
7
+ - panopticon configuration
8
+ - first time setup
9
+ allowed-tools:
10
+ - Bash
11
+ - Read
12
+ - Edit
13
+ - AskUserQuestion
14
+ ---
15
+
16
+ # Panopticon Setup Guide
17
+
18
+ ## Overview
19
+
20
+ This skill guides you through the first-time configuration of Panopticon, including setting up issue trackers, adding projects, and configuring environment variables.
21
+
22
+ ## When to Use
23
+
24
+ - First-time setup after installation
25
+ - User wants to add a new issue tracker
26
+ - User needs to configure API keys
27
+ - User wants to add/remove projects
28
+ - Reconfiguring Panopticon after moving to a new machine
29
+
30
+ ## Configuration File
31
+
32
+ Panopticon's main configuration is stored in `~/.panopticon.env`.
33
+
34
+ ## Setup Workflow
35
+
36
+ ### Step 1: Initialize Configuration
37
+
38
+ If not already done:
39
+
40
+ ```bash
41
+ pan init
42
+ ```
43
+
44
+ This creates `~/.panopticon.env` with default configuration.
45
+
46
+ ### Step 2: Configure Issue Tracker
47
+
48
+ Panopticon supports Linear, GitHub, and GitLab issue trackers.
49
+
50
+ #### Linear Configuration
51
+
52
+ ```bash
53
+ # Edit ~/.panopticon.env and add:
54
+ LINEAR_API_KEY=lin_api_xxxxxxxxxxxxxxxxxxxxx
55
+ LINEAR_TEAM_ID=your-team-id
56
+ ```
57
+
58
+ **Getting your Linear API key:**
59
+ 1. Go to https://linear.app/settings/api
60
+ 2. Create a new personal API key
61
+ 3. Copy the key (starts with `lin_api_`)
62
+
63
+ **Finding your Linear Team ID:**
64
+ ```bash
65
+ # After setting LINEAR_API_KEY, run:
66
+ curl -X POST https://api.linear.app/graphql \
67
+ -H "Authorization: YOUR_LINEAR_API_KEY" \
68
+ -H "Content-Type: application/json" \
69
+ -d '{"query":"{ teams { nodes { id name } } }"}'
70
+ ```
71
+
72
+ Or use the Linear web app URL: `https://linear.app/<workspace>/<team>`
73
+
74
+ #### GitHub Configuration
75
+
76
+ ```bash
77
+ # Edit ~/.panopticon.env and add:
78
+ GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxx
79
+ GITHUB_OWNER=your-username-or-org
80
+ GITHUB_REPO=your-repo-name
81
+ ```
82
+
83
+ **Getting your GitHub token:**
84
+ 1. Go to https://github.com/settings/tokens
85
+ 2. Generate new token (classic)
86
+ 3. Select scopes: `repo`, `workflow`
87
+ 4. Copy the token (starts with `ghp_`)
88
+
89
+ #### GitLab Configuration
90
+
91
+ ```bash
92
+ # Edit ~/.panopticon.env and add:
93
+ GITLAB_TOKEN=glpat-xxxxxxxxxxxxxxxxxxxxx
94
+ GITLAB_PROJECT_ID=12345678
95
+ ```
96
+
97
+ **Getting your GitLab token:**
98
+ 1. Go to https://gitlab.com/-/profile/personal_access_tokens
99
+ 2. Create new token with `api` scope
100
+ 3. Copy the token (starts with `glpat-`)
101
+
102
+ **Finding your GitLab project ID:**
103
+ - Visit your project on GitLab
104
+ - Project ID is shown under the project name
105
+
106
+ ### Step 3: Add Projects
107
+
108
+ Add the projects you want Panopticon to manage:
109
+
110
+ ```bash
111
+ # Add a project
112
+ pan project add /home/user/projects/myapp
113
+
114
+ # Verify it was added
115
+ pan project list
116
+ ```
117
+
118
+ You can add multiple projects:
119
+ ```bash
120
+ pan project add /home/user/projects/frontend
121
+ pan project add /home/user/projects/backend
122
+ pan project add /home/user/projects/mobile
123
+ ```
124
+
125
+ ### Step 4: Configure Workspace Defaults
126
+
127
+ Edit `~/.panopticon.env` to set workspace defaults:
128
+
129
+ ```env
130
+ # Default workspace root (where workspaces are created)
131
+ WORKSPACE_ROOT=~/projects/panopticon/workspaces
132
+
133
+ # Default Docker template (spring-boot, react-vite, nextjs, etc.)
134
+ DEFAULT_DOCKER_TEMPLATE=spring-boot
135
+
136
+ # Enable Traefik for local domains (true/false)
137
+ TRAEFIK_ENABLED=true
138
+
139
+ # Traefik domain suffix
140
+ TRAEFIK_DOMAIN=localhost
141
+ ```
142
+
143
+ ### Step 5: Configure Dashboard
144
+
145
+ ```env
146
+ # Dashboard port (default: 3001)
147
+ DASHBOARD_PORT=3001
148
+
149
+ # API server port (default: 3002)
150
+ API_PORT=3002
151
+
152
+ # Enable auto-start dashboard on `pan up`
153
+ AUTO_START_DASHBOARD=true
154
+ ```
155
+
156
+ ### Step 6: Configure AI Tools
157
+
158
+ Panopticon syncs skills to various AI coding tools:
159
+
160
+ ```env
161
+ # Claude Code skills directory
162
+ CLAUDE_CODE_SKILLS=~/.claude/skills
163
+
164
+ # Cursor skills directory (if using Cursor)
165
+ CURSOR_SKILLS=~/.cursor/skills
166
+
167
+ # Enable auto-sync after skill changes
168
+ AUTO_SYNC_SKILLS=true
169
+ ```
170
+
171
+ ### Step 7: Optional - Configure Beads
172
+
173
+ If using beads for issue tracking:
174
+
175
+ ```env
176
+ # Beads database location
177
+ BEADS_DB=~/.beads/panopticon.db
178
+
179
+ # Enable beads integration
180
+ BEADS_ENABLED=true
181
+ ```
182
+
183
+ ### Step 8: Verify Configuration
184
+
185
+ ```bash
186
+ # Check that everything is configured correctly
187
+ pan doctor
188
+
189
+ # Verify projects are added
190
+ pan project list
191
+
192
+ # Test tracker connection (if Linear)
193
+ pan work list
194
+ ```
195
+
196
+ ## Sample Configuration File
197
+
198
+ Here's a complete example `~/.panopticon.env`:
199
+
200
+ ```env
201
+ # Issue Tracker
202
+ LINEAR_API_KEY=lin_api_xxxxxxxxxxxxxxxxxxxxx
203
+ LINEAR_TEAM_ID=abc123
204
+
205
+ # Projects (managed automatically via `pan project add`)
206
+ # Projects are stored in ~/.panopticon/projects.json
207
+
208
+ # Workspace Settings
209
+ WORKSPACE_ROOT=~/projects/panopticon/workspaces
210
+ DEFAULT_DOCKER_TEMPLATE=spring-boot
211
+ TRAEFIK_ENABLED=true
212
+ TRAEFIK_DOMAIN=localhost
213
+
214
+ # Dashboard
215
+ DASHBOARD_PORT=3001
216
+ API_PORT=3002
217
+ AUTO_START_DASHBOARD=true
218
+
219
+ # AI Tools
220
+ CLAUDE_CODE_SKILLS=~/.claude/skills
221
+ AUTO_SYNC_SKILLS=true
222
+
223
+ # Beads
224
+ BEADS_DB=~/.beads/panopticon.db
225
+ BEADS_ENABLED=true
226
+
227
+ # Agent Settings
228
+ DEFAULT_MODEL=sonnet
229
+ MAX_PARALLEL_AGENTS=3
230
+
231
+ # Logging
232
+ LOG_LEVEL=info
233
+ LOG_FILE=~/.panopticon/panopticon.log
234
+ ```
235
+
236
+ ## Interactive Setup
237
+
238
+ To guide the user through configuration interactively:
239
+
240
+ 1. **Ask about issue tracker:**
241
+ - Which tracker do they use? (Linear, GitHub, GitLab)
242
+ - Help them get API key/token
243
+ - Help them find team/project ID
244
+
245
+ 2. **Ask about projects:**
246
+ - Which projects should Panopticon manage?
247
+ - Get absolute paths to project directories
248
+
249
+ 3. **Ask about Docker:**
250
+ - What type of projects? (Spring Boot, React, Next.js, etc.)
251
+ - Set appropriate default template
252
+
253
+ 4. **Ask about preferences:**
254
+ - Should dashboard auto-start?
255
+ - Enable Traefik for local domains?
256
+ - Auto-sync skills to AI tools?
257
+
258
+ ## Troubleshooting
259
+
260
+ ### Can't connect to Linear
261
+
262
+ **Problem:** `pan work list` fails with authentication error
263
+
264
+ **Solutions:**
265
+ ```bash
266
+ # Verify API key is correct
267
+ echo $LINEAR_API_KEY # Should start with lin_api_
268
+
269
+ # Test API key directly
270
+ curl -X POST https://api.linear.app/graphql \
271
+ -H "Authorization: $LINEAR_API_KEY" \
272
+ -H "Content-Type: application/json" \
273
+ -d '{"query":"{ viewer { name } }"}'
274
+
275
+ # Should return your name, not an error
276
+ ```
277
+
278
+ ### Projects not showing up
279
+
280
+ **Problem:** `pan project list` shows no projects
281
+
282
+ **Solutions:**
283
+ ```bash
284
+ # Add project again
285
+ pan project add /path/to/project
286
+
287
+ # Check projects.json directly
288
+ cat ~/.panopticon/projects.json
289
+
290
+ # Verify path is absolute (not relative)
291
+ pan project add "$(pwd)" # Use $PWD for current directory
292
+ ```
293
+
294
+ ### Dashboard won't start
295
+
296
+ **Problem:** `pan up` fails or dashboard unreachable
297
+
298
+ **Solutions:**
299
+ ```bash
300
+ # Check ports aren't in use
301
+ lsof -i :3001
302
+ lsof -i :3002
303
+
304
+ # Check configuration
305
+ cat ~/.panopticon.env | grep PORT
306
+
307
+ # Try custom ports
308
+ DASHBOARD_PORT=4001 API_PORT=4002 pan up
309
+ ```
310
+
311
+ ### Skills not syncing
312
+
313
+ **Problem:** Skills don't appear in Claude Code
314
+
315
+ **Solutions:**
316
+ ```bash
317
+ # Run sync manually
318
+ pan sync
319
+
320
+ # Check target directory exists
321
+ ls ~/.claude/skills/
322
+
323
+ # Create if missing
324
+ mkdir -p ~/.claude/skills
325
+
326
+ # Verify permissions
327
+ chmod -R u+w ~/.claude/skills
328
+
329
+ # Sync again
330
+ pan sync
331
+ ```
332
+
333
+ ### Environment variables not loading
334
+
335
+ **Problem:** Configuration changes don't take effect
336
+
337
+ **Solutions:**
338
+ ```bash
339
+ # Verify file location
340
+ ls -la ~/.panopticon.env
341
+
342
+ # Check for syntax errors
343
+ cat ~/.panopticon.env
344
+
345
+ # Ensure no spaces around = in env vars
346
+ # WRONG: KEY = value
347
+ # RIGHT: KEY=value
348
+
349
+ # Restart services
350
+ pan down
351
+ pan up
352
+ ```
353
+
354
+ ## What Your Project Repository Needs
355
+
356
+ After adding a project, you may need to create templates in your project for Docker-based workspaces to work. **This is optional if you only need git worktrees without Docker.**
357
+
358
+ ### For Docker-Based Workspaces
359
+
360
+ Your project needs to provide templates that Panopticon copies/processes when creating workspaces:
361
+
362
+ ```
363
+ your-project/
364
+ ├── infra/
365
+ │ └── .devcontainer-template/
366
+ │ ├── docker-compose.devcontainer.yml.template
367
+ │ ├── compose.infra.yml.template # Optional: for postgres, redis, etc.
368
+ │ ├── Dockerfile
369
+ │ └── devcontainer.json.template # Optional: VS Code integration
370
+ └── ...
371
+ ```
372
+
373
+ ### Docker Compose Template Example
374
+
375
+ ```yaml
376
+ # docker-compose.devcontainer.yml.template
377
+ services:
378
+ app:
379
+ build: .
380
+ labels:
381
+ - "traefik.http.routers.{{FEATURE_FOLDER}}.rule=Host(`{{FEATURE_FOLDER}}.{{DOMAIN}}`)"
382
+ volumes:
383
+ - ../..:/workspace:cached
384
+ ```
385
+
386
+ **Available placeholders:**
387
+ - `{{FEATURE_NAME}}` - Issue ID (e.g., `min-123`)
388
+ - `{{FEATURE_FOLDER}}` - Workspace folder (e.g., `feature-min-123`)
389
+ - `{{BRANCH_NAME}}` - Git branch (e.g., `feature/min-123`)
390
+ - `{{COMPOSE_PROJECT}}` - Docker project name
391
+ - `{{DOMAIN}}` - Configured domain (e.g., `myapp.test`)
392
+
393
+ ### For Database Seeding
394
+
395
+ If your project uses a database:
396
+
397
+ ```
398
+ your-project/
399
+ ├── infra/
400
+ │ └── seed/
401
+ │ └── seed.sql # Pre-populated database dump
402
+ └── ...
403
+ ```
404
+
405
+ Mount in your compose template:
406
+ ```yaml
407
+ services:
408
+ postgres:
409
+ image: postgres:16
410
+ volumes:
411
+ - /path/to/project/infra/seed:/docker-entrypoint-initdb.d:ro
412
+ ```
413
+
414
+ ### Minimal Setup (Git Worktrees Only)
415
+
416
+ For simple projects that don't need Docker:
417
+
418
+ ```yaml
419
+ # In ~/.panopticon/projects.yaml
420
+ projects:
421
+ simple-app:
422
+ name: "Simple App"
423
+ path: /home/user/projects/simple-app
424
+ linear_team: APP
425
+ # No workspace config = uses plain git worktrees
426
+ ```
427
+
428
+ ### Full Configuration
429
+
430
+ See README section "What Your Project Needs to Provide" for complete documentation:
431
+ https://github.com/eltmon/panopticon#what-your-project-needs-to-provide
432
+
433
+ ---
434
+
435
+ ## Post-Setup
436
+
437
+ After configuration:
438
+
439
+ 1. **Start services**: `pan up`
440
+ 2. **Verify health**: `pan doctor`
441
+ 3. **Test issue tracker**: `pan work list`
442
+ 4. **Sync skills**: `pan sync`
443
+ 5. **Create first workspace**: Use `/pan-issue` skill
444
+
445
+ ## Configuration Checklist
446
+
447
+ - [ ] Run `pan init` to create config file
448
+ - [ ] Add issue tracker API key (Linear/GitHub/GitLab)
449
+ - [ ] Add at least one project with `pan project add`
450
+ - [ ] Set workspace defaults (root directory, Docker template)
451
+ - [ ] Configure dashboard ports if needed
452
+ - [ ] Enable AI tools sync
453
+ - [ ] Run `pan doctor` to verify
454
+ - [ ] Run `pan work list` to test tracker connection
455
+ - [ ] Run `pan sync` to distribute skills
456
+ - [ ] Start dashboard with `pan up`
457
+
458
+ ## Next Steps
459
+
460
+ - Use `/pan-quickstart` for combined install + setup workflow
461
+ - Use `/pan-docker` to configure Docker templates
462
+ - Use `/pan-tracker` for advanced tracker configuration
463
+ - Use `/pan-help` to explore available commands
464
+
465
+ ## Related Skills
466
+
467
+ - `/pan-install` - Installation prerequisites
468
+ - `/pan-quickstart` - Quick start guide
469
+ - `/pan-tracker` - Tracker configuration (advanced)
470
+ - `/pan-projects` - Project management
471
+ - `/pan-config` - View/edit configuration
472
+
473
+ ## More Information
474
+
475
+ - Configuration file: `~/.panopticon.env`
476
+ - Projects list: `~/.panopticon/projects.json`
477
+ - Run `pan doctor` to check configuration
478
+ - Visit dashboard at http://localhost:3001
@@ -0,0 +1,168 @@
1
+ ---
2
+ name: pan-skill-creator
3
+ description: Create effective Claude Code skills with specialized knowledge, workflows, and tools. Use when users want to create a new skill, update an existing skill, learn skill best practices, or extend Claude's capabilities. Triggers on "create a skill", "make a new skill", "skill development", "build a skill", or "extend capabilities".
4
+ ---
5
+
6
+ # Skill Creator
7
+
8
+ Create skills that transform Claude from general-purpose into a specialized agent with procedural knowledge.
9
+
10
+ ## Core Principles
11
+
12
+ ### 1. Concise is Key
13
+ The context window is shared. Claude is already very smart - only add what Claude doesn't already know. Challenge each piece: "Does this justify its token cost?"
14
+
15
+ ### 2. Degrees of Freedom
16
+ Match specificity to task fragility:
17
+
18
+ | Freedom Level | When to Use | Format |
19
+ |---------------|-------------|--------|
20
+ | **High** | Multiple valid approaches, context-dependent | Text instructions |
21
+ | **Medium** | Preferred pattern exists, some variation OK | Pseudocode, parameterized scripts |
22
+ | **Low** | Fragile operations, consistency critical | Specific scripts, few parameters |
23
+
24
+ ### 3. Progressive Disclosure
25
+ Three-level loading system:
26
+ 1. **Metadata** (~100 words) - Always in context
27
+ 2. **SKILL.md body** (<5k words) - When skill triggers
28
+ 3. **Bundled resources** - As needed (unlimited)
29
+
30
+ ## Skill Anatomy
31
+
32
+ ```
33
+ skill-name/
34
+ ├── SKILL.md (required)
35
+ │ ├── YAML frontmatter (name, description - REQUIRED)
36
+ │ └── Markdown instructions
37
+ └── Bundled Resources (optional)
38
+ ├── scripts/ - Executable code (deterministic, reusable)
39
+ ├── references/ - Documentation loaded into context as needed
40
+ └── assets/ - Files used in output (templates, images)
41
+ ```
42
+
43
+ ### Frontmatter (Critical)
44
+
45
+ ```yaml
46
+ ---
47
+ name: my-skill
48
+ description: What it does AND when to use it. This is the ONLY thing Claude sees to decide if the skill triggers. Be comprehensive but under 200 chars.
49
+ ---
50
+ ```
51
+
52
+ **Strong descriptions include:**
53
+ - Specific verbs (extract, create, merge, validate)
54
+ - Concrete use cases
55
+ - Explicit boundaries ("Not for X")
56
+ - Trigger phrases users might say
57
+
58
+ ### Bundled Resources
59
+
60
+ | Directory | Purpose | When to Include |
61
+ |-----------|---------|-----------------|
62
+ | `scripts/` | Python/Bash automation | Same code rewritten repeatedly OR deterministic reliability needed |
63
+ | `references/` | Docs, schemas, APIs | Large documentation Claude should reference while working |
64
+ | `assets/` | Templates, images, fonts | Files used in output but not loaded into context |
65
+
66
+ Use `{baseDir}` for portable paths: `{baseDir}/scripts/helper.py`
67
+
68
+ ### What NOT to Include
69
+ - README.md, CHANGELOG.md, INSTALLATION_GUIDE.md
70
+ - Setup/testing procedures for humans
71
+ - User-facing documentation
72
+ - Anything not needed by the AI agent
73
+
74
+ ## Creation Process
75
+
76
+ ### Step 1: Understand with Examples
77
+ Ask:
78
+ - "What functionality should this skill support?"
79
+ - "Can you give examples of how it would be used?"
80
+ - "What would a user say that should trigger this?"
81
+
82
+ ### Step 2: Plan Reusable Contents
83
+ For each example, identify:
84
+ - Scripts for repetitive code
85
+ - References for documentation/schemas
86
+ - Assets for templates/boilerplate
87
+
88
+ ### Step 3: Initialize Structure
89
+ ```bash
90
+ mkdir -p skill-name/{scripts,references,assets}
91
+ touch skill-name/SKILL.md
92
+ ```
93
+
94
+ ### Step 4: Implement
95
+
96
+ **Writing guidelines:**
97
+ - Always use imperative form ("Do X", not "You should do X")
98
+ - Keep SKILL.md under 500 lines
99
+ - Test scripts by actually running them
100
+ - Delete unused example directories
101
+
102
+ **Organize by domain for multi-domain skills:**
103
+ ```
104
+ bigquery-skill/
105
+ ├── SKILL.md (overview and navigation)
106
+ └── references/
107
+ ├── finance.md
108
+ ├── sales.md
109
+ └── product.md
110
+ ```
111
+
112
+ ### Step 5: Test
113
+
114
+ | Test Type | What to Verify |
115
+ |-----------|----------------|
116
+ | Normal operations | Typical requests handled correctly |
117
+ | Edge cases | Graceful handling of incomplete/unusual inputs |
118
+ | Out-of-scope | Skill stays dormant on related but distinct tasks |
119
+ | Triggering | Activation on explicit and natural requests |
120
+
121
+ ### Step 6: Iterate
122
+ Use skill on real tasks → Notice struggles → Update → Test again
123
+
124
+ ## Common Patterns
125
+
126
+ ### Pattern 1: High-level guide with conditional references
127
+ ```markdown
128
+ # PDF Processing
129
+
130
+ ## Quick start
131
+ [Basic example]
132
+
133
+ ## Advanced features
134
+ - **Form filling**: See references/FORMS.md for complete guide
135
+ - **API reference**: See references/REFERENCE.md for all methods
136
+ ```
137
+
138
+ ### Pattern 2: Script automation
139
+ ```markdown
140
+ ## Rotate PDF
141
+ Run the rotation script:
142
+ \`\`\`bash
143
+ python {baseDir}/scripts/rotate_pdf.py --input "$FILE" --degrees 90
144
+ \`\`\`
145
+ ```
146
+
147
+ ### Pattern 3: Wizard workflow
148
+ Break complex tasks into discrete steps with user confirmation gates between phases.
149
+
150
+ ## Tool Permissions (Advanced)
151
+
152
+ Scope tool access for security:
153
+ ```yaml
154
+ allowed-tools: "Bash(git status:*),Bash(git diff:*),Read,Grep"
155
+ ```
156
+
157
+ ## Key Takeaways
158
+
159
+ 1. **Description is everything** - Primary triggering mechanism
160
+ 2. **Be concise** - Every token costs context space
161
+ 3. **Use progressive disclosure** - Load detail only when needed
162
+ 4. **Write for another Claude** - Procedural knowledge that wouldn't be obvious
163
+ 5. **Test triggering** - Verify activation on intended requests
164
+ 6. **Iterate** - Refine based on real usage
165
+
166
+ ## Reference Files
167
+ - See `references/workflows.md` for multi-step process patterns
168
+ - See `references/output-patterns.md` for output format patterns