Principles
The product contract
sitrep is an AI project status dashboard - and just as importantly, a list of things it refuses to become. Both halves are written down, and every feature is tested against them. A feature that breaks a promise is wrong even if it is useful.
The eight promises
1. Zero adoption cost
sitrep reads what agents already write - no new format, no frontmatter requirement, no import, no vault, no restructuring. Point it at folders. Extraction conventions are editable settings, never demands on your files.
2. State first
Status, phases, rulings, due dates and staleness are extracted and glanceable across projects, newest activity first, pending items surfaced - an email client for project state, not a file tree.
3. Reading parity
The rendering bundle every AI-native viewer ships is the floor, not the product: full GFM, syntax-highlighted code with copy buttons, offline theme-aware Mermaid, KaTeX, callouts, and no lag on multi-thousand-line files. sitrep never competes on rendering; it also never loses to it.
4. Nothing takes the page away from you
Live refresh in place, scroll re-anchored, reload restores position, Esc peels one layer. The reader’s state is never the app’s to reset.
5. One writing surface
Three convention-shaped ops - status, due, supersede - behind a preview and a content-hash guard are the only code path that ever writes to your documents. View transforms are local state with export, never a write.
6. Local-first and private
Fully functional forever with no account and no network. Files never leave the machine unless sync is explicitly enabled; sync is end-to-end encrypted with user-held keys. No telemetry by default.
7. Fast
Instant startup on kernel file events - never a tree walk. Instant search. Work stays proportional to what changed, never to corpus size.
8. Honest
Claims are measured before they are made - in the UI, in comparisons, and in community participation. Concrete and checkable beats superlatives; no astroturfing, ever.
The anti-roadmap
Not a viewer, not an editor, not a Notion/Obsidian replacement. Each refusal has a reason, and the list is binding - features that drift toward it get stopped, not shipped.
- A general markdown editor or prettier viewer
- Reading parity yes, viewer identity no. The viewer market is a commodity; the job sitrep does is bigger than rendering.
- Agent orchestration or a parallel-session runner
- Steering agents is a different product and contradicts the passive-overview identity. sitrep shows state; it does not drive.
- A task manager with its own authored format
- Authoring structured tasks is the exact friction sitrep removes. The moment it dictates a format, zero adoption cost is gone.
- A second brain or Notion/Obsidian replacement
- Search stays scoped to the docs it parses - jump to the decision. No vaults, no backlink graphs, no embeddings without a measured need.
- Live agent control from mobile
- sitrep sells state visibility, explicitly not steering. A future mobile mirror is read-only.
- A cloud-only or account-required core
- That would delete the local-first promise, and with it the reason the product can be trusted with your files at all.
How the contract is held
These are not aspirations on a wall. The promises live in the repository as a cross-session contract that every working session - human or agent - loads before building anything; a task that conflicts with a rule stops rather than builds. Decisions, rejected alternatives and open questions are recorded in a rulings table that the product itself parses - sitrep reads its own decision log as a fixture, so a regression in the extractor shows up as a moved number in its own docs.
If a promise here ever stops being true, that is a bug with the same priority as one in code.