driftless
- #project-management
- #pmbok
- #autonomous-agents
- #mechanical-enforcement
Scope. driftless is the service Back Road Creative runs its own portfolio, program and project management on. It is internal — the code is private and there is nothing here to install. This page is what it is and why it is built this way; the long-form story is the case study, Headless Project Management.
Project management for when the operator is a loop
Every project tool assumes a human at a screen. Take the human away — let an agent loop run the process — and most of what remains is theatre: status fields somebody types, dashboards somebody reconciles, documents somebody forgets to update.
Every one of those tools degrades the same way, too. The plan says one thing, the tracker another, the weekly deck a third. Nobody lied on purpose; three copies of the truth existed, each hand-maintained, and they drifted.
driftless is built on the opposite assumption. Information is entered once and everything else is computed. There is one normalized store, and dashboards, rollups and generated documents are queries over it — never stored copies. The design rule inside the service is blunt: if a reconciliation or sync-check job ever looks necessary, the schema is wrong. Fix the schema.
Honesty by construction
The interesting part is not that dishonest states are forbidden. It is that they are hard to represent.
- Percent complete cannot be typed. A status snapshot stamps its percent from the calculation core. The create request carries no field for it, so the figure on a screen and the same figure in a document come from one place and cannot disagree.
- Plan history is additive. Re-baselining inserts a new version rather than editing the old one, and an approved baseline can be neither written to nor deleted — it is the plan of record.
- The audit trail cannot be skipped. An append-only change log is written by a database flush listener rather than by a call at each write site, so no path that writes through a session can miss it.
- A sign-off cannot bury a slide. Sign-offs are an append-only ledger, and signing off a threat suppresses it only while its score stays no worse than it was at sign-off. A regression re-surfaces it on its own.
- Reports are not the artifact. Every generated document takes an explicit as-of date and never reads the wall clock, so regenerating one produces identical bytes. That is a tested property, which means a report can be deleted at will. The store was always the artifact.
- Process state is computed, not tracked. The 49 predictive PMBOK processes live as a versioned in-code catalog. A project’s state on each process is derived from which artifacts actually exist plus the sign-off ledger — there is no process table to update, so process state cannot disagree with reality. Tailoring a process out is itself a ledger entry.
The pattern is the one this site keeps returning to: behavioural rules are suggestions; structure is a constraint. A hook does not trust an agent to avoid a banned command — it rejects the command. This store does not trust anyone, human or agent, to report an honest percent complete. It computes one.
What it holds
Business, portfolio, program, project, workstream and task, with per-project delivery records (baselines, milestones, sprints), risks, issues, change requests, budget lines and dated costs, plus departments and people carrying capacity and cost rate. Earned value, forecasts and rollups are pure functions over those rows — imported by both the web pages and the report engine, which is why a number on a screen and the same number in a document come from identical code.
On top sit an assessment engine that turns those signals into a ranked feed of what needs attention, a server-rendered web surface that reads the store rather than holding its own copy of anything, and generated documents — cost and earned value, weekly status, risk register, schedule, scope baseline, charter, forecast and rollups.
Who it is for
An operator running real delivery work who wants PMBOK-grade discipline without a PMO to maintain it, and who cares more about what survives a bad week than about how the dashboard looks on a good one. Pressure is when project reporting fails — the week the numbers are bad is precisely the week somebody smooths the deck, and an agent under context pressure does the equivalent by summarising optimistically and moving on. Here the bad week is structurally the same as the good one, because there is nowhere to type.
It is also built to be driven without a person. A wizard reports the next incomplete process as structured output and produces that process’s output through the same validated write path the web endpoints use — schema validation, parent checks, audit trail. A loop can stand a project up end to end, and the change log proves every write went through the boundary. That is what headless means here: not that no interface exists, but that the interface is a reader rather than a privileged writer. The human and the agent go through the same gate, and the gate is the only door.
Status
driftless runs Back Road Creative’s live portfolio, program and project management. It is an internal service, not a public tool, and the code is private. If that ever changes it will get the rigscore treatment — a public repository, versioned releases and the rest of a product page — but nothing on that is promised or dated here.
The principle travels regardless of the code: wherever an agent, or a tired human, reports on work, find the field they can type a comfortable lie into and delete the field. That argument is worked out at length in Headless Project Management: A Status Report That Cannot Lie.