Skip to main content
Find out whether your idea is worth building — and if not, where to aim instead. A demand report tells you what people want. The validation loop goes further: it weighs that demand against what people can already get, and gives you a straight verdict — GO, PIVOT, or NO-GO — with every claim backed by a real quote. On a PIVOT it hands you the under-served angle to try next, and loops.
The verdict is computed deterministically from the evidence (demand strength vs. how crowded the landscape is), so it’s defensible and reproducible — the model only writes the explanation, never the decision.

Two ways in

  • Idea-first — you have an idea (“a jitter-free focus app for devs”). metalworks sharpens it into a testable hypothesis and runs the loop.
  • Evidence-first — you have a space, not an idea (“what should I build for night-shift nurses?”). metalworks surfaces the real pains as candidate ideas, each grounded in a complaint, and you pick one.

Run the whole loop

One call runs it end to end (headless, auto-deciding at each gate using the computed verdict):
In Claude Code the loop is interactive — it pauses at each verdict and you make the GO / PIVOT / NO-GO call (you have context the corpus doesn’t). The Python and CLI forms run --auto, taking the computed recommendation at each gate.

Or drive the stages yourself

The loop is just four composable primitives. Run them one at a time when you want control:

1. Ideate — frame the idea

Evidence-first instead? Surface the forks from a report and pick one:

2. Landscape — what already exists

The competitor map plus an empirical scan of real shipped products, and the cost of doing nothing:

3. Assess — the verdict

How the verdict is decided

The decision is a gap function, not an opinion:
  • Demand strength — relative, not an absolute headcount. Each fork is scored by its prevalence (its share of the pulled crowd) and its standing among the report’s other forks, so the bands self-calibrate to the run instead of leaning on a hardcoded “100 = strong” cutoff. (A report with no forks falls back to a surfaced, overridable policy on the whole-report count.)
  • Landscape saturation — how crowded the supply is (named competitors + real shipped products), held down by competitors who badly miss something (an opening).
The verdict is computed per fork and synthesized — assessment.fork_verdicts carries the un-collapsed answer (“GO on the sleep wedge, NO-GO on the broad market, GO on the enterprise segment”), each with its own demand band and a confidence (how far the call sits from a band edge): Two honest guardrails: if the landscape scan couldn’t fully ground (no product source configured), a hard GO is withheld — absence of evidence is not absence of competition; and a pull too thin to trust is flagged as low-confidence rather than dressed up as a strong signal.

Not to be confused with

metalworks discovery is a different feature — it finds Reddit threads where you can helpfully reply. The validation loop is about deciding what to build.

Next