- Python 91.6%
- Shell 8.4%
|
|
||
|---|---|---|
| before-and-after | ||
| code-structure | ||
| evidence-driven-testing | ||
| greploop | ||
| greploop-apps | ||
| new-feature | ||
| tests | ||
| unslop | ||
| .gitignore | ||
| AGENTS.md | ||
| README.md | ||
Skills
A collection of agent skills for Claude Code. Each skill is a folder containing a SKILL.md with frontmatter (name, description) and instructions that Claude loads on demand when the task matches.
Available skills
before-and-after
Captures before/after screenshots of web pages or elements and outputs a PR-ready markdown comparison table. It drives the @vercel/before-and-after CLI.
Use it when:
- A PR needs visual proof that a UI change does what it claims
- You want a
| Before | After |table generated and uploaded in one step - Comparing two URLs, two existing images, or a mix of both
Vendored from vercel-labs/before-and-after (PolyForm Shield 1.0.0, license included in the folder). Install the CLI with
npm i -g @vercel/before-and-after agent-browser.
code-structure
Service layer architecture guidance. Enforces a two-layer separation where actions orchestrate domain rules (the "why/when") and a service layer centralizes reusable operational mechanics (the "how").
Use it when:
- Multiple workflows duplicate the same operational logic
- You're deciding what belongs in actions vs. shared services
- A bug fix in one flow doesn't propagate to others doing the same thing
- Adding a feature that shares mechanics with existing ones
Includes a migration checklist for extracting shared logic safely and a table of anti-patterns to avoid (god services, leaky services, over-abstraction).
evidence-driven-testing
Records visual proof while testing UI behavior. The agent drives the app live via computer use (or cua-driver when the harness has no computer-use tools) while the bundled recorder captures the session, then posts the video and a results summary to the PR and tracker issue. The recorder (scripts/evidence.py, Python 3 + FFmpeg) runs on Linux, macOS, and Windows and has doctor, start, annotate, and stop commands. It timestamps each annotation as the agent tests, burns them into evidence.mp4 on stop, and summarizes them in a generated report.md and manifest.json. Headless environments swap the recorder for scripted screenshots and Playwright captures; non-UI changes still get evidence (measured numbers, output pairs, transcript excerpts).
Use it whenever a change needs verifiable evidence that it works, instead of prose claims.
The recorder needs
ffmpeg/ffprobebuilt withlibx264and theassfilter, plus a screen-capture source: X11 (DISPLAY) or wlroots Wayland (wf-recorder; GNOME/KDE are not supported) on Linux, Screen Recording permission on macOS, any standard ffmpeg on Windows.python3 scripts/evidence.py doctorreports both. The raw capture is MPEG-TS, so a crashed or hard-killed recorder still yields usable evidence. The headless path needs only a running app and a scriptable browser (Playwright via npx). Posting evidence requires theghCLI (or equivalent).tests/test_evidence.pysmoke-tests the recorder end to end with a synthetic video source (python3 -m pytest tests/ -q).
greploop
Iteratively fixes a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives a perfect review: 5/5 confidence with zero unresolved comments. Triggers the review, fixes actionable comments, resolves threads, pushes, and repeats, up to --max-iterations cycles (default 10).
Use it to get a PR to a clean Greptile review before merge.
Vendored from greptileai/skills (MIT, license included in the folder). Requires Greptile installed on the repo and an authenticated
gh/glab/p4CLI.
greploop-apps
The same loop as greploop, but it triggers reviews by tagging @greptile-apps, which bypasses Greptile's file-count limit on huge PRs that the plain @greptile mention refuses to review. When no check run appears, it falls back to polling Greptile's edited summary comment.
Use it when greploop's trigger gets "Too many files changed for review".
Local variant derived from greptileai's greploop (MIT, license included in the folder); no separate upstream.
new-feature
Starts every new task in an isolated Git worktree branched from origin/main so multiple agents can work on the same repo in parallel without conflicts. It covers unique task naming, a scope check against open PRs, fresh dependency installs, and cleanup after merge.
Use it when:
- Starting any new feature, fix, or task, before writing code
- Multiple agents (or sessions) work the same repository concurrently
- You need a consistent branch-per-task convention with safe cleanup
Includes harness deltas for Claude Code and Cursor, which manage worktrees themselves.
unslop
Edits prose to remove AI tells and put a human voice back in. It names 31 patterns to catch (puffery, filler, hedging, chatbot phrases, em dashes, colons as connectors, bold and emoji overuse, abstract metaphor nouns, passive voice) and a short checklist for adding opinion and rhythm, applied as a four-step loop: scan, rewrite, add soul, self-audit.
Use it when:
- Writing anything a person will read: commit messages, PR titles and bodies, docs, README edits, code comments, chat replies
- Cleaning up existing text that reads machine-made
Vendored from cursor/plugins (pstack) (MIT, license included in the folder). The body matches upstream; the frontmatter has two edits so agents apply the skill on their own instead of waiting for a typed
/unslop. We dropped thedisable-model-invocation: trueline, and the description now names the trigger (text you write or edit for a human reader) in place of upstream's "any writing. Must always apply.", so auto-invocation matches the scopeAGENTS.mdgives it. Restore the flag if you want slash-command-only behavior.
Workflow
AGENTS.md ties the skills together into a four-beat workflow: isolate (new-feature) → build (code-structure) → prove (evidence-driven-testing) → ship (before-and-after + greploop), with unslop applied to everything written for humans along the way. Drop it into a repo alongside the skills and fill in the repo-specific callouts (checks, invariants, environment).
Installation
Clone the repo and copy (or symlink) a skill folder into your skills directory:
# Available in all projects
cp -r code-structure ~/.claude/skills/
# Or scoped to a single project
cp -r code-structure /path/to/project/.claude/skills/
Claude Code picks up the skill automatically and invokes it when a task matches the skill's description. You can also invoke one explicitly with /code-structure or /evidence-driven-testing.
Adding a new skill
- Create a folder named after the skill (kebab-case).
- Add a
SKILL.mdwithnameanddescriptionfrontmatter. The description is what Claude uses to decide when the skill applies, so make it trigger-focused ("Use when..."). - Keep instructions concise and actionable; link out to reference files in the folder if they get long.