Altitude docs
A method for writing and polishing documentation so every page reads like it was
written by one careful author: it opens at the right height, descends from
plain-language orientation to concrete detail in order, hands the reader on
cleanly, and reaches for a component only when the component earns its place.
The core idea is altitude: a controlled descent through fixed bands, from
"why this exists" down to "the exact edge case". Each kind of page is allowed a
different range — a tutorial stays high, a reference page sits low.
This skill governs how a page is built, not what is true. Every API name,
symbol and behavior is verified against the current repository — see the
accuracy rules in references/contracts.md.
Two modes:
- Author — a page does not exist yet. Run the full procedure from step 1.
- Polish — a page exists. Run the procedure as a diff: identify the archetype,
find where the page leaves its altitude range or breaks a contract, fix only
that. Do not rewrite a page that already passes the rubric.
Adapt to your repository (do this first)
This skill is generic; before applying it, discover the project's conventions and
hold them for the rest of the task. Inspect the repo (or ask the user) to learn:
- Docs root — where pages live (e.g.
docs/, pages/docs/, site/).
- Archetype layout — which directories map to which Diátaxis archetypes
(e.g.
get-started/ → tutorial, recipes/ → how-to, reference/ → reference).
If the repo has no clear layout, use the Diátaxis archetype names directly.
- Source of truth — where the real API/code lives, for accuracy checks.
- Examples source — a directory of runnable, tested examples to pull code
from, if one exists.
- Build & preview commands — how docs are built and served locally, and what
a clean build looks like (zero warnings/errors).
- Component system — the site generator and which components actually render
(admonitions, tabs, cards, diagrams-as-code, snippet includes, tooltips).
- House style — heading case, frontmatter fields, voice, glossary, and any
existing style guide.
Everything below refers to these by role (e.g. "the docs root", "the examples
source"), so substitute the project's real names as you go.
The five bands
Every page is a controlled descent through these, in order. Each archetype
declares which bands it requires; a page may start below band 1 and may stop
early, and bands outside its declared range are simply not its job. What it must
never do is jump back up, or skip a band its own archetype requires on the way
down.
| # |
Band |
Carries |
| 1 |
Orientation |
Why this exists, what problem it removes. Plain language, no API names. |
| 2 |
Mental model |
The shape of the thing — one diagram, one analogy, or two sentences. Concept nouns only. |
| 3 |
The shape in code |
The smallest real anchor. One canonical snippet, ideally included from the examples source. |
| 4 |
Mechanics |
The moving parts: API surface, the table of methods and options, how it runs. |
| 5 |
Edge and operational detail |
Caveats, failure modes, tuning, exhaustive lookup. |
Each archetype is allowed a different range. A tutorial enters at 1 and floors
at 3; a lookup reference gives band 1 one line and lives at 4–5; a how-to must
not rebuild the mental model but link to it. "Imbalanced" then becomes
nameable: all narrative and no band-3 anchor, or an opening on code that skipped
bands 1–2.
One page, one job. The Diátaxis compass asks whether the content informs
doing or knowing, and whether the reader is studying or working —
tutorial, how-to, reference, explanation fall out of the two answers. A draft
that answers two of them is two pages, cross-linked. The usual conflation is
tutorial versus how-to: a tutorial is a lesson whose author owns the reader's
success on one controlled path; a how-to is directions to a competent reader who
owns the outcome, and may branch.
The full bands, compass and per-archetype ranges are in
references/altitude.md; what each archetype owes its
reader, and the consistency rules across all of them, are in
references/contracts.md. The step-by-step is in
references/procedure.md.
Ship rubric (definition of done)
A page ships only when all pass:
- Single Diátaxis job — no mixing.
- Frontmatter complete per the project's required fields.
- Opens per its opening contract (lead paragraph or one-line orienter).
- Descends its altitude range in order — no inversion, no skipped required band,
does not bottom out below its floor.
- Every component earns its place.
- Code is example-sourced where it can be; inline code is minimal.
- Ends per its handoff contract.
- Voice is second person / present / active; headings follow house case.
- Every API symbol verified against the current source of truth.
- Clean build passes (see below).
References
references/altitude.md — the five bands, the Diátaxis compass, the range per archetype
references/contracts.md — what each archetype owes its reader, and the consistency layer
references/procedure.md — the authoring procedure, and how to verify what it produced
references/vocabulary.md — keeping one term per concept across a docs tree
references/components.md — which components a setup earns, and when they are noise
references/exemplars.md — the pages a tree is measured against
Related skills
rfc-writer — design proposals and RFCs; they argue for decisions, docs pages serve readers.
keep-a-changelog — the changelog has its own format; don't fold release notes into docs pages.
python-google-docstrings / python-rest-docstrings — the docstrings that reference pages are often generated from.
1---2name: altitude-docs3description: Use when writing, restructuring, polishing, or reviewing a documentation page — tutorial, quickstart, how-to, reference, explanation, landing page — or when deciding which archetype new content belongs in. Not for docstrings, RFCs, or changelogs.4---56# Altitude docs78A method for writing and polishing documentation so every page reads like it was9written by one careful author: it opens at the right height, descends from10plain-language orientation to concrete detail **in order**, hands the reader on11cleanly, and reaches for a component only when the component earns its place.1213The core idea is **altitude**: a controlled descent through fixed bands, from14"why this exists" down to "the exact edge case". Each kind of page is allowed a15different *range* — a tutorial stays high, a reference page sits low.1617This skill governs *how* a page is built, not *what is true*. Every API name,18symbol and behavior is verified against the current repository — see the19accuracy rules in [references/contracts.md](references/contracts.md).2021Two modes:2223- **Author** — a page does not exist yet. Run the full procedure from step 1.24- **Polish** — a page exists. Run the procedure as a diff: identify the archetype,25 find where the page leaves its altitude range or breaks a contract, fix only26 that. Do not rewrite a page that already passes the rubric.2728## Adapt to your repository (do this first)2930This skill is generic; before applying it, discover the project's conventions and31hold them for the rest of the task. Inspect the repo (or ask the user) to learn:3233- **Docs root** — where pages live (e.g. `docs/`, `pages/docs/`, `site/`).34- **Archetype layout** — which directories map to which Diátaxis archetypes35 (e.g. `get-started/` → tutorial, `recipes/` → how-to, `reference/` → reference).36 If the repo has no clear layout, use the Diátaxis archetype names directly.37- **Source of truth** — where the real API/code lives, for accuracy checks.38- **Examples source** — a directory of runnable, tested examples to pull code39 from, if one exists.40- **Build & preview commands** — how docs are built and served locally, and what41 a clean build looks like (zero warnings/errors).42- **Component system** — the site generator and which components actually render43 (admonitions, tabs, cards, diagrams-as-code, snippet includes, tooltips).44- **House style** — heading case, frontmatter fields, voice, glossary, and any45 existing style guide.4647Everything below refers to these by role (e.g. "the docs root", "the examples48source"), so substitute the project's real names as you go.4950## The five bands5152Every page is a controlled descent through these, **in order**. Each archetype53declares which bands it *requires*; a page may start below band 1 and may stop54early, and bands outside its declared range are simply not its job. What it must55never do is jump back up, or skip a band its own archetype requires on the way56down.5758| # | Band | Carries |59|---|---|---|60| 1 | Orientation | Why this exists, what problem it removes. Plain language, no API names. |61| 2 | Mental model | The shape of the thing — one diagram, one analogy, or two sentences. Concept nouns only. |62| 3 | The shape in code | The smallest *real* anchor. One canonical snippet, ideally included from the examples source. |63| 4 | Mechanics | The moving parts: API surface, the table of methods and options, how it runs. |64| 5 | Edge and operational detail | Caveats, failure modes, tuning, exhaustive lookup. |6566Each archetype is allowed a different *range*. A tutorial enters at 1 and floors67at 3; a lookup reference gives band 1 one line and lives at 4–5; a how-to must68not rebuild the mental model but link to it. "Imbalanced" then becomes69nameable: all narrative and no band-3 anchor, or an opening on code that skipped70bands 1–2.7172**One page, one job.** The Diátaxis compass asks whether the content informs73*doing* or *knowing*, and whether the reader is *studying* or *working* —74tutorial, how-to, reference, explanation fall out of the two answers. A draft75that answers two of them is two pages, cross-linked. The usual conflation is76tutorial versus how-to: a tutorial is a lesson whose author owns the reader's77success on one controlled path; a how-to is directions to a competent reader who78owns the outcome, and may branch.7980The full bands, compass and per-archetype ranges are in81[references/altitude.md](references/altitude.md); what each archetype owes its82reader, and the consistency rules across all of them, are in83[references/contracts.md](references/contracts.md). The step-by-step is in84[references/procedure.md](references/procedure.md).8586## Ship rubric (definition of done)8788A page ships only when all pass:89901. Single Diátaxis job — no mixing.912. Frontmatter complete per the project's required fields.923. Opens per its opening contract (lead paragraph or one-line orienter).934. Descends its altitude range in order — no inversion, no skipped required band,94 does not bottom out below its floor.955. Every component earns its place.966. Code is example-sourced where it can be; inline code is minimal.977. Ends per its handoff contract.988. Voice is second person / present / active; headings follow house case.999. Every API symbol verified against the current source of truth.10010. Clean build passes (see below).101102## References103104- `references/altitude.md` — the five bands, the Diátaxis compass, the range per archetype105- `references/contracts.md` — what each archetype owes its reader, and the consistency layer106- `references/procedure.md` — the authoring procedure, and how to verify what it produced107- `references/vocabulary.md` — keeping one term per concept across a docs tree108- `references/components.md` — which components a setup earns, and when they are noise109- `references/exemplars.md` — the pages a tree is measured against110111## Related skills112113- `rfc-writer` — design proposals and RFCs; they argue for decisions, docs pages serve readers.114- `keep-a-changelog` — the changelog has its own format; don't fold release notes into docs pages.115- `python-google-docstrings` / `python-rest-docstrings` — the docstrings that reference pages are often generated from.