strato
The agent OS — the stratosphere layer, the stable contract above tropo's churn. If tropo is what's true, strato is how an agent works over it: a per-turn loop, one visible state surface, human gates, and the self-improvement that compounds across sessions.
strato is throughline and flywheel fused — they are one loop at two speeds:
- Per turn (throughline):
Ask → retrieve → act → verify → learn → gate, the FW/WS/PRIV/VS/Gate grammar, the visible State Surface, human gates. - Per heartbeat (flywheel): distill what the loop learned into durable memory, a bug-risk playbook (self-healing), and skills extracted on a workflow's third occurrence; audit workspace hygiene.
Design law: strato must be tiny to load. The only always-on file is STRATO.md;
templates load once at bootstrap, module index.md files route progressively, and
the procedures load on demand from the skill. One fact gets one owner; links beat
copies.
Layout
| Path | What it is |
|---|---|
STRATO.md |
The compressed model — the always-on agent OS (read this) |
templates/ |
A workspace's starters: AGENTS.md, SOUL.md, USER/MEMORY/STATE templates, bug-risk-playbook.md |
.claude/skills/strato/ |
The executable: bootstrap / heartbeat / self-improve modes |
strato.py |
The opt-in strato decide --governed facade over vivary-core policy |
.claude/skills/active-context/ |
Optional CocoIndex-code sidecar decision/retrieval policy |
How it's used
strato is the framework; a workspace is the instance. create-vivary lays
the templates down, and the strato skill runs bootstrap, heartbeat, and
self-improve. The workspace's own AGENTS.md is distinct from Vivary's root
AGENTS.md, which governs agents working on Vivary itself.
The runtime facade is deliberately opt-in:
strato decide --governed --json request.json
It validates the request schema, pinned policy version, core-owned actor and authority
class, workspace binding, absolute scope roots bound to the Task Capsule, the capsule's
deterministic identifier and body fingerprint, and caller-supplied timestamps before
delegating the budget/gate/next-loop decision to vivary-core. The compiler and
verifier share the JavaScript-lossless max_claims bound; fabricated capsule IDs,
missing compiler-owned fields, malformed task scopes, and non-canonical or numerically
lossy capsule values fail closed. Requests, capsule observations, and receipts have a
deterministic 300-second freshness window. A verdict is accepted only beside its
receipt. A malformed, invalid, altered, or unsafely nested
envelope returns a vivary.strato-decision-refusal/v0 document and exit 2; a valid
envelope returns
vivary.strato-decision/v0, is advisory, and exits 0. Add --strict to exit 1
when core blocks or requests a gate. Unknown fields and non-string Python mapping keys
are rejected, so free-form status text cannot impersonate a human gate. Omit --json
for a short text summary. The full contract is in
the command reference.
Loop literacy — running the loop unattended — is strato's domain too; see the loops
skill (.claude/skills/loops/).
Versioning
The vivary-strato Python distribution is at version 0.1.3 and requires
vivary-core>=0.2.4. Both shipped in the Vivary Governed Context train. The templates
and skills remain bundled by create-vivary, and the runtime package does not
duplicate or replace them.
Install from the public index:
python -m pip install vivary-strato
To test a local change instead, install the pair from this checkout without consulting a registry:
python -m pip install --no-deps ./packages/core ./packages/strato
Distilled from throughline + flywheel (Jeff's own repos, used read-only). Not a verbatim copy — the overlap (duplicate memory templates, gates, proactivity rules) is collapsed into one model.
Metadata
Release files for vivary-strato 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| vivary_strato-0.1.3.tar.gz | 8.6 kB | Without provenance | Details for vivary_strato-0.1.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| vivary_strato-0.1.3-py3-none-any.whl | Python 3 | none | any | Details for vivary_strato-0.1.3-py3-none-any.whl |
Total release size: 16.8 kB
Release files / vivary_strato-0.1.3.tar.gz
| Download URL | vivary_strato-0.1.3.tar.gz |
|---|---|
| Size | 8.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c591cce1c357f795f5faa2e0a61f6780452081d6a133ec300a491ab354d42969
|
|
BLAKE2b-256 checksum How to use checksums |
b9f9e9b5dd7b0cdceff938bb66a991ba346c417a98d9a3d7c5b9a6100d18d242
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / vivary_strato-0.1.3-py3-none-any.whl
| Download URL | vivary_strato-0.1.3-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b2b90a7d316c3dae17742fb8ec7439ddaad76ca4a1744f628468f58444ee19d3
|
|
BLAKE2b-256 checksum How to use checksums |
e3dc56a51a1a4230ba2ecce62ff1120f96f2e6c4c6aebb500c411609fc72c4b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for vivary-strato 0.1.3
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.