Cargo.lints.toml — the [lints.clippy] deny projection (E22)
The cargo lane's reference table that projects the clippy.toml bans onto clippy's severity ladder so they FAIL the build — delivered to .getff/ as a reference the consumer merges by hand; getff never edits a Cargo.toml.
Cargo.lints.toml — the [lints.clippy] deny projection (E22)
Status: shipped-beta · Ships to: cargo-lane only (delivered by setup.d/46-cargo.sh on every lane run) · Fires at: install time as a file delivery; its bans become build-failing through the consumer's Cargo.toml merge OR the delivered CI gate's -D clippy::disallowed_* flags
What it is
An 11-line generated reference file carrying one table: [lints.clippy] with disallowed_methods = "deny". It exists because of a clippy structural fact the file's header spells out: clippy.toml carries no severity, so a banned call is only a WARNING and cargo clippy still exits 0. This table is the projection that moves the same ban onto clippy's own ladder (allow → warn → deny → forbid) so it fails the build.
How it works
- The template is generated ("getff cargo backend v0 — do not edit by hand") — it is the second surface of the same bans
clippy.toml(E20) declares, authored by the same render pipeline. - It lands at
.getff/Cargo.lints.tomlon EVERY cargo-lane run (always delivered, like the CI gate), and the stage prints the merge note: to make the bans build-failing locally, merge the[lints.clippy]table into your Cargo.toml. - The never-auto-edit rule is the file's spine: getff NEVER edits the consumer's Cargo.toml — a bad merge would break their build — so the reference is delivered and the consumer merges by hand, or sets the same levels on the CI command line, which the delivered getff-cargo.yml gate does anyway.
- Lane honesty: cargo-lane only. In the collision matrix the deny surface has its own cell — even when the consumer's Cargo.toml already carries a
[lints.clippy]section, the lane never touches it; it always ships this reference plus instructions. The rules-lock record fingerprints the DELIVERED config (getff-clippy.toml in the refuse cell), never the consumer's own file.
Satellites & companions
Second surface of clippy.toml (E20) — same bans, severity-projected. Delivered by the cargo stage (A7) next to deny.toml (E21) and the getff-cargo.yml CI gate (E23), whose -D clippy::disallowed_* invocation is the CI-side realization of this table's deny.
Anchors
At framework pin aa87d0a47a6d8502f983cc9fe7284bd5dcb3d650:
packages/core/templates/cargo/Cargo.lints.toml:1— «# generated by getff cargo backend v0 — do not edit by hand»packages/core/templates/cargo/Cargo.lints.toml:2-3— «# getff clippy severity projection (the "deny surface"). clippy.toml carries NO severity, so a» «# banned call is only a WARNING andcargo clippyexits 0 over it (render-clippy.ts FF7003). This»packages/core/templates/cargo/Cargo.lints.toml:7-8— «# getff NEVER edits your Cargo.toml automatically (a bad merge would break your build). MERGE this» «# table into your crate's Cargo.toml by hand — or set the same levels on the CI command line»packages/core/templates/cargo/Cargo.lints.toml:11— «disallowed_methods = "deny"»setup.d/46-cargo.sh:129— «_cargo_copy_or_refresh "$tpl/Cargo.lints.toml" "$PROJECT_ROOT/.getff/Cargo.lints.toml"»setup.d/46-cargo.sh:19-20— «# (lints) [lints.clippy] deny surface → NEVER auto-edit the consumer's Cargo.toml (a bad merge breaks» «# their build). ALWAYS deliver Cargo.lints.toml (the reference)»
tsconfig.json — delivered tsconfig (E19)
The strict TypeScript config delivered to npm-lane consumers: ES2022 + NodeNext modules, the full strict family (noUncheckedIndexedAccess, exactOptionalPropertyTypes, verbatimModuleSyntax) and a tests-covering include set the stage's FC3 check reads.
getff.pre-commit-config.yaml.fragment — idempotent pre-commit append (E34)
The python lane's pre-commit-framework integration: a local-hook fragment that registers the getff pre-push rung as a pre-push-stage hook, appended to an existing .pre-commit-config.yaml idempotently via a marker grep — never appended twice.