The dogfood run: Clerk auth, D1 persistence and Cloudflare deploy, composed cold from the blueprint shelf to a live production Worker.
Stravica
AI software, properly.
The Requirements Confidence Framework (RCF).
Stravica is where I work out how to build software with AI, and where what gets built lives. RCF, the Requirements Confidence Framework, is the method. RCF Lite is the tooling, on npm today. A Digital Operator practises both, and the writing tracks what held up.
Receipts
Built with RCF Lite.
Watchpost, a self-hosted uptime monitor built end to end through the framework, here watching real Stravica surfaces.
$ rcf define blueprint add @stock/security-auth-magic-link
[rcf] blueprint add refused: 1 conflict(s) detected.
conflict on topic (authModel):
incoming blueprint security-auth-magic-link:
Passwordless magic-link sign-in with server-issued
opaque cookie sessions as the project's
authentication model ...
existing blueprint security-auth-clerk:
Clerk-hosted identity with server-verified session
cookies as the project's authentication model ...
refs: ADR-501-security-auth-magic-link-model
ADR-1001-security-auth-clerk-auth-model
resolutions (pick one, honest options only):
1. Adopt the incoming blueprint. ...
2. Keep the existing blueprint. ...
3. Author a project-level ADR that supersedes both. ...
4. Declare the resolution on the add itself:
rcf define blueprint add @stock/security-auth-magic-link
--resolve authModel=project:<ADR-id>
Two auth blueprints on one project. The compose gate refuses, names the conflict and lists the honest ways out.
rcf audit view, the live review surface over the same project's tree.
- Auth + persistence + deploy security-auth-clerk · persistence-data-d1 · deploy-cloudflare-workers
- API with CI gates from hour one application-api-rest · ci-pipeline
- Self-hosted auth with Keycloak security-auth-keycloak
Three recipes off the shelf; thirty-nine blueprints on it. More in the build queue.
Methodology
RCF
The Requirements Confidence Framework. A working method for closing the gap between “the AI built something” and “the AI built what you asked for.” Requirements at the apex, acceptance criteria as the contract, traceability built into the data model. The full methodology, end to end, and the lineage that landed it.
Tooling
RCF Lite
The method, runnable. One npm package, plain JSON files that live in your own repository, and an MCP server your coding agent drives. Wire it once and your agent keeps a live chain from what you asked for, through requirements and acceptance criteria, into the tests that prove it. It’s 0.x and partly built, and the docs carry a status page that says which pieces are how far along, plainly.
Practice
Digital Operator
A digital counterpart to a human operator role. It does the work, records how I would have done it while doing it, and feeds what it learned into a shared library the rest of my Operators draw from. Two running today. The first one built this site.
Open source model reports
Reports
When the writing makes a claim about models, there’s a report behind it. Five real engineering tasks, the same harness each time, verdicts published whether the local model wins or loses.
-
Qwen3.8-Flash-Next vs Claude Opus 4.7
The local mixture-of-experts wins test-strategy outright, holds the structured tools, and loses log-triage and prose to the frontier.
-
Qwen 3.8-27B vs Claude Opus 4.7
Local is adoptable for structured and mechanical work; the frontier earns its keep where judgement depth matters.
-
Qwen 3.8-27B vs Claude Opus 4.6
The head-to-head from Qwen’s own release benchmarks. The vendor positioning holds on three of five tasks.
Latest from the blog
New writing most weeks.
-
Company of one, built like fifty.
The pitch most of us have had put to us is to look like a fifty-person shop. The shape earns its lines from fifty people sharing the standard, not from the standard itself. Three practices from the bigger firm to copy, two to leave behind, with a one-person shape for each.
-
The proof passes. Of what?
Boris Cherny formally verified the Claude Agent SDK with Opus 5.5 and Lean and got sixteen bug-fixing pull requests out of a couple of prompts. Good news for anyone who cares about correctness. It also leaves a sentence half finished. A proof passes against a property. Who said the property was the right one, and where is that written down?
-
Hand the agent one build spec and count the questions.
We put one of our own delivered build specs in front of a coding agent cold, told it to ask rather than build, and counted. Twenty-nine to thirty-nine questions a run, about fifteen of them real gaps. The count is a better readiness test than any review score, and it costs one session.
Follow the writing
The writing runs in two places. The blog is the canonical home; everything lands here first, and there’s an RSS feed if that’s how you read. AI Software, Properly is the LinkedIn newsletter, same name as the line at the top of this page because it’s the same argument; issues are written for the newsletter rather than pasted from the blog, and the RCF walkthrough series lives there.
Stravica is a body of work in public. The bar is software that holds up under real use, not software that looks good in a demo.