Skip to content

Define protected-effect contracts for authorization-bound state changes #12

Description

@samovers

Depends on: #10

Outcome

Define the content-addressed domain contracts that prove a committed record or event faithfully implements an authorization-bound effect intent.

Primary trust boundary

Domain effect semantics and commit classification: the boundary that owns result schemas, intent-to-result mappings, permitted derivations, forbidden widening, event/commit classes, and postconditions. This is separate from the authorization evaluator, which may only bind and consume the resulting contract identity and disposition.

Acceptance criteria

  • Inventory every state-affecting authorization action and identify the existing domain contract that owns its result, or declare a narrowly scoped missing contract.
  • Give every applicable protected-effect contract an immutable content reference, version, and digest.
  • Define exact intent-to-result mappings, permitted derived fields, forbidden widening, event/commit classification, and postconditions in the owning domain contract.
  • Produce an immutable validation trace with field-mapping and postcondition dispositions plus the intent, result, and contract digests.
  • Require validation before commit; a mismatch aborts without rewriting the authorization result.
  • Register the reviewed contract bindings for later inclusion in AuthorizationPolicyBundle v0.2.
  • Add hostile cases for wider sharing rights, changed assertion bodies, wrong review-decision kinds, altered filing destinations, and substituted pack successor state.

Non-goals

No authorization-rule redesign, grant or revocation change, transaction-manager implementation, transport release, retention/key custody, current/default promotion, or production-readiness claim.

Delivery rule

Keep each domain-contract PR inside one effect-family trust boundary. If different event families require independent authority owners, split them into linked child issues rather than one catch-all PR.

What is next: complete the action-to-contract inventory and identify the first missing contract boundary.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions