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

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.