Stravica

AI software, properly.

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.

Wire your agent Start with the method

Receipts

Built with RCF Lite.

The dogfood run: Clerk auth, D1 persistence and Cloudflare deploy, composed cold from the blueprint shelf to a live production Worker.

Watchpost dashboard showing four monitors up, with response-time sparklines and last-checked timestamps

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.

The rcf audit viewer's Requirements tab, listing blueprint-contributed requirements with approved status badges

rcf audit view, the live review surface over the same project's tree.

Three recipes off the shelf; fourteen 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.

Read RCF

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.

Read the docs

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.

Read more

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.

Latest from the blog

New writing most weeks.

All posts
  • Harness without a spec is a loop without a target.

    Harness engineering has the loop close to solved. Plan, act, verify, repeat, with humans steering rather than typing. But almost every harness points the verify step at proxies, tests the agent wrote, lint, a second model's opinion of the diff, and a loop aimed at a proxy converges on the proxy. A guard job in my own CI sat green for five weeks while blind to the one thing it existed to check. The missing half of the discipline is the target, a spec layer the loop can verify against.

  • The local model won one of my five tools.

    A 122GiB open-weight checkpoint on a desktop box beat Claude Opus 4.7 outright on one of the five production CLI tools in my benchmark, at electricity prices, two days after release. It also lost to everything on another one. The pair of results matters more than either half, because together they say the unit of model choice is now the tool, not the estate.

  • Your tests passed. Your suite lied.

    An unattended AI build shipped an email channel with an integration suite at twelve of twelve green, marked approved, and no API key had ever existed in the build. A human caught it by hand, days later, and a sharper reviewer would not have done better, because the lie lived in what the record could not say. The fix is evidence the record can check, not reviewers who happen to notice.

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.