Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Write, structure, and maintain all forms of technical documentation — READMEs, API docs, runbooks, architecture decision records (ADRs), changelogs, onboarding guides, and user manuals. Use when the user asks to write or improve documentation, create a README, document an API, write a runbook, produce a changelog, or says "write the docs for this".
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 84% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 115% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 112% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 80% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 215% | 0% |
Approach every documentation task as a senior engineer who has joined a new team and could not figure out how to run the project from the existing docs. Write the documentation that would have saved you three hours on your first day.
Documentation is not a formality. It is the interface between your system and the humans who must use, operate, and extend it. Bad documentation costs real time — onboarding time, debugging time, support time. Good documentation compounds: every hour spent writing saves ten hours across the team.
Every piece of documentation you write falls into exactly one of these four types. Determine the type before writing.
| Type | Question it answers | Audience mindset | Example | |------|--------------------|--------------------|---------| | Tutorial | How do I learn this? | I am new and want to succeed at something | "Build your first API in 10 minutes" | | How-To | How do I do X? | I know what I want; guide me | "How to deploy to production" | | Reference | What is X? | I need to look up a specific detail | API endpoint reference, CLI flag reference | | Explanation | Why does X work this way? | I want to understand the design | "Why we chose event-sourcing" |
Never mix types in one document. A tutorial that stops to explain architecture theory loses the learner. A reference that tries to be a tutorial confuses the expert looking up a flag.
The README is the front door of your project. It must be scannable in 30 seconds and answer: what is this, why would I care, and how do I get started.
markdown# Project Name > One sentence description. What it does and for whom. ## What it does 2–4 sentences. The problem it solves. Why it exists. Include a screenshot or demo GIF if this has a UI. ## Quick start The shortest possible path from zero to working. Must complete in under 5 minutes for a new developer.
npm install -g mytool
mytool --help
## Documentation
Link to full docs. Don't duplicate them here.
## Development
How to set up the development environment locally.
How to run tests. How to run linting.
## Contributing
How to submit a PR. Coding standards. Review process.
## License
SPDX identifier + link to LICENSE file.README rules:
Every endpoint must document:
Example endpoint documentation:
markdown## POST /v1/users Create a new user account. **Authentication:** Bearer token required. Scope: `users:write` **Request Body:** | Field | Type | Required | Description | |-------|------|----------|-------------| | name | string | ✅ | Full display name. Max 100 chars. | | email | string | ✅ | Must be unique. Used for login. | | role | enum | ❌ | `ADMIN` or `MEMBER`. Default: `MEMBER` | **Example Request:**
{ "name": "Jane Doe", "email": "jane@example.com", "role": "ADMIN" }
**Responses:**
- `201 Created` — User created successfully
- `400 VALIDATION_ERROR` — One or more fields failed validation
- `409 DUPLICATE_EMAIL` — An account with this email already exists
- `401 UNAUTHORIZED` — Invalid or missing tokenA runbook is a step-by-step guide for operating a system — deploying it, restarting it, responding to alerts. Runbooks are read under pressure, at odd hours, by engineers who did not write the system. Every runbook must be executable by someone who has never touched the system before.
markdown# [System Name] — [Operation] Runbook ## Overview What this runbook covers. When to use it. Time estimate. ## Prerequisites - Access required (VPN, SSH keys, IAM roles) - Tools required (kubectl, awscli, psql) - Environment variables to set before starting ## Steps ### Step 1 — [Action Name] **What this does:** One sentence explaining the action and its effect.
kubectl rollout restart deployment/api-service -n production
**Expected output:**deployment.apps/api-service restarted
**If this fails:** What to check, common errors, where to look for more info.
### Step 2 — Verify healthkubectl get pods -n production -l app=api-service
**Expected:** All pods in `Running` state within 2 minutes.
## Rollback
Exact steps to undo everything this runbook did, in reverse order.
## Escalation
If this runbook fails to resolve the issue: who to contact, in what order.Runbook rules:
<your-cluster-name> without telling the reader exactly where to find the valueAn ADR captures why a significant technical decision was made. Without ADRs, institutional knowledge lives only in the heads of the engineers who were there.
markdown# ADR-0012: Use PostgreSQL for primary data store **Date:** 2026-01-15 **Status:** Accepted **Deciders:** [list of people] ## Context What is the situation that forces a decision? What constraints exist? (e.g., "We need a primary data store for the new billing service. We are a team of 4, deploying on AWS, and need strong ACID guarantees for financial data.") ## Decision What are we doing? (e.g., "We will use Amazon RDS for PostgreSQL as the primary data store.") ## Options Considered | Option | Pros | Cons | |--------|------|------| | PostgreSQL (RDS) | ACID, team familiarity, strong tooling | Not as fast as DynamoDB for pure key-value | | DynamoDB | Serverless, scales to any load | No joins, eventual consistency by default, new to the team | | MySQL (RDS) | Familiar | No JSON operators, weaker window functions | ## Consequences **Positive:** Strong consistency for financial data. Team expertise. Rich query language. **Negative:** We need to manage connection pooling. Vertical scaling limit before sharding needed. **Risks:** Schema migrations require care at scale. Addressed with: automated migration testing in CI. ## Revisit trigger If write throughput exceeds 50K TPS or read latency P99 exceeds 100ms under load.
markdown# Changelog All notable changes to this project will be documented here. Format follows [Keep a Changelog](https://keepachangelog.com/). Versions follow [Semantic Versioning](https://semver.org/). ## [Unreleased] ## [2.1.0] — 2026-01-15 ### Added - User export to CSV endpoint (`GET /v1/users/export`) - Webhook retry with exponential backoff (max 3 attempts) ### Changed - `GET /v1/users` now returns `cursor`-based pagination (previously offset) - Error responses now include `requestId` field ### Deprecated - `offset` and `page` query parameters on `/v1/users` — use `cursor` instead. Will be removed in v3.0. ### Fixed - Orders with zero-value line items no longer fail validation (#342) - Concurrent user updates no longer produce duplicate audit log entries (#361) ### Security - Upgraded `jsonwebtoken` to 9.0.2 (CVE-2022-23529)
Changelog rules:
[Unreleased] section is always present and is the working draft for the next releasebash, json, python)foo, bar, test, or 123Run this whenever code changes ship:
.env.example with commentsDocumentation is not done until:
foo, bar, test)Other measured skills in the registry, with their headline benchmark lift.