Facet

The Bench · Code measurement

“Is this good code?” is the wrong question.

A throwaway script and a payment boundary can solve the same problem and score nothing alike, because they were built for different things. Facet refracts a file into 14 measured dimensions and reads it against the profile it was written for.

one number infourteen faces outnever a single grade

Profile a fileOpen a sample report

Free while in beta. No card. The standard web profile does not retain your plaintext source. A quick security check needs no account at all.

Building with an AI coding agent? Join the API, CLI, and MCP before-and-after beta.

01

Unmeasured code is not free. Someone is paying for it right now.

Every codebase is optimising for something - speed, safety, throughput, changeability. If nobody chose the trade, the deadline chose it. The documented bill for leaving that unexamined:

$2.41Tpoor software quality cost, US alone, one year (CISQ 2022)
42%of the average developer week lost to maintenance and bad code (Stripe)
45%of AI coding tasks introduced a known vulnerability class (Veracode 2025)

The full case, with receipts - and what it means if you build fast with AI →

02

One number in. Fourteen faces out.

Every other tool hands you a single grade. That grade hides exactly the part you need: the tradeoffs. Facet puts a file on the bench and lets one beam of measurement refract into fourteen dimensions, each measured apart, each with its evidence cited to the line.

03The instrument, operable

Not a grade. A shape you can inspect.

Hover or focus a dimension to see its cited evidence in the sample artifact. The probe pane lights the exact lines the judge read. Poles never net: capability and violation stay separate, always.

authorise_transfer.pypython
written for Security boundaryreads closest to P9 Security-Critical
D1 Runtime performance0%40%
D2 Memory efficiency0%34%
D3 Readability10%82%
D4 Maintainability0%64%
D5 Robustness14%90%
D6 Security8%94%
D7 Portability0%52%
D8 Prototype economy0%30%
D9 Testability0%70%
D10 Observability22%60%
D11 Auditability0%86%
D12 Concurrency safety16%55%
D13 API ergonomicsno surface · N/A
D14 Resource cost0%42%
probeD6 Security · authorise_transfer.py · lines 6-9

basis the account lookup is parameterised; no string-built SQL reaches the driver

capability present, right harm present, left N/A = no surface
13 measured1 N/Ano axis wins them all
04Why trust the read

Most AI reviewers hand you a verdict and ask for faith. Facet is built the other way around.

The model never scores. It extracts line-cited evidence, and deterministic code sets every level. Same code, same profile: test-retest 0.94 on real code, frozen per content hash.

The weights are not our opinion. Where a dimension is weighted, the weights come from external standards: SonarQube rule severities, corroborated by NVD CVSS scores.

We attacked our own scoring. A 40-agent adversarial review tried to refute every security weight. It found real defects. Every one was fixed.

Security fails closed. One detected critical defect caps the security score no matter how much good practice surrounds it.

Read the worked exampleSee how it measuresWhy this is hard

01 · measurement
0.94

test-retest on real code · floor 0.90 enforced

02 · external weights
ρ ≈ 0.69

two independent standards, one tier order - provisional

03 · adversarial review
  • fabricated rule anchorremoved
  • full-tier contradictionre-derived
  • XSS below the gatefloored

40-agent review · 0 defects survived

04 · fail-closed
capped

one critical defect sets the ceiling, whatever surrounds it

05See it run

Watch one file refract on the bench.

A short walkthrough: paste a file, watch the beam split into fourteen measured dimensions, and read each one against the profile the code was written for.

The beta question

Does this read feel fair on your real code?

Disagreement is useful when it is precise. Facet asks whether a dimension reads high, low, or about right, so beta feedback becomes calibration data. Free while in beta.

Model finds

The judge extracts line-cited evidence. It never assigns a score.

Code decides

Deterministic code sets each level. Same file, same profile, same result.

Profile frames

The same code can be right or wrong depending on what it was built for.

Plaintext is not retained

Managed durable scans temporarily hold an encrypted selected slice, then delete it after completion or expiry.

Run a profileWatch the demoSee open-source reviews