Skip to content

this-side-down/decision-brief-engine

Repository files navigation

Decision Brief Engine

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.

Status

Current release: v0.3.2 — Experimental Browser Inference Metadata Correction
Public demo: https://dbe.this-side-down.com/
Release notes: https://github.com/this-side-down/decision-brief-engine/releases/tag/v0.3.2

The hosted demo runs in Mock mode by default for reliability. Local Ollama with qwen3:4b remains the supported real-generation path for long inputs. Experimental browser inference can be enabled explicitly for short-to-medium notes using WebGPU and WebLLM with Qwen3.5-4B-q4f16_1-MLC.

v0.3.2 corrects the repository and in-app version metadata omitted from the v0.3.1 publication. The browser-inference capability itself was delivered in v0.3.1: gated opt-in generation, three browser-compatible examples, strict structured-output validation, one bounded targeted correction, and local diagnostics.

v0.3.0 added hierarchical processing for realistic long meeting and interview material, source-coverage protection, grounded suggested next steps, canonical Decision Brief generation, deterministic source-bound Decision Trace construction, and typed bounded correction behavior.

A measured limitation remains: Local generation can return a typed quality failure when its single bounded correction cannot recover a source-grounded Capture Layer next step. The application rejects that output before Decision Brief generation rather than silently accepting or fabricating an artifact.

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.3 Long-Form Decision Capture

v0.3 processes long decision material through hierarchical Capture, deterministic merge behavior, and source-coverage checks before producing a canonical Decision Brief and traceable Decision Trace.

The long-form path preserves beginning, middle, and end signals, rejects unsupported next steps before brief generation, and uses a single bounded targeted correction for failing model-owned brief sections. Passing sections remain unchanged, while Recommendation and Suggested Next Steps remain source-bound.

See CHANGELOG.md for the full release summary.

v0.2 Decision Trace

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:

Why

Most AI note takers answer:

"What was said?"

Decision Brief Engine answers:

"What matters?"

MVP workflow

  • Paste notes
  • Select brief type
  • Generate a structured Capture Layer
  • Produce a Decision Brief
  • Export Markdown

Key constraints

  • 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 inference (Ollama)

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:11434

Validate setup before generating:

npm run health:ollama

See 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.

Browser inference (experimental, gated)

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 of about 2.2 GiB.

The selected browser model is Qwen3.5-4B-q4f16_1-MLC through @mlc-ai/web-llm 0.2.84. Browser inference currently supports short-to-medium notes and the three browser-compatible examples: Household Move Planning, Q4 Workforce Allocation, and Local Inference Setup Flow. Long-form browser support is tracked in #166. 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, and docs/ai/browser-generation-diagnostics.md for the measured v0.3.1 browser procedure and limitations.

Data handling (v0)

This is implementation guidance for the current v0 state, not a legal privacy policy.

Public hosted demo

  • 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.

Local Ollama mode

  • 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.

Future public inference

  • Any public hosted inference path requires a separate data-handling review before user notes are sent to a hosted model runtime.

Documentation

Development

npm install
npm run dev
npm run typecheck
npm test
npm run build
npm run preview
npm run health:ollama

Capture Layer evaluation (#72)

npm run eval:capture -- --mode=mock
npm run eval:capture -- --mode=ollama
npm run eval:capture -- --mode=webgpu

See Capture Layer evaluation harness. WebGPU remains a documented manual browser procedure. Prompt variant comparison: browser-model-prompt-variant-eval.md.

Product Lab

This project is part of an ongoing exploration into AI-native product systems, decision support, and intent-centric workflows.

Releases

Packages

Used by

Contributors

Languages