Skip to content

manni

One command line for documentation that is meant to be checked.

Almost every command reads manni <domain> <subcommand> [<subcommand>] [<arguments>], and the domain is the tool. The two exceptions run across the tools, and the next section covers them. manni meta validate docs/ runs the metadata tool’s validate against docs/, and manni meta schemas vendor reaches a verb one level down. Each tool has its own commands, its own section of this site, and its own key in one shared config file, manni.config.yaml. Install the package once and every tool is there.

Terminal window
npm install -D @hawkeyexl/manni
npx @hawkeyexl/manni meta validate docs/
npx @hawkeyexl/manni docevals run docs/ --deterministic-only

Everything a repository set up, in one command

Section titled “Everything a repository set up, in one command”

manni status says which tools a repository set up. manni check runs every check they carry, and skips the rest. It is the same command in CI, by hand, and in an agent session. There, the manni plugin for Claude Code runs it after each edit.

Terminal window
npx @hawkeyexl/manni status
npx @hawkeyexl/manni check

meta checks what a page says about itself. lint checks whether it is shaped like what it says it is. cite checks that what a page says about the code is still true. docevals checks that a page still meets the quality bar its team wrote down. tracevals checks that an agent session followed the instructions it ran on. term checks that the terms a page names are defined, and carries those terms into Vale and translation. strategy checks that the audiences, personas and journeys a page names are ones the docset keeps records of. graph checks what the pages say about each other, which is the only question no single file can answer. key sets and rotates the one encryption key that meta and cite encrypt values with. test checks that a procedure still works when someone follows it. site runs the docs site itself, the one a11y crawls, through its framework’s own commands. manni --help lists exactly the tools the package carries.

cite, docevals, tracevals, key, site, term, strategy, lint, graph and test are in beta. Their commands, config keys and output can change in any release, without notice.

The metadata tool used to be the whole package. Three things changed, and nothing else did:

  • The command. docmeta validate … is now manni meta validate …. The package still installs a docmeta bin that runs the same program, so existing scripts keep working while you move them.
  • The config file. manni.config.yaml, with the metadata tool’s keys under meta:. A docmeta.config.yaml is still read, with a warning. See the configuration reference.
  • The GitHub Action. uses: hawkeyexl/manni@v4 now runs manni check, every check the repository has set up. Add command: meta validate to run the metadata check alone, with the inputs it took before. See the Action reference.

Every built-in schema keeps its old published URL as well as its new one, so a $schema line written before the rename still resolves offline. See the built-in schema registry.