Ossature
[!WARNING] Ossature is currently in its
0.xseries and should be considered unstable. APIs, spec formats, CLI flags, and internal behavior may change significantly between releases without prior deprecation. Pin your version and check the changelog before upgrading.
An open-source build system that turns specs into working code.
You describe what the software should do, review the plan Ossature generates, and build it step by step with an LLM generating the code under tight constraints. Your specs are the source and the generated code is the output, so when requirements change you edit the spec and rebuild only what changed. When a step breaks you fix that step and keep going instead of starting over.
Works with Anthropic, OpenAI, Mistral, Google, and most other hosted providers, as well as local models through Ollama.
Ossature (pronounced OSS-uh-cher) means the underlying framework or skeleton of a structure.
What it does
Ossature works from three kinds of files. Only the spec is required.
- SMD (spec) states what the software should do: requirements, examples, acceptance criteria.
- AMD (architecture) states how it fits together: components, their interfaces, and contracts each component has to hold.
- VMD (verification) holds test cases you write yourself, as concrete inputs and expected results.
The workflow is three commands:
ossature validateparses everything and checks it structurally. No LLM involved.ossature audithas an LLM read each spec, flag problems, and generate a build plan you can read and edit before anything runs.ossature buildruns the plan task by task. Each task generates a few files, runs its verify command, and on failure enters a fix loop. With review on, an LLM also checks the generated code against the spec and the component contracts before a task is done.
Builds are incremental, so changing one spec only rebuilds the tasks it affects, and an upstream change that leaves a spec's public interface unchanged doesn't pull its dependents along. When a spec has a VMD, the plan includes deterministic test tasks built from your cases. The LLM never sees the expected values, so the code can't be written to fit the tests; it has to actually pass them.
Quick start
Requires Python 3.14+.
uv tool install ossature
Or with pip:
pip install ossature
Set your LLM provider API key:
export ANTHROPIC_API_KEY="sk-ant-..."
# or OPENAI_API_KEY, MISTRAL_API_KEY, etc.
Create and build a project:
ossature init myproject && cd myproject
ossature new my-feature
# edit specs/my-feature.smd
ossature validate
ossature audit
ossature build
The default model is anthropic:claude-sonnet-4-6. To use a different model, set the model field in ossature.toml:
[llm]
model = "openai:gpt-5.2" # or mistral:devstral-latest, etc.
The API key you export must match the provider in your model string, so use OPENAI_API_KEY for an openai: model. See the configuration docs for per-role overrides and all available options.
Examples
See ossature-examples for complete projects with specs, build plans, and generated code.
Documentation
Full docs at docs.ossature.dev. The workflow guide walks through a complete project from init to generated code.
License
MIT
Release files for ossature 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ossature-0.2.1.tar.gz | 136.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ossature-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 321.7 kB
Release files / ossature-0.2.1.tar.gz
| Download URL | ossature-0.2.1.tar.gz |
|---|---|
| Size | 136.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
118d78c53bf334bb0d2c105c5a91ab38351144f2269f44fb226c7147b8b3934d
|
|
BLAKE2b-256 checksum How to use checksums |
28e3ff72dcd9b7f4aa2a253a9abb2261117fbfd6fb65cc716a4fbe6b9ba5d107
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 2, 2026.
Transparency logRelease files / ossature-0.2.1-py3-none-any.whl
| Download URL | ossature-0.2.1-py3-none-any.whl |
|---|---|
| Size | 185.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7ac49f53288e0dc118a7da0c8afe9f71bd76b1f57dde003732826c70b76740e4
|
|
BLAKE2b-256 checksum How to use checksums |
3d7fa1e73131c861e2699d2e2960b1f0aa0b4a9e07d950568900dfd87f28416c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 2, 2026.
Transparency log