How to use it
- Hit Copy SKILL.md — or use the Claude Code line below to get every file.
- Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
ChatGPT: make a Project and paste it into Instructions.
Neither? Paste it at the top of a new chat — it works for that chat. - Describe your job in plain words. The AI follows the skill from there.
npx degit gooseworks-ai/goose-skills/skills/research-tools/capabilities/skill-creator#main ~/.claude/skills/skill-creatorFor one project only, change the path to .claude/skills/skill-creator. This skill also uses CHANGELOG.md, INSTALLATION_GUIDE.md, finance.md, sales.md, product.md — copying SKILL.md alone won't be enough. See the folder on GitHub.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Show the full text123 lines
Skill Creator
Setup
Read your credentials from ~/.gooseworks/credentials.json:
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"
Create modular, self-contained skill packages that extend agent capabilities.
Core Principle: Concise is Key
The context window is shared. Only add what the agent doesn't already know. Challenge every paragraph: "Does this justify its token cost?" Prefer concise examples over verbose explanations.
Skill Structure
skill-name/
├── SKILL.md # Required: frontmatter + instructions
├── scripts/ # Optional: executable code (deterministic tasks)
├── references/ # Optional: docs loaded on-demand
└── assets/ # Optional: files used in output (templates, images)
SKILL.md Format
---
name: skill-name
description: What it does + when to use it. This is the trigger mechanism.
---
# Skill Name
[Instructions for using the skill]
Frontmatter Rules
name: lowercase, hyphens, under 64 chars (e.g.,pdf-editor,gh-review-pr)description: Include BOTH what it does AND when to trigger. The body isn't loaded until after triggering, so all "when to use" info must be here.
Degrees of Freedom
Match specificity to task fragility:
| Freedom | Use When | Format |
|---|---|---|
| High | Multiple valid approaches | Text instructions |
| Medium | Preferred pattern exists | Pseudocode, parameterized scripts |
| Low | Fragile/error-prone ops | Specific scripts, few params |
Creation Process
- Understand - Gather concrete usage examples
- Plan - Identify reusable scripts, references, assets
- Initialize - Run
orth skills init <name> - Implement - Write SKILL.md, add resources
- Submit - Run
orth skills submit <path> - Iterate - Test on real tasks, refine
Quick Start
# Create new skill
orth skills init my-skill
# Or with path
orth skills init my-skill --path ~/.openclaw/skills
# Submit to Orthogonal
orth skills submit ./my-skill
# Update existing skill
orth skills update <slug> ./my-skill
What NOT to Include
- README.md, CHANGELOG.md, INSTALLATION_GUIDE.md
- Setup/testing procedures
- User-facing documentation
- Anything not needed for the agent to do the job
Progressive Disclosure
Keep SKILL.md under 500 lines. Split into reference files when approaching this limit.
Pattern: High-level guide with references
## Quick start
[Core workflow here]
## Advanced
- **Complex feature**: See references/feature.md
- **API details**: See references/api.md
Pattern: Domain organization
bigquery-skill/
├── SKILL.md (overview + navigation)
└── references/
├── finance.md
├── sales.md
└── product.md
Agent loads only the relevant reference file.
| 1 | |
| 2 | name skill-creator |
| 3 | description Create, structure, and package agent skills. Use when designing new skills, updating existing skills, or helping users build skills with scripts, references, and assets. Triggers on requests to create skills, write SKILL.md files, or structure skill directories. |
| 4 | source orthogonal |
| 5 | |
| 6 | |
| 7 | |
| 8 | # Skill Creator |
| 9 | |
| 10 | ## Setup |
| 11 | |
| 12 | Read your credentials from ~/.gooseworks/credentials.json: |
| 13 | |
| 14 | export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])") |
| 15 | export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))") |
| 16 | |
| 17 | |
| 18 | If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login` |
| 19 | |
| 20 | All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"` |
| 21 | |
| 22 | |
| 23 | Create modular, self-contained skill packages that extend agent capabilities. |
| 24 | |
| 25 | ## Core Principle: Concise is Key |
| 26 | |
| 27 | The context window is shared. Only add what the agent doesn't already know. Challenge every paragraph: "Does this justify its token cost?" Prefer concise examples over verbose explanations. |
| 28 | |
| 29 | ## Skill Structure |
| 30 | |
| 31 | |
| 32 | skill-name/ |
| 33 | ├── SKILL.md # Required: frontmatter + instructions |
| 34 | ├── scripts/ # Optional: executable code (deterministic tasks) |
| 35 | ├── references/ # Optional: docs loaded on-demand |
| 36 | └── assets/ # Optional: files used in output (templates, images) |
| 37 | |
| 38 | |
| 39 | ## SKILL.md Format |
| 40 | |
| 41 | |
| 42 | |
| 43 | name: skill-name |
| 44 | description: What it does + when to use it. This is the trigger mechanism. |
| 45 | |
| 46 | |
| 47 | # Skill Name |
| 48 | |
| 49 | [Instructions for using the skill] |
| 50 | |
| 51 | |
| 52 | ### Frontmatter Rules |
| 53 | `name`: lowercase, hyphens, under 64 chars (e.g., `pdf-editor`, `gh-review-pr`) |
| 54 | `description`: Include BOTH what it does AND when to trigger. The body isn't loaded until after triggering, so all "when to use" info must be here. |
| 55 | |
| 56 | ## Degrees of Freedom |
| 57 | |
| 58 | Match specificity to task fragility: |
| 59 | |
| 60 | | Freedom | Use When | Format | |
| 61 | |---------|----------|--------| |
| 62 | | High | Multiple valid approaches | Text instructions | |
| 63 | | Medium | Preferred pattern exists | Pseudocode, parameterized scripts | |
| 64 | | Low | Fragile/error-prone ops | Specific scripts, few params | |
| 65 | |
| 66 | ## Creation Process |
| 67 | |
| 68 | **Understand** - Gather concrete usage examples |
| 69 | **Plan** - Identify reusable scripts, references, assets |
| 70 | **Initialize** - Run `orth skills init <name>` |
| 71 | **Implement** - Write SKILL.md, add resources |
| 72 | **Submit** - Run `orth skills submit <path>` |
| 73 | **Iterate** - Test on real tasks, refine |
| 74 | |
| 75 | ### Quick Start |
| 76 | |
| 77 | |
| 78 | # Create new skill |
| 79 | orth skills init my-skill |
| 80 | |
| 81 | # Or with path |
| 82 | orth skills init my-skill --path ~/.openclaw/skills |
| 83 | |
| 84 | # Submit to Orthogonal |
| 85 | orth skills submit ./my-skill |
| 86 | |
| 87 | # Update existing skill |
| 88 | orth skills update <slug> ./my-skill |
| 89 | |
| 90 | |
| 91 | ## What NOT to Include |
| 92 | |
| 93 | README.md, CHANGELOG.md, INSTALLATION_GUIDE.md |
| 94 | Setup/testing procedures |
| 95 | User-facing documentation |
| 96 | Anything not needed for the agent to do the job |
| 97 | |
| 98 | ## Progressive Disclosure |
| 99 | |
| 100 | Keep SKILL.md under 500 lines. Split into reference files when approaching this limit. |
| 101 | |
| 102 | **Pattern: High-level guide with references** |
| 103 | |
| 104 | ## Quick start |
| 105 | [Core workflow here] |
| 106 | |
| 107 | ## Advanced |
| 108 | - **Complex feature**: See references/feature.md |
| 109 | - **API details**: See references/api.md |
| 110 | |
| 111 | |
| 112 | **Pattern: Domain organization** |
| 113 | |
| 114 | bigquery-skill/ |
| 115 | ├── SKILL.md (overview + navigation) |
| 116 | └── references/ |
| 117 | ├── finance.md |
| 118 | ├── sales.md |
| 119 | └── product.md |
| 120 | |
| 121 | |
| 122 | Agent loads only the relevant reference file. |
| 123 |