Today we published pbc-spec — the open specification behind Product Behavior Contracts.
It's not just a document. The repo includes a reference CLI for validating and inspecting .pbc.md files, and a browser-based viewer that renders structured PBC blocks as interactive panels — state diagrams, behavior cards, actor grids — from the same markdown source.
What's in the repo
The spec (v0.6.0-draft). A .pbc.md file is plain markdown with embedded structured blocks — pbc:behavior, pbc:states, pbc:actors, pbc:rules, and more. Readable as raw text in any editor or on GitHub. Parseable by tools when precision matters. The dual-layer model is the core idea: human-readable contract surface, machine-readable semantic anchors.
The reference CLI. Local tooling in the repo currently supports four commands:
pbc validate— structural validation against the specpbc list— extract and filter contract units (behaviors, states, actors)pbc stats— aggregate stats across PBC filespbc init— scaffold a new.pbc.mdfile
It's intentionally minimal and currently runs from the repo rather than as a published npm package.
The reference viewer. Drop a .pbc.md file into the browser viewer and see it rendered as interactive UI — state transition diagrams, behavior panels with preconditions and outcomes, actor cards with type badges. Same source file, different audience. Engineers author in markdown; stakeholders browse in the viewer.
Why open
Most teams have PRDs, tickets, tests, and code. What they lack is a canonical what layer — a shared record of what the product promises to do, grounded in how it actually behaves.
PRD explains why. PBC specifies what. Code and tests prove how.
We think this layer should be vendor-neutral. Your behavior contracts are plain markdown files you own, version-control, and can read without Stewie or any other tool. The format shouldn't be locked to a product.
Stewie is the product we're building on top of this foundation — AI-powered analysis, grounding workflows, and living spec synthesis. Open format, proprietary intelligence.
What's next
The spec is a draft. The block set, authoring profile, and versioning story are still evolving. We're shipping it now because we'd rather build in the open and get feedback than polish in private.
If you're a technical founder who cares about making product behavior explicit — read the spec, try the CLI, open an issue. We're listening.