manni
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.
npm install -D @hawkeyexl/manninpx @hawkeyexl/manni meta validate docs/npx @hawkeyexl/manni docevals run docs/ --deterministic-onlyEverything 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.
npx @hawkeyexl/manni statusnpx @hawkeyexl/manni checkThe tools
Section titled “The tools”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.
Coming from docmeta?
Section titled “Coming from docmeta?”The metadata tool used to be the whole package. Three things changed, and nothing else did:
- The command.
docmeta validate …is nowmanni meta validate …. The package still installs adocmetabin 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 undermeta:. Adocmeta.config.yamlis still read, with a warning. See the configuration reference. - The GitHub Action.
uses: hawkeyexl/manni@v4now runsmanni check, every check the repository has set up. Addcommand: meta validateto 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.