

0 / 2 embers
0 / 3000 xp
click for more info
Complete a lesson to start your streak
click for more info
Still calibrating
click for more info
Not enough gems
Cost: 6 gems
1: Skills
incomplete
2: Writing Skills
incomplete
3: Skills Are Tools
incomplete
4: Skill Permissions
incomplete
5: Composable Skills
incomplete
6: Skill, Tool, or Agent?
incomplete
7: Custom Commands
incomplete
8: Dynamic Prompts
incomplete
Back
ctrl+,
Next
ctrl+.
This lesson's interactive features are locked, please to keep using them
The best skills are small and narrow enough that they're useful for many different types of tasks.
Try to follow the time-tested Unix philosophy of "do one thing and do it well." If you have a massive skill, consider breaking it up into a few more reusable ones.
Bad:
cracked-engineer-god-modeBetter:
run-ciconnect-to-databasepr-reviewTo give a more concrete example, I could create a gitstuff skill that goes like this:
1. Review the current working directory for any changes, and call attention to any issues.
2. If there are no issues, stage the changes.
3. Commit the changes with a conventional commit message, no more than one sentence long.
4. Rebase onto `main`, resolve any conflicts, and squash all my commits into one.
5. Push to a new feature branch in the format `myname_three_word_description`.
6. Create a draft pull request with the same name as the branch, and a body that includes a bullet point list of the changes, and any relevant issue links.
7. Sign off the PR body with `pr drafted by ai slop cannon`.
8. Request a review from Allan (he has nothing better to do).
Or I could break this up into a few smaller skills:
review – Reviews the current working directory for any changes, and calls attention to any issuescommit – Stages and commits changes with a conventional commit message, no more than one sentence longsync – Rebases the current branch onto main, resolves conflicts, and squashespublish – Pushes to the feature branch and creates a PR for AllanNow if I (or my agent) want to use one part of the workflow, we can. And the best part is, I can still make the full skill as well. But I don't rewrite the same instructions, just have a high-level skill that references the smaller skills in order!
Tell OpenCode to run and submit the CLI tests from the project root.