Markdown Editor

Documentation Information Architecture Template (Diátaxis, llms.txt)

Docs site map and IA spec: audiences, Diátaxis content-type map, navigation, site-map tree, URL scheme, versioning, search facets, redirects, llms.txt

Documentation et assistanceCompletDiátaxis; llms.txt proposal (2026-08-10); ISO/IEC/IEEE 26514:2022CC BY-SA 4.0informationarchitecture

Mode d'emploi: Use it when planning a new docs site, a re-platforming, or a navigation that has grown by accretion. Fill audiences and the Diátaxis content-type map first, then the site-map tree and URL rules. The main pitfall is treating URLs as internal details: every move needs a redirect, and Markdown mirrors must follow it.

Aperçu

Documentation Information Architecture: [Product or docs site name]

Specification of how a documentation site is organised: who it serves, which content types exist and where each lives, the top-level navigation, the site-map tree, the URL and slug scheme, how docs are versioned, the landing-page pattern, cross-link rules, search facets, the redirect policy, and the agent-readable outputs (llms.txt and Markdown mirrors). The content-type map follows the Diátaxis framework (diataxis.fr, CC BY-SA 4.0), agent outputs follow the llms.txt proposal (llmstxt.org, last modified 2026-08-10), and the navigation and structure topics are aligned with ISO/IEC/IEEE 26514:2022. Replace every [bracketed] value and every row marked Example.

Document control

FieldValue
Document ID[IA-001]
Docs site[Product name] documentation at [https://docs.example.com]
Docs platform and generator[Static site generator, version]
Source repository[org/docs-repo]
Version[0.1]
Status[Draft / In review / Approved / Superseded]
Owner[@docs-lead]
Approvers/reviewers[@product-lead], [@developer-relations-lead], [@seo-or-web-lead], [@support-lead]
Last updatedYYYY-MM-DD
Classification[Internal / Public]
Related documents[Documentation plan], [Style guide], [Content audit], [llms.txt]

Approvals

RoleNameDecisionDate
Documentation lead[@name][Approve / Approve with conditions / Reject]YYYY-MM-DD
Product lead[@name][Decision]YYYY-MM-DD
Web or platform owner[@name][Decision]YYYY-MM-DD
Support lead[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]First draft
1.0YYYY-MM-DD[@name]Example: Approved after tree test round 2
1.1YYYY-MM-DD[@name]Example: Added the Data products top-level section and its redirects

Contents

1. Scope and audiences

State the boundary of the site in one paragraph: which products and versions it covers, which content lives elsewhere (marketing site, support knowledge base, community forum, internal wiki), and which languages are published. Then list the audiences and the entry points each one uses, because the entry point decides which page must work as a first page.

Audience IDAudiencePrimary goalMain entry pointsMust reach in two clicks
AUD-001 (Example)Integrating developer at a merchantTake a first payment with the Checkout APISearch engine, quickstart link in the dashboardQuickstart, API reference, error codes
AUD-002 (Example)Platform operatorConfigure webhooks, keys and limitsIn-product help links, support repliesConfiguration reference, how-to guides, known issues
AUD-003 (Example)Data consumerUnderstand the Orders data product and its contractData catalogue linksData product overview, schema reference, change log
AUD-004 (Example)Evaluator or architectJudge fit and limits before buyingSearch engine, sales follow-upConcepts, architecture explanation, limits
AUD-005 (Example)Coding agent or assistantRetrieve current, correct pages as contextllms.txt, Markdown mirrorsSame pages as AUD-001 in Markdown

Out of scope for this specification: page-level writing rules (see Technical Style Guide (docs/style-guide-technical)), the production schedule and staffing (see Documentation Plan (docs/documentation-plan)) and the review gate for each page (see Docs Review Checklist (docs/docs-review-checklist)).

2. Content-type map

Diátaxis separates documentation by two questions: does the reader need to act or to understand, and are they acquiring a skill or applying one at work. The answers give four types: tutorials (act, acquire), how-to guides (act, apply), reference (understand, apply) and explanation (understand, acquire). Use these four as the top classifier for every page, then allow a small set of page types under each.

2.1 Allowed page types

Page type IDPage typeDiátaxis typeTemplatePurpose
PT-01QuickstartTutorialQuickstart (docs/quickstart)First success in under fifteen minutes
PT-02TutorialTutorialTutorial (writing/tutorial)Guided lesson with a known end state
PT-03How-to guideHow-toHow-to Guide (docs/how-to)One real task for a competent user
PT-04TroubleshootingHow-toTroubleshooting (docs/troubleshooting)Symptom to resolution
PT-05API referenceReferenceAPI Reference (dev/api-reference)Generated from the API description
PT-06Configuration or CLI referenceReferenceConfiguration Reference (docs/configuration-reference), CLI Reference (docs/cli-reference)Complete, consistent lookup
PT-07Concept or explanationExplanationExplanation (docs/explanation)Why and how it works, trade-offs
PT-08Release notes and changelogReferenceRelease Notes (dev/release-notes), API Changelog (docs/api-changelog)What changed, by version
PT-09Known issues registerReferenceKnown Issues (docs/known-issues)Current defects and workarounds
PT-10Landing pageNavigationSection 7 of this documentRoute readers into an area

Rules for page types:

  • Give each page exactly one page type and record it in front matter (for example type: how-to). The build fails when the field is missing or not in this table.
  • Do not mix types on one page. When a how-to guide needs background, link to the explanation page instead of embedding it.
  • Add a new page type only through a change to this document, so that templates, search facets and analytics stay aligned.

2.2 Coverage per product area

Mark each cell with the number of pages planned or published and flag gaps. An empty cell is a decision, not an accident: write "None by design" with the reason.

Product areaTutorialsHow-to guidesReferenceExplanationGaps and decisions
Checkout API (Example)1 quickstart, 2 tutorials14API reference, error codes, webhooks events4No tutorial for refunds yet: planned Q[n]
Orders API (Example)1 quickstart9API reference, status model2Explanation of order states missing
Orders data product (Example)None by design: consumers use the catalogue3Schema, contract, service levels1Contract changes link to the data change log
Dashboard and accounts (Example)111Settings reference1None
[Product area][n][n][Pages][n][Gaps]

3. Top-level navigation

Choose one primary organising principle for the top level and use the other as a secondary level. For most multi-product sites, product area first and Diátaxis type second works best, because readers arrive knowing the product but not the documentation theory. Single-product sites can put the four types at the top.

OrderLabelPathContainsRationale
1 (Example)Get started/get-started/Account setup, quickstarts for each APIShortest path to first success for AUD-001
2 (Example)Checkout API/checkout/Guides, reference, concepts for CheckoutLargest area by traffic
3 (Example)Orders API/orders/Guides, reference, concepts for OrdersSeparate lifecycle and owners
4 (Example)Data products/data/Orders and Checkout data productsDifferent audience (AUD-003)
5 (Example)Reference/reference/Cross-product reference: errors, limits, eventsLookups that span products
6 (Example)Changes/changes/Release notes, API changelog, deprecations, known issuesOne place to watch for change
7 (Example)Help/help/Troubleshooting, FAQ, support contactEntry from support links

Navigation rules:

  • Keep the top level at seven items or fewer and the visible depth at three levels. Deeper content is reached through landing pages.
  • Use labels a new reader understands. Product names are allowed; internal code names, team names and abbreviations are not.
  • Order sidebar items by task sequence inside a tutorial or how-to set, and alphabetically inside reference sets.
  • Show the reader where they are with breadcrumbs on every page below the top level.

4. Site-map tree

Keep the tree as plain text in this document and as a machine-readable file in the repository (for example nav.yml). Each node shows the path segment and, for leaves, the page type ID.

/                                   landing (PT-10)
├── get-started/                    landing (PT-10)
│   ├── create-account              PT-03
│   ├── checkout-quickstart         PT-01
│   └── orders-quickstart           PT-01
├── checkout/                       landing (PT-10)
│   ├── tutorials/
│   │   ├── build-a-hosted-checkout PT-02
│   │   └── accept-saved-cards      PT-02
│   ├── guides/
│   │   ├── handle-webhooks         PT-03
│   │   ├── issue-refunds           PT-03
│   │   └── test-in-sandbox         PT-03
│   ├── concepts/
│   │   ├── payment-lifecycle       PT-07
│   │   └── idempotency             PT-07
│   └── api/                        PT-05 (generated)
├── orders/                         landing (PT-10)
│   ├── guides/
│   ├── concepts/
│   └── api/                        PT-05 (generated)
├── data/                           landing (PT-10)
│   ├── orders-data-product/
│   └── checkout-data-product/
├── reference/
│   ├── errors                      PT-06
│   ├── rate-limits                 PT-06
│   └── webhook-events              PT-06
├── changes/
│   ├── release-notes               PT-08
│   ├── api-changelog               PT-08
│   ├── deprecations                PT-08
│   └── known-issues                PT-09
└── help/
    ├── troubleshooting             PT-04
    └── faq                         PT-10 (routing page only; links into troubleshooting and how-to)

The Mermaid view below is for reviews; the text tree stays canonical.

5. URL and slug scheme

Define URLs as a grammar and give one example per pattern.

Rule IDRuleExample
URL-01Pattern: /{lang}/{version}/{area}/{section}/{slug}; omit {lang} for the default language and {version} for the current version/checkout/guides/issue-refunds (Example)
URL-02Slugs are lowercase ASCII words joined by hyphens, no dates, no file extensions in the canonical URLhandle-webhooks, not Handle_Webhooks_v2.html
URL-03Slugs describe the task or subject, not the page type labelissue-refunds, not how-to-refunds
URL-04Slugs are set by hand in front matter and do not change when the title changesTitle "Refund a payment" keeps slug issue-refunds
URL-05Section folders (tutorials, guides, concepts, api) are stable; reclassifying a page between them requires a redirect (section 10)Moving a page from guides to concepts adds a 301
URL-06Generated API reference lives under one stable prefix per API and uses operation IDs as slugs/checkout/api/create-payment
URL-07Anchors (heading IDs) on reference pages are stable and explicitly set for any heading that other pages link to#error-card_declined
URL-08Trailing slash policy: [always / never]; the other form redirects/checkout/ canonical, /checkout 301

Set one canonical URL per page with <link rel="canonical">, and point every language and version variant at the correct canonical (section 6).

6. Docs versioning

Pick one model and state why.

ModelWhen it fitsCost
Unversioned (latest only)Continuously delivered SaaS with a single API versionLowest; changes are announced in release notes
Versioned by major releaseSelf-hosted products or SDKs with parallel supported majorsOne docs branch per supported major
Dated API versions with one siteAPIs that pin behaviour to a version dateVersion notes inside reference pages and a version switcher only for reference

Versioning rules for the chosen model:

  • Supported versions shown: [List, for example "current and previous major"]. Older versions move to an archive path with a visible "unsupported version" banner. Use either canonical-to-current or noindex for archived versions, not both.
  • Default: unversioned URLs always serve the current version.
  • Canonical: each versioned page sets its canonical to the current version's equivalent page when the content is equivalent, and to itself when it differs materially.
  • Version switcher: keeps the reader on the same page in the target version when it exists; falls back to that version's landing page, never to a 404.
  • End of support: when a version leaves support, publish a notice using Deprecation Notice (docs/deprecation-notice) and keep the archive for [period].

Example: Corvid Commerce documents the Checkout API as one unversioned site and shows dated API versions inside reference pages, while its self-hosted connector has /connector/v3/ and /connector/v4/ with v3 marked unsupported from YYYY-MM-DD.

7. Landing-page pattern

Every top-level area and every section folder has a landing page built from the same blocks, in this order:

  1. Title and one-sentence purpose: what this area lets the reader do.
  2. Start here: one primary call to action, normally the quickstart or the most common task.
  3. Paths by Diátaxis type: four short groups (learn, do, look up, understand), each with three to six links. Omit a group only when section 2.2 says "None by design".
  4. Popular tasks: the five most used how-to guides, refreshed from aggregate page-view data each quarter.
  5. Changes and status: link to the area's release notes, known issues and active deprecations.
  6. Get help: troubleshooting, community and support routes.

Keep landing pages short enough to scan without scrolling on a laptop screen. Do not put procedures on landing pages; they become hard to find and impossible to version cleanly.

8. Cross-link rules

Rule IDRule
XL-01A tutorial ends with links to the next tutorial and to two or three how-to guides that apply what was learned.
XL-02A how-to guide links to the reference entries for every parameter, setting or command it uses, on first use.
XL-03A how-to guide links to the explanation page instead of explaining background inline.
XL-04A reference entry links to at least one how-to guide that uses it, where one exists.
XL-05Troubleshooting pages link to the matching known-issue ID when a symptom is caused by a known defect.
XL-06Release notes link to known issues, deprecations and migration guides by ID or anchor, not by vague text.
XL-07Link text names the destination ("Configure webhook retries"), never "click here" or a bare URL.
XL-08Internal links are written as source-relative paths and the generator rewrites them per version build, so they resolve within the reader's current version. Never hard-code a version segment.
XL-09The build runs a link checker on every pull request; broken internal links fail the build, external link failures raise a warning and a weekly report.
XL-10"Related" lists hold at most five links and are reviewed in the content audit.

9. Search and facets

Every page carries front-matter metadata that feeds search, analytics and validation. Facets are built only from fields the build enforces.

FieldRequiredValuesUsed as facetNotes
typeYesPage types from section 2.1Yes, labelled with Diátaxis namesLets readers filter to tutorials or reference
areaYesTop-level areas from section 3YesDefault filter is the area the reader is in
versionWhen versionedSupported versionsYesDefaults to the reader's selected version
audienceOptionalAUD IDs from section 1No, used for analytics onlyAvoid exposing internal audience names
tagsOptionalControlled list in the termbaseYes, top 20 onlyFree-text tags are rejected by the build
last_verifiedYesYYYY-MM-DDNoShown on the page; feeds the content audit

Search behaviour rules:

  • Boost reference entries for exact identifier matches (error codes, endpoint names, setting keys).
  • Exclude archived versions from default results; include them only when the reader selects that version.
  • Keep a synonyms list sourced from the termbase so that "refund" also finds "reversal" where the product uses both terms.
  • Review zero-result queries monthly from aggregate, anonymous search logs. Do not store queries with user identifiers; honour Global Privacy Control and the site consent settings for any measurement.

10. Redirect policy

Rule IDRule
RD-01Every moved, renamed or merged page gets a permanent (301 or 308) redirect to the closest equivalent page in the same pull request.
RD-02Deleted pages with no equivalent return 410 Gone (or 404) with links to the parent landing page, unless a close substitute exists. Never redirect them to an unrelated page, which search engines treat as a soft 404. List them in the change log of the docs site.
RD-03Redirects are kept for at least [period, for example "the lifetime of the domain"]. Removal needs the docs lead's approval and evidence of no traffic.
RD-04No redirect chains: when a target moves again, update earlier redirects to point straight to the new URL.
RD-05Redirects are stored as data in the repository (for example redirects.csv) and tested in the build.
RD-06Markdown mirrors (section 11) follow the same redirects as their HTML pages.
RD-07Temporary (302 or 307) redirects are used only for planned maintenance and expire on a stated date.
Redirect IDFromToTypeReasonDateApproved by
RDR-001 (Example)/checkout/guides/refunds/checkout/guides/issue-refunds301Slug clarifiedYYYY-MM-DD[@docs-lead]
RDR-002 (Example)/guides/webhooks/checkout/guides/handle-webhooks301Moved under product areaYYYY-MM-DD[@docs-lead]

11. Agent-readable outputs

The llms.txt proposal (llmstxt.org, first published 2024-09-03, last modified 2026-08-10) defines a Markdown index file and a convention for Markdown versions of pages. Use the llms.txt (dev/llms-txt) template for the file itself; this section fixes where it lives and how it maps to the site map.

ItemDecision
Index file locations/llms.txt for the whole site; [/checkout/llms.txt, /orders/llms.txt] for large areas. The proposal allows files at subpaths covering the URLs beneath them, and agents prefer the most specific one.
Sections in the indexOne H2 per top-level area from section 3, plus an "Optional" section for archive, changelog history and long explanation pages that an agent may skip.
Markdown mirrorsEvery published page has a Markdown version at the same URL with .md appended or replacing the extension; folder URLs use index.md or index.html.md. State which form you use: [form].
Discovery from pagesEach HTML page carries <link rel="alternate" type="text/markdown" href="..."> for its mirror and <link rel="describedby" href="/llms.txt"> (or the more specific index).
Discovery by headerThe same relations are sent as an HTTP Link header, configured at the server or CDN, so non-HTML resources are covered too.
GenerationMirrors are generated from the same source files at build time, never edited by hand.
Content of mirrorsMain content only: no navigation, cookie banners or footers. Keep code blocks, tables and absolute links.
VersioningMirrors and llms.txt describe the current version only; archived versions are excluded.
Exclusions[Pages excluded, for example internal previews, unsupported versions]

Example: Corvid Commerce publishes /llms.txt with sections Get started, Checkout API, Orders API, Data products, Reference and Optional. Each page such as /checkout/guides/issue-refunds has a mirror at /checkout/guides/issue-refunds.md, and the CDN adds a Link header with rel="alternate" and rel="describedby".

12. Governance and validation

12.1 Validation before launch

MethodWhat it testsPass criterion
Card sort (open or closed)Whether readers group topics the way the navigation doesAgreement threshold set by the team: [value]
Tree testWhether readers find target pages in the text tree aloneSuccess rate per task: [target]; tasks below target are redesigned
First-click test on landing pagesWhether the "Start here" action is the first click[Target]
Link and redirect checkNo broken internal links; every legacy URL resolvesZero failures
Accessibility check of navigationKeyboard order, landmarks, skip link, visible focus, WCAG 2.2 AANo failures on navigation templates

Use fictional or recruited participants with consent, and keep results aggregate. Do not record personal data that the test does not need.

12.2 Build-enforced rules

  • Front matter has type, area and last_verified with valid values.
  • Every page appears exactly once in nav.yml, and every entry in nav.yml has a page.
  • Every removed path appears in redirects.csv.
  • Markdown mirrors exist for every published page and llms.txt links resolve.

12.3 Change control

ChangeWho decidesRecord
New top-level item or URL patternDocs lead with product leadNew minor version of this document
New page typeDocs leadSection 2.1 and templates updated
Page moves inside an areaArea ownerRedirect row and pull request
Annual IA reviewDocs leadContent Audit (docs/content-audit) findings feed this document

13. Glossary and references

13.1 Glossary

TermMeaning in this document
Information architecture (IA)The structure, labels, navigation and search design that let readers find and understand content
Diátaxis typeOne of tutorial, how-to guide, reference or explanation
Page typeA local, enforced subtype of a Diátaxis type, with its own template
Landing pageA navigation page for an area or section folder
Canonical URLThe one URL search engines and links should use for a page
Markdown mirrorA Markdown version of a page served at a predictable URL for agents
llms.txtA Markdown index of key pages intended for language models and agents
Tree testA usability test of a navigation hierarchy without visual design

13.2 References

ReferenceVersion or dateUse in this document
Diátaxis, Daniele Procida, https://diataxis.fr/Living site, checked 2026-10-24Four documentation types and the two-question compass
llms.txt proposal, Jeremy Howard, https://llmstxt.org/Published 2024-09-03, modified 2026-08-10Index file format, Markdown mirrors, discovery relations
ISO/IEC/IEEE 26514:2022, Design and development of information for users, https://www.iso.org/standard/77451.htmlEdition 1, 2022Structure, navigation and finding aids topics (structure only)
WCAG 2.2, W3C Recommendation, https://www.w3.org/TR/WCAG22/2024-12-12Navigation accessibility target
[Internal SEO or web standard][Version][Use]

Standard and licence note

Structure aligned with ISO/IEC/IEEE 26514:2022 for the topics of structure and navigation of information for users; no ISO text, table or definition is reproduced. The content-type map is adapted from the Diátaxis framework by Daniele Procida (https://diataxis.fr/), licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0); if you redistribute material adapted from Diátaxis, credit Diátaxis and license that adapted material under CC BY-SA 4.0 or a compatible licence. The agent-readable outputs section is based on the public llms.txt proposal at llmstxt.org, which states no licence and is cited only. All wording in this template is original text written for this collection. Check the current official versions of these sources before use. Template licence: MIT.

Modèles associés