src/main/resources/targets/claude/skills/core/ops/x-analyze-telemetry/SKILL.md
Analyze telemetry NDJSON for one or more epics and produce a Markdown report with skill/phase/tool aggregates, Mermaid Gantt timeline, and optional JSON/CSV exports. Use to answer 'which phase is the bottleneck?' and 'is skill X getting slower?' questions for operator visibility.
npx skillsauth add edercnj/ia-dev-environment x-analyze-telemetryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Transform the append-only NDJSON telemetry logs produced by the
telemetry-*.sh hooks into an actionable report. The analysis answers two
recurring operator questions:
--epics (tables stay aligned by epic id).The report is written to
ai/epics/epic-XXXX/reports/telemetry-report-EPIC-XXXX.md by default and
follows the layout in _TEMPLATE-TELEMETRY-REPORT.md.
| Argument | Behaviour |
| :--- | :--- |
| --epic EPIC-XXXX | Report for a single epic (tables + Gantt). |
| --epics A,B,C | Cross-epic comparison report. |
| --export json --out path | Write the structured JSON schema (§5.1). |
| --export csv --out path | Write the tabular CSV (§5.2). |
| --since YYYY-MM-DD | Drop events whose timestamp is earlier than the date. |
| --by-tool | Emphasize the tool breakdown in the Markdown report. |
| --base-dir path | Override plans/ (useful in tests). |
The default Markdown report lands in ai/epics/epic-XXXX/reports/ — no extra
flag required.
java -cp target/classes:target/dependency/* \
dev.iadev.telemetry.analyze.TelemetryAnalyzeCli \
--epic EPIC-0040
The CLI is intentionally standalone — it does NOT require the full
ia-dev-env generator lifecycle. It reads the NDJSON file, aggregates, and
writes exactly one output artifact.
| Code | Meaning |
| :--- | :--- |
| 0 | Success. Malformed NDJSON lines are silently skipped (warnings go to stderr via SLF4J). |
| 2 | Epic has no events.ndjson — message cites the expected path. |
| 3 | Reserved for catastrophic parse failure (I/O error during the pre-flight probe). In the default append-only NDJSON mode, single malformed lines are skipped rather than aborting the run — the rationale is that telemetry is append-only and a mid-file corruption should not prevent aggregation of the remaining N-1 events. |
| 4 | --export set without --out. |
The aggregator streams events through TelemetryReader.streamSkippingInvalid()
so memory stays bounded: the largest retained structure is the per-skill
duration list, which holds one long per matching event.
Every Markdown report contains the seven canonical sections declared in story-0040-0010 §3.2:
skill/phase).The JSON export follows the schema in §5.1; the CSV export follows the layout in §5.2 with RFC 4180 quoting.
testing
Scaffolds a Helidon SE/MP service with routing, health, config, Dockerfile, and tests.
tools
Generates a Picocli @Command with subcommands, options, converters, and unit tests.
testing
Scaffolds a Micronaut service with @Controller, DI, health, Dockerfile, and tests.
testing
Scaffolds a Helidon SE/MP service with routing, health, config, Dockerfile, and tests.