For AI agents: the complete documentation index is available at https://jig.md/llms.txt, the full documentation bundle is available at https://jig.md/llms-full.txt, and this page is available as Markdown at https://jig.md/contracts/reporting.md.
DocumentationContract guidePrerelease

#Reporting contract

View Markdown

Report progress, messages and application views from a Flow. The same declarations work in terminal and web displays. This optional agreement lets different callers understand those messages without adopting the Flow's application policy or Jig's terminal implementation.

The canonical descriptor defines five closed messages: notice, activity, clear, view and retire-view. Its provisional identity is https://jig.md/contracts/reporting, version 0.1.0. Identity, version and digest are checked offline; this page is never fetched at Run time. The descriptor is owned by the portable @jigging/reporting library and is distributed under MPL-2.0. Copy its license with the agreement. This does not change Jig's software license.

Create the contracts parent directory, then run jig import-contract jig:reporting contracts/reporting from a Flow package whose contracts directory already exists. Add an optional send port referencing ./contracts/reporting/reporting.json. The local port name is your choice; a named invocation contract for the entire Flow is unnecessary. Other hosts can use the identical local descriptor from the library or download.

Use the scoped publisher for TypeScript or Python to validate messages and own optional publication cleanup. Activity replaces a slot's complete state, including optional counts. Clear and every source ending remove its transient state. Accepted complete notices retain presenter ownership through ordinary retirement; output loss still prevents delivery guarantees. Neither counts, 100%, clear nor EOF establish execution success.

Views compose literal reports, facts, measured progress and typed collections. Stable record IDs preserve navigation. Scoped references address current records, actual own calls or verified delivered files; previews use immutable capture. Whole snapshots replace atomically. EOF freezes views with ended context, and retired IDs cannot revive. Applications keep essential evidence in results/files.

Jig can display one exact optional port on stderr, using plain text when redirected. jig run --display tui supplies tabs, record details, filtering and previews; --display plain selects nonanimated summaries. Explicit --receive retains normal stdout channel records. --json preserves machine output and disables automatic application observation; --updates off disables automatic application observation while keeping host-only inspection available. See reporting policy for exact selection, bounds, rendering and lifetime rules.

A notice may declare severity: info, warning or error (default info). This is Flow-reported importance, without changing optional delivery or execution authority. Report blocking problems promptly and retain their reasons in results.