Session reports - Momentic

Test cases

A test case describes one behavior Mo plans to check. Its setup, outline, and acceptance criteria let you review the coverage or turn it into a repository test:

Field Content
name Short name for the behavior under test.
summary What the case checks.
preconditions The state and the account needed before the first step.
outline The steps through the flow.
acceptanceCriteria What must be true for the case to pass.

Two cases are duplicates when they check the same behavior under the same meaningful conditions, so Mo keeps distinct roles, permissions, and outcomes as separate cases.

Verdicts

A bug bash agent submits one verdict per case:

Each verdict carries a summary, the parts the agent verified, and the gaps it could not close. Alongside the verdict, the agent records the individual controls it exercised, each marked checked, failed, partial, or out of scope. A case blocked before a bug bash agent runs can have a blockedReason without a verdict. Review case blockers as well as verdicts; a case without a verdict is unverified coverage.

Bugs

Functional bugs reach the report after a separate agent reproduces them. Mo can also flag static mistakes, such as typos, with a screenshot instead of a reproduction. Each entry holds:

Field Content
kind bug for a functional bug, or flag for a static finding.
name Short name for the finding.
summary The finding in one paragraph.
expected The behavior or content the product should have.
actual The behavior or content the agent observed.
reproSteps The steps from the start of the flow to the finding.
recording Reproduction recording metadata, including start and end times, if present.
screenshot Screenshot artifact metadata for a static finding, if present.

For a reproduced bug, the report records the reproducer’s conversation so you can inspect the run that confirmed it. From a finding you make a triage decision.

Review the coverage

Compare the case list with the scope you requested, then read the verdicts and gaps to see what Mo checked. A case in the list does not establish that Mo verified it. Message Mo to add missing coverage or explain expected behavior. When a reported finding is expected, record the reason through triage and review the suggested knowledge base entry.

Export the report

qa report writes the report’s findings to a directory your coding agent can read:

qa report <session-id> --require-idle --output mo-report

--require-idle exits without writing unless Mo is idle and every sub-agent is done; omit it for an in-progress snapshot. The directory holds report.json, a manifest that names the finding files and downloaded reproduction recordings:

File Contents
bugs.json Reviewed bugs and static findings: expected and actual behavior, reproduction steps, evidence metadata, timestamps.
testCases.json The intended coverage: preconditions, outline, and acceptance criteria per case.
verdicts.json The verification outcome, confirmed behavior, and coverage gaps per case.
triage.json Human dispositions such as accepted or works as intended. A bug with no entry is still open.

Each recording download lands in the manifest’s artifacts list as { bugName, path } or { bugName, error }. Read every file findings names; newer servers can add categories. Check artifact errors before relying on a recording. The export keeps screenshot metadata in bugs.json; it does not download screenshots for static findings. This is the handoff for the fix loop: hand mo-report/ to Claude Code, Codex, Devin, or Cursor, so the agent can read the reproduction steps and available recordings. After the fix deploys to the same target, qa send asks Mo to rerun the original reproduction, and a second export into a separate directory shows the new verdicts.