Inspiration
Promise Radar is built on the observation that a lot of real work gets created as conversation signals, commitments, requests, intentions, and decisions before it ever turns into explicit tasks. The prototype’s goal is to extract that invisible backlog from ordinary text and turn it into a small, socially-aware next action.
What it does
- You paste or upload an everyday message/thread.
- The app extracts likely open loops (e.g., “I’ll send that Thursday”, “can you intro me next week”).
- For each signal, it shows: . category/tag (you promised / you intend / they asked / decision pending / reminder) . confidence . evidence phrases from the text . a small next move to close the loop
- You can run extraction in different modes: . fast logic (offline, explainable heuristics) . your AI key (BYOK via a user-provided chat-completions endpoint) . local AI (WebGPU WebLLM model in the browser, when supported)
How we built it
- Frontend (React + Vite): . src/App.jsx orchestrates the UX: text input, engine selection, and rendering results.
- Fast explainable extraction: . src/promiseEngine.js performs deterministic detection using: . sentence/clause splitting . regex “phrase families” for commitments/intent/requests/decisions/reminders . scoring signals like deadlines, hedging, and negation
- AI-backed extraction: . src/byokAI.js calls a compatible provider with a session-only API key and validates structured JSON. . src/localAI.js loads a Qwen2.5 model via @mlc-ai/web-llm (WebGPU) and enforces a JSON-only output contract.
- Backend tooling (server/MCP): . server/api.mjs exposes a lightweight analyze endpoint. . server/plan.mjs converts signals into an approval-required step list. . server/mcp.mjs registers MCP tools like analyze_text and plan_open_loops.
Challenges we ran into
- Implicit intent: people often imply commitments without explicit “I promise” wording, so detection needs careful context rules to avoid false positives.
- Structured AI outputs: BYOK/local AI modes must parse and validate JSON from models, and gracefully fall back when parsing fails.
- Explainability vs accuracy: the fast engine is transparent but less nuanced; AI modes are stronger but require strict output validation and privacy-aware integration.
Accomplishments that we're proud of
- A sort of working prototype loop: text → extracted signals → evidence → next-step plan.
- A deterministic baseline in src/promiseEngine.js that works instantly offline.
What we learned
- “Tasks” are often not the right unit open loops are.
- Users trust more when outputs include evidence and confidence, not just a generated list.
What's next for Promise Rader
- Improve detection precision/coverage in the fast engine
- Upgrade “save next step” into real workflow actions
- and overall working and actual project complement.
Built With
- chatgpt
- codex
- react
Log in or sign up for Devpost to join the conversation.