


Hand-rolled Skills, and other AI bits I build from my own day-to-day experience.
Token estimates


Token estimates use tiktoken's o200k_base encoding. SKILL.md is the entry prompt; the total adds every
other Markdown file an agent can go on to read. Scripts, assets and config ship with a skill but are run rather
than read, so they are left out.
| Skill | SKILL.md | Total |
|---|
afk | 228 | 228 |
cicd-fy | 1,517 | 15,838 |
coding | 1,048 | 1,048 |
fast-feedback-mode | 394 | 394 |
git | 2,414 | 14,814 |
grill-me | 61 | 61 |
grilling | 578 | 578 |
kubernetes-debug | 240 | 1,513 |
mise-fy | 2,524 | 36,295 |
review | 325 | 325 |
skill-fy | 2,901 | 6,389 |
variants/afk-careful | 89 | 89 |
variants/afk-soon | 166 | 166 |
variants/afk-yolo | 114 | 114 |
variants/watch-pr | 660 | 660 |
variants/watch-pr-ci | 261 | 261 |
variants/watch-pr-comments | 256 | 256 |
vendor/domain-modeling | 781 | 1,939 |
vendor/gh-stack | 2,282 | 7,946 |
vendor/handoff | 198 | 198 |
vendor/humanizer | 7,056 | 9,335 |
vendor/i-have-adhd | 1,743 | 1,743 |
vendor/improve-codebase-architecture | 1,349 | 2,945 |
vendor/prototype | 642 | 3,546 |
vendor/show-me | 783 | 783 |
vendor/teach | 1,997 | 3,855 |
vendor/wait-what | 102 | 102 |
vendor/writing-for-agents | 2,349 | 2,916 |
Skills
- coding | My coding and docs conventions and taste. Loaded first on anything that touches code or docs.
- mise-fy | Encode
mise best practices. And Transform projects into using mise + hk for a good dev setup!
- cicd-fy | CI/CD patterns: build/test/scan, label-driven releases, changelogs from PRs, and publishing signed + attested artifacts.
- git | My git conventions and PR workflow.
- watch-pr | Babysit a PR: fix CI and answer reviews, until green and quiet (or
forever).
- watch-pr-ci | CI only: fix what goes red, stop at green.
- watch-pr-comments | Reviews only: answer them as they land.
- kubernetes-debug | WIP: Failure mode when debugging k8s
- afk | Letting the agent know I am no longer gonna be there to answer questions (un-grill-me lol).
- afk-careful | Conservative with its autonomy.
- afk-yolo | Max non-destructive autonomy.
- afk-soon | I am leaving soon, ask all ur questions now...
- review | WIP: Review patterns.
- skill-fy | Author skills the way I like them: progressive disclosure, routers, voice, and descriptions that actually trigger.
- grilling | Matt Pocock's relentless interview, forked to ask through the
AskUserQuestion tool instead of markdown.
Vendored
Skills I didn't write but use daily, vendored under skills/vendor/ so the plugin ships one set instead of asking you to install them separately. Thanks to
mattpocock/skills, humanlayer/skills, blader/humanizer, and
github/gh-stack.
skills-lock.json is the list, and mise run skills:sync rebuilds the directory from it. It records where each skill comes from, not which version, so a sync takes whatever
upstream has now.
Models
I mostly use (opus-4.8|5,gpt 5.5,gpt 5.6 sol|terra, and grok 4.5), weaker models might not work as good, especially that I rely on model's world knowledge over explicit examples.
Installation
npx skills for just the skills. The plugin to get my whole setup.
npx skills (recommended)
Installs skills into any SKILL.md-aware agent. You don't need a plugin host.
npx skills add sherifabdlnaby/skills # all skills
npx skills add sherifabdlnaby/skills --skill git # just one skill
npx skills list sherifabdlnaby/skills # see what's available
Claude Code (plugin)
/plugin marketplace add sherifabdlnaby/skills
/plugin install skills@sherif-plugins
Update with /plugin marketplace update sherif-plugins; manage from /plugin.
Cursor (plugin)
/plugin marketplace add sherifabdlnaby/skills
/plugin install skills
Manage from /plugin. Same repo, same skills — Cursor reads .cursor-plugin/.
Development
This repo is managed by mise: it pins every tool, exposes the tasks, and
wires the git hooks, so you only deal with mise once.
First time on this machine — install and activate mise
brew install mise # or: apt/dnf/pacman install mise, winget install jdx.mise
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc # bash: mise activate bash >> ~/.bashrc
mise doctor # confirm the install is healthy
Other install methods: installation docs.
You also need the gh CLI logged in (gh auth status) — mise doesn't
install it, and the pinact check step borrows its token to resolve action tags to SHAs. Without
it that step runs unauthenticated and gets rate-limited.
One-time setup, from the repo root:
mise trust && mise run setup # trust config, install tools, self-install the pre-commit hook
Linters, formatters, and validators run via hk:
mise run check # report on uncommitted changes (alias: mise run lint)
mise run check --fix # apply fixes
mise run check --all # whole repo
mise tasks # discover every task
Commits run the fast commit gates on staged files, a push runs the slower push gates, and CI runs both as mise run check. lychee checks local/relative links only by default (see
.config/lychee.toml).
Releases
Claude/Cursor marketplaces install straight from git and key the plugin on the version field in
.claude-plugin/plugin.json and .cursor-plugin/plugin.json — there's no published artifact.
Cutting a release:
- Bump both manifests'
version to the same value in your PR. mise run version:check (also an
hk pre-push gate) fails if shipped skills//hooks/ content changed without the bump.
- Merge to
main. CI notices the version moved past the latest vX.Y.Z tag and cuts the tag plus
a GitHub release, with notes generated from merged PRs and grouped by label: skill, hooks,
fix, docs, ci, deps.
- No version bump ships no release. A PR's sticky comment previews which outcome a merge would
produce.
There's nothing to verify or download: the marketplaces install the repo at the tag.
Contributing
See CONTRIBUTING.md.