Skip to content

echolot documentation

Twelve documents. If you are here for the first time, read them in the order of the workflow: collect β†’ mark β†’ analyse β†’ compare β†’ calibrate. The rest explains why the tool is built the way it is.


Using it

The path from a device to an answer, in the order you walk it.

document read it when
🎬 Collecting traces you need traces β€” the three modes (launch, command, gradle), what the trace config must contain, callstack sampling and what it costs, and why repeats are merged rather than averaged
🧊 ANRs the app stopped answering and the report came from a phone you do not have β€” reading it, pointing its frames at your files, and measuring the freeze when you can record it
🏷️ Marking your project has no instrumentation and the report has nothing to attach findings to β€” mark writes the first markers from the platform's vocabulary, --apply / --remove
πŸ”Ž Analysing you have a trace and need a place in the code β€” probe, names, domains, and the slice-to-code map
πŸ”€ Comparing you have two sets of traces and need the difference β€” what appeared, what grew, and whether the repeats support calling it a change
πŸ“ Calibrating the shipped thresholds fire on everything, or on nothing β€” derive them from known-healthy runs instead, and why rank beats percentile

Understanding it

Why the answers can be trusted, and what the tool refuses to do.

document about
πŸ”’ Determinism the pinned trace_processor, the synthetic fixture, what doctor actually checks, and where determinism ends
πŸ€– The agent layer what echolot init installs, and a private install git does not see; the plugin for Claude Code and Codex, why a CLI rather than an MCP server, why the loop lives in a subagent

Extending it

document about
βš™οΈ Detectors writing your own β€” the context views, why two duration columns are not a duplicate, self time versus total
πŸͺž Reflect the same kind of report, over an agent session: how the tool was used, where it got in the way

Maintaining it

document about
πŸ“¦ Publishing cutting a release β€” the tag, Trusted Publishing, how the notes are grouped, checking artefacts locally
πŸ—ΊοΈ Planning where work is tracked β€” filing an issue, the four fields the roadmap board sorts by, when a spike comes first, and how a card reaches Done

Also shipped inside the package

Reference material the agent reads, under echolot/claude/skills/echolot/references/:

file about
report.md the Marker Report schema β€” the shape of report.json
config.md the echolot.yml schema, field by field
naming.md how ART names things, and what the detector masks match
collect.md capturing a trace by hand, without collect β€” and what happens while a collect runs and when it fails