Namespace Kuestenlogik.Bowire.Linting

Classes

BowireLintConfig

Per-workspace lint configuration (#189), the shape of .bowire/rules.json: which rules run and at what severity. A rule is on unless a setting turns it enabled: false; a setting may also override the rule's severity. Rules with no entry keep their built-in defaults, so an empty (or absent) config means "run everything as shipped".

BowireLintConfigLoader

Auto-discovery + loading for the .bowire/rules.json lint config (#189), mirroring BowireProjectLoader: DiscoverPath(string?) walks UP the directory tree from a start directory looking for .bowire/rules.json, so bowire lint run anywhere in a checkout picks up the workspace's rules without a flag. "Not found" is null, never an exception. Load(string) reads a specific file and hands it to Parse(string).

BowireLintFinding

One design-time issue found in a discovered API surface. Produced by an IBowireLintRule and carried by BowireSchemaLinter. Method / Field are null when the finding is about the service as a whole.

BowireLintRuleSetting

One rule's entry in BowireLintConfig.

BowireSchemaLinter

Runs a set of IBowireLintRule over a discovered API surface and collects their BowireLintFinding. The typed rule engine behind design-time API validation (#189): the same discovery snapshot the workbench, bowire diff, and the PR bot use is checked here for design smells before a single request is sent.

Interfaces

IBowireLintRule

A single design-time rule over a discovered service. Rules are the extension seam of the linter: a new check is a new IBowireLintRule registered with BowireSchemaLinter. A rule inspects one service in isolation and yields zero or more BowireLintFinding.

Enums

BowireLintSeverity

How serious a schema-lint finding is. Ordered so a caller can gate on a minimum (e.g. fail the check on Medium and above).