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 |