antithesis-triage
Antithesis Bug Triage
Use the agent-browser CLI to read and triage Antithesis test reports.
Gathering user input
Before starting, collect the following from the user:
- Report URL or Tenant ID (required) — A full triage report URL like
https://TENANT.antithesis.com/...or just the tenant name. If neither is provided, ask the user. - What they want to know — Are they investigating a specific failure? Getting a general overview? Comparing runs? This determines which workflow to follow.
Reference files
Each reference file contains the selectors and query file paths for a specific task. Read the relevant file before performing that task.
| Page | When to read |
|---|---|
references/setup-auth.md |
Always — read first to set up the browser session |
references/run-discovery.md |
User wants to find or browse recent runs (no specific URL) |
references/run-metadata.md |
Need run title, date, or the Explore Logs link |
references/properties.md |
Checking property pass/fail status, filtering properties |
references/environment.md |
Checking which Docker images were used |
references/findings.md |
Viewing behavioral diffs between runs |
references/utilization.md |
Checking test hours or behavior discovery rate |
references/logs.md |
Investigating logs for a specific property example |
Query files
Reference files contain references to queries. Queries are stored in the assets directory, organized by the page they are relevant to.
Use the following command pattern to evaluate a query file from the skill root:
cat assets/report/run-metadata.js \
| agent-browser eval --session-name "$SESSION" --stdin
Do not run report queries in parallel with agent-browser open, hash-route
navigation, or any other command that can replace the page. Wait until the
target page is settled before starting eval calls. On a single browser
session, run report queries sequentially; property scripts mutate tab and
expansion state and will interfere with each other if you launch them in
parallel.
Page Loading Checks
Each page type has a dedicated loading-finished.js query. Use the matching
one before running page-specific queries.
Command pattern:
for _ in $(seq 1 60); do
if [[ "$(
cat <loading-query-file> \
| agent-browser eval --session-name "$SESSION" --stdin
)" == "true" ]]; then
break
fi
sleep 1
done
If the report page still is not ready after about 60 seconds, inspect the current state before retrying:
cat assets/report/loading-status.js \
| agent-browser eval --session-name "$SESSION" --stdin
Use these loading checks:
- Report page:
assets/report/loading-finished.js - Logs page:
assets/logs/loading-finished.js - Runs page:
assets/runs/loading-finished.js
The report-page loading check returns true only when the main report
sections have finished loading, including findings, properties, environment,
and utilization. The report hydrates asynchronously after the browser load
event, and findings are often the last section to settle.
Report queries are only valid on the main report view. If you navigate to an
internal hash route such as #/run/.../finding/..., reopen the original report
URL and rerun assets/report/loading-finished.js before using report queries
again.
Recommended workflows
Quick overview of a run
- Read
references/setup-auth.md— authenticate and open the report - Read
references/run-metadata.md— get the run title and date - Read
references/properties.md— use the all-properties query for totals, then failed/passed/unfound queries only if you need filtered subsets - Summarize: total properties, how many passed/failed/unfound, and flag any failures
Investigate a failing property
- Read
references/setup-auth.md— authenticate and open the report - Read
references/properties.md— list properties, filter to failed - Read
references/logs.md— expand failed-property example tables, get log URLs, navigate to logs, find the highlighted assertion event and surrounding context - Report the failure with: property name, assertion text, relevant log lines, and the timeline context
Find a specific run
- Read
references/setup-auth.md— authenticate - Read
references/run-discovery.md— browse the runs page to find the target run - Continue with any of the above workflows once on the report
General guidance
- Always authenticate first. Every session starts with setup-auth.
- Don't fabricate selectors. The triage report uses custom web components and non-obvious class names. Always consult the resource page for the correct queries.
- Keep report queries on the main report view. If you click into a finding-focused hash route, reopen the original report URL before using report queries again.
- Do not overlap navigation with queries.
agent-browser evalcalls can fail with an execution-context-destroyed error if the report is still navigating or hydrating. - Logs require full auth. The report page may load with just an
authtoken in the URL, but navigating to log pages requires a fully authenticated session. - Logs use virtual scrolling. Only ~50-70 rows render at a time. You may need to scroll to find specific entries.
- Present results clearly. When reporting property statuses, use a table or list. When reporting log findings, include the virtual timestamp, source, and log text.