Triangulate without oracle
Skill XyraSinclair/ideonomy/skills/triangulate-without-oracle
Stay rigorous on questions that have NO computable oracle — taste, register, ethics, strategy, "is this good / right / worth it". Use when you catch yourself about to score an irreducibly normative or aesthetic thing with a single made-up number (7/10, "high quality", "this is the right call"). The danger it prevents: an LLM invents a metric, optimizes it with full rigor, and ships a confidently-wrong answer to a question that never had a metric — Goodhart at the epistemic level, worse than no rigor. Triggers on value judgments, design/copy review, prioritization, "which is better" where "better" is contested, and anywhere a proxy oracle would amputate the thing that mattered.From its SKILL.md
npx -y skills add XyraSinclair/ideonomy --skill triangulate-without-oracleAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.2 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
triangulate-without-oracle
This patches the blind spot every strong reasoning style shares: they assume a checkable oracle exists. When it doesn't, the default move is to manufacture one and trust it. This skill refuses that and stays honest instead.
Organon: P5 dimensionalize + P21 judge-panel + M4 cross-model triangulation + P37 residue-seed. Respiratory: disagreement is the residue — consensus compresses, disagreement points at where the real judgment lives.
When NOT to use it
If a real, cheap, independent oracle exists (a test, a count, a derivation, a unit check), use build-the-oracle-before-the-answer instead. This skill is for the cases where forcing an oracle would measure the wrong thing precisely. Misrouting toward a fake oracle is the exact failure it exists to prevent.
The tool
An executable harness ships with the organon — ideonomy/triangulate.py:
python3 -m ideonomy.triangulate "<question>" \
--axis "<axis 1>" --axis "<axis 2>" \
--judge 'claude -p {prompt}' --judge '<a second, different model> {prompt}'
It refuses to run with fewer than two independent judges or with no axes
(omitting --axis auto-dimensionalizes via the first judge). It reports, per
axis, the spread of independent judgments — never a single collapsed number —
and names the contested axes as the residue an owner must decide. Those
contested axes feed straight into the cross-session ledger (P-10):
Triangulation.to_residue(ledger) writes each as a contested_axis item, so
P-9 and P-10 compose — a disagreement surfaced today is the seed carried to the
session that resolves it.
Procedure
-
Name that there is no oracle. State plainly: "this question is irreducibly a judgment; there is no computation that returns its answer." Writing this down is the first defense against fabricating a proxy.
-
Dimensionalize the value space (P5). Decompose the vague predicate ("good", "right", "better") into 2–5 named, concrete axes it actually comprises. For product copy: austerity, exactness, structural clarity. For a strategy: reversibility, blast radius, option value, mission fit. Bad axes are themselves a finding — if you can't name them, you don't understand the judgment yet.
-
Gather independent judgments per axis (P21, M4). For each axis, get ≥2 independent reads — different models, different framings, or genuinely separate passes that do not see each other's verdict (M3 blind). Independence is the point; two correlated reads are one read.
-
Report the spread, do not average it (M4). Where the independent reads agree, that axis is settled — compress it. Where they disagree, that disagreement is the highest-value signal: it localizes exactly where the question genuinely underdetermines its answer. Surface the disagreement; never launder it into a mean.
-
Name the irreducible judgment and its owner. For the axes that stay contested, state explicitly: "this is an irreducible judgment, owned by ___, to be made on grounds ___." Hand it to whoever legitimately owns it (often the human) rather than fabricating a resolution.
-
Carry the disagreement forward (P37). The contested axes are residue — the frontier of the question. Record them so the next pass starts there.
The gate (anti-fake-oracle)
This is the only premier skill whose gate is not machine-checkable — it gates on honesty about the absence of a gate. You pass iff:
- you produced ≥2 independent judgments per value-axis and reported their spread, OR
- you explicitly named the judgment as irreducible, with an owner and the grounds it must be decided on.
You fail if you collapsed the question to a single manufactured scalar with no named axes. Because the gate is honesty rather than execution, it needs a cross-model or human audit (M4/M6) to stay real — build that audit in for anything high-stakes.
Example
"Is this product's landing copy in the right register?" — Default: "It's solid, 8/10." This skill: name no-oracle; dimensionalize into {austerity, exactness, structural clarity, absence of SaaS-soup}; get two independent reads per axis; they agree it's austere and structurally clear, disagree on whether one line is exact or vague — that single disagreement is the actual review finding; name "the exactness call on line 3 is the human's, on the grounds of whether it overclaims." No fabricated number; the real decision surfaced and routed.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most roadmap strategy skills give in ~1.1k tokens
Counted across 614 of the 719 authors here whose files we hold, read 2026-09-06
- Check for product marketing context firstin 39 of 614, across 16 files
- Use compact with a custom summaryin 32 of 614, across 16 files
- Compact after planningin 30 of 614, across 16 files
- Do not compact mid-implementationin 30 of 614, across 17 files
- Structure launch marketing across three channel typesin 21 of 614, across 5 files
- Read the compaction suggestionin 20 of 614, across 10 files
- Write before compactingin 17 of 614, across 11 files
- Write important context to files before compactingin 16 of 614, across 5 files
- Recruit early users one-on-onein 16 of 614, across 3 files
- Identify 3-5 core content pillarsin 15 of 614, across 9 files
- Target a specific keyword or questionin 14 of 614, across 4 files
- Stagger announcements to maintain momentumin 14 of 614, across 4 files
Said here and by no other author read
- State plainly that there is no oracle
- Decompose the vague predicate into concrete axes
- Gather independent judgments per axis
- Report the spread without averaging it
- Name the irreducible judgment and its owner
- Record contested axes as residue
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.