Claude Agents Skill

Custom Claude Code skills I've built to automate my own recurring work.

Beyond using AI in the products I build for employers, I use Claude Code's Skills system to package my own repetitive workflows — receipt reconciliation, portfolio upkeep — into reusable, invokable automations. Each skill is a version-controlled SKILL.md file with instructions an AI agent follows every time it runs, so the process stays consistent without me re-explaining it. Day to day I track all of these across my Claude Code profiles on a private internal dashboard; this page is a public snapshot of the ones built for personal use.

Skills in Active Use

Each one runs as a single slash command and follows the same process every time.

/update-portfolio

Recurring Portfolio Updater

Problem: Keeping a portfolio site in sync with ongoing work means remembering to write it up — in practice that never happens consistently, and manually re-reading a large codebase every time to find what's new is slow and expensive.

A skill that diffs a work project against the last commit it processed, delegates the "what changed and is it interesting" judgment to a sub-agent so only relevant context enters the main analysis, and — only for genuinely new capabilities, not refactors or fixes — drafts an update to the matching project card on this site, in the site's existing voice and HTML structure. It advances its own progress marker after each run and never publishes automatically; edits are left for review. Pinned to a specific model in its own frontmatter, so it always runs at a deliberately chosen cost/quality point regardless of which model the session is using.

  • Claude Code Skill (SKILL.md)
  • Git diffing
  • Sub-agent delegation
  • HTML generation
/maid

Monthly Receipt Reconciliation

Problem: Reconciling a month of household receipts against actual card and e-payment statements — matching each purchase to the right charge and payment method — is exactly the kind of repetitive, rule-based, error-prone task that eats an evening every month.

A skill that OCRs a folder of receipt scans, classifies each one by payment method, and cross-checks it against the corresponding statement and app transaction history, producing a per-receipt match status and a running reconciliation summary. Same process, same output structure, every month — the skill carries the rules so they don't have to be re-derived by hand each time.

  • Claude Code Skill (SKILL.md)
  • OCR
  • Excel automation
  • Reconciliation logic

Anatomy of a Skill

A skill is a Markdown file with a small YAML header and a set of instructions — no separate app or infrastructure required.

--- name: update-portfolio description: # when the agent should reach for this skill model: sonnet # pin cost/quality independent of the active session effort: medium --- # the instructions the agent follows, step by step, every run
The model field is what makes this worth mentioning in an "AI Integration" context rather than just automation: it lets a recurring task run on a deliberately chosen model — tuned for the cost/quality trade-off that task actually needs — independent of whatever model the interactive session happens to be using.

Full Skill Catalogue

Every custom skill installed across my three Claude Code environments, grouped by profile — a static snapshot of what a private internal dashboard tracks live.

49💼 Work
7🟣 Personal
1🟢 FreeModel

💼 Work

Full-power Claude Code account for day-to-day engineering, CRM process automation, and report tooling.

SkillDescription
/add_csAdd a new Crop Sales handler to the CRM reporting config (handler groups + team email routing + SharePoint URL)
/add_grad_rmtMark an RMT handler as graduated — they get the Crop Sales force-release warning instead of the RMT variant
/add_no_sendMark a handler as no-individual-report (resigned, cross-team-only, etc.) in the reporting config
/add_rmtAdd a new RMT solo handler to the CRM reporting config (handler groups + email + SharePoint URL)
/add_rmt_w_teamAdd a new RMT handler with team members to the CRM reporting config (handler groups + email + SharePoint URL)
/c-update_crm_docApply drafted documentation updates into the real CRM reporting HTML/page files
/inboxLook up an email in the work inbox by subject keyword and load its content for the current conversation
/move_to_EBMark a sales handler as moved to Employee Benefits — finds them across handler groups and adds them to the no-report list with a labelled note
/no_testRun an email/report ad-hoc with real configured recipients (no test override) — mirror of /test for production sends
/previewDeploy the current pending code changes into the live checkout and restart the matching app service so the change is visible locally (preview before /push)
/pushUpdate the session continuation notes, commit all changes, push to main — then reflect any portfolio-worthy new work on kendi-ng.com
/testRun the test for the most-recently-edited email/report code, with mandatory safety overrides (drafts only, or a single safe test recipient)
/watch-resetChoose which Claude sessions the auto-resume watcher babysits (resumes after a usage-limit reset). Interactive allowlist.
/ask-mattAsk which skill or flow fits your situation. A router over the user-invoked skills in this repo.
/codebase-designShared vocabulary for designing deep modules — module interfaces, deepening opportunities, seams, testability
/decision-mappingTurn a loose idea into a sequenced map of investigation tickets, then drive them to resolution one at a time
/design-an-interfaceGenerate multiple radically different interface designs for a module using parallel sub-agents
/diagnosing-bugsDiagnosis loop for hard bugs and performance regressions
/domain-modelingBuild and sharpen a project's domain model — terminology, ubiquitous language, architectural decisions
/edit-articleEdit and improve articles by restructuring sections, improving clarity, and tightening prose
/git-guardrails-claude-codeSet up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute
/grill-meA relentless interview to sharpen a plan or design
/grill-with-docsA relentless interview to sharpen a plan or design, which also creates docs (ADRs and glossary) as it goes
/grillingInterview the user relentlessly about a plan or design — stress-test a plan before building
/handoffCompact the current conversation into a handoff document for another agent to pick up
/implementImplement a piece of work based on a PRD or set of issues
/improve-codebase-architectureScan a codebase for deepening opportunities, present them as a visual HTML report, then work through whichever one you pick
/loop-meGrill through specs for the workflows to build, within the current workspace
/migrate-to-shoehornMigrate test files from `as` type assertions to a partial-test-data helper library
/obsidian-vaultSearch, create, and manage notes in an Obsidian vault with wikilinks and index notes
/prototypeBuild a throwaway prototype to answer a design question before committing to an approach
/qaInteractive QA session where bugs are reported conversationally and filed as GitHub issues, with background codebase exploration for context
/request-refactor-planCreate a detailed refactor plan with tiny commits via interview, then file it as a GitHub issue
/resolving-merge-conflictsResolve an in-progress git merge/rebase conflict
/reviewReview changes since a fixed point along two axes — coding standards and spec match — via parallel sub-agents reporting side by side
/scaffold-exercisesCreate exercise directory structures with sections, problems, solutions, and explainers that pass linting
/setup-matt-pocock-skillsConfigure a repo for a set of engineering skills — issue tracker, triage label vocabulary, domain doc layout
/setup-pre-commitSet up pre-commit hooks with lint-staged formatting, type checking, and tests in the current repo
/tddTest-driven development — build features or fix bugs test-first, red-green-refactor
/teachTeach a new skill or concept, within the current workspace
/to-issuesBreak a plan, spec, or PRD into independently-grabbable issues using tracer-bullet vertical slices
/to-prdTurn the current conversation into a PRD and publish it to the project issue tracker — synthesis, no interview
/triageMove issues and external PRs through a state machine of triage roles — categorise, verify, escalate, write agent-ready briefs
/ubiquitous-languageExtract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms
/wizardGenerate an interactive bash wizard that walks a human through a manual procedure, opening URLs, capturing values, confirming each step
/writing-beatsAssemble raw material into a journey of beats, grounding each term before a beat leans on it
/writing-fragmentsMine raw fragments before any structure exists
/writing-great-skillsReference for writing and editing skills well — the vocabulary and principles that make a skill predictable
/writing-shapeShape raw material into an article, paragraph by paragraph

🟣 Personal

Personal Claude Code account for my own repos, tools, and household automations — kept isolated from work.

SkillDescription
/inboxLook up an email in a personal or business inbox by subject keyword and load its content for the current conversation
/watch-resetChoose which personal Claude sessions the auto-resume watcher babysits (resumes after a usage-limit reset). Interactive allowlist.
/grill-meA relentless interview to sharpen a plan or design
/grill-with-docsA relentless interview to sharpen a plan or design, which also creates docs (ADRs and glossary) as it goes
/grillingInterview the user relentlessly about a plan or design — stress-test a plan before building
/maidMonthly receipt reconciliation. OCRs receipt scans into a working spreadsheet, classifies each receipt by payment method (Octopus / credit card / Cash), then reconciles against the card statement and Octopus app screenshots, producing per-receipt match-status columns and two statement-side matching sheets.
/update-portfolioAnalyze recent changes in a work project and update this portfolio site's content accordingly

🟢 FreeModel

Claude Code pointed at free/low-cost community models, for cheap read-heavy drafting work — not for precise file edits.

SkillDescription
/update_crm_docsRead a CRM reporting app's code/state and draft documentation updates for its reference pages — text only, no code edits

Live scan of each profile's skill and command files, 30-second cache, on the internal dashboard this page mirrors. Add a skill by dropping a new skill folder into the matching profile; it appears there on next refresh.