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.
Think2m
Plan9m
Build6m
Verify4m
Assertion ledger
19 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | A Python project with frontend tooling (package.json + lockfile + pyproject.toml with deps) detects as Python | verified | ok |
| A002 | A standard Node project with a lockfile still detects as Node | verified | ok |
| A003 | Standard Node projects retain full confidence | verified | ok |
| A004 | A monorepo with workspaces always detects as Node even with pyproject.toml present | verified | ok |
| A005 | Poetry-based Python projects are correctly identified | verified | ok |
| A006 | A project without a lockfile but with pyproject.toml detects as Python | verified | ok |
| A007 | A project without a lockfile but with pyproject.toml gets appropriate confidence | verified | ok |
| A008 | A bare package.json without lockfile or competing manifest gets reduced confidence | verified | ok |
Findings 4 total
obspackages/cli/src/engine/detectors/projectType.ts→ closed
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.ts→ monitor
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.ts→ closed
nextSection search uses indexOf('\n[') which misses a section header at position 0 of the sliced block (no preceding newline)
obs→ closed
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