Skip to main content
obversa-record prints a run’s record as Markdown you scan in a minute: each step’s runs, what they cost, and where a step ran again. The record itself stays JSON lines for machines. Use the command after a run, or on one that was killed, to see what happened without opening the file. To watch a run while it works, use the run’s page. Point it at the file a run wrote with recordTo:
Terminal
--json prints the same structure as JSON for a page of your own. Both come from @obversa/runtime: summarizeRecord(events) returns the structure and renderRecord(events) the Markdown, so a host can print a record without the command.

Layout

  • The header carries the run’s name, when it started and ended, its outcome, and the tokens in and out, with how many were read from cache. A run that was killed says so: no end recorded.
  • A section per step, in the order the steps first ran. A step that ran again after a review has a numbered run for each time, and the findings that made it run again sit above that run: which step returned them, why, and the count against the step’s limit.
  • Each run shows its outcome and how long it took, the first line of what the step said, each model call with its tokens, and the tool calls folded to one line: the tool, how many times, and the files or commands it touched when the engine reports them.
  • A pause is its own line, with the question a person is being asked, or the reason a limit stopped the run.
  • Anything else in the record prints as a line with its kind, so nothing is hidden.
The output below is the header and the first step of a run of the writer, reader and judge team over a docs page. The run was killed during the writer’s third round:
Output
The header says no end was recorded, and the third run of write has a start and no end: that is where the run was killed. The two lines that begin Kickback are the route returning the draft to the writer, with the judge’s reason and the count against the writer’s limit of six.

Next steps

  • The record: the event log this page is read from, and what a resumed run repeats.
  • Watch a run in the browser: the same lines, live, while the run works.
  • Runtime: renderRecord and summarizeRecord for a page of your own.