Skip to content

guard: simulate, analyzers, policy, identity checkpoint #57

Description

@mfw78

Problem. Doc 09 step 4 / ADR-0011 (PR nullislabs/shepherd#132): one egress guard for intent submissions, EIP-712 signing, and transaction signing. None of it exists, and the identity backend it checkpoints is still a stub.

Scope. The simulate host primitive with a pluggable backend seam (local revm over provider-pool state first; a remote backend is explicit and consent-surfaced). Fact assembly producing typed bundles over nexum:value-flow (decoded payload, balance diffs, approvals, context). The analyzer component kind (query-module lineage; a pure fact-fed default tier, granted chain and scoped-http extras behind hard consent copy, deadline via epoch). The policy engine (binding verdicts with per-event override; authorisation-class routing, host-signed full pipeline versus pre-authorised audit-plus-advisory; fail-open/closed per profile). The identity-boundary checkpoint decoding EIP-712 and transactions. The audit log. The guard reasons over the portable intent and value-flow vocabulary only; it has no venue knowledge.

Dependencies. Intent core (#137) for the vocabulary. #34 (real identity backend, homed here; nothing to checkpoint until it is real). M0 nullislabs/shepherd#91/#92/#93 (the embedding builder, add-on, and handle surface is where verdicts and consent hooks reach a wallet embedder). Absorbs #55: the analyzer world is the query-module world's shipping consumer.

Notes. Guard sequenced after the intent core by owner decision (wallet embedding is design-ahead, not near-term). GitHub files this under milestone M5.


Next-train plan

Current state. None of the guard exists; the identity backend it checkpoints (#52) is a stub, and the query-module world (the analyzer's lineage) is authored but not bindgen'd. Children below are to be filed as native sub-issues once nullislabs/shepherd#137 lands the vocabulary.

Children (ordered):

Blocked by: nullislabs/shepherd#137. Gated by: #34.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions