Find the genuinely best product for a specific person.
Not whatever ranks highest, reviews loudest, or pays the most commission. Discern runs a disciplined buying method and shows every step of its work.
Most shopping tools rank by price or stars and have no taste. Discern encodes a real method.
Echo counts as one signal
Syndicated and affiliate listicles that copy each other collapse to a single signal — visibility can't masquerade as quality. Union-find independence clustering, with affiliate down-weighting.
A teardown, not a vibe
A dedicated step weighs chips, materials, and genuine value propositions — not spin. Handmade or local is value; "good enough" can beat "best."
The price gate applies last
Options earn their place on fundamentals and independent recurrence first. Only then does a value-per-dollar gate decide — never a raw price sort.
"Not enough evidence" is an answer
Every run states an outcome and per-claim confidence on a 0..1 scale, with counterevidence and a failed-source log. It would rather abstain than launder a guess.
| Affiliate listicles | Marketplace star-sort | Generic LLM answer | Discern | |
|---|---|---|---|---|
| Ranks by | commission / SEO | count of ratings | plausible recall | fundamentals, then independent recurrence |
| Duplicate sources | counted many times | — | blended silently | collapsed to one signal |
| Dealbreakers | ignored | filtered, then forgotten | soft-honored | structurally disqualified — can't win on merit |
| Price | often the whole point | a sort knob | ad hoc | value-per-dollar gate, applied last |
| Shows its work | no | partial | no | provenance · confidence · counterevidence |
A disciplined human buying method, encoded.
The order matters: preferences and value come before price, and price is the last gate — not the first sort.
- 01
Frame
Pin the need and the beneficiary — self or recipient.
- 02
Triage
Set research depth to match the stakes.
- 03
Harvest
Sweep many sources across roundup, requirement, and community angles.
- 04
Cluster
Collapse copied and affiliate echo — recurrence, not volume.
- 05
Teardown
Weigh the fundamentals: chips, materials, real value.
- 06
Filter
Apply your preferences; dealbreakers disqualify, structurally.
- 07
Value gate
Decide on value-per-dollar — price enters here, and only here.
- 08
Source
Find the best offer; scraped prices flagged verify-at-checkout.
The full considered set, on four derived axes.
A scannable tableau over every candidate — nothing considered is hidden. Bars are drawn on the same 0→1 scale the engine scored them on. This is the bundled example run, rendered by the Go viewer.
| Product | Fundamentals | Consensus | Evidence | Clean | |
|---|---|---|---|---|---|
| ◄ PICK | Sony WH-1000XM5 · Sony | .86 |
2 |
.77 |
.75 |
| ▲ runner-up | Bose QuietComfort Ultra · Bose | .82 |
1 |
.79 |
1.00 |
| ✗ REMOVED | Acme Studio 3 · Acme | .88 |
3 |
.80 |
.90 |
| ↳ rule: must support LDAC · SBC/AAC only — no LDAC codec [dealbreaker] | |||||
A dealbreaker doesn't merely filter — it disqualifies structurally, and the cut stays visible with its scores intact and the rule shown, so nothing considered is invisible. (The Acme row is illustrative; the bundled run has no dealbreakers.)
Markers use symbol and word — never color alone. The Node core computes every score once; the Go viewer only plots it. No decision logic is duplicated across the seam.
Running in three steps.
Discern is an agent skill, not a CLI binary — and it's AI-agnostic. Open the repo in any agent, and just ask; it reads AGENTS.md and runs the method.
Clone & gate
Grab the repo and run the offline gate — it validates the schemas and every golden fixture.
Build the viewer
One Go binary lists, filters, and reads runs — and plots the compare tableau.
Just ask
Open the repo in any AI agent — Claude Code, Cursor, Codex, Gemini. It reads AGENTS.md and knows what to do.
Real profiles and live run history are git-ignored — only *.example.md and store/example/ ship. Two toolchains, two gates, both green before any change: npm test and go vet ./... && go test ./... && go build ./....