Decision Brief Engine is an AI-native product experiment for turning messy notes into structured decision briefs.
Instead of simply summarizing text, it captures underlying intent, decisions, risks, constraints, and unresolved questions before generating executive-ready output. The Capture Layer is the user-facing “show your work” artifact for understanding, and the Decision Trace makes the final recommendation and next steps auditable back to that captured intent, evidence, assumptions, risks, constraints, and alternatives. Raw model thinking, hidden reasoning, and chain-of-thought are not exposed.
Current release: v0.2.1 — Decision Brief Workspace and Writing Quality Polish
Public demo: https://decision-brief-engine.vercel.app/
Release notes: https://github.com/this-side-down/decision-brief-engine/releases/tag/v0.2.1
The hosted demo runs in Mock mode by default for reliability. Local Ollama is the strongest real-generation path for local evaluation. Browser WebGPU remains gated while quality improves.
v0.2.1 polishes the Decision Brief workspace with a brief-first generated layout, rendered Preview and explicit Edit Markdown mode, contained Preview scrolling, scrollable expanded Traceable Basis, nested disclosure chevrons, and clearer singleton basis fields. Writing quality improves through decision-grade fixtures, deterministic checks, and aligned recommendation wording across Capture Layer, Decision Brief, and Decision Trace.
v0.1.0 is the first portfolio-ready public demo milestone: example gallery, export polish, Local Ollama health check, and generation telemetry. See Public demo milestone for the full write-up.
v0.2 closes the recommendation transparency gap by adding a structured Decision Trace between the Capture Layer and Decision Brief, then polishing the UI hierarchy so Capture Layer (understanding), Decision Trace (judgment), and Decision Brief (portable output) read as one flow instead of three peer documents.
Recommendations and next steps are traceable to captured intent, evidence, assumptions, risks, constraints, alternatives, and missing context without exposing raw model thinking or chain-of-thought. Traceable Basis stays compact by default, and Capture Layer becomes secondary behind a compact summary once a Decision Brief exists. See CHANGELOG.md for the full v0.2.0 milestone summary.
See:
Most AI note takers answer:
"What was said?"
Decision Brief Engine answers:
"What matters?"
- Paste notes
- Select brief type
- Generate a structured Capture Layer
- Produce a Decision Brief
- Export Markdown
- The Capture Layer is generated before the final Decision Brief.
- The final Decision Brief exports as Markdown.
- The MVP runtime stack is FOSS-only.
- Generation can start mocked before local or self-hosted FOSS-compatible inference is wired in.
Local development can run real local inference with Ollama and qwen3:4b.
Set in .env.local:
VITE_GENERATION_MODE=ollama
VITE_OLLAMA_BASE_URL=/ollama
VITE_OLLAMA_MODEL=qwen3:4b
VITE_OLLAMA_HOST=http://127.0.0.1:11434Validate setup before generating:
npm run health:ollamaSee Local Ollama setup and health check for Mac and Windows setup paths, troubleshooting, and a local smoke-test checklist. See docs/ai/ollama-qwen3-json-quirk.md for operational notes and the current Qwen3 JSON-mode behavior.
The public demo defaults to Mock demo. Browser WebGPU inference is experimental and hidden unless VITE_ENABLE_WEBGPU_INFERENCE=true is set at build time. When enabled, users can opt into Live in browser for local WebGPU inference with a one-time model download. Local Ollama remains the local/dev path when VITE_GENERATION_MODE=ollama is set.
See docs/product/live-browser-inference-ux.md for mode behavior, disclosure copy, and fallback states.
This is implementation guidance for the current v0 state, not a legal privacy policy.
- The public Vercel demo runs the mocked workflow by default.
- No model call is made by the public mocked demo.
- No backend, database, persistence, or auth layer is used by the public mocked demo.
- In local Ollama mode, pasted notes are sent to the locally configured Ollama runtime.
- The app keeps session state in browser memory for the active session.
- The app does not intentionally persist pasted notes, generated Capture Layers, or generated briefs.
- Copy/download export actions are user-initiated browser actions.
- Model thinking is not shown or stored by the app.
- Any public hosted inference path requires a separate data-handling review before user notes are sent to a hosted model runtime.
- MVP product specification
- Capture Layer contract
- MVP brief types
- Live browser inference UX
- Public demo milestone
- v0.2 Decision Trace direction
- Decision Trace schema
- MVP architecture
- ADR: Traceable recommendation rationale
- Conceptual data model
- AI prompt contracts
- Evaluation plan
- Capture Layer evaluation harness
- Browser model / prompt variant eval
- Browser model quality gate evaluation
- Browser inference adapter feasibility
- Local Ollama setup and health check
- Qwen3/Ollama JSON-mode quirk
- Implementation build plan
- MVP implementation checklist
- ADR 0002: FOSS-only MVP runtime stack
- ADR 0004: inference path decision brief
- Release and versioning policy
- Changelog
- Repository maintenance
npm install
npm run dev
npm run typecheck
npm test
npm run build
npm run preview
npm run health:ollamanpm run eval:capture -- --mode=mock
npm run eval:capture -- --mode=ollama
npm run eval:capture -- --mode=webgpuSee Capture Layer evaluation harness. WebGPU remains a documented manual browser procedure. Prompt variant comparison: browser-model-prompt-variant-eval.md.
This project is part of an ongoing exploration into AI-native product systems, decision support, and intent-centric workflows.