Skip to content
XADEN

Reference

Configuration

xaden/xaden.conf holds the settings of a project that has Xaden. It is read by Xaden, never executed, and changed by pull request like code.

Format

One setting per line, key = value. Lines that start with # are comments. Spaces around = do not matter. A key that is not listed below is ignored.

# Xaden settings of this repository.
version = 0.2.3
checksum = 59638a11f21ce827444dad0618533324ae206e191c59814de26049de13b6ea9c
mode = changed-files
commit-convention = conventional
assistants = claude
hook-checks = lint
expect = test,lint
update-check = 1d
check.test = npm test
check.lint = make lint

Settings

KeyValuesMeaning
versionMAJOR.MINOR.PATCHThe Xaden version the project pins. The tooling that runs is this version; xaden doctor compares it with the installed one.
checksum64 hexadecimal charactersSHA-256 of the paths and contents of the pinned release. A download is installed only if it matches.
modeadvisory, changed-files, strictWhat a new finding does. See below. Default when missing: strict.
commit-conventionconventional, otherconventional enforces Conventional Commits and the Refs: trailer; other lets the Refs: checks only advise.
assistantscomma-separated names, or noneThe assistants the team uses. claude means CLAUDE.md exists with the line @AGENTS.md.
hook-checkscomma-separated check namesThe checks the pre-commit hook runs. Default: lint. The full run and CI run all checks.
expectcomma-separated kinds: test, lint, typecheckThe kinds of checks the repository should have. A kind without a check.<kind> command is a gap. When the line is missing, Xaden looks at the files (package.json, pyproject.toml).
update-checkoff, or a whole number of hours or days of at least 1h: 12h, 1d, 7dHow often xaden update-check may look for a newer Xaden and outdated dependencies. It only reports. Default: off. The XADEN_UPDATE_CHECK environment variable overrides it on one machine.
check.<name>a shell commandA check Xaden runs from the repository root, for example check.test = npm test. The name is lowercase letters, digits and hyphens.

Modes

ModeA new findingA gap (an expected kind without a command)
advisorywarns, the check passeswarning
changed-filesfails if it is in a file the change toucheswarning
strictfails in any fileerror

A finding that is in the baseline never fails a check. A failure that names no file (a failing test) cannot be baselined: advisory warns, the other modes fail. Changing mode is an approval point.

Check commands

A check command runs with the repository as the working directory. Xaden judges its output line by line: a line of the form path:line:column: message (or a GitHub annotation ::warning file=path,line=N::message) is one finding; Xaden records it without the numbers, so moving code does not make a finding new. If the first word of a command is not installed, the check is skipped and reported, or fails with --strict.

Baselines

xaden/baselines/<check>.txt lists the findings that existed when Xaden was adopted, one per line as path: message. Names: shellcheck, semgrep, actionlint, zizmor and one per check.<name>. A full run on a developer machine removes fixed findings from the file. In CI it only warns. A finding is never added.

Guide: Check modes and baselines.

These pages describe Xaden v0.3.0, released 2026-10-17.