Rust/Go Polyglot Detection

`detectProjectType` only checks for `pyproject.toml` as a competing manifest when `package.json` exists. It never checks for `Cargo.toml` (Rust) or `go.mod` (Go). Result: tabby (92.9% Rust, 20-crate Cargo workspace, 37k stars) is classified as TypeScript because it has a thin `package.json` for turborepo orchestration. This is the same disease class as the Python polyglot fix — a non-Node project with a secondary package.json for frontend/build tooling gets misclassified as Node.

verdict PASSscore 18 / 18findings 6 (1 risk · 2 debt · 3 obs)duration 9h 7mrejection cycles 0shipped May 17, 2026surface cli

Pipeline timeline

Intent to proven code in 9h 7m across Think, Plan, Build, and Verify.

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

Assertion ledger

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

IDSaysMatcher
A001A Rust workspace project with a secondary package.json is detected as Rustverifiedok
A002A Rust workspace project gets high detection confidenceverifiedok
A003Cargo.toml appears in the detection indicators for Rust projectsverifiedok
A004A WASM binding crate without a workspace stays detected as Nodeverifiedok
A005A Go project with a secondary package.json is detected as Goverifiedok
A006A Go project gets high detection confidenceverifiedok
A007go.mod appears in the detection indicators for Go projectsverifiedok
A008Projects with only package.json and lockfile still detect as Nodeverifiedok

Findings 6 total

riskpackages/cli/src/commands/init/preflight.tsclosed
Preflight .git detection regression — fileExists returns false for directories
debtpackages/cli/src/commands/scan.tsclosed
Over-building — init/state.ts, init/index.ts, scan.ts changes unrelated to polyglot detection
debtpackages/cli/tests/engine/detectors/polyglot.test.tsclosed
A017 frameworkDeps test uses toBeDefined — passes even if framework is null
obspackages/cli/src/engine/detectors/projectType.tsclosed
hasRustWorkspace catch block unreachable — regex cannot throw
obspackages/cli/src/engine/detectors/projectType.tsclosed
Priority ordering Python > Rust > Go in Tier 3 is implicit and untested
+1more findings

Integrity seal

scopesha256:85ce719a170fd...
contractsha256:5be120e2d7446...
plansha256:eed85030e96bd...
specsha256:52d5a8662b376...
build-reportsha256:66519e0d07b20...
build-datasha256:d2d57712949ae...
verify-reportsha256:ebac47ea6d2c8...
verify-datasha256:6bac0f659016e...
audit cmd$ ana proof audit rust-go-polyglot-detection   → all hashes match