Skip to content

Add granular provenance for provenance-preserving resolved evidence #38

Description

@woksin

Purpose

Add a post-0.13 Screenplay.Generation contract that preserves per-claim provenance, variants, conflicts, and admission state for a future provenance-preserving resolved-evidence exporter profile.

Related existing issues:

Scope

  • Define neutral granular claim contributions with lane, evidence format/ID, payload hash, source pointers, limitations, upstreamMerged, admission state, and stable conflict identity.
  • Preserve incompatible variants instead of first/last/order/strength winner selection across source and resolved lanes.
  • Permit one valid imported claim to be rejected, unjoined, or conflicted without discarding unrelated claims.
  • Preserve document-atomic rejection as an importer boundary; Generation must not reinterpret an invalid document as partial contributions.
  • Preserve existing same-lane evidence-strength placement behavior and deterministic lowering.
  • Define the exporter-facing contract needed by a separately characterized, provenance-preserving per-source profile and claim-by-claim admission matrix.
  • Keep source-only lowering and public compatibility deterministic and reviewable.

Non-goals

Dependency/order

Open/design after CritterStack comparison evidence and precision review identify the required granular vocabulary. Release Generation first, then CritterStack adoption, then CLI admission support. No production admission starts until a distinct provenance-preserving exporter profile and claim matrix are approved.

Acceptance criteria

  • Public/internal contracts represent lane, exact evidence identity, payload/profile provenance, pointers, ordinals where applicable, limitations, upstream merge state, admission state, and conflict sets.
  • Equal cross-lane contributions report agreement; incompatible variants remain explicit conflicts with no winner.
  • Source-only, resolved-only, unjoined, rejected, and loss states remain representable without dropping unrelated valid claims.
  • Existing same-lane evidence-strength placement semantics are unchanged and covered by regression specs.
  • Standard assembled profile contributions are structurally unable to become admitted.
  • Admission is available only to explicitly reviewed claim kinds from a distinct profile that proves per-source provenance and upstreamMerged=false.
  • Method-scoped admission requires exact method identity; type-scoped admission requires exact project/assembly/full-name identity.
  • Source-adapter, evidence-format, and renderer-target rosters remain independent; renderer availability cannot admit evidence.
  • Explicit source-only and observed-profile .play bytes remain unchanged.
  • Compatibility/migration guidance and the ordered downstream release contract are documented.

Gates

  • Deterministic specs cover agreement, conflict, source-only, resolved-only, unjoined, rejected, loss, shuffled inputs, and granular retention.
  • Regression specs prove same-lane placement and source-only lowering are unchanged.
  • Public API comparison, package validation, pack, clean consumer, Debug specs, and Release build pass with zero warnings/errors.
  • Independent precision/security review approves each candidate admitted claim kind and the provenance-preserving exporter contract.

Stop conditions

Stop if variants cannot retain granular provenance, any cross-lane winner is selected by order/strength, same-lane placement changes, standard assembled JSON can be admitted, invalid documents become partial contributions, runtime observations affect .play, identity is weaker than exact project/assembly/full-name (and method where required), or compatibility fails.

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