One command performs the entire spelling gate. It regenerates typos.toml from
the live shared dictionary, runs the pinned Typos binary over the tracked
files, and enforces the shared phrase corrections that Typos cannot express:
uvx --from "git+https://github.com/leynos/[email protected]" \
typos-config-builder gate
A consumer repository needs nothing else. It owns an optional
typos.local.toml overlay, two .gitignore lines, and this one command. There
is no vendored script to copy, no Typos version to pin, and no builder revision
to bump when the shared dictionary changes.
The two .gitignore lines keep the untracked cache out of version control:
.typos-oxendict-base.json
.typos-oxendict-base.toml
--repository PATH gates another repository, --source SOURCE selects an
alternative authority, and --offline forbids refresh from the authority.
--scope selects what Typos is given:
| Scope | Files checked |
|---|---|
markdown (default) |
Tracked files whose suffix is .md. |
all |
Every tracked file, including hidden files and directories. |
The gate always generates configuration in write mode, never in drift-check
mode. Because the authority is live, a tracked typos.toml drifts whenever
shared policy changes, so a drift check would fail every consumer on every
dictionary edit.
Typos writes its own findings. Phrase findings follow, in the format
check-phrases uses. Both checking stages always run: a Typos finding never
suppresses a phrase finding, so one run reports every class of problem.
Exit codes are:
| Exit code | Meaning |
|---|---|
| 0 | Nothing to correct. |
| 1 | The gate could not run to completion. |
| 2 | Typos or the phrase check reported at least one finding. |
Exit code 1 prints a single error: ... line on standard error, never a
traceback. An environment without the pinned Typos binary is reported that way
rather than as a missing-file traceback.