Maintainer Integration Seams¶
Developer tooling connects reviewed repository state to Make and maintainer decisions. It does not own the meaning of security exceptions, shared standards, product benchmarks, or test-lane orchestration. Each seam needs a named authority, transport contract, and failure owner.
Seam Map¶
flowchart LR
security["security review"]
standards["shared standards<br/>review"]
product["receiver and navigation<br/>benchmarks"]
roster["slow-test ledger"]
dev["developer tooling"]
make["Make orchestration"]
script["nextest expression<br/>generator"]
policy["policy package"]
reviewer["maintainer"]
security --> dev
standards --> dev
product --> dev
dev --> make --> reviewer
roster --> script --> make
roster --> dev
policy --> dev
dev --> reviewer
The arrows do not imply ownership transfer. Developer tooling validates local records, adapts one reviewed ledger into audit arguments, compares selected benchmark output, and tests the generated test-lane relationship.
Active Seams¶
| Seam | Transport | Consumer expectation | Failure owner |
|---|---|---|---|
| security review to allowlist validator | reviewed security ledger | records remain attributable, linked, and unexpired under implemented rules | repository security review owns disposition; developer tooling owns validation mechanics |
| allowlist adapter to audit workflow | one sorted stdout line of --ignore arguments |
no commentary, valid shell tokenization, validation runs separately | developer tooling owns rendering; Make owns capture and invocation order |
| shared standards review to deviation validator | local deviation ledger | every local deviation points to an HTTP(S) review containing the shared-standard identity | shared standards owns durable policy; developer tooling owns local enforcement |
| product benchmarks to comparison | Cargo bencher-format stdout | selected rows normalize into name/value pairs and compare with a baseline when present | product packages own benchmark meaning; developer tooling owns invocation and comparison mechanics |
| comparison to maintainer | terminal findings plus raw and normalized evidence | missing baseline, strictness, threshold, and unmatched names remain visible | developer tooling owns evidence semantics |
| slow-test ledger to lane generator | escaped exact-name regular expression | slow expression includes ledger entries and slow-named tests; fast expression negates the slow expression | Make tooling owns generation and lane execution |
| lane generator to developer integration test | child-process stdout | expression shape and ledger inclusion remain coherent | developer tooling owns this integration proof, not the generator |
| policy package to package guardrail | test-only Rust API | private package remains within configured repository structure | policy package owns reusable rule meaning; developer package owns its configuration |
Audit Workflow Composition¶
sequenceDiagram
participant Make
participant Dev as developer tooling
participant Deny as cargo-deny
participant Audit as cargo-audit
Make->>Dev: derive reviewed ignore arguments
Dev-->>Make: exact stdout argument line
Make->>Dev: validate security ledger
Dev-->>Make: status and diagnostics
Make->>Dev: validate local deviations
Dev-->>Make: status and diagnostics
Make->>Deny: check dependency policy
Deny-->>Make: status and report
Make->>Audit: scan with derived ignores
Audit-->>Make: status and report
The Rust maintenance Make rules preserve separate statuses for governance validation, dependency policy, and advisory scanning. The dev binary does not sequence those tools itself. Changing stdout, command names, or absence behavior must be tested through this caller, not only by direct invocation.
Nextest Policy Seam¶
The slow-test ledger is not a runtime input to the dev binary. The shared shell expression generator reads the ledger for Make’s fast and slow lanes. The suite-selection integration executes that generator and checks:
- sorted, unique ledger entries
- heuristic resolution to a test function name somewhere in the workspace
- explicit ledger coverage for every
slow__-named test - inclusion of the slow-name namespace in the slow expression
- exact embedding of the slow expression inside the fast negation
- matching of every ledger entry by the extracted regular expression
It does not prove test duration, exact package and test-target identity, scientific value, or the absence of additional matches. Those decisions remain human and product-owner responsibilities.
Benchmark Seam¶
Benchmark names and measurements originate in receiver and navigation. The developer command hard-codes the selected targets and requests Cargo’s bencher format. It recognizes only lines matching its current regular expression. Unrecognized lines are not persisted in the normalized snapshot, and benchmarks absent from the baseline do not receive a comparison decision.
Review all of these together when the seam changes:
- selected product targets
- Cargo output format and parser
- normalized snapshot schema
- baseline provenance
- threshold interpretation
- strict versus non-strict status
- Make’s
BENCH_STRICTmapping
The benchmark evidence guide documents intended ownership. The execution model documents write ordering and partial-evidence behavior.
Reject Hidden Coupling¶
Block a change when it:
- imports product internals instead of invoking a product-owned public benchmark or interface
- duplicates exception records in Make, workflow configuration, or code
- moves orchestration and report aggregation into the binary without a durable command contract
- treats a policy test dependency as permission to expose policy internals at runtime
- lets a generated evidence file become an accepted baseline without review
- parses human diagnostics where process status or typed data should be used
- claims a roster test proves runtime cost or scientific correctness
Review a Seam Change¶
- Name the authority on both sides and the exact transported value.
- Define absence, malformed input, duplicate input, process failure, and partial output.
- Verify the producer directly.
- Verify the first consumer with real quoting, status propagation, and paths.
- State which semantic decisions remain outside developer tooling.
- Update workflow contracts and maintainer evidence limits when the seam’s trust boundary changes.
A seam is explicit when a reviewer can identify who supplies meaning, who transports it, who consumes it, and who repairs each failure.