ArchitectureCrates
quirl-contract
Canonical Quirl project documentation synced from crates/quirl-contract/README.md.
quirl-contract owns Quirl's versioned agent and package machine contracts.
It depends inward on quirl-core for ShellError and quirl-catalog for
semantic command facts. It has no Lua, UI, process, or CLI dependency.
The crate provides:
- deny-unknown agent catalog, context, manifest, and validation schemas;
- deterministic installed-content hashes and comprehensive structural schema fingerprints;
- relevance-ranked context selection under a documented token estimate;
- deny-unknown
plugin.tomlparsing and Quirl-version/capability checks; and - package public-command, Phase 2 contribution, source-audit reconciliation, and network-free publish-plan gates.
The CLI is responsible for adapting the generated Lua HOST_API into these
contracts, supplying trusted installed catalog/HOST_API hash anchors, reading
package files, and using quirl-lua for non-executing parse/lint checks. This
preserves the one-way dependency graph: quirl-contract does not depend on the
Lua layer. Validation never executes Lua.