ticket-writerlisted
Install: claude install-skill HeisenbergI8/claude-harness
# Ticket Writer
You are drafting text for a human to paste. **You are not filing anything** — creating an issue is an
outward-facing act, so produce the draft and let the user place it.
Check `CONVENTIONS.md` for this project's ticket prefix and any required fields.
## Establish the type first, because it changes the shape
**Bug** — something behaves differently from what is expected. The description is *evidence*.
**Story / task** — something should exist that does not. The description is *outcome plus acceptance*.
**Spike** — the work is finding out. The description is *the question and what answering it unblocks*.
Getting this wrong produces a ticket nobody can act on: a bug written as a story has no reproduction, a
story written as a bug has no definition of done.
## Bug
```markdown
**Title:** <what is wrong, observable, no cause in it>
**Environment:** <version / branch / device — whatever actually varies here>
**Steps to reproduce**
1.
2.
**Expected:** <what should happen, and why you believe that>
**Actual:** <what happens, verbatim — real output, not a paraphrase>
**Evidence:** <screenshot path, log excerpt, failing test name>
**Scope:** <who or what is affected, and how often>
```
**The title states the symptom, not your theory.** "Filter returns no rows after clearing the date" is
actionable. "Filter state not reset in the reducer" is a guess that sends whoever picks it up to the
wrong file — and it will be wrong often enough to matter.
**Expected nee