
Add Skill
- 32 installs
- 61 repo stars
- Updated August 4, 2026
- joelhooks/joelclaw
Creates new joelclaw skills the canonical way - repo-tracked SKILL.md with frontmatter, references, and symlinks.
About
Walks the process of scaffolding a skill directory, writing SKILL.md with frontmatter, and adding optional references and scripts. A developer uses it to formalize a process into a reusable skill.
- Canonical, git-tracked, symlinked skill creation process
- SKILL.md frontmatter and directory-structure template
Add Skill by the numbers
- 32 all-time installs (skills.sh)
- Ranked #402 of 782 Skill Development skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/joelhooks/joelclaw --skill add-skillAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 32 |
|---|---|
| repo stars | ★ 61 |
| Last updated | August 4, 2026 |
| Repository | joelhooks/joelclaw ↗ |
What it does
Creates new joelclaw skills the canonical way - repo-tracked SKILL.md with frontmatter, references, and symlinks.
Files
Add Skill
Create a new joelclaw skill. Skills are modular instruction sets that extend agent capabilities with specialized knowledge, workflows, or tool integrations.
Process
1. Create the skill directory
mkdir -p ~/Code/joelhooks/joelclaw/skills/<skill-name>2. Write SKILL.md
Every skill needs a SKILL.md with frontmatter and instructions:
---
name: <skill-name>
displayName: <Human Readable Name>
description: <One-line description. This shows in the skill list and is used for trigger matching.>
version: 0.1.0
author: joel
tags:
- <relevant>
- <tags>
---
# <Skill Title>
<Instructions for the agent. Write for another Claude instance — include non-obvious procedural knowledge, domain-specific details, gotchas, and reusable patterns.>
## When to Use
<Trigger phrases and situations that should activate this skill.>
## Operations
<Step-by-step procedures, commands, API calls, etc.>
## Rules
<Constraints, safety boundaries, things to never do.>3. Add references (optional)
For complex skills, add supporting files:
skills/<skill-name>/
├── SKILL.md # Required
├── references/ # Optional — detailed docs, examples
│ └── operations.md
├── scripts/ # Optional — helper scripts
└── assets/ # Optional — logos, templates
├── small-logo.svg # For Codex desktop
└── large-logo.png # For Codex desktop4. Symlink to all consumer directories
ln -sf ~/Code/joelhooks/joelclaw/skills/<skill-name> ~/.pi/agent/skills/<skill-name>
ln -sf ~/Code/joelhooks/joelclaw/skills/<skill-name> ~/.agents/skills/<skill-name>
ln -sf ~/Code/joelhooks/joelclaw/skills/<skill-name> ~/.claude/skills/<skill-name>5. Slog it
slog write --action configure --tool skills --detail "created <skill-name> skill: <what it does>" --reason "<why>"6. Commit
The skills/ directory is sacred and fully git-tracked. Every skill must be committed.
cd ~/Code/joelhooks/joelclaw
git add skills/<skill-name>
git commit -m "feat(skills): add <skill-name> — <short description>"Key Rules
- Repo is canonical:
~/Code/joelhooks/joelclaw/skills/is the source of truth. Home dirs symlink to it. - Directory name must match `name` field in SKILL.md frontmatter. Mismatch causes
[Skill conflicts]warning on pi load. - Never copy skills — always symlink.
cat > symlinkwrites through and destroys the target. - External/third-party skill packs stay external (global install), not copied into repo unless intentionally curated.
- Pi extensions load at session startup only — new skills are available immediately (loaded on demand), but if you modify an existing skill mid-session, run
/reload. - One skill per concern — don't overload a skill with unrelated capabilities. Split into focused skills.
- Write for another agent — the consumer is another Claude instance, not Joel. Include what's non-obvious.
- Include trigger phrases in the description — this is how pi matches user requests to skills.
Installing External Skill Packs
External/third-party skills are installed globally, not copied into joelclaw/skills/, unless Joel explicitly wants to curate them into the repo.
For unattended installs, pass -y to both npx and the skills CLI:
npx -y skills add <owner>/<repo> --skill <skill-name> -g -yGotcha: -g installs globally but still opens the agent-selection prompt. The trailing -y accepts the default global agent set. Without it, headless sessions hang at the picker like a stunned mullet.
Verify the install:
ls -l ~/.agents/skills/<skill-name> ~/.pi/agent/skills/<skill-name>Updating Existing Skills
1. Edit the SKILL.md (or references) in the repo copy 2. Symlinks mean all consumers see the change immediately 3. Slog the change 4. Commit
Codex Desktop Metadata (optional)
For skills that should appear in Codex desktop:
skills/<skill-name>/
├── agents/
│ └── openai.yaml # Codex agent config
└── assets/
├── small-logo.svg
└── large-logo.png