
Documentation And Adrs
Capture why behind architecture, APIs, and shipped behavior so future you and coding agents do not re-litigate the same decisions.
Overview
Documentation and ADRs is a journey-wide agent skill that records the why behind significant technical and product decisions—usable whenever a solo builder needs durable context before or after changing the codebase.
Install
npx skills add https://github.com/addyosmani/agent-skills --skill documentation-and-adrsWhat is this skill?
- Teaches when to write Architecture Decision Records versus skipping noise
- Focuses on why, constraints, and trade-offs—not restating obvious code
- Covers framework choice, data models, auth, and API architecture decisions
- Use when shipping user-facing features or changing public APIs
- Explicit anti-pattern: no docs for throwaway prototypes or redundant comments
Adoption & trust: 4.5k installs on skills.sh; 49.1k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You changed architecture or APIs but only the diff remains, so the next engineer or agent cannot tell which options you rejected or why.
Who is it for?
Solo builders maintaining a long-lived SaaS, API, or agent repo who make non-obvious choices and rely on agents for ongoing edits.
Skip if: Throwaway prototypes, trivial refactors, or situations where comments would merely repeat the code line-for-line.
When should I use this skill?
Making architectural decisions, changing public APIs, shipping features, or needing context future engineers and agents will require.
What do I get? / Deliverables
You produce focused ADRs and decision-oriented docs that preserve trade-offs and onboarding context without duplicating what the code already says.
- Architecture Decision Record(s)
- Decision-oriented feature or API documentation
- Onboarding-ready context for agents
Recommended Skills
Journey fit
Useful at every journey phase - explore requirements and options before committing to a direction.
Where it fits
Document auth and data-store options while scoping an MVP so validate choices do not get erased in Build.
Write an ADR when picking ORM versus raw SQL for a new service boundary.
Add a short decision note before merging a public API version bump.
Record launch behavior changes so support and agents know what users should see post-release.
Capture why a hotfix path was chosen during an incident follow-up.
How it compares
Structured decision memory in-repo, not auto-generated API reference dumps or inline comment spam.
Common Questions / FAQ
Who is documentation-and-adrs for?
Indie developers and small teams who want ADR-style documentation that helps humans and coding agents understand past architectural choices.
When should I use documentation-and-adrs?
In Idea/Validate when framing options, in Build when choosing stacks and schemas, in Ship when locking launch behavior, and in Operate when documenting iteration constraints—anytime a significant decision needs a paper trail.
Is documentation-and-adrs safe to install?
It is prose guidance with no inherent cloud access; still review the Security Audits panel on this Prism page before installing any skill into an agent with repository write access.
SKILL.md
READMESKILL.md - Documentation And Adrs
# Documentation and ADRs ## Overview Document decisions, not just code. The most valuable documentation captures the *why* — the context, constraints, and trade-offs that led to a decision. Code shows *what* was built; documentation explains *why it was built this way* and *what alternatives were considered*. This context is essential for future humans and agents working in the codebase. ## When to Use - Making a significant architectural decision - Choosing between competing approaches - Adding or changing a public API - Shipping a feature that changes user-facing behavior - Onboarding new team members (or agents) to the project - When you find yourself explaining the same thing repeatedly **When NOT to use:** Don't document obvious code. Don't add comments that restate what the code already says. Don't write docs for throwaway prototypes. ## Architecture Decision Records (ADRs) ADRs capture the reasoning behind significant technical decisions. They're the highest-value documentation you can write. ### When to Write an ADR - Choosing a framework, library, or major dependency - Designing a data model or database schema - Selecting an authentication strategy - Deciding on an API architecture (REST vs. GraphQL vs. tRPC) - Choosing between build tools, hosting platforms, or infrastructure - Any decision that would be expensive to reverse ### ADR Template Store ADRs in `docs/decisions/` with sequential numbering: ```markdown # ADR-001: Use PostgreSQL for primary database ## Status Accepted | Superseded by ADR-XXX | Deprecated ## Date 2025-01-15 ## Context We need a primary database for the task management application. Key requirements: - Relational data model (users, tasks, teams with relationships) - ACID transactions for task state changes - Support for full-text search on task content - Managed hosting available (for small team, limited ops capacity) ## Decision Use PostgreSQL with Prisma ORM. ## Alternatives Considered ### MongoDB - Pros: Flexible schema, easy to start with - Cons: Our data is inherently relational; would need to manage relationships manually - Rejected: Relational data in a document store leads to complex joins or data duplication ### SQLite - Pros: Zero configuration, embedded, fast for reads - Cons: Limited concurrent write support, no managed hosting for production - Rejected: Not suitable for multi-user web application in production ### MySQL - Pros: Mature, widely supported - Cons: PostgreSQL has better JSON support, full-text search, and ecosystem tooling - Rejected: PostgreSQL is the better fit for our feature requirements ## Consequences - Prisma provides type-safe database access and migration management - We can use PostgreSQL's full-text search instead of adding Elasticsearch - Team needs PostgreSQL knowledge (standard skill, low risk) - Hosting on managed service (Supabase, Neon, or RDS) ``` ### ADR Lifecycle ``` PROPOSED → ACCEPTED → (SUPERSEDED or DEPRECATED) ``` - **Don't delete old ADRs.** They capture historical context. - When a decision changes, write a new ADR that references and supersedes the old one. ## Inline Documentation ### When to Comment Comment the *why*, not the *what*: ```typescript // BAD: Restates the code // Increment counter by 1 counter += 1; // GOOD: Explains non-obvious intent // Rate limit uses a sliding window — reset counter at window boundary, // not on a fixed schedule, to prevent burst attacks at window edges if (now - windowStart > WINDOW_SIZE_MS) { counter = 0; windowStart = now; } ``` ### When NOT to Comment ```typescript // Don't comment self-explanatory code function calculateTotal(items: CartItem[]): number { return items.reduce((sum, item) => sum + it