Executive Summary
The offline LTI summary turns a retained acceptance release-gate JSON report into a short Markdown report for operators and directors. It shows status, planned/executed checks, failures, blocks, owner routing, evidence references and an optional comparable-run trend. It does not run scenarios, contact providers, query a database or alter release gates.
Generate A Report
python -m test_interface.run_summary report.json --output summary.md
python -m test_interface.run_summary report.json --previous previous.json --output summary.md
python -m unittest test_interface.tests_run_summary
Use the JSON retained by the existing sandbox regression workflow. Do not substitute a hand-edited report for the release gate. An optional reviewed failure_category annotation can be used in a separate triage copy while preserving the original evidence.
No Django settings or credentials are required to render a report. Exit 0 means the summary rendered, not that the test suite passed. Invalid/unreadable input or an existing output file returns exit 2 with a generic error. The command writes only a new output file and refuses to overwrite retained evidence.
Read The Result
- Gate: the validated source decision, with an explicit warning that deployment identity has not been verified by this renderer.
- Coverage: counts of the supplied check set only. Blocked checks remain visible and are excluded from the executed pass-rate denominator. Missing scenarios/providers are not inferred as covered.
- Failures: reviewed category or conservative unclassified state, plus responsible role.
- Evidence: ScheduledTest links relative to the LTI instance that produced the report. A downloaded Markdown file cannot resolve that origin; look up the displayed ID in the authenticated source instance.
- Trend: compares only matching suite, target, check names and provider coverage. Operator must confirm chronology, scenario versions and runtime configuration. One recovery is not proof of a flake.
For read-only-smoke, a pass is reachability only; 401/403/404/405 may be expected. For donation recovery, inspect correlated persistence and sandbox provider evidence separately. Missing evidence remains visible and cannot be converted into a pass.
Safety And Compatibility
Input is limited to 1 MB and 1,000 checks, with unique non-personal slugs and the version-1 acceptance release report contract. The legacy summary.failed includes blocked checks; this renderer checks that legacy total and displays failed and blocked separately without rewriting the schema. Inconsistent totals, outcome or decision are rejected.
Only allowlisted summary fields are rendered. Raw exception text, arbitrary URLs, provider objects and payloads are omitted. Do not place personal information even in scenario identifiers. Access to original reports remains governed by the retention policy.
Attach the summary to the existing controlled release record with source run URL, SHA and scenario version. This is an operator report option, not a new hosted dashboard, public endpoint or replacement for Ultra's promotion validator.