Language support
TypeScript (primary)
TypeScript is cofferdam's primary surface: every flagship check — orphan exports, layering, complexity, suppression hygiene — targets TS / TSX / JS / JSX / MJS / CJS via the oxc parser.
HTML (build-output / plugin surface)
An HTML adapter ships under crates/cofferdam-html, built on tree-sitter-html. It backs two entry points: built-in and plugin checks can target .html files directly under cofferdam check (files: { extensions: ["html"] } for plugins), and .html/.htm files under a built output directory via cofferdam verify --dist. The plugin AstView/LineView surface is the same shape used for TypeScript — findAll("Element"), .attributes, .children — documented in the Author guide and demonstrated end-to-end in SEO-grade checking.
Rust (second language, dogfood)
A Rust adapter ships under crates/cofferdam-rust, exercising the engine's per-language dispatch (cd-91zc). Three checks today:
Rust.NoUnwrapInLib— no.unwrap()in library codeRust.NoUnimplementedInNonTest— nounimplemented!()outside testsRust.MissingPubDoc— public items need doc comments
A CI dogfood job runs cofferdam against its own Rust workspace on every PR.
The Rust adapter is load-bearing for the polylingual architecture pledge: until a second domain existed, "framework, not TS-tool" was theory. It now ships as a working second parser feeding the same Check trait the TS adapter uses.
Future adapters
SQL, IaC, and GraphQL adapters follow the same shape — a parser feeding the shared Check trait and category model. See the phased roadmap.