antithesis-query-logs
Skill1.6k starsChanged todayMITView on GitHub
Search across all timelines in an Antithesis test run to find events, correlate property failures, and answer temporal questions about ordering and causation (e.g., did event A always precede failure B? do failures occur even without a preceding fault?).
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 7 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 19
Search across all timelines in an Antithesis test run to find events, correlate property failures, and answer temporal questions about …
- Very specific: line 42
DO NOT PROCEED if snouty is not installed.
- Very specific: line 44
DO NOT PROCEED if agent-browser is older than version v0.23.4.
- Distinctive: line 53
Temporal query: Search for event X that is (or is not) preceded by or followed by event Y.
- Very specific: line 77
Use agent-browser with the shared Antithesis authentication:
- Distinctive: line 118
If a run you expect to see is missing, refresh the page.
- Distinctive: line 130
Important: Always ensure the correct run is selected before searching.
- Distinctive: line 150
No injection, no DOM, no session needed.
- Very specific: line 176
Prefer build-url.py whenever you just need a URL.
- Distinctive: line 202
If the count drops, the difference is cascade failures.
- Distinctive: line 207
Search for a property failure
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Antithesis Logs Explorer
Skill version: 2026-09-16 6cf90e4
Purpose and Goal
Search across all timelines in an Antithesis test run to find events, correlate property failures, and answer temporal questions about ordering and causation — cascade elimination, fault correlation, root cause hypothesis testing, and any "if X happened before Y" query.
The Logs Explorer is distinct from the per-example log viewer used in triage. The triage log viewer shows one timeline centered on one event. The Logs Explorer searches across ALL timelines in a run, supports temporal queries (preceded by, not preceded by, followed by, not followed by), and visualizes results on a multiverse map.
When to Use
- Investigating whether a property failure is independent or a cascade from an earlier failure
- Counting how many independent occurrences of a failure exist across timelines
- Correlating failures with fault injection events
- Comparing failure patterns between backend configurations
- Identifying timeline clusters where failures co-occur
Prerequisites
- DO NOT PROCEED if
snoutyis not installed. Seehttps://raw.githubusercontent.com/antithesishq/snouty/refs/heads/main/README.mdfor installation options. - DO NOT PROCEED if
agent-browseris not installed. Seehttps://raw.githubusercontent.com/vercel-labs/agent-browser/refs/heads/main/README.mdfor installation options. - DO NOT PROCEED if
agent-browseris older than versionv0.23.4. You can upgrade withagent-browser upgrade. - DO NOT PROCEED if
jqis not installed. Seehttps://jqlang.org/download/for installation options. python3(>= 3.10, stdlib only) forassets/build-url.py.- A completed Antithesis run. If you don't have a specific run URL, use the
antithesis-triageskill's run discovery workflow to find one first. agent-browserinstalled and authenticated to the Antithesis tenant
Key Concepts
- Temporal query: Search for event X that is (or is not) preceded by or followed by event Y. Used to filter out cascade failures.
- Multiverse map: Visualization of the timeline tree. Failures appear as dots. Clusters of dots on related timelines suggest a shared root cause.
- Independent cluster count: The number of distinct timeline branches where a failure appears. "8 failures in 2 clusters" is much more informative than just "8 failures" — it tells you how many independent reproductions exist.
- Session ID: Each run has a unique session ID that scopes all queries. Queries against the wrong session return no results. The session ID is embedded in the encoded search URL parameter.
Important: Field Names
The Logs Explorer uses singular field names, not plural:
assertion.message— the property/assertion name (NOTassertions.message)assertion.status—passingorfailing(NOTassertions.status)general.output_text— log output text
The assertion.status field requires the matches operator, not
contains. Other text fields use contains.
Session Setup
Use agent-browser with the shared Antithesis authentication:
SESSION="logs-explorer-$(date +%s)-$$"
agent-browser --session "$SESSION" --session-name antithesis --profile antithesis --args "--no-sandbox"Launching the Logs Explorer
There are three ways to reach the Logs Explorer with the correct run selected:
Method 1: From a triage report (preferred)
Navigate to the triage report first, then extract the "Explore logs" link. This is the most reliable method because the link contains the correct session ID already encoded in the URL.
agent-browser --session "$SESSION" eval \
"document.querySelector('a.an-button[href*=\"/search\"]').href"Navigate to the returned URL. This automatically sets the correct session/run.
The URL will have the form:
https://{tenant}.antithesis.com/search?search=v5v{base64_encoded_query}The v5v prefix is a version marker. The base64 payload contains the query
JSON including the session ID (s field). See references/query-builder.md
for the full query JSON format.
Method 2: From the Logs Explorer directly
The Logs Explorer page has a "Show me logs from" dropdown at the top
(div.select_container.event_search_run_selector). Click it to see a list
of recent runs with their name, status (In progress / Completed / Incomplete),
and timestamp. Select the run you want.
If a run you expect to see is missing, refresh the page.
Method 3: From the sidebar
Click "Logs explorer" in the left sidebar navigation. This goes directly to
https://{tenant}.antithesis.com/search with no run pre-selected. Then use
the "Show me logs from" dropdown to choose a run.
agent-browser --session "$SESSION" open "https://{tenant}.antithesis.com/search"Important: Always ensure the correct run is selected before searching. Each run has its own session ID — queries against the wrong session return no results. The selected run is shown in the dropdown at the top of the page.
Reference Files
| Reference | When to read |
references/query-builder.md | Building and executing search queries |
references/temporal-queries.md | Using preceded-by / not-preceded-by filters |
references/results.md | Reading search results and clicking into details |
references/map.md | Using the multiverse map for cluster analysis |
URL Construction (preferred) and Runtime Injection
This skill ships two assets. Pick the one that fits the step you're on:
assets/build-url.py— standalone Python CLI. Builds and decodes Logs Explorer URLs without any browser. Use this any time you just need a URL (e.g. to hand toagent-browser openor to paste into a browser). No injection, no DOM, no session needed.python3 assets/build-url.py failure \ --session-id "$SESSION_ID" \ --property "my-failing-property" \ --tenant "{tenant}.antithesis.com"See
references/query-builder.mdfor all subcommands (failure,not-preceded-by,not-followed-by,custom,decode).assets/antithesis-query-logs.js— in-page runtime. Inject this on the Logs Explorer page only when you need to interact with the page: click Search, wait for results, read counts/result rows, switch to the Map view, etc. Pure URL construction does not need the runtime.cat assets/antithesis-query-logs.js \ | agent-browser --session "$SESSION" eval --stdinThe runtime registers
window.__antithesisQueryLogs. If you getTypeError: Cannot read properties of undefinedfrom a call against it, the runtime has not been injected on the current page — inject first.
Prefer build-url.py whenever you just need a URL. Drop to the in-page
runtime only for steps that genuinely have to touch the DOM.
Recommended Workflows
Cascade elimination
- Get the session ID — either by extracting it from the triage report's
"Explore logs" link (
python3 assets/build-url.py decode --url "$EXPLORE_LOGS_URL" | jq -r .s) or from any existing Logs Explorer URL. - Build a simple failure URL with the Python CLI:
python3 assets/build-url.py failure \ --session-id "$SESSION_ID" --property "my-failing-property" \ --tenant "{tenant}.antithesis.com" agent-browser openthe URL, inject the runtime, run search, read the count viawindow.__antithesisQueryLogs.search().- Build a temporal URL:
python3 assets/build-url.py not-preceded-by \ --session-id "$SESSION_ID" --property "my-failing-property" \ --pre-field assertion.message --pre-value "suspected-upstream-failure" \ --tenant "{tenant}.antithesis.com" - Navigate to it, run search, note the new count.
- If the count drops, the difference is cascade failures. If it stays the same, the failures are independent.
Failure correlation with event details
- Search for a property failure
- Expand the
{}details on several results - Identify detail fields that vary across results (e.g., configuration modes, feature flags, container names, protocol versions)
- Note whether failures cluster on a specific detail value — if all failures share a common detail that other passing events do not, that detail is likely part of the root cause
Independent cluster analysis
- Search for a property failure
- Switch to the Map tab
- Count the number of distinct timeline branches with failure dots
- Failures on the same branch are likely the same root cause
- Pick one representative from each cluster for investigation
Output
- Event counts (total matches, matches after temporal filtering)
- Event details (timestamp, timeline, assertion details and custom key-value pairs)
- Cluster count from the multiverse map
- Log context around each failure (fault events, preceding operations)
Trending
Quiet since January.thin dataabout the whole repository
Who's talking about ghuntley/loom
- A Hacker News story“If your name is not Geoffrey Huntley then do not use loom”Hacker News · Jan 16, 2026 · 2 points
- daydemir/milhouse-go-legacy“Cross-Session Thread Loading & Replay (from Huntley Loom research)”GitHub · Jan 17, 2026
- daydemir/milhouse-go-legacy“Active System Verification Loops (from Huntley Loom research)”GitHub · Jan 17, 2026
- daydemir/milhouse-go-legacy“Meta-Loop Orchestration: Agents Spawning Sub-Loops (exploratory/major from Huntley Loom research)”GitHub · Jan 17, 2026
- daydemir/milhouse-go-legacy“Structured Audit Threads for Agent Decision Trails (from Huntley Loom research)”GitHub · Jan 17, 2026
The biggest 5 of 14 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 14
Talked about on GitHub and Hacker News (14 times).
On GitHub · 13
- Jan 17, 2026Cross-Session Thread Loading & Replay (from Huntley Loom research) — daydemir/milhouse-go-legacy0 reactions
- Jan 17, 2026Active System Verification Loops (from Huntley Loom research) — daydemir/milhouse-go-legacy0 reactions
- Jan 17, 2026Meta-Loop Orchestration: Agents Spawning Sub-Loops (exploratory/major from Huntley Loom research) — daydemir/milhouse-go-legacy0 reactions
- Jan 17, 2026Structured Audit Threads for Agent Decision Trails (from Huntley Loom research) — daydemir/milhouse-go-legacy0 reactions
- Jan 17, 2026Server-Side LLM Proxy for Credential Isolation (from Huntley Loom research) — daydemir/milhouse-go-legacy0 reactions
8 more on GitHub
- Jan 17, 2026Secret Wrapper Type for Auto-Redacting (from Huntley Loom research) — daydemir/milhouse-go-legacy0 reactions
- Jan 17, 2026Error Classification with Transient/Quota/Permanent (from Huntley Loom research) — daydemir/milhouse-go-legacy0 reactions
- Jan 17, 2026Thread Persistence with UUID7 & Offline-First Sync (from Huntley Loom research) — daydemir/milhouse-go-legacy0 reactions
- Jan 17, 2026Post-Tool Hook State for Auto-Commit (from Huntley Loom research) — daydemir/milhouse-go-legacy0 reactions
- Jan 17, 2026Snippet-Based File Editing (from Huntley Loom research) — daydemir/milhouse-go-legacy0 reactions
- Jan 17, 2026Proactive OAuth Token Refresh (from Huntley Loom research) — daydemir/milhouse-go-legacy0 reactions
- Jan 17, 2026Multi-Account LLM Pool with Failover & Cooling (from Huntley Loom research) — daydemir/milhouse-go-legacy0 reactions
- Jan 17, 2026Explicit State Machine for Agent Orchestration (from Huntley Loom research) — daydemir/milhouse-go-legacy0 reactions
On Hacker News · 1
- Jan 16, 2026If your name is not Geoffrey Huntley then do not use loom2 points · 1 comment
In this repository31 other files it gives its agents.
- AGENTS.mdAGENTS.md
- antithesis/AGENTS.mdAGENTS.md
- lilly/AGENTS.mdAGENTS.md
- marshall/AGENTS.mdAGENTS.md
- mila/AGENTS.mdAGENTS.md
- protocol/AGENTS.mdAGENTS.md
- susan/AGENTS.mdAGENTS.md
- adr-maintenanceSkill
- antithesis-agent-browserSkill
- antithesis-debugSkill
- antithesis-documentationSkill
- antithesis-feature-workloadSkill
- antithesis-launchSkill
- antithesis-mutation-testingSkill
- antithesis-researchSkill
- antithesis-review-inputsSkill
- antithesis-setup-k8sSkill
- antithesis-setupSkill
- antithesis-skills-feedbackSkill
- antithesis-triageSkill
- antithesis-workloadSkill
- architecture-reviewSkill
- buck2Skill
- code-contractsSkill
- covenantSkill
- hegel-elixir-testsSkill
- localizationSkill
- monospace-webSkill
- nix-buildsSkill
- security-auditSkill
- test:triageSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

