Skip to content

Define final ReviewDecision protected-effect contract #15

Description

@samovers

Depends on: #12 and the Phase A semantic approval recorded on #11.

Outcome

Define the non-authoritative Phase A protected-effect contract for the three final review actions:

  • REVIEW_ACCEPT;
  • REVIEW_REJECT_OR_CONTEST; and
  • REVIEW_SUPERSEDE.

The contract must prove before commit that the proposed immutable ReviewDecision faithfully implements the exact authorization-bound review intent.

Primary trust boundary

Final review-decision domain semantics and commit classification: exact intent-to-ReviewDecision mapping, permitted derivations, forbidden widening, GovernanceEvent / governance decision classification, postconditions, and validation evidence.

Intended PR boundary

One non-authoritative Phase A candidate document. No current schema, accepted RFC, active Event Grammar, currentness, runtime, authorization rule, grant/revocation, pack, output, sharing, transport, or retention change.

REVIEW_REQUEST is excluded because it is not a final governance decision and needs its own result/commit-class closure.

Acceptance criteria

  • Inventory the exact capabilities and gaps of current ReviewDecision v0.1 against the approved review-intent profiles.
  • Decide whether a minimal future ReviewDecision v0.2 carrier is required; do not edit or promote a schema in this Phase A PR.
  • Define exact action/result constraints:
    • REVIEW_ACCEPT maps only to reviewAction: REVIEW_ACCEPT and decisionOutcomeState: ACCEPTED;
    • REVIEW_REJECT_OR_CONTEST maps only to reviewAction: REVIEW_REJECT_OR_CONTEST and an intent-bound closed outcome of REJECTED or CONTESTED;
    • REVIEW_SUPERSEDE maps only to reviewAction: REVIEW_SUPERSEDE and decisionOutcomeState: SUPERSEDED.
  • Bind the proposed decision ID, exact reviewed artifact family/ref/immutable revision or digest, scopes, accountable human and represented Party posture, rationale, evidence revisions, decision time, and supersession inputs where applicable.
  • Enumerate every permitted derived field and its authoritative source. Caller/result-local defaults are prohibited.
  • Forbid target substitution, action/outcome mismatch, evidence or rationale substitution, unbound consequence creation, in-place target mutation, and silent current-state promotion.
  • Fix the primary event family to GovernanceEvent and the commit class to governance decision; linked accepted consequences remain separate governed effects.
  • Define a content-addressed contract identity and deterministic digest projection.
  • Define an immutable validation trace with field-mapping and postcondition dispositions plus intent, result, result-schema, and contract digests.
  • Require validation before the atomic commit. A mismatch aborts the protected effect without rewriting the authorization result.
  • Add production-reachable hostile cases for wrong action/outcome pairs, changed target revision, changed rationale/evidence, fabricated accepted consequences, and supersession substitution.
  • State how the reviewed binding will later enter AuthorizationPolicyBundle v0.2; do not create that bundle here.

Non-goals

  • No REVIEW_REQUEST contract.
  • No authorization-policy amendment or authority evaluation.
  • No change to what review authority means or who may exercise it.
  • No creation of accepted consequences, current-state materialization, or promotion shortcut.
  • No active/current schema or Event Grammar edit.
  • No runtime transaction-manager or persistence implementation.
  • No other protected-effect family.

Scope-expansion rule

If the domain mapping cannot close without changing the semantically approved authorization intent or action meaning, stop before editing #10's boundary and open a separate prerequisite amendment.

What is next: write and review the one-file Phase A candidate before any schema, conformance, or promotion work.

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