Product overview
An open system for keeping AI-native products coherent.
ContractSpec is not one narrow generator. It is the explicit layer that lets teams define system behavior, keep multiple surfaces aligned, regenerate safely, and move into Studio when they want the operating product.
What the category really is
Lead with the system, not just the generation step.
Generation matters, but it is not the whole story. The real value is that contracts, runtime adapters, proof surfaces, and the Studio operating loop all remain legible as parts of the same product system.
Better umbrella
Open spec system for AI-native software
Where “compiler” belongs
Inside the technical proof, not as the whole company category
Architecture by layer
Each layer exists to keep the next one from drifting.
The repo structure already tells the right story: lower layers define explicit behavior, higher layers compose that behavior into working surfaces, and apps stay thin.
Contracts and specs
The canonical product rules your team wants the system to keep respecting over time.
Generation and runtime bridges
The adapters that turn those rules into API, UI, data, event, MCP, and client-facing surfaces.
Harness and proof workflows
The inspection, replay, evaluation, and evidence surfaces that tell you whether automation is safe.
Studio operating product
The opinionated team workflow for running evidence, drafts, review, exports, and checks on top of the same foundation.
OSS/Core
Adopt the open foundation first
- You want explicit contracts, safe regeneration, and standards-first outputs.
- You need to stabilize an existing product incrementally.
- You want the foundation without being forced into a hosted product loop.
Studio
Add the operating product when the team is ready
- You want the operating surface for evidence, drafts, review, exports, and follow-up.
- You want packaged workflows and coordination on top of the same contract system.
- You want the product that absorbs more operational complexity for the team.
Proof points
What should feel different after adoption.
The point is not just faster output. The point is that regeneration, refactoring, and agent behavior stop feeling opaque because the team has an explicit layer it can inspect and trust.
Explicit contracts, not inferred conventions
Standard outputs the team can own and change
Multi-surface consistency across API, UI, data, and tools
Incremental adoption instead of rewrite-only adoption
Next step
Use the OSS layer when you want control. Use Studio when you want the operating loop.
That is the cleanest product split for both technical adopters and teams buying the packaged surface later.
