Skip to content
What is diataxis?

What is diataxis?

Diataxis manages a documentation set as typed markdown. Every page declares one of four types in its frontmatter: tutorial, how-to, reference, or explanation. Every command reads that field.

Why a type belongs in the file

The four types come from Daniele Procida’s Diátaxis framework. Two questions separate them. Does a page inform action or cognition? Does it serve a reader acquiring skill, or one applying it. Four answers, four forms, and the framework claims no fifth territory exists.

A documentation set that keeps the four apart serves each reader. A set that lets them blur serves none. A tutorial that stops to explain loses the learner it was written for. A reference page that grows an example into an essay stops being consultable.

Nothing enforces the separation on its own. A page can claim one type and hold another, and a documentation set of thirty pages hides the drift. The type field makes the claim explicit, and diataxis check tests what a machine can test about it.

What the tool proves, and what it does not

A check is only worth reading if every finding is true. Diataxis reports what the files prove: a page that does not parse, a page whose type is not one of the four, a link that resolves to nothing, a how-to title that states no goal.

It does not judge prose. Whether an explanation has crept into a reference page needs a reader, and a check that guessed would fill the report with confident noise. The compass prints the two questions for that reader instead of answering them.

Where a page lives

Pages live in the directory diataxis.yml names, docs by default. Documentation is the published artefact, unlike an issue or a note, so it stays where readers and site builds look for it.

A page id is its file stem. There is no random prefix, because the id becomes a published path and a reader bookmarks it.

The storage layer

Diataxis stores pages with mdstore, the same library under tisket, zettel, and almanac. A page is a markdown document with frontmatter, and frontmatter comes in two forms. The --- form is what most markdown tools expect. The comment form, <!-- metadata to -->, hides the same keys from every markdown renderer, so a page read on a git forge shows no metadata block. Diataxis reads both and writes the comment form.