DocOps is the thing I kept wishing for every time I let an agent loose on a real codebase. The agent would land, read a few files, and start guessing — at intent, at past decisions, at what was already in flight. The fix wasn't smarter prompts. It was giving the repo itself a small, typed memory that any agent (or human) could query.
Typed project-state substrate for LLM-first development. Three document kinds, one validator, one query CLI.
What it solves
- Agents guess at context. "What are we building, what was decided, what's next?" usually lives in Slack or someone's head. DocOps puts it in
docs/as typed files. - Decisions drift from work. Every task in DocOps must cite at least one decision or context doc. The validator enforces it. Drift becomes a failed build, not a quiet bug.
- Project state goes stale.
STATE.mdand the dependency graph are computed from the files, not hand-edited. They never disagree with the source. - Tools assume one stack. DocOps is a single Go binary that drops into any repo — Python, TypeScript, Rust, doesn't matter. The substrate is the same.
How it works
Three document types in docs/, linked by typed edges, validated by a CLI:
- Context (
CTX-*) — stakeholder inputs: PRDs, memos, research, notes. - Decisions (
ADR-*) — architecture and process calls, in ADR format. - Tasks (
TP-*) — units of work, each citing the decisions or context they trace to.
docops validate checks the graph: citations resolve, no dangling references, every task is anchored. docops index builds the typed graph; docops state regenerates a human-readable snapshot. docops next recommends what to pick up. Every read command supports --json, so it doubles as a query API for agents and scripts.
The repo itself dog-foods all of this — the design decisions behind DocOps live as ADRs inside DocOps.
Install
$brew install logicwind/tap/docops$scoop bucket add logicwind https://github.com/logicwind/scoop-bucket && scoop install docops$go install github.com/logicwind/docops/cmd/docops@latestThen, in any git repo:
docops init
docops new ctx "What we're building" --type brief
docops new adr "Pick the database"
docops new task "Wire it up" --requires ADR-0001
docops refreshWhy I'm building it
Most "AI-ready repo" tooling I've seen either dumps everything into a vector store or assumes one editor and one model. Both feel wrong. The substrate that agents need is closer to a small, typed knowledge graph that humans also want to read — ADRs, PRDs, and tasks, linked properly. DocOps is the smallest version of that I could make work, and it ships as a single binary so it doesn't lock you into a stack or a vendor.
It's built and maintained by Logicwind, and it's MIT-licensed.