| name | etna-workflow |
| description | Run and analyze ETNA experiments end-to-end. Use when working with ETNA test JSON files, running `etna experiment run` or `cargo run -- experiment run`, splitting tests by workload, interpreting `store.jsonl`, and comparing strategies while handling reruns and duplicates safely. |
Etna Workflow
Use this skill to make ETNA experiment work reproducible and comparable across runs.
Quick Start
- Identify the experiment directory (contains
tests/, store.jsonl, and optional archive/).
- Validate available tests before running: list files in
tests/ and inspect the target JSON.
- Run experiments with explicit test names and optional
--parallel/--short-circuit.
- Analyze results from
store.jsonl using scripts/summarize_store.py to avoid rerun skew.
Run Workflow
- Inspect the selected test file and confirm workload/scope.
- Run only the intended test subset.
- If rerunning a subset, archive
store.jsonl before edits or filtering.
- Summarize with deduped metrics and report both raw and dedup row counts.
Use command patterns like:
cargo run -- experiment run --name <experiment-name> --tests <test-name> --parallel
etna experiment run --name <experiment-name> --tests <test-name> --parallel
Store Analysis Rules
- Treat
store.jsonl as append-only unless explicitly cleaning/rebuilding.
- Report raw row count and deduped logical row count.
- Deduplicate by latest timestamp per logical trial key:
(workload, mutations, property, strategy, trial)
- Track statuses separately:
failed, passed, timed_out.
- Do not fold
timed_out into failed when computing timeout rate.
- When comparing strategies, report both:
- overall failure rate (
failed / total)
- kill-on-completed (
failed / (failed + passed))
Run:
python3 skills/etna-workflow/scripts/summarize_store.py --store <experiment>/store.jsonl --experiment <name>
Test File Editing Rules
- Preserve existing test/task shape unless asked to redesign generation.
- For workload-only variants, filter
rust-3way.json into dedicated files like rust-3way-bst.json, rust-3way-rbt.json, rust-3way-stlc.json.
- Keep
trials, timeout, cross, and per-task fields unchanged unless explicitly requested.
- Validate output JSON parses and contains only intended workloads.
References
- Read
references/commands.md for CLI patterns and safe run practices.
- Read
references/store-schema.md when interpreting statuses and metrics.
Scripts
- Use
scripts/summarize_store.py for consistent deduped summaries.
- Prefer this script over ad-hoc one-off analysis snippets when reporting results.