Decision Ledger
What it is
Decision Ledger is a small, explainable parser for conversation records. It extracts useful decisions and keeps the exact evidence quote beside each result: the choice, rationale, alternatives, replacement links, and a latest or superseded status.
This is a synthetic demo using local fixture data. Imported local data is unverified. The Bee live path is NOT VALIDATED; a successful CLI read would not prove hardware provenance.
Inspiration
Important decisions disappear inside long conversations. We wanted a compact audit trail that shows why a choice was made and what it replaced, without inventing contradictions or pretending to be an LLM knowledge graph.
How it works
The standard-library Python app splits text into sentences, recognizes explicit English decision cues, extracts rationale and alternatives, and only follows an explicitly named replaces or supersedes ID. The evidence quote remains attached to every decision so a person can review it. The offline browser demo ports the same rule-based algorithm into JavaScript and runs wholly in the page.
How we built it
The app is Python 3 standard library plus a deliberately small regular-expression parser. run.py accepts --fixture sample.json or --live, emits JSON, and never falls back from live mode to synthetic data. bee_adapter.py reads the local project CLI at node_modules/.bin/bee or an executable found with shutil.which. The static demo uses local HTML/CSS/JavaScript, editable JSON, textContent, and no network requests or remote assets.
What we learned
- Explicit links are more trustworthy than inferred chronology.
- Provenance and the original quote are more valuable than a polished summary.
- A useful demo can be honest about synthetic data and validation boundaries.
- Keeping the parser deterministic makes tests and review straightforward.
Challenges and limitations
- The parser recognizes a small English cue vocabulary; it does not understand every wording, negation, or semantic equivalent.
- Multiple decisions in one sentence can be collapsed.
- Replacement IDs must be explicitly named, and contradictions are not inferred.
- Timestamps do not establish truth or finality;
latestmeans only “not explicitly superseded in this input batch.” - ASR text can contain recognition errors and must be reviewed.
- There is no authentication, storage, privacy redaction, or production device connector here.
- Live Bee integration is NOT VALIDATED in this submission. No live hardware claim is made.
Data status
SYNTHETIC DEMO — NOT COMPETITION EVIDENCE. The included fixture is authored local sample data. Any imported local data is unverified. The interface keeps this banner visible and does not make actual live claims.
Built With
- bee
- css
- html
- javascript
- node.js
- python
- python-standard-library
Log in or sign up for Devpost to join the conversation.