Parent
Execution
AFK. Start only after every issue in Blocked by is merged, required CI is green for the resulting dev SHA, and the worktree is created from a freshly fetched origin/dev.
Outcome
Define the immutable versioned native role-contract pack independently of configuration files, provider selection, and graph manifests.
Authoritative contracts/current state
#670 owns provider catalog metadata; protocol graphs contain worker refs/bindings but no prompt text. Role contracts must be product-private admitted content, not hidden mutable runtime context.
Owned scope
- Define the closed native roles/classifier/verifier/worker contracts, bounded static instructions, model-level/reasoning requirements, input/output schema references, and versioned canonical digest.
- Pin exact role names used by the 20-route workflow compiler and reject duplicate/unknown roles or incompatible provider/catalog policy.
- Keep prompt bytes outside
GraphSpec; manifests bind only immutable role-contract IDs/digests and worker descriptors.
- Provide one hand-authored Rust source of truth and deterministic audit/golden projection with no Node runtime/build dependency.
Acceptance criteria
Verification
cargo test -p zeroshot-rust --test role_contracts
cargo test -p zeroshot-rust --test architecture
npm run rust:check
npm run protocol:check
npm run typecheck
npm run lint
npm run test:unit
opcore check --changed
Every named focused target is an issue-owned deliverable and must execute non-zero tests before the common gates.
Non-goals
- Settings/profile parsing.
- Worker registry/manifest composition.
- Credentials, concrete drivers, or protocol graph prompt fields.
Blocked by
Unblocks
Parent
Execution
AFK. Start only after every issue in Blocked by is merged, required CI is green for the resulting
devSHA, and the worktree is created from a freshly fetchedorigin/dev.Outcome
Define the immutable versioned native role-contract pack independently of configuration files, provider selection, and graph manifests.
Authoritative contracts/current state
#670 owns provider catalog metadata; protocol graphs contain worker refs/bindings but no prompt text. Role contracts must be product-private admitted content, not hidden mutable runtime context.
Owned scope
GraphSpec; manifests bind only immutable role-contract IDs/digests and worker descriptors.Acceptance criteria
Verification
Every named focused target is an issue-owned deliverable and must execute non-zero tests before the common gates.
Non-goals
Blocked by
Unblocks