distill
Skill12 starsChanged 56 days agoMITView on GitHub
Turns a vague software request into a compact implementation brief with actors, triggers, preconditions, behavior, failures, permissions, data effects, edge cases, and observable acceptance conditions. Use before planning when product intent or scope is ambiguous.
75 other projects use a version of this.
Adopted by
Most recently taken up by
- venhdev/skillstheir own version, first seen Nov 8, 2026
- kylehughes/distillation-for-agentstheir own version, first seen Nov 8, 2026
- komluk/scaffoldingtheir own version, first seen Nov 7, 2026
- Integralist/agent-skillstheir own version, first seen Nov 6, 2026
- theexperiencecompany/gaiatheir own version, first seen Nov 3, 2026
- JHostalek/dotclaudetheir own version, first seen Nov 1, 2026
Used with
Projects with it also use layout, shape and 8 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
owshq-mecSkilllayout
Improve layout, spacing, and visual rhythm. Fixes monotonous grids, inconsistent spacing, and weak visual hierarchy. Use when the user mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.
Also in 8 projects that use this
HAR5HA-7663Skillshape
Plan the UX and UI for a feature before writing code. Runs a structured discovery interview, then produces a design brief that guides implementation. Use during the planning phase to establish design direction, constraints, and strategy before any code is written.
Also in 11 projects that use this
ReScienceLabSkillarchive
Archive session learnings, debugging solutions, and deployment logs to .archive/yyyy-mm-dd/ as indexed markdown with searchable tags. Use when completing a significant task, resolving a tricky bug, deploying, or when the user says \"archive this\". Maintains .archive/MEMORY.md index for cross-session knowledge reuse.
Also in 3 projects that use this
klauswgSkillckm:design-system
Token architecture, component specifications, and slide generation. Three-layer tokens (primitive→semantic→component), CSS variables, spacing/typography scales, component specs, strategic slide creation. Use for design tokens, systematic design, brand-compliant presentations.
Also in 3 projects that use this
iovisorSkillevolve
Evolve uBPF through a gated spec-first workflow that propagates approved changes through requirements, design, validation, implementation, and RFC alignment artifacts.
Also in 3 projects that use this
bidodevSkilldevils-advocate
Challenges decisions, plans, and code by systematically arguing the opposing side. Surfaces risks, pokes holes in assumptions, and stress-tests thinking before committing. Supports intensity levels (gentle, balanced, ruthless, linus) and works with conversation context or a specific file reference. Trigger on requests like "challenge this", "poke holes", "what could go wrong", "play devil's advocate", "linus mode", or "/devils-advocate".
Also in 3 projects that use this
Other versions75 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 75
- talesofai/cohub★ 585same name
- juxt/allium★ 506same name
- educlopez/ui-craft★ 441same name
- Michaelliv/napkin★ 428same name
- nexmoe/DayBee★ 424same name
- nexmoe/eve★ 424same name
- Southclaws/storyden★ 348same name
- 10xChengTu/Mux0★ 337same name
- theexperiencecompany/gaia★ 325same name
- AkaraChen/aghub★ 271same name
65 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository28 other files it gives its agents.
- AGENTS.mdAGENTS.md
- backendSkill
- blueprintSkill
- clearedSkill
- conciergeSkill
- dittoSkill
- findableSkill
- frictionSkill
- frontpageSkill
- frugalSkill
- handsfreeSkill
- hardenSkill
- headroomSkill
- hotpathSkill
- hotseatSkill
- janitorSkill
- masterplanSkill
- pilotSkill
- polishSkill
- proofSkill
- recallSkill
- refereeSkill
- roadtestSkill
- runwaySkill
- scoutSkill
- sleuthSkill
- spelunkSkill
- unslopSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. 0 are common, 15 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 71 edited versions we read keep these.
15
Distinctive
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 46
Never infer permission to delete data, break a public contract, change pricing, send external communication, access production data, spend …
- Distinctive: line 58
Write observable requirements as behavior under conditions:
- Distinctive: line 97
Before drafting a single question, confirm the surfaces the brief touches actually exist: the page/module named, the data involved, the …
- Distinctive: line 115
Ask only blocking questions, max 5, in one batch.
- Very specific: line 121
Use the template in references/brief-template.md (it includes a filled example).
- Distinctive: line 144
If the user authorized implementation and no material decision remains, proceed within that scope.
- Very specific: line 150
Read the finished brief as an implementer with no conversation history and apply the review in references/brief-template.md …
- Distinctive: line 154
If a missing item would change implementation substantially, ask the compact question batch or return a conditional brief.
- Distinctive: line 168
Mid-implementation scope change: update the goal, scope, non-goals, affected acceptance criteria, and assumptions together.
- Distinctive: line 171
Approval-bound action: stop at a precise decision/authorization request.
- Distinctive: line 176
Every line must remove ambiguity or it gets deleted.
- Distinctive: line 177
No restating general knowledge ("React is a component library"): the reader is a coding agent, not a student.
- Distinctive: line 179
No invented requirements the user never implied.
- Distinctive: line 181
Stop when the brief removes implementation-blocking ambiguity.
- Distinctive: line 187
Ask only when alternatives materially change behavior, data, permissions, or risk.
- Distinctive: line 194
Every agent-executable specification is objectively checkable by another agent without human intervention.
- Distinctive: line 225
Read references/research.md when a decision depends on an external standard, a numerical claim, or a fast-moving practice.
“Common” is measured: kept by at least 6 in 10 of the 71 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
distill: weak request in, sharp brief out
A great brief removes ambiguity. It does not add volume. Your output should be executable by a weaker model without access to this conversation: every fact it needs is on the page, and nothing on the page is filler.
When to use
- "bro add dashboard make it good"
- "turn this rambling into a proper spec for the agent"
- "spec this typo fix, and keep it tiny, no enterprise ceremony"
When NOT to use
- The user asks whether to pursue an idea or choose between products →
hotseat. An uncritiqued idea alone does not require debate. - The request is already precise → the current owner can execute it; use
masterplanonly when complexity warrants planning. - The task is a small mechanical fix ("rename this variable") → just do it.
Prerequisites
The triggering request. A quick look at the repository for context (what
exists, what conventions apply): lighter than a spelunk pass; read only
what the request names or obviously touches.
Evidence, authority, and assumption model
Distill clarifies intent; it does not silently become a product owner, architect, security approver, or implementation agent. Separate all brief content into these classes:
| Class | Meaning | Treatment |
| Confirmed fact | user statement or observed repository evidence | cite compactly |
| Constraint | explicit requirement, policy, compatibility, budget, or authority limit | preserve verbatim when material |
| Assumption | reasonable choice that does not need user input yet | number it and make it falsifiable |
| Open decision | plausible answers materially change outcome | ask or route to hotseat |
| Suggestion | non-binding improvement beyond the request | isolate; never smuggle into scope |
Never infer permission to delete data, break a public contract, change pricing, send external communication, access production data, spend money, or deploy. Those are explicit approval boundaries in the brief when relevant.
Brief decision framework
Distill only the ambiguity that matters to a downstream implementer. For each candidate detail, ask: does an alternative change user outcome, scope, data, permission, compatibility, risk, verification, cost, or release behavior? If not, omit it or make a narrow assumption. If yes, decide it, ask it, or record it as a deliberately unresolved decision with a safe discovery step.
Write observable requirements as behavior under conditions:
| Situation | Requirement form (EARS: While, optional; When, optional; system; shall) |
| Ubiquitous behavior | The system shall <response> |
| Triggered behavior | When <trigger>, the system shall <response> |
| Conditional behavior | While <condition>, the system shall <response> |
| Optional-feature behavior | Where <feature is included>, the system shall <response> |
| Failure/exception | If <failure>, then the system shall <safe response> |
| Prohibition/invariant | The system shall not <forbidden outcome> |
The form is a tool, not a ritual. Pair each material requirement with an oracle: visible result, returned contract, persisted state, log/audit event, or testable absence of a forbidden side effect. "Intuitive", "fast", "secure", and "production-ready" are labels until their observable condition is named.
Scale the brief to the request
| Request type | Brief shape |
| tiny task (button rename, copy fix) | goal + acceptance criterion + where + one-line Non-goals + one numbered assumption (A1:): 7-12 lines, no other ceremony |
| feature | full template below |
| large feature / migration | full template + NFRs, rollout constraints, backward-compatibility and data-migration notes |
| bug/change request | reproduction facts + expected behavior + scope guard (what NOT to fix along the way) |
| greenfield product | full template + target user + success metric; defer tech choices to masterplan unless the user named them |
A brief for a button rename that mentions "non-goals" and "rollout" is enterprise cosplay: match depth to blast radius.
Workflow
1. Extract the goal
Restate the request as one sentence: what will be true after the work that isn't true now, for whom. If you cannot write this sentence, that's a clarifying question, not a brief.
2. Ground in the repo first (lightly)
Before drafting a single question, confirm the surfaces the brief touches actually exist: the page/module named, the data involved, the commands available. Briefs referencing nonexistent files are how hallucinated work starts. Most "ambiguities" die here: what remains is genuinely missing.
3. Ambiguity detection (max 5 questions)
Actively scan the request for linguistic, semantic, and functional ambiguities. List what's genuinely blocking:
- Undefined boundaries ("make it fast" → what is the target metric?)
- Contradictory constraints
- Missing definitions of "good" or failure states
For each candidate question, apply the materiality test: name the two most plausible answers and what each would change about implementation, security, data handling, or UX. If nothing material changes, it is not a question, it becomes an explicit numbered assumption in the brief.
Ask only blocking questions, max 5, in one batch. Anything non-blocking becomes an explicit numbered assumption in the brief. Never run a back-and-forth interrogation.
4. Write the brief
Use the template in references/brief-template.md (it includes a filled
example). Core sections:
- goal (one sentence) + user outcome;
- context: relevant existing pieces, with file paths;
- constraints and conventions to respect;
- scope: what's in;
- non-goals: what's explicitly out (as valuable as scope);
- agent-executable specifications: statements another agent can objectively verify without human judgment;
- edge cases: empty/loading/error/malformed states worth handling;
- non-functional requirements only when they bite (performance budget, accessibility bar, i18n, security constraint): omitted means "nothing beyond the project's existing bar";
- backward compatibility / migration notes when existing data or users are affected;
- UX expectations (only if user-facing);
- verification: how "done" gets proven: which commands must pass, what a human/browser check confirms;
- known unknowns + numbered assumptions.
5. One-pass confirmation
Show the brief with unresolved decisions distinguished from safe assumptions. If the user authorized implementation and no material decision remains, proceed within that scope; a brief is not a new approval gate. If the user requested only requirements, deliver them and stop. Ask only for a load-bearing answer.
6. Run the implementation-readiness review
Read the finished brief as an implementer with no conversation history and
apply the review in references/brief-template.md (Implementation-readiness
review): every item must pass before the brief ships.
If a missing item would change implementation substantially, ask the compact question batch or return a conditional brief. Do not conceal ambiguity in polished prose.
Failure handling and scope change
- Conflicting user statements: quote the conflict neutrally and ask for the decision; do not choose the more convenient interpretation.
- Repository contradicts request: preserve the request, report the observed conflict and path, then offer a revised scope or discovery task.
- Unsettled product tradeoff: frame options, consequences, and evidence needed; route to hotseat instead of pretending it is a requirement.
- Insufficient repository access: emit a provisional brief with every path/command marked assumption, then name the minimum inspection needed.
- Mid-implementation scope change: update the goal, scope, non-goals, affected acceptance criteria, and assumptions together. Do not patch only a task line while leaving the original definition of done misleading.
- Approval-bound action: stop at a precise decision/authorization request. The brief may specify preparation but not authorize execution.
Anti-bloat rules
- Every line must remove ambiguity or it gets deleted.
- No restating general knowledge ("React is a component library"): the reader is a coding agent, not a student.
- No invented requirements the user never implied. Suggestions go in a clearly marked non-binding suggestions list.
- Stop when the brief removes implementation-blocking ambiguity; brevity is a quality signal, not a fixed line target.
Tool selection / fallback
- Repository artifacts and the user's words outrank generic templates.
- Ask only when alternatives materially change behavior, data, permissions, or risk.
- Without repository access, produce a provisional brief and label path or command assumptions.
Quality gates
- A reader who never saw this chat could implement without guessing on scope: test your draft against this before showing it.
- Every agent-executable specification is objectively checkable by another agent without human intervention.
- The verification section names real commands/checks (that exist in this repo or are standard).
- Assumptions are numbered and falsifiable ("A1: single-user, no roles").
- Marker floor (applies at every scale, including compact briefs): the
brief contains a literal
Non-goalsline and at least one numbered assumption (A1:), even if each is a single line. A brief without these markers is incomplete, not concise. - Auth-bites rule: when the request touches login, identity, per-user data, sessions, tokens, passwords, or money, the brief names that surface explicitly (one line suffices, e.g. under Scope or NFRs). Omitting it because the brief is short is a miss, not brevity.
Stop conditions
- Brief removes blocking ambiguity → deliver for a requirements-only request;
otherwise continue the already-authorized next action. Use
masterplanonly when the implementation needs it. - The request reveals an unsettled product decision → stop and route back
to
hotseatfor that decision.
Output contract
In chat: the brief. On disk (when the task will span sessions or feed
planning): docs/briefs/<slug>.md with provenance header
(<!-- generated by distill on YYYY-MM-DD -->).
<slug>: short kebab-case text derived from the task title.
Research basis
Read references/research.md when a decision depends on an external standard, a numerical claim, or a fast-moving practice. The ledger records what the source supports, what it does not support, and when to reverify.
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.

