-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
sarr-io edited this page Jun 15, 2026
·
21 revisions
Zinc sits between Circuitry, packages, and Limbo.
Circuitry confirms shaped YAML and variables
Zinc stores package facts, fragments, heads, and config
Packages own software, settings, docs, and behavior
Limbo stores rows and bytes
| Boundary | Zinc's responsibility | Package responsibility |
|---|---|---|
| Shape bytes | Store exact bytes and confirm shape facts with Circuitry. | Decide how to interpret or use the shape. |
| Package request | Build a request file from shape and variable facts. | Read the request and return result bytes. |
| Package result | Store exact result bytes in a fragment. | Choose the result format and meaning. |
| Package identity | Record name, version, root, and source facts. | Own manifest structure and package internals. |
| Execution | Run package software at a file boundary. | Implement the behavior. |
The core should not know every provider, shell, model, policy, or command format. Those details belong in packages.
Zinc only needs enough structure to find package roots, read manifests, build request files, run package software, and remember the resulting bytes.
Zinc uses a small SQLite schema through Limbo:
packages(package, version, root, source_git, source_ref, source_path)
fragments(fragment, target, request, result, time)
heads(head, fragment)
config(key, value)
The tables are intentionally simple. Zinc does not add application-specific semantics on top of them.
A small boundary is easier to inspect, migrate, and reason about. Zinc remembers facts. Packages define behavior.