StratOps

A system of record that maintains itself

You already said it.
Stop typing it in again.

Every tracker you have ever abandoned died the same way: the work happened, and then somebody was supposed to go and write down that it happened. StratOps removes that second step. You talk to Claude about work that already occurred, and the record updates as a byproduct of the sentence.

It is not a project manager with a chat box bolted on. The differentiator is that nobody does data entry.

The whole product, in one exchange

One sentence. One approval. Four records.

These are not mocked-up screens. Each one is a real call to a real tool, writing real rows. Everything is checked before anything is written, so a capture that is refused leaves nothing behind.

You say

Just got off a call with Sarah at Acme. They want the pilot, and I owe her a proposal by Friday.

Claude asks once, for log_meeting. You approve once.

What lands in the record

  1. meeting Acme pilot call — dated when it happened, never guessed. Everything below links back to it.
  2. contact Sarah, Acme — matched to the Sarah you already know, or created if she is new.
  3. deal Acme pilot — moved to its new stage rather than duplicated, with the stage change trailed so time-in-stage stays answerable.
  4. task Send Sarah the proposal — due Friday, in your workspace's own timezone, attributed to the call it came out of.

If "Sarah" could be two people you already have, it stops and names both rather than quietly creating a second one that splits her deals and meetings across two records.

You say

Spent about three hours on the onboarding flow this afternoon, and it is out.

One call to log_time.

  1. timeThree hours against today, in your own calendar day.
  2. taskOnboarding flow moved to completed, and the change is written to the trail.
  3. shippedA changelog entry, which is what next week's review reports as shipped.

You say

We are going with the cheaper vendor because the migration cost is the real risk. Look at it again in November.

One call to record_decision.

  1. decisionThe context, the option taken, and why that one.
  2. reviewA date to revisit, so it resurfaces instead of being forgotten.
  3. outcomeLeft blank on purpose. In November you say how it went, and it gets recorded then.

Reading

Questions, not screens.

The reads are named for the question a person actually asks, and each one assembles a whole answer across the tables rather than handing back a fragment you have to go and join yourself.

  • "What should I work on?"

    Overdue, due today, in flight, stalled, and how heavy the days ahead look. Due today is not reported as late, because the day boundary comes from your workspace's timezone rather than from UTC.

  • "What actually happened last week?"

    What shipped, what completed, what stalled, hours by initiative, deals that changed stage, and whether throughput is accelerating or slowing.

  • "Why did we decide that in March?"

    The decision, its context, the option chosen, the reasoning, and how it turned out. When nothing formal matches, it falls back to the nearest notes and meetings instead of returning nothing.

  • "Everything you have on Acme."

    Deals with stage and value, meetings and what they produced, notes, open tasks, last contact, and which initiatives they touch.

  • "How is the pilot programme doing?"

    Health and momentum with their component breakdowns, north-star progress, stalled work, hours, recent shipments and open decisions. When a component cannot be measured it says so, rather than filling in a number.

  • "What is in the pipeline?"

    Open and recently closed deals by stage, with value, probability, expected close and time-in-stage. Totals both raw and probability-weighted.

Under it

How it works, without the hand-waving.

01It is a connector, not an app.

StratOps speaks MCP. You add it in Claude's settings as a custom connector — a URL and an authorization header — and from then on it is part of the conversation you were already having. Nothing to install, no second place to go and check, no window to leave open.

02The database is yours.

StratOps deploys as a Cloudflare Worker against a D1 database in your Cloudflare account. There is no middle tier of ours holding your record. Being plain about the other half: you are talking to Claude, so what you say reaches Anthropic exactly as the rest of your conversation does. The stored record is the part that is yours.

03The numbers are computed, not stored.

Health, momentum, throughput, stalled work and load per day are all derived when you ask, from an append-only trail of state changes. There is no health score sitting in a column going quietly stale after somebody edits something out of band. A number you can hand-edit is a number nobody trusts.

04Isolation is in the schema, not in discipline.

Every parent record carries a tenancy key, and every child references the pair, so a row cannot claim one account while pointing at another account's workspace — the database rejects it rather than trusting it. Of 55 deliberate cross-account attempts across all 27 tables, 47 are refused by the database itself. The other eight are six columns that can point at any kind of record, so no such rule can exist for them; those are checked in code before every write and filtered again on every read. In the code there is no unscoped path to the data either: no helper anywhere takes an account id as an argument. The probe that produces those numbers ships in the repository and can be re-run.

05Credentials are hashed and never handed back.

Only a SHA-256 is stored. No tool returns a credential, and reads report whether one is set rather than what it is. Minting a live inbound credential from a conversational tool is exactly the thing this rebuild exists to stop doing.

06The data endpoint refuses browsers.

Claude reaches the server from Anthropic's infrastructure with no browser origin. So any request that arrives carrying one is refused outright, before authentication is even considered. A page in a tab cannot talk to your record, including this one.

Honesty

Where it stops.

This is the section most products leave out. If you are weighing up whether to put your working life into something, these are the facts that decide it.

One person per account, today.
The account is the identity. There are no seats, no roles, no invitations and no self-serve sign-up, because a second user needs OAuth and OAuth is not built. If you need a shared team record right now, this is not that yet.
There is no dashboard.
The talking surface is the whole product. Three things deliberately cannot be done by talking — uploading a file, connecting Google or a bank (an OAuth redirect needs a browser), and issuing the credential an inbound feed would need. Those belong on a web page, and that page does not exist.
Nothing watches while you are away.
StratOps answers when you ask it. There is no scheduled job running in the background, so nothing arrives unprompted while you are asleep.
Documents are metadata.
A document can be recorded and linked, but file contents are not stored and not searched. Search reads the words you said, not the inside of a PDF.
A new account is genuinely new.
Momentum, health and velocity are computed from history that accumulates. An account with nothing in it says so — health comes back empty with a reason rather than a number. But an account with rows and no recent history is worse than that, and this is the honest part: it returns real arithmetic over data that cannot support it. Import two years of work and momentum still reads "weak", because momentum asks what moved in the last seven days and the answer is genuinely nothing yet. The numbers become meaningful after a few weeks of actually talking to it. Filling the database does not shortcut that, and we would rather say so here than let you discover it on your first afternoon.
It is not for sale yet.
There is no price, no plan and no trial. It is built and run by Citamark for one operator, and it works. Everything above describes what exists today, not a roadmap.

If this is the thing you keep wishing existed

Leave an address and you will hear when there is something to try. No newsletter, no sequence.

Being literal: this box does not submit anywhere. Until it does, write to jacob@citamark.com.