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.
npx gooseworks install --all # then, in Claude Code, Cursor, or Codex: /gooseworks use the skill-creator skill
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.
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-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)---
name: skill-name
description: What it does + when to use it. This is the trigger mechanism.
---
# Skill Name
[Instructions for using the skill]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.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 |
orth skills init <name>orth skills submit <path># 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-skillKeep 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.mdPattern: Domain organization
bigquery-skill/
├── SKILL.md (overview + navigation)
└── references/
├── finance.md
├── sales.md
└── product.mdAgent loads only the relevant reference file.
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.Full video production sequence with script review, actual ingredient choices, controlled generation, editing, evidence-based quality review, polish, captions and delivery. A host binding supplies project storage, authentic approvals, provider access and billing.
Build a vox-pop street interview video ad. An interviewer with a handheld mic asks passers-by one question about the brand's product, they give blunt wrong guesses, one gives the real answer, and the cut lands on a branded end card. Generates the takes through the GooseWorks fal proxy (Seedance 2.0 with native voice), then grades, re-cuts, captions and gates them locally. Use for the street-interview format.
Write the words of a short-form video ad (voiceover, dialogue, chat bubbles, on-screen lines) the way performance creative teams do instead of from a blank page. Builds the script from the buyers' own words, the beat sheet of an ad that already works and three deliberately different angles, filters them with a rule check and a second non-Claude model, and takes the strongest into the review with the other two as one-line swaps. Use it in every video ad run before any paid step, and whenever the user asks to write, rewrite or improve a video ad script or says a script sounds generic or AI-written.
An iMessage video ad shows a text conversation on an iPhone screen. Here is how a single skill teaches Claude to build one, with sound and an end card.