Polyglot Language Detection

`detectProjectType` returns `'node'` the moment `package.json` exists. It never checks whether pyproject.toml also exists. Result: litellm (47k stars, YC W23, Python FastAPI) and langflow (140k stars, Python FastAPI) detect as "Node.js" because they have `package.json` + `package-lock.json` at root for their frontend UI tooling. A potential pilot customer seeing "Language: Node.js" on their Python project is an immediate credibility failure for Anatomia's core value proposition.

verdict PASSscore 19 / 19findings 4 (0 risk · 1 debt · 3 obs)duration 56mrejection cycles 0shipped May 17, 2026surface cli

Pipeline timeline

Intent to proven code in 56m across Think, Plan, Build, and Verify.

Think
2m
Plan
9m
Build
6m
Verify
4m

Assertion ledger

19 claims, each independently verified. Showing 8 — show all →

IDSaysMatcher
A001A Python project with frontend tooling (package.json + lockfile + pyproject.toml with deps) detects as Pythonverifiedok
A002A standard Node project with a lockfile still detects as Nodeverifiedok
A003Standard Node projects retain full confidenceverifiedok
A004A monorepo with workspaces always detects as Node even with pyproject.toml presentverifiedok
A005Poetry-based Python projects are correctly identifiedverifiedok
A006A project without a lockfile but with pyproject.toml detects as Pythonverifiedok
A007A project without a lockfile but with pyproject.toml gets appropriate confidenceverifiedok
A008A bare package.json without lockfile or competing manifest gets reduced confidenceverifiedok

Findings 4 total

obspackages/cli/src/engine/detectors/projectType.tsclosed
Tier 4 no-lockfile + pyproject with no real deps returns 0.70 — same confidence as Tier 5 bare package.json, indistinguishable to downstream consumers
debtpackages/cli/tests/engine/detectors/polyglot.test.tsmonitor
A012 frameworkDeps test verifies detector-level cascade but not the actual scan-engine.ts ternary conditional — the ternary fix is tested structurally, not behaviorally
obspackages/cli/src/engine/detectors/projectType.tsclosed
nextSection search uses indexOf('\n[') which misses a section header at position 0 of the sliced block (no preceding newline)
obsclosed
Spec says Tier 2 workspaces is 0.90, Tier 1 lockfile-only is 0.95 — a monorepo with a lockfile gets LOWER confidence than a non-monorepo with a lockfile, which is counterintuitive

Integrity seal

scopesha256:e60be011f8dea...
contractsha256:a9af3f25e9f60...
plansha256:9298e635f3124...
specsha256:a4d5dbac3ee0f...
build-reportsha256:1c902a29ee26e...
build-datasha256:9f1424bb781bd...
verify-reportsha256:ed1a2d046985d...
verify-datasha256:f31db0eee770f...
audit cmd$ ana proof audit polyglot-language-detection   → all hashes match