document
Regenerate BUGS.md and TASKS.md via `etna workload doc` — docs are derived, never hand-edited
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Regenerate BUGS.md and TASKS.md via `etna workload doc` — docs are derived, never hand-edited
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Turn one fix commit into a full mutation+property+witness workload atom, verify it, and commit it
Build src/bin/etna.rs as a programmatic, framework-agnostic dispatcher over (tool, property) pairs
End-to-end sanity check — etna workload check passes, base builds, every variant is detected, every framework drives its crate
Scan the entire git history of a Rust project and identify every bug-fix commit as a mutation candidate
| name | document |
| description | Regenerate BUGS.md and TASKS.md via `etna workload doc` — docs are derived, never hand-edited |
BUGS.md and TASKS.md are derived artefacts. etna workload doc <dir> reads etna.toml and writes both files deterministically. This stage's entire job is to run that command and confirm no drift. etna-cli is the renderer — do not hand-author these files.
etna workload doc <project> — exit 0 required. Writes <project>/BUGS.md and <project>/TASKS.md.git -C <project> diff --exit-code BUGS.md TASKS.md — if nonzero, the manifest changed since the last regeneration (expected during active atomize work); stage the updated files into the atomize commit. Nonzero diff after a clean atomize+document pass on an already-generated workload is a defect — investigate etna workload doc idempotence.etna.toml is the single source of truth. BUGS.md and TASKS.md are regenerated; never hand-edited.etna workload doc is idempotent — running it twice produces identical output. This is enforced by the docs_idempotent check in etna workload check.etna workload check ., which re-runs the doc generator and fails on any drift. Hand-edits to the docs get caught at commit time.[[tasks]] block is malformed or missing in etna.toml. Read etna-cli stderr for the parse error.[[tasks.tasks]].witnesses array is empty, or uses the Input { input = ... } variant instead of TestFn { test_fn = ... } (see the Witness enum in etna2/src/workload.rs near line 403).pascal_to_snake maps correctly (etna2/src/commands/workload/check.rs:307 + unit tests at :320). A manifest property of "X" maps to "x"; ensure the Rust function exists under that exact name.[[dropped]] is a top-level block, not nested under [[tasks]]. Every dropped block needs commit and reason (subject is optional).Emit to <project>/progress.jsonl per the contract in prompts/run.md:
| When | Event line |
|---|---|
| Starting document stage | {"stage":"document","event":"start"} |
BUGS.md written | {"stage":"document","event":"bugs_written","variants":N} |
TASKS.md written | {"stage":"document","event":"tasks_written","tasks":M} |
| Document stage complete | {"stage":"document","event":"done"} |
These fire around the etna workload doc invocation rather than hand-rolled rendering. Derive variants from len(manifest.tasks) and tasks from a line count of the TASKS.md Task Index.