The Skills Grimoire

The laser-etched rune edition. Every global skill and every automatic hook, grouped by what you're doing right now. Each card: why it exists, the exact thing you type, and — behind “More information” — the flow, the sub-flows, the conditions, and the editable source.

57 cards · 7 fire automatically · built 2026-07-11

🎨 Runes style Switch to Alchemy style →

Start & Context3

Opening a session — where was I, what's the state?

Loads context and syncs git before you start

Start Session

Matt reaches for it at the start of work in a repo, or when he asks "where was I" or "catch me up".

catch me up on this repo

Start Session

Matt reaches for it at the start of work in a repo, or when he asks "where was I" or "catch me up".

▶ Inputs — what it needs

  • Current git branch and status
  • PROJECT_STATE.md
  • Newest CHANGELOG.md entries
  • The project's registry card
  • Open in-progress items

■ Outputs — what you get

  • A short you-are-here briefing
  • Branch health (clean, ahead, behind, diverged)
  • Top 3 recent changes
  • Any environment settings pinned for the project
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Syncing git safely
Loading project state

⚡ What changes the path

  • If the working folder is clean and this is a fresh start or resume, it pulls the latest changes.
  • If this is just a context refresh (not a fresh start), it only checks for updates without pulling.
  • It never pulls when there are uncommitted changes, and never resolves conflicts on its own.
  • If the branch has diverged from the remote, it reports that instead of guessing what to do.

 
/Users/agency/.claude/skills/start-session/SKILL.md
Spins up a new project, backed up from day one

New Project

Matt reaches for it whenever starting a new project, client, repo, or app.

set up a new project for Kertújítók

New Project

Matt reaches for it whenever starting a new project, client, repo, or app.

▶ Inputs — what it needs

  • Project or client name
  • Whether it's a one-off client job or an ongoing product
  • A one-line purpose

■ Outputs — what you get

  • A ready-to-use project folder with starter files
  • A private backup copy on GitHub
  • The first save point already in place
  • A short confirmation of what was created
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Creating starter files
Backing up to GitHub

⚡ What changes the path

  • Only asks Matt to choose client-job vs ongoing-product if it's genuinely unclear.
  • If the GitHub backup fails (e.g. offline), it still finishes the folder setup and flags the missing backup for later.

 
/Users/agency/.claude/skills/new-project/SKILL.md
Turn past chats into a searchable decision history

Chat History Graph

Use before planning anything non-trivial in a big repo, or when you need to recall why or when a past decision was made.

python3 ~/.claude/skills/set-up-claude-chat-history-graph/scripts/query.py "why did we pick DocuSeal over PandaDoc"

Chat History Graph

Use before planning anything non-trivial in a big repo, or when you need to recall why or when a past decision was made.

▶ Inputs — what it needs

  • Past Claude Code session transcripts
  • A history question
  • The project's existing PROJECT_STATE.md

■ Outputs — what you get

  • One chunk file per past exchange
  • A queryable knowledge graph
  • A newest-first session summary doc
  • Plain-language answers with citations
Layer 1 · the main flow
Layer 2 · inside the meaty steps
First-time build
Refresh on session close
Ask a history question

⚡ What changes the path

  • If the graph is already built, skip straight to querying
  • A full retrospective backfill of all old sessions is offered, never run unasked
  • Only genuine human/assistant exchanges are kept — tool calls and code are stripped out

 
/Users/agency/.claude/skills/set-up-claude-chat-history-graph/SKILL.md

Plan & Decide8

Before you build: lock intent, stress-test, decide.

Lock feature intent before building

Plan Explore

When work spans multiple files and Matt wants the ask worked out before anyone starts building.

/plan-explore add CSV export to the dashboard

Plan Explore

When work spans multiple files and Matt wants the ask worked out before anyone starts building.

▶ Inputs — what it needs

  • A fuzzy feature request or goal
  • The existing codebase and code graph
  • The project's state, changelog, and past chat decisions
  • Matt's answers to a locked-down interview

■ Outputs — what you get

  • HANDOFF.md capturing goal, state, decisions, constraints
  • manifest.json listing every referenced file
  • PROMPT_to_techspec.md — the copy-paste handoff
  • overview.html — a hand-drawn plan summary Matt actually reads
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Orient before asking questions
Interview to lock intent
Write the handoff bundle
Layer 3 · deepest detail
🔬 Inside HANDOFF.md's 9 sections
🔬 The 3-instance handoff chain

⚡ What changes the path

  • If plans/<slug>/ already exists, confirm with Matt before overwriting
  • If a question's answer changes the next question, ask it alone; otherwise batch it
  • If the feature has meaningful UI or flow, offer user-journeys before handoff

 
/Users/agency/.claude/skills/plan-explore/SKILL.md
Turn locked intent into a buildable checklist

Plan Techspec

After plan-explore hands off intent, when Matt needs the technical approach researched and turned into a concrete build list.

/plan-techspec add-csv-export

Plan Techspec

After plan-explore hands off intent, when Matt needs the technical approach researched and turned into a concrete build list.

▶ Inputs — what it needs

  • HANDOFF.md from plan-explore
  • The project's state, changelog, and prior manifest
  • Any behavioral scenario map from user-journeys
  • Research on the hard technical decisions

■ Outputs — what you get

  • checklist.md with red-green-refactor items
  • Architecture decision records for the choices that matter
  • A generated project-specific QA skill
  • PROMPT_to_execute.md — the copy-paste handoff to the builder
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Research fan-out
Scaffold the checklist
Generate the project QA skill
Layer 3 · deepest detail
🔬 The red-green-refactor cadence
🔬 Handoff to Instance 3

⚡ What changes the path

  • Checklist and prompt must ship with zero open questions
  • A check that passes before the fix is vacuous — fix the check, not the code
  • Only write an ADR when future engineers need it to understand the architecture

 
/Users/agency/.claude/skills/plan-techspec/SKILL.md
Run the whole plan-build chain hands-off

Plan Orchestrate

When Matt wants a feature planned and built end-to-end without babysitting every handoff himself.

/plan-orchestrate build the CSV export feature, fully hands-off

Plan Orchestrate

When Matt wants a feature planned and built end-to-end without babysitting every handoff himself.

▶ Inputs — what it needs

  • A feature brief from Matt
  • The code graph and chat-history graph
  • One round of Matt's answers on core intent
  • The three chain skills, run as spawned subagents

■ Outputs — what you get

  • A dedicated, reversible safe branch
  • HANDOFF.md, checklist.md, and execute_context.json
  • A finished, QA-green feature
  • A closing report listing every assumption made
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Spawn and answer loop, per instance
Answering without bothering Matt
Closing the run
Layer 3 · deepest detail
🔬 The 3-instance chain the orchestrator drives
🔬 Escalating a genuinely new preference

⚡ What changes the path

  • Never runs on main; always on plan-orchestrate/<slug>
  • Escalates to Matt only for genuinely new preference decisions, not facts or technical calls
  • Caps at 3 concurrent research subagents and 5 question rounds per instance
  • Never merges or pushes automatically — leaves the branch for Matt to review

 
/Users/agency/.claude/skills/plan-orchestrate/SKILL.md
Relentlessly interrogate a plan before building

Grilling

When Matt has a plan or design he wants stress-tested branch by branch before committing to it.

Grill me on this plan before we build it

Grilling

When Matt has a plan or design he wants stress-tested branch by branch before committing to it.

▶ Inputs — what it needs

  • A draft plan or design
  • The existing codebase and code graph, if one exists
  • Matt's answers, round by round

■ Outputs — what you get

  • A round of at least 10 pointed questions
  • Matt's letter-only answers
  • A shared, fully resolved understanding
  • The green light to build
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Building one round of questions
The question format

⚡ What changes the path

  • Never produce the final deliverable until Matt replies
  • If his answers open new ambiguity, run another round in the same format
  • Reply in Hungarian if the prior message was Hungarian

 
/Users/agency/.claude/skills/grilling/SKILL.md
Turn this conversation into a shipped PRD

To PRD

When the feature has already been fully discussed and Matt just needs it written up and filed, no more questions.

Turn this into a PRD

To PRD

When the feature has already been fully discussed and Matt just needs it written up and filed, no more questions.

▶ Inputs — what it needs

  • Everything already discussed in this conversation
  • The existing codebase and its natural testing seams
  • The project's domain vocabulary and past architecture decisions

■ Outputs — what you get

  • A Problem Statement and Solution
  • A long list of numbered user stories
  • Implementation and testing decisions
  • A filed, correctly labeled issue on the tracker
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Choosing test seams
Filling the PRD template

⚡ What changes the path

  • Never interview Matt — only synthesize what's already been said
  • No specific file paths or code snippets — they go stale fast
  • Exception: inline a prototype snippet only when it encodes a decision prose can't

 
/Users/agency/.claude/skills/to-prd/SKILL.md
Slice a plan into gradable tracer-bullet issues

To Issues

When a plan, spec, or PRD is ready and Matt wants it broken into issues an agent can grab independently.

Turn this PRD into issues

To Issues

When a plan, spec, or PRD is ready and Matt wants it broken into issues an agent can grab independently.

▶ Inputs — what it needs

  • The plan, spec, or PRD already in context
  • The current codebase
  • The project's domain vocabulary and prior architecture decisions
  • Matt's approval or edits to the proposed breakdown

■ Outputs — what you get

  • A numbered list of proposed vertical-slice issues
  • Their dependency relationships
  • Matt's sign-off on granularity
  • Published, correctly labeled issues in dependency order
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Drafting a vertical slice
Quizzing Matt on the breakdown

⚡ What changes the path

  • Each issue must be independently demoable, not a layer slice
  • Do any needed prefactoring first, before the feature slices
  • Publish blockers before the issues that depend on them
  • Never close or modify the parent issue

 
/Users/agency/.claude/skills/to-issues/SKILL.md
Interview Matt into a tiny-commit refactor plan

Request Refactor Plan

When Matt wants an existing refactor idea turned into a safe, incremental plan filed as an issue.

Help me plan a refactor of the billing module

Request Refactor Plan

When Matt wants an existing refactor idea turned into a safe, incremental plan filed as an issue.

▶ Inputs — what it needs

  • Matt's description of the problem and any solution ideas
  • The existing codebase and its test coverage
  • His answers about scope and alternatives considered

■ Outputs — what you get

  • A confirmed problem and solution statement
  • An exact in-scope vs out-of-scope line
  • A plan of tiny, always-working commits
  • A filed GitHub issue
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Nailing down scope
Breaking into tiny commits

⚡ What changes the path

  • Skip any step Matt doesn't think is necessary
  • If test coverage is missing, ask his testing plan before proceeding
  • Each commit must leave the codebase in a working state, per Fowler's rule

 
/Users/agency/.claude/skills/request-refactor-plan/SKILL.md
Pins down project vocabulary and key decisions

Domain Modeling

When project terms are fuzzy or conflicting, or a hard-to-reverse architectural choice needs to be written down.

What exactly do we mean by 'cancellation' here?

Domain Modeling

When project terms are fuzzy or conflicting, or a hard-to-reverse architectural choice needs to be written down.

▶ Inputs — what it needs

  • a term or concept in dispute
  • the project's existing CONTEXT.md glossary
  • a concrete scenario to stress-test the definition

■ Outputs — what you get

  • an updated CONTEXT.md glossary entry
  • a recorded ADR for hard-to-reverse decisions
  • a surfaced contradiction between code and stated behavior
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Sharpen a term
ADR gate

⚡ What changes the path

  • CONTEXT.md holds glossary terms only, never implementation details
  • An ADR is offered only when all three gate conditions are true

 
/Users/agency/.claude/skills/domain-modeling/SKILL.md

Build & Test4

Writing the thing — test-first, lean, prototyped.

Red-green-refactor, one behavior at a time

Test-Driven Development

When Matt wants a feature or bugfix built test-first instead of all at once.

Build the checkout discount logic test-first

Test-Driven Development

When Matt wants a feature or bugfix built test-first instead of all at once.

▶ Inputs — what it needs

  • desired feature or bugfix
  • agreed public interface
  • priority list of behaviors to test

■ Outputs — what you get

  • one failing test at a time turned green
  • minimal working code per behavior
  • a refactored, clean final implementation
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Tracer bullet
Incremental loop
Refactor pass

⚡ What changes the path

  • Never refactor while a test is red — get to green first
  • Writing many tests before any code is a warning sign; one test at a time
  • Only enough code is written to pass the current test, nothing speculative

 
/Users/agency/.claude/skills/tdd/SKILL.md
Throwaway code that answers one design question

Prototype

When Matt wants to test whether a state model feels right, or see several UI looks fast, before committing to real code.

Prototype 3 different looks for the new pricing page

Prototype

When Matt wants to test whether a state model feels right, or see several UI looks fast, before committing to real code.

▶ Inputs — what it needs

  • the open design question
  • the surrounding code or page it relates to
  • logic vs UI branch decision

■ Outputs — what you get

  • a runnable terminal app (logic) or a multi-variant UI route
  • visible state or render after every action/switch
  • a captured answer to the original question
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Logic branch
UI branch

⚡ What changes the path

  • If the question is ambiguous and Matt is unreachable, default to whichever branch matches the surrounding code and state the assumption
  • Prototype must run with a single command, no setup
  • No real persistence unless persistence itself is the question being tested

 
/Users/agency/.claude/skills/prototype/SKILL.md
Command-line control of DocuSeal templates and signing

DocuSeal CLI

A script or command needs to create a signing template, send a document for signature, or check who has signed.

docuseal templates create-pdf --file contract.pdf --name "NDA"

DocuSeal CLI

A script or command needs to create a signing template, send a document for signature, or check who has signed.

▶ Inputs — what it needs

  • API key and server region as environment variables
  • a source file (PDF/DOCX/HTML) or existing template ID
  • signer emails and roles

■ Outputs — what you get

  • a new template ID
  • a sent submission with signing links
  • JSON status of who has signed
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Create then send
One vs many signers
Checking progress
Layer 3 · deepest detail
🔬 Which reference to load first

⚡ What changes the path

  • List/array values use bracket notation, never comma-separated
  • Some template-creation commands need a Pro plan

 
/Users/agency/.claude/skills/docuseal-cli/SKILL.md
Wiring a signing form or builder into an app

DocuSeal Code Reference

A developer is adding a DocuSeal signing form or template builder directly into a website or app's code.

Add a DocuSeal signing form to our client portal

DocuSeal Code Reference

A developer is adding a DocuSeal signing form or template builder directly into a website or app's code.

▶ Inputs — what it needs

  • target framework (plain JS, React, Vue, Angular, or mobile)
  • whether a secure sign-in token (JWT) is needed
  • self-hosted/EU region details
  • theming preferences

■ Outputs — what you get

  • working embed code for the signing form or builder
  • a backend snippet that safely issues sign-in tokens
  • matching API calls and a webhook handler
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Picking the signing link style
Keeping it secure
Layer 3 · deepest detail
🔬 Where to look things up

⚡ What changes the path

  • A single-signer template can use the direct link; multi-signer must go through the submissions API
  • Never generate the sign-in token in browser code — backend only

 
/Users/agency/.claude/skills/docuseal-code/SKILL.md

Understand Code3

Big codebases only — ask questions instead of grepping.

Vocabulary for spotting deep vs shallow code

Codebase Design

When designing or improving a module's interface, or deciding whether a piece of code is worth its own seam.

Is this OrderService actually earning its keep, or just a pass-through?

Codebase Design

When designing or improving a module's interface, or deciding whether a piece of code is worth its own seam.

▶ Inputs — what it needs

  • a module or interface under discussion
  • the project's CONTEXT.md glossary, if any
  • a suspected shallow or overly-complex spot in the code

■ Outputs — what you get

  • a deep vs shallow verdict via the deletion test
  • a recommended place for the seam/adapter
  • concrete suggestions to make the interface more testable
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Deletion test
Testability check

⚡ What changes the path

  • One adapter means the seam is only hypothetical; two adapters means it's real
  • Depth is judged by the interface, not by how much code sits behind it

 
/Users/agency/.claude/skills/codebase-design/SKILL.md
Scans code for refactor opportunities, then drills in

Improve Codebase Architecture

When Matt wants a visual shortlist of architecture improvements to weigh before committing to a refactor.

Scan this repo for modules worth deepening

Improve Codebase Architecture

When Matt wants a visual shortlist of architecture improvements to weigh before committing to a refactor.

▶ Inputs — what it needs

  • the codebase to explore
  • the project's CONTEXT.md glossary and existing ADRs
  • Matt's pick of which candidate to pursue further

■ Outputs — what you get

  • an HTML report of deepening candidates with before/after diagrams
  • a ranked top recommendation
  • a drilled-down design for whichever candidate Matt chooses
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Explore for friction
Build the report
Grilling loop side effects
Layer 3 · deepest detail
🔬 Report card anatomy

⚡ What changes the path

  • Interfaces are not proposed until Matt picks a candidate to explore
  • An ADR conflict is only surfaced when the friction is real enough to reopen that ADR

 
/Users/agency/.claude/skills/improve-codebase-architecture/SKILL.md
Turn a codebase into a queryable knowledge graph

Graphify

Use on a big product repo (GHL-funnel, studio, Revotech) when you need to ask how something works or what connects to what — never worth it on a small client site.

/graphify query "how does the lead-scoring pipeline work"

Graphify

Use on a big product repo (GHL-funnel, studio, Revotech) when you need to ask how something works or what connects to what — never worth it on a small client site.

▶ Inputs — what it needs

  • A folder of code/docs/images/video
  • A natural-language question
  • Optional rebuild flags
  • An existing graph.json if one exists

■ Outputs — what you get

  • Interactive graph.html
  • GRAPH_REPORT.md audit report
  • graph.json (queryable data)
  • A plain-language answer with sources
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Query an existing graph
Extracting a corpus
Incremental update
Layer 3 · deepest detail
🔬 Semantic extraction detail

⚡ What changes the path

  • If a graph already exists and the ask is a plain question, skip rebuilding and query it directly
  • If the corpus contains video or audio, transcribe it to text first
  • If the corpus is huge (over 2 million words or 500+ files), ask which subfolder to scope to
  • If more than half the extraction subagents fail, stop and ask to re-run rather than produce a partial graph

 
/Users/agency/.claude/skills/graphify/SKILL.md

Review & Quality6

Is it right? Is it simple? Is it explainable?

Forces the simplest solution that actually works

Ponytail

When Matt wants the leanest possible fix, or an existing diff/repo checked for over-engineering.

/ponytail review this diff for bloat

Ponytail

When Matt wants the leanest possible fix, or an existing diff/repo checked for over-engineering.

▶ Inputs — what it needs

  • a coding task, or an existing diff/repo to review
  • chosen intensity: lite, full, or ultra
  • review (one diff) vs audit (whole repo) scope

■ Outputs — what you get

  • minimal working code with a one-line 'skipped' note
  • or a tagged list of over-engineering findings
  • a lines/dependencies saved count
Layer 1 · the main flow
Layer 2 · inside the meaty steps
The ladder
Review scope (one diff)
Audit scope (whole repo)

⚡ What changes the path

  • If Matt explicitly asks for the full version, build it — no re-arguing
  • Security, validation, and accessibility are never simplified away
  • Review/audit modes only list findings, never fix correctness bugs or security issues

 
/Users/agency/.claude/skills/ponytail/SKILL.md
Autonomous build-and-QA factory, human approves twice

EBO Build+QA Ultra

Use when handed a messy bug report or feature ask and you want it built, tested live on the real app, and merged only once truly green.

/ebo-build-qa-ultra here's the bug transcript the client sent

EBO Build+QA Ultra

Use when handed a messy bug report or feature ask and you want it built, tested live on the real app, and merged only once truly green.

▶ Inputs — what it needs

  • A messy bug transcript or feature request
  • The live app to test against
  • The project's QA profile (logins, URLs, sentinel data)

■ Outputs — what you get

  • A GREEN/AMBER/RED verdict ledger
  • Merged, working code
  • A debrief report
  • A short audio summary
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Recon & interview
Build + verify loop
Landing the run
Layer 3 · deepest detail
🔬 Live verify loop detail

⚡ What changes the path

  • A screenshot never gets judged until the page has finished loading
  • Any failed login or rate limit quarantines affected rows as AMBER, never a fake pass
  • Merge happens only when everything is green except owner-accepted AMBERs
  • Small runs (3 or fewer changed screens) skip the full ceremony — short summary, no launch card

 
/Users/agency/.claude/skills/ebo-build-qa-ultra/SKILL.md
Measured iteration loop instead of vibes-based tweaking

Autoresearch Loops

Use when refining a prompt, template, or piece of copy with human feedback across multiple rounds.

/autoresearch-loops iterate the cold-email template until 8 of 10 leads approve it

Autoresearch Loops

Use when refining a prompt, template, or piece of copy with human feedback across multiple rounds.

▶ Inputs — what it needs

  • A starting prompt or template
  • A frozen set of ~20 real test examples
  • A scoring method (human or judge)

■ Outputs — what you get

  • A versioned history of the artifact
  • An append-only experiment log
  • A champion version + score trend
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Freeze the eval set
Score & log every round

⚡ What changes the path

  • A stop condition (e.g. 10 of 10 approved) must be declared up front, or tinkering never ends
  • A new version only replaces the champion if it scores strictly better on the whole set
  • Never judge a version based on the one example that failed

 
/Users/agency/.claude/skills/autoresearch-loops/SKILL.md
Turns any page into a click-to-comment doc

Comment HTML

Matt wants a mockup or report to be reviewable with inline comments, like Google Docs suggestions.

Make this report reviewable

Comment HTML

Matt wants a mockup or report to be reviewable with inline comments, like Google Docs suggestions.

▶ Inputs — what it needs

  • local HTML file or live page URL
  • short descriptive name for the link
  • whether to deploy right away

■ Outputs — what you get

  • live review link at review.cfd-staging.com/name
  • every element clickable and commentable
  • comments saved centrally and kept across redeploys
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Filling in comment tags
Leaving a comment
Checking it actually works

⚡ What changes the path

  • A previously sparse or older page gets full comment coverage automatically on rerun
  • Use a throwaway name for smoke tests so real client comments are never touched

 
/Users/agency/.claude/skills/comment-html/SKILL.md
A 30-second, plain-language recap page

Review Overview

A session or deliverable is done and Matt needs to grasp it at a glance without reading the technical details.

Give me the review overview for this session

Review Overview

A session or deliverable is done and Matt needs to grasp it at a glance without reading the technical details.

▶ Inputs — what it needs

  • what happened in the session or deliverable
  • the 2-4 main concepts worth explaining
  • next steps Matt needs to know
  • a few fun or useful facts from the work

■ Outputs — what you get

  • one hero summary with a simple diagram
  • one callout per main concept
  • a Next Steps section
  • a Fun Facts section
  • hosted page, local and live link
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Deciding on a diagram
Mandatory sections

⚡ What changes the path

  • No Notion mirroring anymore — Cloudflare hosting only
  • generate-report-html-notion only runs if Matt explicitly names it

 
/Users/agency/.claude/skills/review-overview/SKILL.md
Read-only checkup on why ads underperform

Google Ads Health Check

Use when a Google Ads campaign is starved, underspending, or generating clicks without real calls.

Matt types: "Audit the Csupi Google Ads account, why isn't it spending its budget?"

Google Ads Health Check

Use when a Google Ads campaign is starved, underspending, or generating clicks without real calls.

▶ Inputs — what it needs

  • Account name or customer ID
  • Time window (7/14/30 days)
  • Nothing is ever changed in the account

■ Outputs — what you get

  • Per-campaign budget vs spend report
  • Impression share lost to budget vs rank
  • Flagged issues (fragmentation, learning phase, etc.)
  • Conversion/call-tracking diagnosis if requested
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Budget vs rank diagnosis
Conversion/call-tracking mode

⚡ What changes the path

  • Impression-share lost to budget over 20% → raise budget or consolidate campaigns.
  • Impression-share lost to rank over 40% → fix bidding or quality score.
  • Smart Bidding with under 15 conversions in the window → learning phase is inferred (not exposed by the API directly).
  • If only CLICK_TO_CALL/AD_CALL actions record, the account is optimizing for taps, not connected calls.

 
/Users/agency/.claude/skills/google-ads-audit/SKILL.md

Ship & Close7

Document, commit, ship, and be able to roll back.

Closes out a session: documented, committed, live

Finish Session

Matt reaches for it at the end of any session that changed files, or when he says "wrap up" or "finish the session".

finish the session

Finish Session

Matt reaches for it at the end of any session that changed files, or when he says "wrap up" or "finish the session".

▶ Inputs — what it needs

  • Whether the project is a client site or an ongoing product
  • Every file changed this session
  • Whether tests/QA passed
  • The project's documented deploy steps

■ Outputs — what you get

  • A clean, secret-free set of changes
  • An updated changelog and project-status file
  • A saved commit (and a push/deploy when QA passed)
  • A plain-English session recap with next steps
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Tidy up and secret scan
Shipping when QA is green
Layer 3 · deepest detail
🔬 Verifying a deploy is real

⚡ What changes the path

  • Finding a leaked secret blocks the whole close-out until it's resolved.
  • Client-type projects commit straight to the main branch; product-type projects work on a separate branch.
  • Only merges and deploys automatically if this session's work already passed its checks; otherwise it just saves the branch and says what's missing.
  • A special client (GHL-funnel) always uses its own separate release process instead.

 
/Users/agency/.claude/skills/finish-session/SKILL.md
Writes down what changed, in plain English

Document Changelog

Matt reaches for it after any session that changed files, settings, or outside systems, or when he asks to "update the changelog".

update the changelog for this

Document Changelog

Matt reaches for it after any session that changed files, settings, or outside systems, or when he asks to "update the changelog".

▶ Inputs — what it needs

  • The existing changelog file
  • The existing project-status file
  • What git shows changed
  • What was decided or configured this session

■ Outputs — what you get

  • A new dated changelog entry
  • A refreshed project-status summary
  • A note on which commit the entry belongs to
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Gathering what changed
Writing the entry

⚡ What changes the path

  • If the changelog or status file doesn't exist yet, it creates them from scratch.
  • If the project serves multiple clients, client-specific work also gets logged in that client's own changelog.
  • If nothing has been committed yet, the entry is marked as unsaved rather than linked to a commit.

 
/Users/agency/.claude/skills/document-changelog/SKILL.md
Brings back an earlier version, without losing today's work

Restore

Matt reaches for it when he wants to undo changes or roll something back, described in plain language.

restore the version from before the pricing change

Restore

Matt reaches for it when he wants to undo changes or roll something back, described in plain language.

▶ Inputs — what it needs

  • Plain description of what to bring back
  • The project's saved history
  • Whether today's work is already saved

■ Outputs — what you get

  • A plain-language menu of past versions
  • A preview of what would change
  • The restored file or project state
  • The live site updated, if applicable
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Showing the version menu
Restoring safely

⚡ What changes the path

  • If today's work isn't saved yet, it saves it first so nothing is ever lost.
  • It always moves forward with a new save point — it never deletes or force-overwrites history.
  • If the project is live, it redeploys and checks the real site afterward to confirm the rollback worked.

 
/Users/agency/.claude/skills/restore/SKILL.md
Resolves an in-progress git merge conflict correctly

Resolving Merge Conflicts

When a git merge or rebase is stuck on conflicting files.

Resolve the merge conflicts in this rebase

Resolving Merge Conflicts

When a git merge or rebase is stuck on conflicting files.

▶ Inputs — what it needs

  • the in-progress merge or rebase state
  • commit messages, PRs, and tickets behind each side
  • the project's automated checks (typecheck, tests, format)

■ Outputs — what you get

  • each conflicting hunk resolved, preserving both intents where possible
  • a passing typecheck/test/format run
  • a completed, committed merge or rebase
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Resolve a hunk
Rebase continuation

⚡ What changes the path

  • Never invent new behavior while resolving a hunk
  • Never abort the merge/rebase — always resolve through to completion

 
/Users/agency/.claude/skills/resolving-merge-conflicts/SKILL.md
Legacy: regenerated repo maps, retired system

Maintain Repo

Legacy and low-priority — repo maps were retired on 2026-07-10 and the enforcing hook removed; only relevant for an old repo still carrying the retired .repo-maps standard.

Refresh the system map for this old repo

Maintain Repo

Legacy and low-priority — repo maps were retired on 2026-07-10 and the enforcing hook removed; only relevant for an old repo still carrying the retired .repo-maps standard.

▶ Inputs — what it needs

  • a repo carrying a .repo-maps marker
  • its maps/*.json source files
  • its index.md and STATUS.md

■ Outputs — what you get

  • regenerated, versioned HTML maps
  • an audit of missing or dead index.md references
  • an updated CHANGELOG and PROJECT_STATE
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Regenerate maps
Audit pass

⚡ What changes the path

  • No .repo-maps marker present: skip entirely, this system was retired 2026-07-10
  • Never edit the generated HTML directly — only edit maps/*.json, then re-run

 
/Users/agency/.claude/skills/maintain-repo/SKILL.md
Push automation scripts live to a serverless cloud

Modal Deploy

Use when a new automation or webhook is ready to run in the cloud, or to test it locally first.

modal deploy execution/modal_webhook.py

Modal Deploy

Use when a new automation or webhook is ready to run in the cloud, or to test it locally first.

▶ Inputs — what it needs

  • A Python execution script
  • A directive markdown file (goal, steps)
  • A webhooks.json registration

■ Outputs — what you get

  • A live Modal endpoint URL
  • A working webhook others can call
  • A local test server for fast iteration
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Local test loop
Scheduled jobs

⚡ What changes the path

  • Modal secrets live in the Modal dashboard, never in local .env, for deployed runs
  • The local server uses the real local .env directly for faster iteration

 
/Users/agency/.claude/skills/modal-deploy/SKILL.md
Turns a build folder into a live link

Cloudflare Staging

Matt has a finished client website or landing page folder ready to preview or hand off.

Deploy the beridoor site folder to staging

Cloudflare Staging

Matt has a finished client website or landing page folder ready to preview or hand off.

▶ Inputs — what it needs

  • static site build folder (site/ or dist/)
  • client-company project slug
  • Cloudflare account credentials
  • optional vanity domain request

■ Outputs — what you get

  • live clientname-yy-mm-dd.pages.dev URL
  • index.html auto-created if missing
  • quick visual check on 3 screen sizes
  • copy-pasteable link list for the client
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Missing homepage file
Optional vanity domain

⚡ What changes the path

  • Only client websites/landing pages use this — reviewable notes/reports publish elsewhere automatically
  • Vanity domain only attached when Matt explicitly asks

 
/Users/agency/.claude/skills/cloudflare-staging/SKILL.md

Client Deliverables2

Things the client actually sees and touches.

Turns a script into a natural spoken audio file

Text to Speech

Matt wants text read aloud as a voiceover, narration, or spoken bit, delivered to his phone.

Turn this stand-up bit into audio

Text to Speech

Matt wants text read aloud as a voiceover, narration, or spoken bit, delivered to his phone.

▶ Inputs — what it needs

  • the text or script to voice
  • a voice pick (default Arcas)
  • an optional style direction
  • a title and tags

■ Outputs — what you get

  • an MP3 + WAV audio file
  • a searchable library entry with a durable link
  • the audio delivered on Telegram
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Picking the voice engine
Long scripts

⚡ What changes the path

  • Aura voice ignores style direction — pick the right voice instead
  • Gemini fallback obeys style but is slower and rate-limited

 
/Users/agency/.claude/skills/tts/SKILL.md
Drafts a Hungarian contract, ready to sign

Create Contract

Matt needs to draft, redo, or send a client engagement contract (megbízási szerződés).

Draft the contract addendum for Kertújítók

Create Contract

Matt needs to draft, redo, or send a client engagement contract (megbízási szerződés).

▶ Inputs — what it needs

  • client name and what's being contracted
  • the client's existing contract on file, if any
  • real party details (name, address, tax number, bank account)

■ Outputs — what you get

  • a shareable Google Doc review copy
  • a DocuSeal e-signable link
  • optionally a PDF export
Layer 1 · the main flow
Layer 2 · inside the meaty steps
House formatting rules
Two versions, one source
Getting the review copy out
Layer 3 · deepest detail
🔬 Sending it for e-signature

⚡ What changes the path

  • Adding just one clause to an existing contract gets a standalone add-on that references, not restates, the old one
  • Never invent missing party details — always find them in the existing contract first

 
/Users/agency/.claude/skills/create-contract/SKILL.md

Business Ops4

Money, contracts, ads — the running of the business.

Looks up which key, path, or account something uses

House Reference

Matt reaches for it (or it's used on his behalf) whenever a task needs to know where a credential, config, or account fact lives.

which key holds the Notion access?

House Reference

Matt reaches for it (or it's used on his behalf) whenever a task needs to know where a credential, config, or account fact lives.

▶ Inputs — what it needs

  • The service or tool in question
  • The question being asked (key, path, or account)

■ Outputs — what you get

  • The matching credential name and where it's stored
  • The relevant file path
  • The account or workspace to use
  • Any fixed communication default that applies
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Checking the keys table
Checking accounts and comms defaults

⚡ What changes the path

  • If a key isn't in the main table, it's worth checking the shell environment file as a fallback.
  • Email and messaging questions use fixed defaults (like the standard sender address) unless another one is explicitly named.

 
/Users/agency/.claude/skills/house-reference/SKILL.md
Mirrors a live report into the Notion database

Report → Notion

Matt explicitly asks for a deployed HTML report to also live as a page in the master Notion Reports database.

Mirror that review overview into Notion

Report → Notion

Matt explicitly asks for a deployed HTML report to also live as a page in the master Notion Reports database.

▶ Inputs — what it needs

  • path to the report's HTML file
  • its deployed pages.dev link
  • the report type (Review Overview, Changelog, Plan, etc)
  • project/repo name

■ Outputs — what you get

  • a Notion page in the Reports database
  • the live report embedded so diagrams render inline
  • the same content mirrored as Notion blocks
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Avoiding duplicates
Working with the auto-created lean page

⚡ What changes the path

  • No longer auto-chained after other skills — only runs when Matt names it or types the command

 
/Users/agency/.claude/skills/generate-report-html-notion/SKILL.md
Delivers a brief to Dani on 3 channels

Send to Dani

Matt wants to share a summary, link, or brief with his brother/colleague Dani.

Send this update to Dani

Send to Dani

Matt wants to share a summary, link, or brief with his brother/colleague Dani.

▶ Inputs — what it needs

  • the content or topic to share
  • a short slug for the page
  • a 2-3 sentence Hungarian summary

■ Outputs — what you get

  • a hosted HTML summary page
  • an email to Dani with the link
  • a Slack DM to Dani with the link
Layer 1 · the main flow
Layer 2 · inside the meaty steps
The 3 channels run off one page

⚡ What changes the path

  • Never used for private credentials or anything marked confidential

 
/Users/agency/.claude/skills/send-to-dani/SKILL.md
Bill a client, file the PDF, done

Issue an Invoice

Use when Matt needs to issue or cancel a real Hungarian invoice for a client.

Matt types: "Issue an invoice to Acél Műhely Kft. for 350,000 Ft web design, due in 8 days."

Issue an Invoice

Use when Matt needs to issue or cancel a real Hungarian invoice for a client.

▶ Inputs — what it needs

  • Buyer's legal name, address, tax number
  • Line items with quantity and net price
  • Invoice date and payment terms
  • Which entity is the real legal recipient

■ Outputs — what you get

  • Invoice number (szamlaszám)
  • PDF filed in the Számlák Drive folder
  • Shareable Drive link
  • Totals confirmation in chat
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Legal recipient check (the hard gate)
Storno (cancel/void)
Re-invoice pattern (changed terms)
Layer 3 · deepest detail
🔬 Drive filing steps
🔬 Success/failure check

⚡ What changes the path

  • If not ≥96% sure who the legal recipient is, stop and ask before issuing — never guess.
  • Every invoice defaults to AAM (no VAT) unless the user explicitly says this one is VAT-charged.
  • Always paper-based invoices, never e-invoices.
  • An issued invoice can only be undone by a storno, not deleted — irreversible.

 
/Users/agency/.claude/skills/szamlazz-invoice/SKILL.md

Outreach & Leads3

Filling the pipeline.

Turn Google Maps into a contact-rich lead sheet

Scrape Local Business Leads

Use when Matt wants a list of local businesses (or any industry) with owner contact details.

Matt types: "Find 25 roofing contractors in Austin TX and put them in a Google Sheet."

Scrape Local Business Leads

Use when Matt wants a list of local businesses (or any industry) with owner contact details.

▶ Inputs — what it needs

  • Search query (business type + location)
  • Number of leads wanted
  • Existing sheet to append to (optional)
  • Parallel worker count (optional)

■ Outputs — what you get

  • Google Sheet with 36 enriched fields per lead
  • Emails, phones, socials, owner name/title
  • Deduplicated rows (by lead_id)
  • Cost roughly $0.01-0.02 per lead
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Broad industry search mode (non-Maps)
Enrichment fallback
Deduplication
Layer 3 · deepest detail
🔬 Parallel geo-partitioning at 1000+ scale
🔬 Claude extraction detail

⚡ What changes the path

  • Under 1000 leads: run the single-pass pipeline script directly.
  • Complex/ambiguous industries get an extra LLM classification pass before upload.
  • Sites that 403 are skipped gracefully, not retried — enrichment_status records it.
  • Only the Google Sheet URL is the deliverable; .tmp/ JSON is throwaway.

 
/Users/agency/.claude/skills/gmaps-leads/SKILL.md
Draft three A/B-tested cold outreach sequences

Build Cold Email Campaigns

Use when Matt wants new cold email campaigns set up in Instantly for a client.

Matt types: "Create 3 Instantly campaigns for GLABS targeting dental clinics, use these 3 offers."

Build Cold Email Campaigns

Use when Matt wants new cold email campaigns set up in Instantly for a client.

▶ Inputs — what it needs

  • Client name and description
  • Target audience
  • Up to 3 offers (or let it generate them)
  • Social proof / credentials to mention

■ Outputs — what you get

  • 3 draft campaigns in Instantly (never activated)
  • Each with A/B email 1, follow-up, breakup email
  • Campaign IDs and names
  • Nothing sent to any lead
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Email sequence structure
Variable personalization
Human launch gate
Layer 3 · deepest detail
🔬 Dry-run vs live create
🔬 Retry/error handling

⚡ What changes the path

  • If no offers are given, generate 3 distinct ones from the client description.
  • Never activate or send a campaign — that is a human-only action in the Instantly UI.
  • Use --dry_run first as a sanity check before creating for real.
  • Export the client's own Instantly API key first — it's per-client, not shared.

 
/Users/agency/.claude/skills/instantly-campaigns/SKILL.md
Smart draft replies, human decides to send

Draft Auto-Replies to Leads

Use when a lead replies to a cold email campaign and needs a contextual response drafted.

Matt types: "Draft a reply for thread abc123 from the GLABS campaign."

Draft Auto-Replies to Leads

Use when a lead replies to a cold email campaign and needs a contextual response drafted.

▶ Inputs — what it needs

  • Incoming email thread ID
  • Campaign's knowledge base entry (offers, tone)
  • Client's Instantly API key

■ Outputs — what you get

  • A drafted reply preview (not sent)
  • Reply grounded in that campaign's offers/credentials/tone
  • Send only happens on explicit human approval
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Knowledge base lookup
Human send gate

⚡ What changes the path

  • By default this is draft-only — it never sends automatically.
  • Sending requires both AUTOSEND_ENABLED=true in the environment AND approved:true in the payload.
  • Never set the send flags on a lead's behalf — approval must be a real human action.

 
/Users/agency/.claude/skills/instantly-autoreply/SKILL.md

Meta & Skills10

The system that maintains the system.

Packages this chat for the next session to continue

Handoff

Matt reaches for it when wrapping up a conversation that another session or agent will pick up later.

write a handoff, next session will finish the billing page

Handoff

Matt reaches for it when wrapping up a conversation that another session or agent will pick up later.

▶ Inputs — what it needs

  • The current conversation
  • What the next session will focus on, if known
  • Any existing plans, proposals, or tickets

■ Outputs — what you get

  • A saved handoff document
  • A list of skills the next session should use
  • Sensitive details removed
  • Links to existing plans instead of repeated content
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Summarizing the conversation
Redacting sensitive details

⚡ What changes the path

  • If the information already lives in a plan, proposal, or ticket, it links to that instead of copying it in.
  • If Matt describes what the next session is for, the document is tailored to that goal.

 
/Users/agency/.claude/skills/handoff/SKILL.md
Finds exactly where this chat lives on disk

Chat Context Path

Matt reaches for it when he wants the raw file location of the current conversation, e.g. to reference or export it.

where is this conversation stored?

Chat Context Path

Matt reaches for it when he wants the raw file location of the current conversation, e.g. to reference or export it.

▶ Inputs — what it needs

  • The current project folder
  • The list of saved conversation files for this project

■ Outputs — what you get

  • The exact file path to the current conversation
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Matching folder to history
Picking the active conversation

⚡ What changes the path

  • If this folder has no saved conversation history at all, it reports an error instead of guessing.

 
/Users/agency/.claude/skills/chat-context-path/SKILL.md
Matt's signature clarifying-questions format

Ask Me Questions

Whenever Matt needs to decide something fast and only his own judgment calls remain unresolved.

Ask me some questions before you start

Ask Me Questions

Whenever Matt needs to decide something fast and only his own judgment calls remain unresolved.

▶ Inputs — what it needs

  • The current chat and repo context
  • Whatever is already decided or known
  • The genuine open judgment calls
  • Matt's one-letter answers

■ Outputs — what you get

  • A short decided-vs-still-open summary
  • Rounds of starred multiple-choice questions
  • One fun bonus question
  • A one-click letter-answer block
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Deciding what's worth asking
One question, built right

⚡ What changes the path

  • If almost nothing needs Matt, say so and ask only the one or two that do
  • First round stays tight, about 4-6 questions; later rounds follow his answers
  • Always end with the fun bonus question, never dropped

 
/Users/agency/.claude/skills/ask-me-questions/SKILL.md
Bring a messy repo up to the maps standard safely

Restructure Repo

Use when a repo lacks the standard index/status/maps files and needs organizing without breaking anything that already works.

/restructure-repo the old client-portal repo

Restructure Repo

Use when a repo lacks the standard index/status/maps files and needs organizing without breaking anything that already works.

▶ Inputs — what it needs

  • An existing, unconfigured repo
  • Its code/config file references
  • Loose root-level docs and files

■ Outputs — what you get

  • index.md and STATUS.md
  • A maps/ folder with system diagrams
  • Safely-tidied loose files
  • Zero broken references
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Safety check
Additive retrofit

⚡ What changes the path

  • A load-bearing file (referenced by code or config) is never moved or renamed
  • If the repo already has the standard, use maintain-repo instead
  • When in doubt about a file, catalogue it in index.md rather than move it

 
/Users/agency/.claude/skills/restructure-repo/SKILL.md
One-time setup so engineering skills know this repo

Setup Engineering Skills

Run once per repo before first using the triage, to-issues, to-prd, or qa engineering skills.

/setup-matt-pocock-skills

Setup Engineering Skills

Run once per repo before first using the triage, to-issues, to-prd, or qa engineering skills.

▶ Inputs — what it needs

  • The repo's git remote
  • Any existing CLAUDE.md or AGENTS.md
  • Existing CONTEXT.md / docs/adr layout

■ Outputs — what you get

  • docs/agents/issue-tracker.md
  • docs/agents/triage-labels.md
  • docs/agents/domain.md
  • An updated Agent skills section in CLAUDE.md
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Issue tracker choice
Triage labels

⚡ What changes the path

  • Never create AGENTS.md if CLAUDE.md already exists, or vice versa
  • If an Agent skills section already exists, update it in place rather than duplicate it
  • Re-running is only needed to switch issue trackers or start over

 
/Users/agency/.claude/skills/setup-matt-pocock-skills/SKILL.md
Personal tutor building lessons tied to your goal

Teach

Use when Matt wants to learn a new topic or skill over multiple sessions, not get a one-off answer.

/teach teach me enough SQL to debug our funnel data

Teach

Use when Matt wants to learn a new topic or skill over multiple sessions, not get a one-off answer.

▶ Inputs — what it needs

  • Matt's learning goal (the mission)
  • Prior learning records from past sessions
  • Trusted external resources on the topic

■ Outputs — what you get

  • One short HTML lesson per session
  • A reusable reference cheat-sheet
  • A learning record of what stuck
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Finding the right lesson
Building the reference doc

⚡ What changes the path

  • If the mission is unclear, ask why Matt wants to learn this before building any lesson
  • Quizzes never hint at the answer through formatting or length
  • Real-world practice gets pointed at a genuine community, not simulated forever

 
/Users/agency/.claude/skills/teach/SKILL.md
Draft, test, and refine a Claude skill

Build or Improve a Skill

Use when Matt wants to create a new skill from scratch or improve an existing one with real testing.

Matt types: "Turn this workflow we just did into a skill."

Build or Improve a Skill

Use when Matt wants to create a new skill from scratch or improve an existing one with real testing.

▶ Inputs — what it needs

  • Skill idea or existing skill to improve
  • Trigger phrases / when it should fire
  • Expected output format
  • Test prompts (a few realistic examples)

■ Outputs — what you get

  • A SKILL.md draft (+ scripts/references as needed)
  • Test run results (with-skill vs baseline)
  • Benchmark + eval viewer for human review
  • Packaged .skill file when done
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Description optimization loop
Grading & benchmark
Blind comparison (advanced)
Layer 3 · deepest detail
🔬 Eval viewer flow
🔬 Iteration loop detail

⚡ What changes the path

  • Skills with objectively verifiable output get quantitative assertions; subjective ones (style, art) get qualitative review only.
  • Keep iterating until the user says they're happy, feedback comes back empty, or progress stalls.
  • On Claude.ai (no subagents available), skip baseline runs and the browser viewer — review inline instead.

 
/Users/agency/.claude/skills/skill-creator/SKILL.md
The rules that make a skill predictable

Skill-Writing Principles

Use when editing or reviewing a skill's wording to make it leaner and more reliable.

Matt types: "This skill feels bloated, tighten it up using the writing-great-skills rules."

Skill-Writing Principles

Use when editing or reviewing a skill's wording to make it leaner and more reliable.

▶ Inputs — what it needs

  • An existing skill draft or file
  • Sense of which parts feel bloated or unreliable

■ Outputs — what you get

  • Leaner SKILL.md with clearer steps
  • Reference material pushed to linked files where needed
  • Fewer duplicated or vague instructions
  • A more predictable, consistently-triggering skill
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Invocation choice
When to split a skill
Failure mode checklist

⚡ What changes the path

  • If a skill only ever fires by hand, make it user-invoked to save context load every session.
  • Split a skill by sequence when later steps tempt the agent to rush the current one.
  • Delete any sentence that fails the no-op test — one the model would already do by default.

 
/Users/agency/.claude/skills/writing-great-skills/SKILL.md
Fewest characters, full signal, every prompt

Write Lean Prompts

Use before writing any prompt for a model — a subagent task, tool input, or instructions for another AI.

Matt types: "Tighten this subagent prompt before you send it."

Write Lean Prompts

Use before writing any prompt for a model — a subagent task, tool input, or instructions for another AI.

▶ Inputs — what it needs

  • A draft prompt or instruction meant for a model
  • The outcome that prompt needs to produce

■ Outputs — what you get

  • A shorter, sharper prompt with the same intent
  • One concrete example replacing vague description
  • Positive instructions instead of prohibitions
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Self-check before sending
Shape to reach for

⚡ What changes the path

  • Applies to prompts aimed at models — subagents, tools, skills — not to human-facing chat replies or docs.
  • Use negatives only for hard constraints, always paired with the positive directive.
  • If the desired output format isn't unambiguous from one read, add one concrete example.

 
/Users/agency/.claude/skills/prompt-economy/SKILL.md
Sonnet by default, Opus only when it earns it

Which Model & Effort to Use

Use when unsure whether to escalate to Opus or which effort level fits the task.

Matt types: "/model-help"

Which Model & Effort to Use

Use when unsure whether to escalate to Opus or which effort level fits the task.

▶ Inputs — what it needs

  • A task Matt is about to hand to Claude
  • How novel, risky, or ambiguous that task is

■ Outputs — what you get

  • Printed decision sheet (verbatim)
  • A model choice: Sonnet (default) or Opus (escalate)
  • An effort level: xhigh / medium / low
  • Session-hygiene reminders (/clear, /finish-session)
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Escalate to Opus checklist
Effort dial
Golden rules / session hygiene

⚡ What changes the path

  • Escalate to Opus only when 2+ escalation criteria are true; otherwise Sonnet stays the default.
  • Never change model or effort mid-task — only at a /clear boundary, or it rebuilds the cache.
  • Browser/screenshot work always routes to browser-qa-runner, never piled into main context.

 
/Users/agency/.claude/skills/model-help/SKILL.md

Automatic Hooks7

These fire on their own. You never type them — that's the point.

Loads context before you type anything

Session-Start Briefing

Fires the instant a new Claude Code session opens in a project.

(automatic — nothing to type)

Session-Start Briefing

Fires the instant a new Claude Code session opens in a project.

▶ Inputs — what it needs

  • The project's git state
  • PROJECT_STATE.md
  • Newest CHANGELOG entry
  • The project's registry card

■ Outputs — what you get

  • A short 'you are here' briefing printed at session start
  • Clean repos get pulled automatically
Layer 1 · the main flow
Layer 2 · inside the meaty steps
What the briefing contains

⚡ What changes the path

  • Runs on every session start, no exceptions
  • Only pulls from git when the working tree is clean

 
/Users/agency/.claude/skills/start-session/SKILL.md
Nags if changes go undocumented

Changelog Guard

Fires when a session ends (Stop) after files were edited but the changelog wasn't touched.

(automatic — nothing to type)

Changelog Guard

Fires when a session ends (Stop) after files were edited but the changelog wasn't touched.

▶ Inputs — what it needs

  • Which files were edited this session
  • Whether CHANGELOG.md/PROJECT_STATE.md were among them
  • Whether the repo keeps a changelog at all

■ Outputs — what you get

  • A gentle on-screen reminder to run the changelog skill
  • Never blocks or stops the session
Layer 1 · the main flow
Layer 2 · inside the meaty steps

⚡ What changes the path

  • Skips silently in repos with no changelog
  • Skips silently if changelog was already updated
  • Never blocks ending the session either way

 
/Users/agency/.claude/hooks/changelog-guard.py
Keeps the project's memory of past chats current

Chat History Graph Refresh

Fires every time a session ends, quietly re-indexing what was discussed.

python3 ~/.claude/skills/set-up-claude-chat-history-graph/scripts/query.py "<question>" --project <cwd>

Chat History Graph Refresh

Fires every time a session ends, quietly re-indexing what was discussed.

▶ Inputs — what it needs

  • The just-finished conversation transcript
  • The project's existing chat-history graph

■ Outputs — what you get

  • An updated knowledge graph of decisions and discussions
  • Queryable answers to 'what did we decide about X'
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Full rebuild vs quick update

⚡ What changes the path

  • Runs unconditionally on every Stop
  • Fails silently if the extractor errors — never interrupts the session

 
/Users/agency/.claude/skills/set-up-claude-chat-history-graph/SKILL.md
Makes sure reviewable pages actually get shown

HTML Review Guard

Fires at session end and checks for any HTML file written or edited that hasn't been opened yet.

(automatic — nothing to type)

HTML Review Guard

Fires at session end and checks for any HTML file written or edited that hasn't been opened yet.

▶ Inputs — what it needs

  • HTML files written/edited during the session
  • Whether each one is 'reviewable' (a mockup, report, dashboard) vs internal build output

■ Outputs — what you get

  • The file served on localhost
  • It opens automatically in the browser
  • A note confirming what was opened
Layer 1 · the main flow
Layer 2 · inside the meaty steps
Reviewable vs technical HTML

⚡ What changes the path

  • Skips files already opened earlier in the same session
  • Ignores internal/technical HTML (maps, coverage, build artifacts)

 
/Users/agency/.claude/hooks/html-review-guard.py
Forces the signature question format

Ask-Me-Questions Format Enforcer

Fires the moment you type something inviting Claude to ask you questions before building.

(automatic — nothing to type; triggers on phrases like 'ask me some questions first')

Ask-Me-Questions Format Enforcer

Fires the moment you type something inviting Claude to ask you questions before building.

▶ Inputs — what it needs

  • Your typed prompt
  • Whether it matches an 'ask me' pattern
  • Whether it's really about asking someone else instead

■ Outputs — what you get

  • An injected reminder forcing the rich lettered-options format
  • Prevents Claude from defaulting to a plain bullet list
Layer 1 · the main flow
Layer 2 · inside the meaty steps

⚡ What changes the path

  • Only fires on genuine invitations to question YOU, not a third party
  • Skipped for /deep-clarify, grilling, or 'don't ask' phrasing

 
/Users/agency/.claude/hooks/ask-me-questions-trigger.py
Pings you when Claude finishes or needs you

Desktop Notification

Fires every time a turn ends, and again whenever Claude is blocked waiting on you.

(automatic — nothing to type)

Desktop Notification

Fires every time a turn ends, and again whenever Claude is blocked waiting on you.

▶ Inputs — what it needs

  • Turn completion event
  • Whether Claude is waiting on input

■ Outputs — what you get

  • A macOS notification banner
  • A sound cue when input is specifically needed
Layer 1 · the main flow
Layer 2 · inside the meaty steps

⚡ What changes the path

  • Fires on every Stop, no filtering
  • Fires again on Notification events specifically when input is needed

 
/Users/agency/.claude/settings.json
Background rules that run without being asked

Standing Global Rules

Apply continuously in the background across every task — not a single trigger, a constant baseline.

(automatic — nothing to type; governs how every task wraps up)

Standing Global Rules

Apply continuously in the background across every task — not a single trigger, a constant baseline.

▶ Inputs — what it needs

  • Every file change made during a task
  • The project's PROFILE (client vs product)
  • Whether QA/tests have passed
  • Whether secrets might be present in changed files

■ Outputs — what you get

  • A commit after each finished task, with clear message
  • For QA-approved product work: pushed, merged, deployed, and verified live
  • A branch instead of a commit on main when needed
  • A block if a likely secret is caught before commit
Layer 1 · the main flow
Layer 2 · inside the meaty steps
PROFILE client vs product
QA-gated auto-ship

⚡ What changes the path

  • Never commits directly to main/master — branches first
  • Never ships to production without a green QA gate
  • Secret scan blocks the commit if a likely credential is detected
  • A 'deploy succeeded' log is not enough — production must be checked live

 
/Users/agency/.claude/CLAUDE.md