Polyglot detection hygiene
The polyglot detection cascade in `detectProjectType` has undocumented priority ordering, a missing indicator in the Tauri path, and no test that verifies the full priority order. These are hygiene issues — none cause wrong type detection today, but they make the code harder to understand and extend safely. Source: Learn Session 7, findings from 10 most recent proofs.
verdict PASSscore 9 / 9findings 4 (0 risk · 2 debt · 2 obs)duration 31mrejection cycles 0shipped May 21, 2026surface cli
Pipeline timeline
Intent to proven code in 31m across Think, Plan, Build, and Verify.
Think7m
Plan3m
Build3m
Verify4m
Assertion ledger
9 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | The polyglot detector documents both priority orders so developers know the cascade | verified | ok |
| A002 | The docstring explains why the two priority orders differ | verified | ok |
| A003 | Tauri projects with a lockfile show Cargo.toml in their indicators | verified | ok |
| A004 | Tauri projects without a lockfile show Cargo.toml in their indicators | verified | ok |
| A005 | Python wins when all four competing languages are present | verified | ok |
| A006 | Python detection returns high confidence in a four-way competition | verified | ok |
| A007 | Rust wins when Python is absent but three competitors remain | verified | ok |
| A008 | Rust detection returns high confidence when Python is absent | verified | ok |
Findings 4 total
debtpackages/cli/tests/engine/detectors/polyglot.test.ts→ scope
Tauri Cargo.toml indicator push has no test assertion — existing Tauri tests assert pnpm-workspace.yaml but not Cargo.toml
debtpackages/cli/tests/engine/detectors/polyglot.test.ts→ scope
Tier 4 Tauri test has no indicator assertions at all — only asserts type and confidence
obs→ closed
Ruby detection is existence-only — Gemfile with only dev gems still triggers Ruby detection
obspackages/cli/src/engine/detectors/projectType.ts→ closed
hasTauriWorkspaceDep catch block unreachable — regex-based function cannot throw
Integrity seal
scopesha256:06e618c39410c...
contractsha256:5171150faf4c3...
plansha256:db6da9c639da7...
specsha256:073ef34a4bd4b...
build-reportsha256:e0bcf9399efea...
build-datasha256:19bb6d94b642e...
verify-reportsha256:119f6290647c2...
verify-datasha256:9f54a4e731a88...
audit cmd$ ana proof audit fix-polyglot-detection-hygiene → all hashes match