Validating Maintainer Tooling¶
Maintainer tooling is correct when it reads the governed input, applies the documented policy, emits reviewable evidence, and fails in a way that identifies the broken repository contract. A green command over an unrelated file does not validate the workflow that changed.
Trace the Whole Workflow¶
flowchart LR
input["governed repository<br/>input"]
command["maintainer command"]
policy["documented policy<br/>and thresholds"]
output["stdout, exit status,<br/>or artifact"]
wrapper["Make or CI wrapper"]
reviewer["maintainer decision"]
input --> command --> policy --> output --> wrapper --> reviewer
Validate every moved edge. A command implementation can remain correct while a Make target passes the wrong argument, a governed path moves, or CI interprets the exit status differently.
Route the Change¶
| Workflow | Governed input | Observable contract | Minimum focused evidence |
|---|---|---|---|
| Audit allowlist validation | security exception entries | required identity, ownership, rationale, link, expiry, and a nonzero exit for invalid entries | run the allowlist command against valid and deliberately invalid records |
| Audit ignore arguments | the same reviewed allowlist | deterministic Cargo audit arguments derived only from accepted advisory identifiers | assert exact output ordering and empty-input behavior |
| Deny-policy deviations | local standards exceptions | required ownership, review linkage, rationale, expiry, and visible refusal of malformed entries | run the deviation command over valid, expired, and malformed examples |
| Benchmark comparison | curated benchmark commands, optional baseline, threshold, and strictness | normalized measurements, comparison result, artifact location, and explicit behavior when no baseline exists | exercise parsing and threshold logic; run the real benchmark when claiming execution or performance safety |
| Slow-lane selection | governed slow-test roster and expression generator | sorted unique entries, resolvable test names, exact fast-lane exclusion, and slow-lane inclusion | run the suite-selection integration |
| Package guardrails | developer package source and repository policy | boundary and source-policy compliance | run the package guardrail |
The command reference defines the available maintainer commands. The workflow guide and output contract define how their evidence is consumed.
Choose Evidence by What Moved¶
flowchart TD
change["tooling change"]
input{"governed input<br/>or parser?"}
decision{"policy decision<br/>or threshold?"}
output{"output, path,<br/>or exit status?"}
wrapper{"Make, script,<br/>or CI wrapper?"}
inputproof["valid, invalid, missing,<br/>and boundary records"]
decisionproof["acceptance and refusal<br/>at the policy boundary"]
outputproof["exact output and<br/>artifact assertions"]
wrapperproof["invoke through the<br/>real wrapper"]
complete["bounded validation claim"]
change --> input
input -- yes --> inputproof --> complete
input -- no --> decision
decision -- yes --> decisionproof --> complete
decision -- no --> output
output -- yes --> outputproof --> complete
output -- no --> wrapper
wrapper -- yes --> wrapperproof --> complete
Most changes touch more than one branch. For example, adding an allowlist field changes parsing, acceptance policy, error text, documentation, and every wrapper that supplies the file.
Focused Commands¶
Run commands from the repository root:
cargo run -q -p bijux-gnss-dev -- audit-allowlist
cargo run -q -p bijux-gnss-dev -- audit-ignore-args
cargo run -q -p bijux-gnss-dev -- deny-policy-deviations
cargo test -p bijux-gnss-dev --test integration_nextest_suite_selection
cargo test -p bijux-gnss-dev --test integration_guardrails
Use the command that owns the changed workflow. Running all of them can reveal adjacent breakage, but it does not replace a negative case that proves the changed rule rejects bad input.
Validate Benchmark Claims Honestly¶
Benchmark comparison combines two different concerns:
- parser and comparison mechanics
- execution of the curated benchmark workload
A focused test can establish normalized line parsing, threshold comparison, strict-mode refusal, and missing-baseline behavior. It cannot establish that the benchmark workload ran, that the selected workloads are representative, or that receiver and navigation performance remained stable.
If full execution is skipped, state that explicitly. Do not describe a parser test or successful non-strict run without a baseline as benchmark regression proof. Performance artifacts belong under the repository artifact root and must identify the command, profile, environment, threshold, and baseline.
Preserve Governed-Input Semantics¶
For file-backed policy:
- prove one valid record
- mutate one required field or boundary at a time
- prove missing-file and empty-file behavior
- prove expiry and date-boundary behavior where applicable
- assert the failure identifies the record and violated rule
- keep examples independent of the production parser when possible
Tests should protect semantic requirements, not incidental TOML ordering or message punctuation unless those are public output contracts.
Reject Misleading Validation¶
- only the package guardrail ran for a changed command decision
- a command was invoked directly but its Make or CI wrapper changed
- output text changed without reviewing scripts that parse it
- the slow roster changed without regenerating and inspecting both lane expressions
- benchmark safety is claimed without executing the benchmark workload
- a successful command is treated as approval of the underlying exception
- a new governed file or artifact location has no reader-facing contract
Use the test guide for current coverage and the governance file catalog for owned inputs.
A maintainer-tooling change is validated when the real governed input, policy boundary, negative case, output, exit status, wrapper, and remaining execution gap are all visible to the reviewer.