subagent-driven-development
OBobra/superpowers298k2,631 new stars in the last 7 days
Create new ShellLM skills. Use when the user asks to write, author, build, or scaffold a new skill, or when an agent needs to extend its own capabilities by creating a new SKILL.md file.
The user asks to create, write, author, build, or scaffold a new skill. Or you (the agent) need to extend your own capabilities by writing a new SKILL.md.
A skill is a directory containing a SKILL.md file. It tells an agent when to use a capability and how to invoke it. Skills are procedural documentation, not reference docs. The agent reads a skill on demand via skills show <name>.
skills/<skill-name>/
├── SKILL.md # required: the skill definition
├── README.md # optional: human-facing notes
└── <other files> # optional: scripts, templates, data
---
name: my-skill
description: One or two sentences. Be specific about WHEN to use the skill.
metadata:
shelllm:
requires:
env: ["API_KEY"] # all must be set
bins: ["curl", "jq"] # all must exist on PATH
anyBins: ["gh", "hub"] # at least one must exist
os: ["darwin", "linux"] # current OS must be in list
---
Required: name (kebab-case, matches directory name), description.
Description matters. It's matched against user intent. Bad: "manages files." Good: "Read, write, search, and append notes in an Obsidian vault. Use when the user mentions Obsidian or asks to interact with markdown notes."
Requirements are optional. Only declare metadata.shelllm if the skill needs env vars, binaries, or a specific OS. Skills with unmet requirements are filtered from skills list.
Write for an agent reader, not a human:
## When to use
[Concrete intent triggers]
## Setup
[One-time prerequisites: env vars, services to enable]
## Common operations
### Operation 1
\`\`\`bash
exact command here
\`\`\`
One sentence on when/why.
### Operation 2
\`\`\`bash
exact command here
\`\`\`
## Tips
[Edge cases, gotchas, composition with other skills]
Where possible, write skills that use curl against a REST API rather than wrapping a CLI tool. ShellLM minimizes installed dependencies. The SKILL.md is the abstraction layer.
Worth a CLI dependency when:
If a skill needs an API key, declare it in requires.env. Do NOT prompt the user for the key or store it in a file. The user manages secrets via their shell environment or a secret manager.
A good skill teaches the agent enough to use a tool without external docs. It should also compose -- if your skill produces JSON, the agent can pipe it to jq, etc.
---
name: cowsay
description: Generate ASCII cow art with messages. Use when the user asks for cowsay or fun ASCII art.
metadata:
shelllm:
requires:
bins: ["cowsay"]
---
# cowsay
## When to use
User asks for cowsay, ASCII art with a message, or fun text formatting.
## Common operations
### Say something
\`\`\`bash
cowsay "Hello, world!"
\`\`\`
### Use a different character
\`\`\`bash
cowsay -f tux "Linux rules"
\`\`\`
### List available figures
\`\`\`bash
cowsay -l
\`\`\`
### Pipe input
\`\`\`bash
echo "piped message" | cowsay
\`\`\`
After writing, validate:
skills check <name> -- requirements parse correctlyskills show <name> -- content renders correctly<name> say "use the X skill to do Y" (your identity's persona command) and watch what the agent doesrequires.env -- skill silently fails when API key isn't setAfter writing a new skill, place it in the skills directory and run skills check <name> to verify it parses and that requirements resolve correctly. If the skill needs to be available to other agents and users, propose adding it to the project's bundled skills or publishing it to a skills registry.
OBobra/superpowers298k2,631 new stars in the last 7 days
MAmattpocock/skills288k10,178 new stars in the last 7 days
MAmattpocock/skills288k10,178 new stars in the last 7 days
MAmattpocock/skills288k10,178 new stars in the last 7 days
AFaffaan-m/ECC278k4,046 new stars in the last 7 days
AFaffaan-m/ECC278k4,046 new stars in the last 7 days