.airom.yaml. The three spellings resolve through one layering rule.
Precedence
Highest wins.Precedence, highest first
1
Flags
An explicitly-set flag always wins. A flag you did not pass does not shadow a
lower layer — its default only fills a key nothing else provided.
2
AIROM_* environment variables
Beat the config file. This is the CI layer: set once in the job environment.
3
.airom.yaml
Discovered in the working directory. This is the repo layer: commit it so
every developer and every CI run scans the same way.
4
Built-in defaults
The flag defaults documented in the CLI reference.
Environment variables
The rule:AIROM_ + the flag name, upper-snake-cased. Dashes become underscores.
List-valued keys are comma-separated:
List-valued environment variables
The list-valued keys are
output, rules, and ignore — the three repeatable
stringArray flags. Every other key takes a single scalar..airom.yaml
Discovered in the working directory. Keys mirror flag names exactly — the flag--min-confidence is the key min-confidence.
.airom.yaml
Scalar shorthand for a list key
Command-specific keys
Theimage and k8s flags participate in the same layering, under their flag
names:
Command-specific keys
Unknown keys fail loudly
An unrecognized key in.airom.yaml, or an unrecognized AIROM_* variable, is a
fatal configuration error (exit 2). It is never a silent no-op.
A typo — this is an error, not a no-op
Result
AIROM_PARALLELS=8. The reasoning is the one property that
matters most for a CI gate: a typo that silently disabled --fail-on would be
worse than no gate at all, because you would believe you had one.
Cross-key interactions
--format and -o/--output
--format and -o/--output
--format is a single-format alias for -o. Passing both explicitly on
the command line is an error. Across layers, the higher layer wins: a
format from the environment beats an output list from .airom.yaml.
Within one layer, an output list beats the format alias.verbose and quiet
verbose and quiet
-q and -v are mutually exclusive when both are passed on the command
line. An explicit -v overrides a quiet from the environment or the file,
and an explicit -q overrides a verbose from the environment or the file.
If both come from the environment or the file, quiet wins — less noise is
the safe default.fail-on and exit-code
fail-on and exit-code
exit-code must be in [0,255].Ignore files
--ignore globs are applied on top of .gitignore and .airomignore, not
instead of them. Both ignore files are honored on fs and repo scans, with
gitignore syntax and the same nested per-directory semantics.
CLI reference
Every command, argument, and flag.