Skip to content

About

A tool for seeing what an argument isn't resolving — claims, assumptions, and live tensions as a navigable graph.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

Tension Map

Paste an argument. See what it isn't resolving.

Tension Map turns argumentative text into an interactive graph: claims, hidden assumptions, and the tensions between them. Click a tension to see the shared premise keeping both sides plausible, and one open question — addressed to you, not resolved by the tool.

→ Live demo


Why this exists

Every time we read a persuasive argument — a policy document, an AI response, a speech — implicit value-choices are being made for us and delivered as conclusions. The AI response resolved a tension you never saw. The argument assumed a framework you might not share.

This tool is a direct inversion of AI deference: the AI extracts the logical structure, the human navigates it. Nothing in the tool resolves anything. The graph stays open because you have to close it.

That commitment is architecturally enforced. No scores, no verdicts, no winner button. Arrow's impossibility theorem as a design decision.


How it works

  1. Paste text (or pick an example — no API call needed for built-in scenarios).
  2. An LLM extracts claim nodes, assumption nodes (unstated premises), and tensions (where claims or assumptions pull against each other).
  3. D3 lays out the graph. Click any tension to read: both poles, the shared assumption making both seem valid, and one open question for you to answer.
Text → /api/extract (server-side, key never leaves) → { nodes, edges, tensions } → D3 force graph

This is a prototype, not a production product — it demonstrates the core primitive. A fuller tool would add persistent maps, provenance linking, human-in-the-loop editing, multi-document comparison, and export. See roadmap below.


Local setup

git clone https://github.com/syneid/tension-map.git
cd tension-map
npm install
cp .env.example .env.local   # add your API key
npm run dev

Open http://localhost:3000. Example buttons work with no key.

Variable Description
LLM_API_KEY DeepSeek key — server-side only, never exposed to the browser

Never commit .env.local or any file containing secrets.


Deploy to Vercel

  1. Push to GitHub.
  2. Import at vercel.com/new.
  3. Add LLM_API_KEY under Settings → Environment Variables.
  4. Deploy.

Limits (demo safeguards)

Limit Value
Input length 50–5,000 characters
Custom extractions 10 per session per hour

Example buttons bypass the API entirely.


Stack


Roadmap

This prototype demonstrates the core primitive — the tension node. The 90-day plan from here:

Phase 1 (July) — schema and rendering polish; shareable URLs (a tension map as a link you can send); better label layout for dense graphs.

Phase 2 (August) — user annotations: type your own answer to the open question; mark a tension "resolved by me" with a note; the node changes state. Export as JSON or PNG.

Phase 3 (September) — 10+ design partners; documented cases of the tool surfacing assumptions users didn't know they were accepting; write-up on what the grammar of a tension reveals across argument types; open contribution guide.


Contributing

The most useful contributions right now are schema improvements — better prompts for tension extraction, alternative rendering approaches, and domain applications (legal documents, scientific abstracts, policy briefs, therapeutic conversations).

Open an issue labelled schema, rendering, or application.

If you want to use this as a building block in your own deliberation tool, the tension node schema is designed to be reusable — open an issue or reach out directly.

For the full scaffolding context from initial development, see docs/build-guide.md.


Related writing


License

MIT — use and adapt freely.


Built by Zsombor Koman / Syneid Labs

About

A tool for seeing what an argument isn't resolving — claims, assumptions, and live tensions as a navigable graph.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages