Skip to main content
A Reporter serves the current Invocation. It can send the current run’s results to an external observability system, but it does not own published results and cannot replace later fixed query or view use.

What a Reporter is for

Configure a Reporter for the run you need to observe, and let it handle results visible to the current process. An external system can receive a run summary, Attempt results, or links. To read complete business facts, reopen published facts using the receipt’s runIds. A Reporter cannot:
  • Treat external-system data as a business value in the Record.
  • Replace Verdicts, Usage, assertions, or diagnostics with external reporting.
  • Make later fixed query or view reads come from the external system.
  • Write results from the external system back into the Record.

Use JUnit in CI

JUnit is the most direct external integration:
NiceEval writes that file atomically. A CI platform reads it to display annotations and test results. It is the delivery format for this Invocation only; it never becomes the owner of Record facts.

Use JSON and the receipt

--json emits NDJSON for the current process. Its final receipt contains invocationId, runIds, start time, end time, and completion. External automation can retain the receipt, then use its runIds with fixed Inspection operations.
Do not treat progress or diagnostic lines as a long-lived result format. They serve the current Invocation; complete business facts belong to the published Record.

Principles for external integrations

  1. Let external reporting consume only information the current Invocation knows.
  2. Keep credentials in runtime variables, not output.
  3. Use the exit status for a CI gate.
  4. Use a receipt’s runIds to connect external workflows to inspectable results.
  5. Use the receipt’s runIds with view to review published facts, or use query for automation.
For CI commands and JUnit, read CI Integration.