Save links less. Ship outputs more.
Read→Do is an AI-native “Read → Decide → Do → Ship” system:
- Capture links with a one-line intent
- Auto-generate structured artifacts (Summary / Score / Todos / Card)
- Export shareable outputs (PNG/MD/caption)
- Local-first by default (SQLite)
apps/apiLocal backend (API + orchestrator + worker)apps/webWeb app (Inbox / Detail / Edit / Export)apps/extensionChrome extension (one-click capture)packages/coreCore engine (pipeline steps, interfaces)contracts/schemasJSON schemas (source of truth)templatesPrompt templates (versioned)evalsRegression cases + rubricdocsPRD / System Design / Tech Spec / Execution Plan
This repo is designed to run locally first.
pnpm installpnpm -C apps/api devDefault:
- API:
http://localhost:8787/api(example)
If you use a different port, update the web app + extension config accordingly.
pnpm -C apps/web devOpen the Inbox in your browser.
- Chrome →
chrome://extensions - Enable Developer mode
- Load unpacked → select
apps/extension - Pin the extension to the toolbar
- Open any webpage
- Click the extension
- Enter
Why save this?(intent) - Save → Open Inbox
Evals ensure schema + key behaviors don’t drift.
pnpm evalQuality gates:
- P0 must be 100% passing
- P1 must be 100% passing (unless you explicitly relax it)
- P2 allows small slack
See:
docs/05-Quality-Evals.mdevals/rubric.mdevals/cases/*
Artifacts are the source of truth. Any AI output must:
- Match schema in
contracts/schemas/* - Carry required meta fields (run_id / engine_version / template_version / created_by / created_at)
- Pass eval gates when templates/engine change
Key docs:
docs/contracts/state-machine.mddocs/contracts/api.mddocs/contracts/artifact-meta.md
MVP export targets:
- PNG (preferred, via HTML render_spec)
- Markdown + caption (fallback)
See contracts/schemas/card.schema.json for render_spec.
- More sources: YouTube transcript, newsletters, PDFs
- More templates: engineer/creator/manager cards
- More exports: Notion/Obsidian/Todoist/Linear
- Desktop shell (Tauri) as a replaceable experience layer
TBD