Find code that is BUILT but never WIRED.
AI coding agents have a signature failure: they write a module, it compiles, its unit tests pass, the diff looks great — and nothing in the running system ever calls it. The work exists; the feature doesn't. Humans do this too, but agents do it at scale, and every green checkmark on an unwired file is a lie about progress.
wireline is the CI gate for that lie. It walks your real entry points (CJS + ESM), computes what's provably reachable, and reports two different failure shapes:
- built-not-wired — source files no entry point reaches: work nobody can use
- missing / unwired declared boundaries — things your manifest says exist: promises nobody kept, or built parts nothing connects to
npm install -g wireline
wireline scan # report unreachable source files
wireline check # + declared boundaries; exit 1 on findings (CI gate)
Zero dependencies. Entry points come from package.json (main, bin, exports) plus a
wireline.json config:
{
"entries": ["server.js", "functions/index.js"],
"declared": [
{ "name": "checkout API", "file": "src/api/checkout.js" },
{ "name": "invoice export", "file": "src/export/invoice.js" }
],
"ignore": ["^legacy/"]
}declared is the interesting half: after an AI agent builds a feature, add one line naming
the boundary it promised. wireline check then distinguishes three states — ok (built and
reachable), missing (spec'd, never built), unwired (built, unreachable). In an
agent-driven workflow this is the difference between "the agent says done" and "done."
- run: npx wireline check # fails the build when built ≠ wiredStatic analysis of literal require/import specifiers. Files using dynamic specifiers
(require(someVar)) are flagged opaque — their closure can't be proven, and wireline
says so instead of pretending. Tests deliberately don't count as wiring (a test that
exercises an orphan is how unwired code hides). JS/MJS/CJS today; no bundler-resolution,
no path aliases (PRs welcome — the resolver is one small module). Best-effort maintenance;
issues with a failing-test reproduction come first.
Extracted from the Oversight layer of Doric, where an agent team builds software against a living spec and built-not-wired was our single most recurring failure — recurring enough that the production system gates "built" on reachability. The full story: doric.build/blog/wireline.
Sibling packages: keepline (context integrity for LLM sessions) · shipline (deploy only the Firebase functions your change affects) · plotline