mix rendro.viewer_evidence (Rendro v1.0.0) (adapter)

Copy Markdown View Source

Operator tooling for viewer-evidence coverage gaps in priv/support_matrix.json.

Each viewer row has one of three status values:

  • supported — promotion-complete row with evidence, recorded_at, and viewer_kind on the matrix (legacy rows without evidence: still list as supported but warn during validate).
  • unverified — recording obligation not satisfied; no evidence: or evidence_deferred.
  • explicit_deferral — matrix-only deferral with required evidence_deferred prose; must not carry promotion keys.

Subcommands

mix rendro.viewer_evidence list [--json]
mix rendro.viewer_evidence missing [--json]
mix rendro.viewer_evidence validate [--strict]
mix rendro.viewer_evidence record <surface> <viewer> [--fixture PATH] [--recorded-by ID]

Supported automated recordings:

mix rendro.viewer_evidence record forms chrome_pdfium
mix rendro.viewer_evidence record forms apple_preview
mix rendro.viewer_evidence record forms adobe_acrobat_reader
mix rendro.viewer_evidence record embedded_files adobe_acrobat_reader
mix rendro.viewer_evidence record links adobe_acrobat_reader
mix rendro.viewer_evidence record links apple_preview
mix rendro.viewer_evidence record protection apple_preview
mix rendro.viewer_evidence record protection adobe_acrobat_reader
mix rendro.viewer_evidence record signature_widget chrome_pdfium
mix rendro.viewer_evidence record signature_widget adobe_acrobat_reader
mix rendro.viewer_evidence record signature_widget apple_preview
mix rendro.viewer_evidence record signed_artifact chrome_pdfium
mix rendro.viewer_evidence record signed_artifact adobe_acrobat_reader
mix rendro.viewer_evidence record signing_preparation adobe_acrobat_reader
mix rendro.viewer_evidence record long_lived_signed_artifact adobe_acrobat_reader

list prints summary counts and a fixed-width table (surface, viewer, status, notes) sorted by surface then viewer. missing filters to status == "unverified" only. --json emits {"summary": {...}, "cells": [...]} on stdout only; errors go to stderr.

Evidence files live under priv/viewer_evidence/<surface>/<viewer>.md with a per-file byte budget of 65_536 bytes (byte_size/1 on disk).

Exit codes (D-22)

  • list0 when the matrix parses successfully.
  • missing1 when any unverified cell exists; 0 when none.
  • validate1 on Tier-A schema errors, evidence-file failures, or orphan scans; 0 when only Tier-B legacy-supported warnings and/or staleness warnings (180 days) remain. With --strict, staleness warnings (180 days) are fatal — 1 when any supported row is stale; 0 when dates are current. Operator/release use only; not part of mix ci.

CI enforcement

Merge-blocking checks run through mix docs.contract (eighth lane: test/docs_contract/viewer_evidence_claims_test.exs). This task is not part of the mix ci alias in Phase 68 — use it locally before recording promotions.

Human workflow guide: guides/viewer_evidence.md.