DEV Community

David Webb
David Webb

Posted on Originally published at tangoera.com

Building an AI Tarot Decision Engine: Why I Used Tarot as a Framing Layer (and What the 7-Dimension Radar Actually Models)

A few months ago I caught myself doing the thing every solo founder does: re-reading the same pros-and-cons list for the fourth time, hoping the answer would change. I wasn't lacking information. I was stuck in a loop — re-analyzing instead of committing.

That loop is what I ended up building a product around. TangoEra is an AI-powered decision report tool, currently in a free beta. This post is the engineering story: why tarot, what the engine actually computes, and the mistakes I made along the way.

Why tarot is a framing layer, not a prediction layer

The obvious objection: "AI tarot? So it predicts the future?" No — and this distinction is the whole design.

Tarot survived for centuries not because it predicts outcomes, but because a card spread is a forced perspective machine. The Fool, the Tower, the Two of Swords — each card is a lens that drags your thinking onto an axis you were avoiding. When you draw "restraint" on a day you're fired up to quit your job, the value isn't mystical. It's a structured interruption of your default narrative.

So the product framing is: the AI generates an archetype profile and a decision report, and the tarot visual layer is the interface that makes people slow down and actually read the analysis instead of skimming bullet points. The cards are UI, not oracle. Every report carries the honest disclaimer: this is a self-reflection and decision-support tool based on statistical weak correlation, not prediction, not advice.

I think of it as putting a decision matrix inside a story people will finish.

The engine: archetype vectors, not a black box LLM

Under the hood there are two layers.

Layer 1 — the calibration engine. We model each user's decision style as a vector over seven continuous dimensions: risk appetite, intuitive synthesis, temporal patience, social dynamic, action bias, reflection depth, and stability. Scores live on a 0–100 index, but real profiles only occupy an observed 12–88 band, which matters for normalization.

We maintain 10 prototype archetype vectors — the Alchemist, the Sage, the Challenger, the Builder, the Architect, the Maverick, and so on. Each archetype is a distinct geometric shape across the seven dimensions, with an operational strength and a primary failure mode. The Sage scores high on reflection and patience, low on action bias — brilliant at verification, prone to missing asymmetric upside through over-analysis. The Challenger is the mirror image. When a user's quiz answers come in, we project them onto this prototype space (nearest-shape matching with soft membership, not hard classification) rather than asking an LLM to freestyle a personality type. That keeps output stable, testable, and cheap to regression-test.

Layer 2 — the report radar. The seven dimensions the user sees in their report are translated into decision-facing axes: clarity, risk appetite, timing, relationships, resources, blind spots, and next move. This is where the tarot cards bind to computed values — a card is selected because a dimension score (plus its distance from the archetype's own baseline) triggers it, not at random.

The tension rendering is the part I'm proudest of. A report that says "you're high risk, high reflection" is useless. A report that says "your reflection score is 38 points above your action score — that gap is your frozen-week pattern, and here is the specific next step sized to close it" is a tool. Reports render two sections: tensions (pairs of dimensions that are far apart and therefore in internal conflict) and next steps (one concrete, low-commitment action per tension). One next step, not five. Choice overload is the disease; a report with five action items is just more of it.

This borrows directly from the decision-matrix tradition (Stuart Pugh's concept-selection matrices): score dimensions, weight by importance, let arithmetic surface structure instead of opinions. Our quiz is essentially a weighted scoring instrument wearing a tarot costume.

The 3-minute quiz as a queue gate

The quiz exists for two reasons. First, calibration: we need ~20 weighted answers to place you in the seven-dimensional space with enough confidence that the radar isn't noise. Second — and this is a product decision, not a technical one — it gates the daily report queue.

We generate a limited number of full AI-written reports per day, with a daily 3 seats for the free beta. The quiz is the gate: it filters out drive-by traffic and makes sure every generated report gets a human who actually engaged with their inputs. As a solo dev, this isn't artificial scarcity — it's capacity management. Each report is reviewed for template drift, and human-scale volume is the only way I can catch the LLM quietly going off-script. If you've ever run a generative feature unattended, you know the failure mode: output slowly drifts and nobody notices for weeks.

Honest limitations

  • The birth-timestamp-to-dimension mapping is a weak statistical correlation, not science. It's a vocabulary generator, not a verdict. I'm upfront about this in-product.
  • Quiz self-reporting has all the usual biases. People answer who they want to be on Monday morning.
  • The report is a mirror. If a user wants certainty, no tool sells that honestly.

Solo-dev lessons

  1. Constrain the LLM with geometry. Let the model write prose inside a computed skeleton (archetype vectors, tension pairs, threshold rules), never invent the skeleton. Testability went from "vibes" to unit tests on vectors.
  2. Human-scale queues are a feature. A daily cap forces review loops, which catch drift, which builds trust.
  3. Own the weird framing. Tarot gets attention that "decision support SaaS" never would, and the card constraint genuinely improves the writing — forced metaphors beat blank pages.

If you're building something similar, steal the pattern: compute hard, narrate softly, and always label the correlation honestly.

Try the free beta: https://tangoera.com/?utm_source=devto

Top comments (0)