documentation-and-adrs
Skill1 starsChanged 2 months agoMITView on GitHub
Record the why — the next `ADR-<NNN>` carrying each rejected alternative and the reason it lost, plus the README, changelog, API docs, doc comments and inline gotchas around it. Reach for a hard-to-reverse decision, a public surface, or a shipped behaviour needing a durable record. Grilling the decision out is `spec-grilling`'s; `architecture.md`, `architecture-design`'s.
68 other projects use a version of this.
Adopted by
Most recently taken up by
- ishandutta2007/Awesome-Agent-Skillstheir own version, first seen Nov 8, 2026
- MMACABRE/SKILLStheir own version, first seen Nov 8, 2026
- Rvey/agent-engineering-kittheir own version, first seen Nov 2, 2026
- steven123397/nexuskit-skillstheir own version, first seen Nov 1, 2026
- AgnesAI-Labs/agnet-skills-cntheir own version, first seen Nov 1, 2026
- yuusakuri/agent-skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use constraint-driven-development, minimalist-ui and 4 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.
MrCipherSmithSkillconstraint-driven-development
Use when a project needs a persistent, measurable quality bar — starting a project without documented standards, 'set up constraints', or when coverage/perf/a11y thresholds get re-debated per-PR. Produces CONSTRAINTS.md with enforceable numbers, ratchets, and a guard against silent weakening. NOT for throwaway prototypes or a one-off CI setup.
Also in 15 projects that use this
AnasX7Skillminimalist-ui
Clean editorial-style interfaces. Warm monochrome palette, typographic contrast, flat bento grids, muted pastels. No gradients, no heavy shadows.
Also in 3 projects that use this
VercelSkillweb-design-guidelines
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
Also in 4 projects that use this
MicrosoftSkillplaywright-cli
Automate browser interactions, test web pages and work with Playwright tests.
Also in 3 projects that use this
MicrosoftSkillimpeccable
Use when the user wants to design, redesign, shape, critique, audit, polish, simplify, harden, animate, or otherwise improve a frontend interface: websites, landing pages, dashboards, product UI, components, forms, settings, onboarding, empty states, and native iOS or Android screens. Handles UX review, hierarchy, layout, typography, color, motion, UX copy, accessibility, responsive behavior, edge cases, and capturing or documenting design systems (DESIGN.md, tokens). Also for making bland UI bolder, loud UI quieter, or ambitious visual effects. Not for backend-only or non-UI tasks.
Also in 3 projects that use this
OpenAISkillbrainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Also in 4 projects that use this
Other versions68 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 68
- addyosmani/agent-skills★ 114ksame name
- ollaya-dev/ollaya★ 1.4ksame name
- shashankswe2020-ux/whoop-mcp★ 174same name
- muratgur/ordinus★ 111same name
- vinvcn/addyosmani-agent-skills-zh★ 46same name
- jmxt3/gitscape.ai★ 33same name
- sampleXbro/agentsmesh★ 27same name
- jaskirat1616/grok-skills★ 22same name
- ishandutta2007/Awesome-Agent-Skills★ 21same name
- JPeetz/agent-skills★ 14same name
58 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 repository41 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- acceptance-criteriaSkill
- aim-higherSkill
- api-designSkill
- architecture-designSkill
- browser-testing-with-devtoolsSkill
- ci-cdSkill
- codebase-designSkill
- codebase-researchSkill
- code-reviewSkill
- code-simplificationSkill
- comprehension-quizSkill
- debugging-and-error-recoverySkill
- deprecation-and-migrationSkill
- doubt-driven-developmentSkill
- environment-manifestSkill
- gauntlet-loopSkill
- git-workflowSkill
- handoffSkill
- idea-refineSkill
- incremental-implementationSkill
- interview-meSkill
- literate-explainerSkill
- observability-and-instrumentationSkill
- orchestratorSkill
- performance-optimizationSkill
- plan-breakdownSkill
- preflight-readinessSkill
- project-setupSkill
- pull-requestSkill
- quality-verificationSkill
- security-and-hardeningSkill
- shipping-and-launchSkill
- source-driven-developmentSkill
- spec-grillingSkill
- spec-reviewSkill
- test-driven-developmentSkill
- to-prdSkill
- using-agent-skillsSkill
- worktreeSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 62 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 52
Put the decision through the three legs — hard to reverse, surprising without its context, a real trade-off — before writing anything: a …
- Distinctive: line 61
Write to what a stranger needs: the constraints in force, the decision, each rejected alternative with what it cost and why that cost lost, …
- Distinctive: line 72
Document a public surface where its types are — parameters, return, what it throws, one worked example — and an HTTP route as OpenAPI …
- Distinctive: line 75
Keep the entry doors current: the README, the changelog, and the conventions in CLAUDE.md or AGENTS.md, each to the shape below.
- Very specific: line 78
Keep values out of what you write — a key or connection string in a record or a README is a secret in the diff (safety-rails.md).
“Common” is measured: kept by at least 6 in 10 of the 62 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
Documentation and ADRs
Purpose
Stage: cross-cutting. Principles 5, 6, 7, 9.
The repository's record standard — what earns an ADR-<NNN>, what that record carries, and how the
README, doc comments and gotchas around it stay true. The caller supplies the decision; this supplies
the form. Code shows what was built; the record is where the reasoning that produced it survives.
When to use / when to skip
- A decision hard to reverse, surprising without its context, and a real trade-off — three legs together; a choice missing one earns no record.
- An accepted record overtaken, with
docs/adr/still reading as though it holds. - A public surface moved — an exported signature, an HTTP route, a shipped behaviour — or a gotcha that has cost two people an afternoon each.
- Someone asks for "the docs" and names nothing: the repository says what is undocumented (Inputs).
- The same thing explained three times, or an agent re-deciding something settled.
- Skip obvious code, a comment that would restate it, a throwaway prototype.
- Near-misses: grilling the decision out is
spec-grilling's, which takes the form from here;architecture.mdisarchitecture-design's; the runbook,shipping-and-launch's; the PR body,pull-request's.
Inputs
- The decision, surface or feature recorded — helps: it is the content, and this supplies only the
form · without it: read the diff, the commits and the code for what is concrete and undocumented,
name what you took and why, mark it
derived docs/adr/— helps: the highest number there is your<NNN>, and an overtaken record is the one you supersede · without it: begin atADR-001from the template belowCONTEXT.md's## Glossary— helps: the domain's words come back verbatim · without it: use the words the code andintent.mduse, and coin noneprd.md,intent.md, the touched code — helps: the constraint the decision serves, and the Not-Doing line a record may not quietly cross · without it: read the commits and the code, marking reconstructed reasoningderived- With a person present, at most three questions, each where the gap changes what gets recorded.
Process
Ordered by leverage; one job rarely touches them all.
- Name what is being recorded, then pick the instrument: a record for a decision, an inline
whyfor a gotcha, a doc comment for a signature, the README for running the thing, the changelog for what shipped,CLAUDE.md/AGENTS.mdfor the conventions an agent reads cold. - Put the decision through the three legs — hard to reverse, surprising without its context, a real trade-off — before writing anything: a record for a reversible choice teaches the next reader to skip the directory, and the one that mattered goes unread with it.
- Take the next number from the highest already in
docs/adr/, and write the record to the template below; wheredocs/adr/already uses another shape, follow the template and say so in the return. Records are repo-wide and sequential; a per-feature one, or one pasted intoprd.md, leaves two directories of truth. - Write to what a stranger needs: the constraints in force, the decision, each rejected alternative with what it cost and why that cost lost, and what the repository now lives with. Hold it at the altitude of the decision — no signature, no line number, nothing that moves when the code moves.
- Supersede an accepted record instead of editing one: flip the old
## StatustoSuperseded by ADR-<NNN>, link the two both ways, and move every referrer —prd.md, sibling records, a PR body — in the same commit. - Comment the why, never the what: a gotcha where it bites, pointing at the record for the whole
reason. A
TODOfor work you can do now is the work; commented-out code is git's job. - Document a public surface where its types are — parameters, return, what it throws, one worked example — and an HTTP route as OpenAPI beside it: request schema, response schemas, error codes.
- Keep the entry doors current: the README, the changelog, and the conventions in
CLAUDE.mdorAGENTS.md, each to the shape below. - Keep values out of what you write — a key or connection string in a record or a README is a secret
in the diff (
safety-rails.md); name the kind and point atenvironment.md. Take the domain's words fromCONTEXT.mdverbatim, coining one only where the decision does.
Rationalizations
- "The code is self-documenting." → Code shows what. The constraint in force and the alternative that lost are nowhere in it.
- "Comments get outdated." → A comment on why is stable; the one that rots restates the line beneath it.
- "I'll correct the old record, it's tidier." → An edit erases the reasoning the record existed to hold, and the next reader cannot tell anything is gone.
- "ADRs are overhead." → Ten minutes now against the same argument re-run six months on, by people without the constraints in front of them.
- "Nobody reads docs." → Agents read them cold, and re-decide whatever nothing records.
- "Nothing concrete was named." → The diff, the commits and the public surfaces name it.
Red flags
- An architectural decision with no written rationale and nobody left who can supply one
## Alternatives Consideredholding names without reasons- An accepted record corrected in place, its earlier reasoning now unreadable
- A README that cannot get a new contributor to a passing test
TODOs older than the branch they were written on; commented-out code kept "just in case"- A comment restating the line beneath it; a record carrying a file path or a line number
Verification
- Every record written clears all three legs; nothing that failed one got a file.
- Each record's number follows the highest in
docs/adr/, its slug is lowercase-hyphenated, its sections are the template's, in that order. - Each rejected alternative names why it lost, not merely that it was rejected.
- No accepted record's body was edited; a superseded one and its successor name each other, and every referrer moved in the same commit.
- Terms match
CONTEXT.mdverbatim; reasoning reconstructed rather than read is markedderived. - Nothing written carries a secret value, and the README describes today's code.
- Nothing was left as a
TODOfor work now doable or as commented-out code, and each public surface touched carries its parameters, return, what it throws and one example. - Each capped file written is reported against its cap, an over-cap draft as over cap.
Outputs & handoff
| Path | Cap | Shape |
docs/adr/ADR-<NNN>-<slug>.md | 350 words | below — repo-wide, sequential, <slug> lowercase-hyphenated |
CONTEXT.md (repo root) | 1,000 words | the glossary entry spec-grilling states; a term appended only where a decision coins it |
README.md | none | what this is · quick start · a commands table · the architecture in a paragraph pointing at docs/adr/ · contributing |
CHANGELOG.md | none | a section per release: ### Added · ### Fixed · ### Changed, each line in a user's words |
doc comments, OpenAPI, inline why | none | at the file they document, never in a parallel document that drifts |
CLAUDE.md / AGENTS.md | none | conventions prose only; the ## Agent skills block is project-setup's |
docs/session-log.md | 60 words | one entry where a default was taken with nobody there to confirm it (state-schema.md) |
# ADR-<NNN>: <the decision, as a sentence>
## Status
Accepted <!-- Proposed → Accepted → Superseded by ADR-<MMM>, or Deprecated -->
## Date
<YYYY-MM-DD>
## Context
The constraints in force when it was taken.
## Decision
What was chosen, present tense.
## Alternatives Considered
### <the runner-up>
- Rejected: <what it cost, and why that cost lost>
## Consequences
What the repository now lives with — what it buys, what it charges.to-prd, spec-review and pull-request cite a record by id and open it rather than restate its
reasoning, so a renamed section moves under them in the same commit or not at all.
Returned in conversation: which instrument each surface got, what was derived, and each file's
measured size against its cap. No verdict, and no STATE.md row — this skill moves no slice, and the caller owns the
transition (state-schema.md).
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.

