Skills — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Skills (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
Score rose 9 points between these scans.
The primary manifest — the file an agent reads to learn what this artifact does.
<p align="center"> <img src=".github/assets/logo.svg" alt="Hand-rolled sushi" width="240" /> </p>
<h1 align="center">Skills</h1>
<p align="center"><em>My hand-rolled AI Skills I use every day.</em></p>
<p align="center"> <a href="https://skills.sh/sherifabdlnaby/skills"><img src="https://skills.sh/b/sherifabdlnaby/skills" alt="skills.sh" /></a> <a href="https://github.com/sherifabdlnaby/skills/actions/workflows/check.yml"><img src="https://github.com/sherifabdlnaby/skills/actions/workflows/check.yml/badge.svg" alt="Checks" /></a> </p>
Hand-rolled Skills, and other AI bits I build from my own day-to-day experience.
<!-- token-estimates:start -->
<details>
<summary><strong>Token estimates</strong></summary>
<p> <img src="https://img.shields.io/badge/All%20SKILL.md-32%2C875%20tokens-2f80ed?style=flat-square" alt="All SKILL.md: 32,875 tokens" /> <img src="https://img.shields.io/badge/All%20Markdown-113%2C310%20tokens-2ea44f?style=flat-square" alt="All Markdown: 113,310 tokens" /> </p>
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,408 | 15,633 |
coding | 1,048 | 1,048 |
fast-feedback-mode | 394 | 394 |
git | 2,383 | 14,783 |
grill-me | 61 | 61 |
grilling | 578 | 578 |
kubernetes-debug | 240 | 1,513 |
mise-fy | 2,481 | 35,504 |
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 |
</details>
<!-- token-estimates:end -->
mise best practices. And Transform projects into using mise + hk for a good dev setup!forever).AskUserQuestion tool instead of markdown.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.
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.
npx skills for just the skills. The plugin to get my whole setup.
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/plugin marketplace add sherifabdlnaby/skills
/plugin install skills@sherif-pluginsUpdate with /plugin marketplace update sherif-plugins; manage from /plugin.
/plugin marketplace add sherifabdlnaby/skills
/plugin install skillsManage from /plugin. Same repo, same skills — Cursor reads .cursor-plugin/.
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.
<details> <summary><b>First time on this machine — install and activate mise</b></summary>
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 healthyOther install methods: installation docs.
</details>
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 hookLinters, 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 taskCommits 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).
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:
version to the same value in your PR. mise run version:check (also anhk pre-push gate) fails if shipped skills//hooks/ content changed without the bump.
main. CI notices the version moved past the latest vX.Y.Z tag and cuts the tag plusa GitHub release, with notes generated from merged PRs and grouped by label: skill, hooks, fix, docs, ci, deps.
produce.
There's nothing to verify or download: the marketplaces install the repo at the tag.
See CONTRIBUTING.md.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.