@kekkai/blueprint / LayerBans
Interface: LayerBans
Defined in: inspect/rules.ts:52
One layer's resolved bans — what the structural rules actually enforce there. Field agents answered "is the rule really wired?" by parsing eslint --print-config output by hand (issue #7); this is that view, derived from the same primitives emitLint compiles from.
Properties
forbidden
forbidden:
string[]
Defined in: inspect/rules.ts:55
Layers this one must not import.
globals
globals:
string[]
Defined in: inspect/rules.ts:64
Owned globals banned here.
layer
layer:
string
Defined in: inspect/rules.ts:53
packages
packages:
string[]
Defined in: inspect/rules.ts:57
Owned packages banned here (named imports in parentheses).
packagesNote?
optionalpackagesNote?:string
Defined in: inspect/rules.ts:62
Why this column needs verifying by hand. Beside the field it is about, not once at the top: a consumer reading bans[i].packages never looks at a sibling key.
selfOnly
selfOnly:
object[]
Defined in: inspect/rules.ts:77
The selfOnly re-export bans on this layer's files — the exact no-restricted-syntax selector per (target, alias).
selectors is what ESLint resolves and doctor compares; it is a trap to paste, because the / escapes resolve when JS parses the string literal and the regex silently ends early — no parse error, lint still green. jsLiteral is the same selector as JS source, quotes included, so the paste survives (field run #125).
note repeats per entry rather than sitting once at the top: an agent arrives here for selectors to copy, and a caveat has to be where the copy happens.
jsLiteral
jsLiteral:
string[]
note
note:
string
selectors
selectors:
string[]
target
target:
string
testExemptions
testExemptions:
string[]
Defined in: inspect/rules.ts:84
The test-exemption globs the emitted entry carries alongside these bans. A combined entry rebuilt from selectors alone drops them silently and starts reaching the test files those globs reach (field issue #60) — carry them wherever the selectors land.
