Outcome
Eliminate redundant “basic/default bundle” Lint.swift files structurally across the Swift Institute fleet and mechanically prevent their reintroduction.
Acceptance
- Run a positive-controlled census of every tracked root and nested
Lint.swift across primitives, standards, and foundations. Record exact blobs plus the effective rule composition each file selects.
- Partition the population into:
- semantically identical to the centrally selected layer/default bundle;
- package-specific composition with a proved owning requirement;
- malformed, stale, or ambiguous.
- Remove every file in the first class as one bounded fleet convergence wave. Do not create per-package handwritten replacements.
- Ensure CI and local tooling select the correct central layer bundle when
Lint.swift is absent; prove absence does not weaken or disable lint.
- Add a mechanical rule with positive, negative, edge, and near-miss fixtures that rejects a package-local
Lint.swift whose effective composition merely reproduces the central default.
- Require every remaining package-specific file to have a finite semantic disposition/owner; no open-ended path exception or arbitrary local configuration is admitted.
- Run final fleet census proving zero redundant-basic files and unchanged-or-stronger effective diagnostics.
swift-foundations/swift-async#13 is one measured child row, not the scope boundary.
Refs package-reduction programme #527 and lint convergence Goal #90.
Outcome
Eliminate redundant “basic/default bundle”
Lint.swiftfiles structurally across the Swift Institute fleet and mechanically prevent their reintroduction.Acceptance
Lint.swiftacross primitives, standards, and foundations. Record exact blobs plus the effective rule composition each file selects.Lint.swiftis absent; prove absence does not weaken or disable lint.Lint.swiftwhose effective composition merely reproduces the central default.swift-foundations/swift-async#13is one measured child row, not the scope boundary.Refs package-reduction programme #527 and lint convergence Goal #90.