the-hat
Skill147 starsChanged 23 days agoMITView on GitHub
Compare design alternatives with a hat → metrics → tier-list loop, splitting composing layers and keeping a living note. Use when there are multiple ways to solve a design problem, the user says "throw it in the hat" or "/the-hat", asks for a tier list, design eval, or composing layers/dimensions, or when options look like they compose rather than compete — even if they have not named this skill.
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 4 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
When several ways exist to solve a design problem, do not vibe-rank in chat.
- Very specific: line 14
If the problem itself is still mushy, grill first (grill-me / grill-with-docs), then come back here to score options.
- Distinctive: line 19
Split composing layers: if “solutions” are not the same kind of thing.
- Very specific: line 30
Write or update a repo file (typically docs/<topic>.md).
- Distinctive: line 44
If two options are not substitutes, they are layers, not rivals.
- Distinctive: line 60
Do not copy a prior eval’s *decision* into a new problem.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
The hat
When several ways exist to solve a design problem, do not vibe-rank in chat. Run this loop and leave the artifacts in a living note (repo file, not a premature ADR).
Worked example of a hat loop later promoted to an ADR: #1564 / #1570 became ADR 0025. Copy headings from NOTE-TEMPLATE.md.
If the problem itself is still mushy, grill first (grill-me / grill-with-docs), then come back here to score options.
Loop
- Name the problem — what must be true when we are done, not the first idea that showed up.
- Split composing layers if “solutions” are not the same kind of thing. Layers are dimensions that compose, not rivals in one list (how you type a callback vs where the wrapper lives). Do not flatten them into one false choice.
- Put every option in the hat, including already-rejected and out-of-scope ones, so they get scored instead of silently returning.
- Pick metrics that match the pain. Invent what fits (honesty, tax fairness, simplicity, DRY, composability, vendor neutrality, footguns, elegance, teachability, maintenance hell).
- Evaluate each hat item against those metrics in prose. A table is welcome for a close call; a vibe ranking with no scores is not.
- Tier list (S / A / B / C / D, plus E if needed). S is the default story. A is optional tuck-away or distribution, not a blocker. A complete answer may be a stack (one pick per layer), not a single winner.
- Show usage for S and A across each real use case so the ranking is not abstract.
- Keep a living note. New ideas get slotted; do not restart the write-up.
- Do not ship A-tier extras that are not needed to close the current change.
Living note
Write or update a repo file (typically docs/<topic>.md). Not chat-only. Not an ADR until the decision is hard to reverse, surprising without context, and the result of a real trade-off.
The note must contain:
- Problem statement
- Layer map — orthogonal dimensions; items on different layers compose
- The hat — numbered inventory of every option, grouped by layer (
A1,B1, …) - Metrics — named, with the question each one asks
- Evaluation — each hat item scored in prose against the metrics
- Tier list — S through D (or E), including stacks where layers combine
- S/A usage — concrete code (or equivalent) per real use case
Layers vs a false choice
If two options are not substitutes, they are layers, not rivals.
False choice: “inline helper vs typed callback vs CLI recipe.”
Layers:
- Typing — what is the callback parameter?
- Placement — where does the wrapper live?
S can be a stack (one pick per layer). Rank stacks as answers to the whole problem.
Rules
- Rejected and out-of-scope options stay in the hat and get scored. Silent return is how bad ideas come back next week.
- S is what you ship now. A is optional. Do not block the change on A.
- Slot new ideas into the existing note. Do not rewrite from scratch.
- Do not copy a prior eval’s decision into a new problem. Copy the shape.
In this repository40 other files it gives its agents.
- .agents/AGENTS.mdAGENTS.md
- AGENTS.mdAGENTS.md
- skills/typescript/AGENTS.mdAGENTS.md
- .agents/platforms/copilot-instructions.mdCopilot instructions
- arkenvSkill
- bulletproof-reactSkill
- changesetSkill
- code-reviewSkill
- create-skillSkill
- diagnoseSkill
- docs-writerSkill
- excalidrawSkill
- forward-portSkill
- gh-cliSkill
- grill-meSkill
- grill-with-docsSkill
- groom-issueSkill
- hallmarkSkill
- hexagonal-architectureSkill
- improve-codebase-architectureSkill
- internalize-skillSkill
- jsdocSkill
- modularizeSkill
- next-best-practicesSkill
- nuxtSkill
- pnpmSkill
- point-latest-at-rcSkill
- rename-skillSkill
- setup-matt-pocock-skillsSkill
- sync-mainSkill
- tackle-issueSkill
- tddSkill
- the-voiceSkill
- to-prdSkill
- triageSkill
- turborepoSkill
- typescriptSkill
- write-a-skillSkill
- write-issueSkill
- zoom-outSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

