decision-workbench
decision-workbench expands the decision-maker’s cognition before they decide. Decision power is the size of your option space, not the ability to pick. The tool diverges options, reveals blind spots, and structures the map — then hands the decision back to a human. It never picks a winner.
“AI shouldn’t make important decisions for you. It should make the decision space harder for you to misunderstand.”
“I only know Java Spring.” — said every engineer who never saw the open-source CRM bases, the SaaS options, or the no-code builders.
Links
- Repository:
sscodeai/decision-workbench - Runtime: Python (FastAPI) + React
- License: MIT
The 6-stage pipeline
Paste a decision you’re about to make — including what you already know — and the pipeline runs:
| Stage | What it does |
|---|---|
| 1. Bias flag | “I only know Java Spring” → detected as anchored_stack |
| 2. Divergence | 5 stances argue independently in parallel: architect · cost · security · product · red team |
| 3. Cross-exam | 3 probing questions force the space open — “Why did you NOT consider X?”, “Give one non-mainstream option with a reason”, “Weakest point of your preferred option?” |
| 4. Option map | Classified into consensus / true divergence / false divergence, each tagged “you probably didn’t know this” vs “you already knew this” |
| 5. Constraints | Check budget / team / deadline / compliance for a weighted re-score (still no winner) |
| 6. Human decision | The decision is yours. The system never picks. |
Why it is NOT llm-council
| llm-council (Karpathy) | decision-workbench | |
|---|---|---|
| Goal | Converge multiple models to a better single answer | Expand the option space before a human decides |
| End state | One synthesized answer | A map + trade-offs + a human decision |
| Divergence | Means to an end (better consensus) | The product itself |
| Who decides | The chairman model | The human (explicitly, always) |
| Failure mode | Artificial consensus (all models converge) | Anchoring bias (decision-maker locked in) |
The academic grounding: multi-agent LLM committees suffer from representational collapse when they share a model (arXiv 2604.03809) and artificial consensus when they share an architecture (arXiv 2604.26561). This tool is deliberately the opposite — a diverger built around heterogeneous stances plus a hard human gate, not a converger.
Quick start (mock mode — zero API keys)
# Backend (port 8002)
uv sync
uv run python -m backend.main
# Frontend (port 5173, proxies /api → 8002)
cd frontend
npm install
npm run devOpen http://localhost:5173, type a decision, and click “Expand my option space”. The mock provider ships pre-baked answers for 3 demo scenarios (tech stack / business / hiring), so the demo never depends on a live API.
Real models (OpenRouter)
export OPENROUTER_API_KEY=sk-or-v1-...
export PROVIDER=openrouter
uv run python -m backend.mainDemo scenarios
| Scenario | Input | Blind spot revealed |
|---|---|---|
| A. Tech stack | “I need to build a CRM. I only know Java Spring.” | open-source CRM bases, buy-vs-build, no-code, spreadsheet+automation |
| B. Business | “Sell report subscriptions. Only thought of Stripe.” | merchant-of-record (Lemon Squeezy / Paddle), membership platforms, crypto |
| C. Hiring | “I need to hire a full-stack engineer.” | remote-first, AI-augmented small team, agency outsourcing |
API
| Endpoint | Purpose |
|---|---|
POST /api/decide |
Run the full pipeline → bias flags, stance divergence, probing, option-space map |
POST /api/decide/constraints |
Re-score against selected constraints (weighted, still no winner) |
POST /api/decide/human-decision |
Record the human’s final choice |
Eval
The README makes a falsifiable claim: decision-workbench surfaces more decision-relevant options — especially options a baseline would miss — than a single model or a naive multi-agent chat. Against a hidden, hand-authored gold option set (never revealed to the systems under test):
| Method | Gold hit (of 12) | Avg coverage |
|---|---|---|
| Single model direct answer | 3/12 | 26% |
| Naive multi-agent (stances only) | 9/12 | 78% |
| Decision Workbench | 12/12 | 100% |
You can run the harness yourself with uv run python -m backend.eval_harness.
Tests
uv run pytest
# 25 tests: bias detection, stance prompts, probing, zone classification,
# novelty tagging, constraint weighting, mock provider, engine golden pathNext
- For the methodology alone as a skill, see decision-space-expansion
- Read the README and eval report in the repository
- Browse other SSCodeAI projects in Projects