Skip to content

Latest commit

 

History

History
190 lines (147 loc) · 24 KB

File metadata and controls

190 lines (147 loc) · 24 KB

claude-skills

claude-skills banner

Twenty-seven Agent Skills and nine subagents I build and maintain, kept public so they can be versioned and shared. A skill is a directory with a SKILL.md; some bundle scripts, evals or reference files. Subagents live under agents/.

The name says Claude because that is where they started and where the subagents run. The skills themselves are the open Agent Skills format and load unchanged in Claude Code, Codex and OpenCode — this repo ships a plugin manifest for the first two.

All MIT (see LICENSE). Skills wrapping an external tool carry a Provenance note crediting the upstream project and its licence — MIT covers the skill content, not the wrapped tools. CHANGELOG.md records each addition: what it does, when to reach for it, and what it deliberately won't do.

Install

Three ways in. Pick by whether you want all of them or one, and a snapshot or a live link.

you get updates
Claude Code plugin all 27 skills + 9 subagents /plugin marketplace update, deliberate
Codex plugin all 27 skills codex plugin marketplace update, deliberate
Symlink whichever you pick instant — it is a live link to this repo

Claude Code — the whole set

/plugin marketplace add kevin-burns/claude-skills
/plugin install claude-skills@kevin-burns

Skills arrive namespaced claude-skills:<name>.

Codex — the whole set

codex plugin marketplace add https://github.com/kevin-burns/claude-skills
codex plugin add claude-skills@kevin-burns

Same namespacing. Subagents are the part that doesn't port: agents/*.md uses Claude Code's frontmatter (tools, model), which Codex doesn't read. The skills travel, the fleet doesn't.

Symlink — one at a time, live

ln -s "$(pwd)/clear-and-human" ~/.claude/skills/clear-and-human     # Claude Code, OpenCode
ln -s "$(pwd)/clear-and-human" ~/.agents/skills/clear-and-human     # Codex, OpenCode
ln -s "$(pwd)/agents/fact-verifier.md" ~/.claude/agents/fact-verifier.md

Symlinking keeps this repo the single source of truth — edits here are picked up immediately. Take this path if you're editing the skills as well as using them, or if you want two of them rather than twenty-seven.

OpenCode needs no separate step: it already scans ~/.claude/skills/ and ~/.agents/skills/, so a symlink made for either of the others is picked up with no second install.

Two things worth knowing before installing the plugin

  • It copies. A plugin install is a snapshot in the harness's cache, not a live link. Editing this repo afterwards changes nothing until you update.
  • It costs context. Every skill's description loads in every session so the model can decide when to reach for one — about 7.2k tokens always-on for the full set, before any skill fires. claude plugin details claude-skills prints the per-skill breakdown. If you want two or three of these, symlink those instead.

Standalone repos

Three of these skills also live in a repo of their own, published from here on every merge. The reason is audience: someone looking for a Ghost publishing tool or a Terragrunt reference is not going to find it inside one person's collection of twenty-odd skills, and the competing tools for both are standalone. Each mirror is a working plugin in its own right.

skill repo who it is for
ghost-publish kevin-burns/ghost-publish Ghost users
terragrunt-skill kevin-burns/terragrunt-skill Terragrunt users
transcribe-summarize kevin-burns/transcribe-summarize anyone with recorded meetings who would rather not upload them
claude plugin marketplace add kevin-burns/ghost-publish
claude plugin install ghost-publish@ghost-publish

The mirrors are generated. Edit the skill here; never edit a mirror directly, or the next merge overwrites it.

Skills

Skill What it does Wraps
clear-and-human Construct, review, score, and rewrite prose so it reads human, not AI — with two optional stdlib scripts that measure register and check a rewrite invented nothing
readability Find where a reader falls off a draft — weak paragraph junctions, back-references with no antecedent nearby, terms used before they are explained — then dispatch a fresh-context second reader for the contradictions no script can see. Reports locations, never a grade level: the formulas were validated on schoolchildren and Navy trainees, and Redish (2000) reports their validity for adult technical readers is unknown
hook-and-human Write, punch up, and review persuasive marketing copy without fabricating
cv-and-human Tailor a CV — or a LinkedIn profile (job-seeker lens) — to pass automated HR/ATS screening and Recruiter search while staying truthful and human — keyword/JD matching, parseability, de-slop, optional red-team
cv-cover-letter Draft a cover letter from a job posting and your own CV: every claim traces to something you actually said, arithmetic-derived claims are flagged rather than asserted, and it stops when the evidence stops instead of filling a word count. Triages the posting's stated hard requirements first, so it can tell you not to apply before you spend the hour. Works standalone; markedly better after cv-evidence-base, which holds the facts a CV compresses away
cv-evidence-base Interrogate a CV to recover the evidence that never made it onto the page, and grade which roles you are genuinely credible for — including the ones you are not. Runs before cv-and-human, when there is no target role yet
frontier-rounds Interview you in breadth-first rounds until a design is settled — the whole frontier per round with a recommended answer on every question, rather than one question at a time. Produces decisions, not deliverables
c7search Fetch up-to-date library docs via the c7search CLI Context7 API
markdown-converter Convert PDF/Office/HTML/media files to Markdown markitdown (MS, MIT)
ghost-publish Publish, update, schedule and verify Ghost posts from a markdown file — strips front matter Ghost would render as prose, and diffs what Ghost holds against the source in both directions ghst (TryGhost, MIT)
nano-banana-pro-json Generate/edit images (Gemini 3 Pro Image) with structured JSON control + photographic style presets, plus recipes for logos (with a free raster→SVG trace), product/e-commerce shots, and infographics — each with honest boundaries Google Gemini image API
convert-to-webp Convert images to WebP for web projects libwebp cwebp / macOS sips
social-image-prep Resize and format images for social platforms sips / ImageMagick / Pillow
terragrunt-skill Generate, validate, review, and debug Terragrunt 1.x configs (units, stacks, autoinclude, CAS, dependencies, AWS/Azure/GCP backends) — tracks current stable v1.1.0, incl. Azure backend gotchas and running only changed units at scale
terraform-registry Provider-agnostic CLI to search/inspect the Terraform Registry via its JSON API (no scraping) Terraform Registry API
transcribe-summarize Transcribe audio on-device (macOS/Windows/Linux), filter the segments Whisper invents over silence, and write it up as factual meeting notes + PDF; ffmpeg normalise/silence-trim beats model choice, and timestamps map back to the original recording. Groq/OpenAI/ElevenLabs are opt-in and disclosed before anything is sent mlx-whisper / faster-whisper / ffmpeg
source-snapshot Fetch external data once into pinned, provenance-stamped artifacts; resilient extractor fallback markitdown / Defuddle / Readability
dev-fleet Orchestration playbook driving the agent fleet through build → verify → review → commit
report-builder Build self-contained single-page HTML reports/dashboards from data Jinja2 / Bootstrap 5 / Chart.js / Plotly
ux-audit Heuristic usability + accessibility audit of rendered web pages (Nielsen + WCAG 2.2)
job-feeds Aggregate nine sanctioned public job feeds from eight publishers (JSON APIs + RSS) into one deduplicated SQLite store, match them against your career lanes, and render a filterable self-contained HTML report — no scraping, no auth, no LinkedIn Arbeitnow / Jobicy / Remotive / Remote OK / Working Nomads / 4 Day Week / We Work Remotely / Python.org Jobs
azadvertizer Offline lookups over Azure Policy / Initiative / RBAC-Role metadata + cross-references AzAdvertizer CSV exports
use-linearis Drive Linear.app from the CLI — issues, milestones, blocked-by relations, release filtering — plus the Linear↔Ogham dogfooding loop linearis CLI
excalidraw-diagram Generate Excalidraw diagrams that argue visually, with a render→view→fix loop (engine fetched once from a pinned, sha256-verified release, then offline) and optional cloud-icon (AWS/Azure/GCP) ingestion Excalidraw (MIT; engine fetched at first render, fonts vendored); design forked from coleam00; icon approach from awesome-copilot (MIT)
trilium-capture File findings, clipped material and long-form documents into a self-hosted Trilium Notes instance — per project, one closed label vocabulary, documents revised in place so Trilium's own revision history replaces keeping .bak copies. Searches before writing; decides what does not belong there; never retrieves, and never touches a note it didn't write Trilium Notes — its built-in MCP server
travel-planning Turn a trip into a paced day-by-day itinerary + a reconciled budget (Markdown); grounds cost estimates in typical/seasonal prices (labeled, sourced) — no booking, no live fares
business-plan Build a realistic business plan (full plan + one-pager + investor summary) where every number is researched-and-cited, user-supplied, or computed from your assumptions — never invented; ends with an honest go/no-go/reshape verdict

Using these skills

Every skill directory has its own README.md — a plain-English guide to what it does, how to use it well, and, just as importantly, what it does not do. Read that first; a skill's boundaries matter as much as its capabilities, and knowing what a skill deliberately refuses (invent a price, book a trip, predict a fare) is what keeps its output trustworthy.

A skill triggers automatically when your request matches its description — in Claude Code, claude.ai, Codex and OpenCode alike. You don't call it by name, you describe the task. Take the whole set or one directory (see Install). This "what it does / what it doesn't do" README is the standard shape for every skill here — new skills ship one too (see CONTRIBUTING.md).

Agents

Subagents for software-development work, coordinated by the dev-fleet skill. Each is a *.md with frontmatter (name, description, tools, model) and a system-prompt body. Architecture and rationale: docs/agent-fleet-architecture.md.

Agent Role Model
azure-architect Enterprise-scale Azure / Cloud Adoption Framework design — governance, subscriptions, networking, IaC review opus
fact-verifier Verify claims/code against authoritative sources — cite, refute, or return the lookup; never assert from memory sonnet
code-builder Implement scoped changes TDD-style in an isolated worktree; commit on a branch, never push/merge/apply sonnet
coherence-checker Structural fit of the implementation vs the plan/spec/verified facts — spec/plan traceability, inverse-pair round-trip (no normalization tricks), cross-impl parity, contract-docstring fidelity; read-only, gated on change complexity sonnet
code-reviewer Advisory review for correctness, edge cases, contracts, security, tests — findings ranked by confidence (uncertain ones surfaced, not suppressed), not a gate sonnet
docs-reviewer Review docs (READMEs, ADRs, runbooks) for completeness, clarity, correctness, and audience fit sonnet
ux-auditor Audit a rendered web page for usability/accessibility; renders via agent-browser/playwright-cli, fans out one per page (reads ux-audit) sonnet
commit-pr Write commit and PR/MR messages (reads commit-style) haiku
commit-style Commit/PR style playbook used by commit-pr

Several agents ship a deterministic behavioral eval under agents/<name>/evals/ (run with uv run python grade.py).

fact-verifier and cv-and-human's red-team Truth lens share one portable verifier contract — never-assert-from-memory, cite/refute/return-the-lookup, read-only — with a per-domain source profile. Write a profile to get a verifier for a new domain without re-deriving the discipline.

Requirements

  • c7search — the c7search binary (go install github.com/kevin-burns/c7search@latest). A CONTEXT7_API_KEY is optional.

  • clear-and-humannothing for the writing itself; the skill is prose all the way down. Two optional scripts add measurement: scripts/register_report.py reports where a draft sits on the person and stiffness axes (each feature printed with the paper behind it, no score and no verdict), and scripts/fidelity_check.py diffs a draft against its rewrite and flags any number, quote, URL or code span that appeared, vanished or changed — a number present only in the rewrite is the shape of a fabricated statistic — plus the ranking, scope, comparison and requirement words the rewrite dropped, which is how an edit deletes a claim while looking like it deleted only style. Both are standard library only: uv run or python3.

  • frontier-roundsnothing. Prose all the way down. Two optional integrations, both degrading cleanly if absent: it reads the nano files from software-design-rules when a question turns on a design decision, and it can dispatch a sub-agent for read-only environment lookups.

  • job-feedsnothing. Standard library only, so python3 works as a runner alongside uv. Verified running on Python 3.9 as recently as 2026-08-13, though CI now tests 3.12 and 3.13 only, so treat older interpreters as working-but-unwatched. No API keys, no accounts, no authentication — every source is a public feed. macOS, Linux, or WSL.

  • markdown-converteruv (uses uvx markitdown, no install needed).

  • nano-banana-pro-jsonuv and a GEMINI_API_KEY environment variable. No key is bundled.

  • convert-to-webpcwebp (brew install webp) or macOS sips. No install needed on macOS.

  • social-image-prepsips (macOS), ImageMagick, or uv (for the Pillow fallback). Uses whichever is present.

  • terragrunt-skill — works as static review with no tooling; the bundled scripts/validate.sh uses terragrunt (1.x), plus optional tflint and trivy if present. scripts/detect_custom_resources.py runs on Python 3.

  • terraform-registry — Python 3 (stdlib only). search/inspect-module need only network access; inspect-resource/refresh-schema additionally need the terraform CLI.

  • source-snapshot — Python 3 (stdlib only). Uses whichever extractor is present: markitdown (via uv, the reliable fallback for docs/tables), and optionally Defuddle for prose articles (it strips page chrome). The producer auto-resolves the Defuddle runner — an installed defuddle binary, else pnpm dlx / bunx / npx defuddle (the defuddle package; defuddle-cli is deprecated/merged into it) — never pinning @latest, so caches are reused. Install once with pnpm add -g defuddle to avoid per-run fetches, or set SNAPSHOT_DEFUDDLE_CMD for a custom path. Degrades gracefully when one is missing.

  • cv-and-human — no tooling for the core CV workflow (review, tailoring, de-slop). The optional red-team's measured ATS lens uses scripts/ats_adversarial_loop.pyuv/Python 3 (its selftest runs without a model backend). The LinkedIn profile mode uses scripts/li_profile_check.py and needs uv/Python 3.

  • dev-fleet — no tooling; it's an orchestration playbook for the agents above.

  • report-builderuv (the bundled scripts/render.py declares its deps via PEP 723 inline metadata; run with uv run). Bootstrap/Chart.js/Plotly load from CDN, or vendor them for offline reports.

  • ux-audit / ux-auditor — a browser driver to render pages: prefers agent-browser, falls back to playwright-cli; uses whichever is installed. Degrades to a static-HTML audit (clearly flagged) if neither is present.

  • use-linearis — the linearis CLI (npm i -g linearis, Node; ships linear and linearis binaries) and a Linear API token via linear auth login. The Ogham dogfooding loop additionally uses the ogham CLI (a local Go binary; hybrid search via ogham search).

  • excalidraw-diagramuv plus a one-time uv run playwright install chromium. Fonts are vendored under references/vendor/; the Excalidraw render engine is fetched once on first render from a pinned, sha256-verified GitHub Release (see references/vendor/bundle.lock.json), then cached and served locally — so the first render needs network, subsequent renders are offline. No Node needed at render time; Node + npm are needed only to re-vendor and republish a newer Excalidraw version via references/scripts/vendor.sh. Optional cloud/architecture icons (AWS/Azure/GCP/K8s) use user-supplied .excalidrawlib files ingested by stdlib scripts — no extra tooling; sets aren't bundled (own licenses).

  • azadvertizeruv (stdlib-only script via uv run); network only for the one-time fetch. Caches to $XDG_CACHE_HOME/azadvertizer; all queries run offline. Data © Julian Hayward / AzAdvertizer — cache, don't hammer; not republished here.

  • trilium-capture — a reachable Trilium instance (v0.93.0+) with its built-in MCP server at /mcp, authenticated with an ETAPI token as Authorization: Bearer <token>. Nothing to install: the server ships inside Trilium and shares its tool definitions with Trilium's own LLM chat — do not add a third-party Trilium MCP server. No scripts, no Python: the skill is conventions over tools Trilium already exposes. Optional: a short-memory store (e.g. Ogham) for the recall half of the split — without one, everything goes to Trilium.

  • cv-cover-letter — none to install. You supply the posting (any source, not just LinkedIn), the CV you are sending, and optionally evidence-base.md from cv-evidence-base. Uses clear-and-human for register where available, and web search to read a posting from a URL — otherwise paste the text. It never invents a metric and never diagnoses the employer; see its README.

  • cv-evidence-basenothing to install. pyproject.toml declares dependencies = []; the only dev dependency is pytest, for this repo's own tests. You supply the CV and the material it was compressed from. Pairs with cv-and-human and cv-cover-letter, which read the evidence base it produces.

  • hook-and-humannothing to install. No scripts at all — the skill is prose. It leans on clear-and-human for register where that skill is present, and degrades to its own judgement where it is not.

  • readabilitynothing to install beyond a Python you already have. scripts/cohesion_report.py is standard library only (argparse, json, re, sys, pathlib), so uv run or python3 both work. The second half of the skill dispatches a fresh-context sub-agent to read the draft, which needs no package either. Runs after clear-and-human, not before.

  • ghost-publish — the ghst CLI installed separately and already authenticating (npm i -g @tryghost/ghst, then GHOST_URL and GHOST_STAFF_ACCESS_TOKEN in the environment). The skill's own scripts are standard library only, Python 3.12+, and never call Ghost — they read files and compare them. ghst is beta and the behaviour here was verified against 0.16.6; scripts/preflight.py warns on version drift and names what to re-verify, with --strict for CI.

  • travel-planning — none to plan (pure instructions). Uses web search, if available, to ground cost estimates in typical/seasonal prices; degrades to a labeled estimate if a lookup fails. Optional: report-builder for an HTML version. It never books or reads live fares — see its README.

  • business-planuv for the stdlib financials helper (scripts/financials.py, no runtime deps, run via uv run). Uses web search, if available, to research and cite market/competitor facts; where research fails it falls back to labeled placeholders rather than inventing. Optional: report-builder for an HTML version. It never invents a market size, competitor price, or revenue figure — see its README.

  • transcribe-summarizeffmpeg and ffprobe on PATH (brew install ffmpeg, winget install Gyan.FFmpeg, sudo apt install ffmpeg). Everything else is standard library. Each backend brings its own dependency and only when you pick it, so installing the skill does not drag in every engine: 'mlx-whisper>=0.4.2' (Apple Silicon, the default there), 'faster-whisper>=1.2' (the default everywhere else), 'parakeet-mlx' (opt-in). The network backends — Groq, OpenAI and ElevenLabs Scribe — need no package at all (stdlib HTTPS) and read their key from GROQ_API_KEY / OPENAI_API_KEY / ELEVENLABS_API_KEY, never from a flag. They are never selected automatically and state the provider, size, duration and cost before sending. Optional: a Chrome, Chromium or Edge binary for the notes PDF — without one you get the HTML and a plain message, not a failure.

Contributing

Authoring or editing a skill? See CONTRIBUTING.md — in particular the absolute-path + uv convention for invoking a skill's bundled scripts, so they work from any working directory rather than only this repo's root.