/ticket-writing
Use when creating or drafting a ticket or issue, or standardizing ticket output for a project -- "ármame un ticket", "escribe el issue", "necesito una tarea para Jira", "create a ticket", "draft an issue".
Claude Code
$ npx -y skills add metraton/gaia --skill ticket-writing --agent claude-code
Codex
$ npx skills add metraton/gaia --skill ticket-writing -a codex -y
Cursor
$ npx skills add metraton/gaia --skill ticket-writing -a cursor -y
Gemini CLI
$ npx skills add metraton/gaia --skill ticket-writing -a gemini-cli -y
GitHub Copilot
$ npx skills add metraton/gaia --skill ticket-writing -a github-copilot -y
OpenCode
$ npx skills add metraton/gaia --skill ticket-writing -a opencode -y
Windsurf
$ npx skills add metraton/gaia --skill ticket-writing -a windsurf -y
SKILL.md
ticket-writing.SKILL.mdname: ticket-writing
description: Use when creating or drafting a ticket or issue, or standardizing ticket output for a project -- "ármame un ticket", "escribe el issue", "necesito una tarea para Jira", "create a ticket", "draft an issue".
Ticket Writing
The formula for tickets humans can read in ~15 seconds. The what and why go at the top; the how and evidence go in a comment. One Story per brief or theme; consolidate rather than inflate. The register is `human-register`'s; this skill owns the ticket's shape.
Core principle
A Story is readable by a non-technical stakeholder in 15 seconds. This means: plain English, active voice, value-oriented title, high-level description. All implementation detail and verification evidence lands in the first comment -- never in the description -- so the description reads clean.
Story template
**Title:** verb + outcome, plain English, no jargon, 80 chars max.
**Description fields:**
| Field | Content | |-------|---------| | *Objective* | 1-2 sentences: what it achieves and why (high level) -- the plain register of `technical-explanation`: consequence over artifact, common nouns, no identifiers. | | *What it covers* | 3-5 bullets of scope -- what, not how. | | *Acceptance criteria* | Checklist "Done when..." -- verifiable, not vague. | | *Links* | Brief slug / repo if applicable. |
**Evidence** -- first comment only, never in description: commit hashes, verbatim commands, anything reproducible.
Subtask template
**Title:** short action phrase, plain English. **Description:** one line -- what it is / done when X.
Process
1. **Map to a brief or theme.** One Story = one brief or coherent chunk of work. If the work spans multiple unrelated concerns, split into separate Stories. If it is one theme with sequential steps, use Subtasks.
2. **Write the title last.** Draft the Objective and What-it-covers first; the title compresses naturally from those. If the title needs jargon to be precise, the description is missing context.
3. **Write the Acceptance Criteria as done-when checks.** Each AC is a checkbox that a person (not a CI system) can verify. Vague ACs get pushed back: "migrated" means what? "History intact" means no commit lost.
4. **Move all evidence to the first comment.** After the ticket is created, post a comment with: commit hashes, commands run verbatim, output snippets. This keeps the description clean for stakeholders and the evidence auditable for engineers.
5. **Adapt to the project's board conventions.** Do not create Epics if the team does not use them. Respect the active Sprint. Use existing Labels and Components, not invented ones. Check 2-3 existing tickets before creating the first one.
6. **Consolidate, do not inflate.** Prefer fewer well-scoped tickets over many granular ones. If two Subtasks share all context, make one Subtask. If a Story has one Subtask, fold the Subtask into the Story.
Style rules
- Plain English, active voice. Write "Move repositories to Bitbucket" not
"Repository migration to Bitbucket platform will be performed."
- Title is value-oriented: what the user or team gains, not the mechanism.
- No implementation detail in the description. "Configure DNS records" belongs
in a Subtask description or the evidence comment, not the Story Objective.
- Subtasks are ultra-light: one-line description, action-phrase title.
- Fields: Assignee, Status (To Do / Done), Sprint -- set these before saving.
See `examples.md` for real tickets from the AOS migration project.
Anti-patterns
- **Evidence in the description** -- pollutes the readable summary; goes in
the first comment instead.
- **Title is the mechanism, not the outcome** -- "Run git push for all repos"
is a task; "Migrate AOS repositories to Bitbucket" is a Story.
- **One Subtask per command** -- over-granular; group related steps into one
Subtask with a multi-step description.
- **Inventing Epics or Labels** -- inconsistency with the team's board adds
noise. Adapt to what is already there.
- **Vague Acceptance Criteria** -- "Works correctly" is not verifiable.
"History intact" is verifiable only when it means "no commit missing from git log --oneline."
Read more
name: ticket-writing description: Use when creating or drafting a ticket or issue, or standardizing ticket output for a project -- "ármame un ticket", "escribe el issue", "necesito una tarea para Jira", "create a ticket", "draft an issue".
Ticket Writing
The formula for tickets humans can read in ~15 seconds. The what and why go at the top; the how and evidence go in a comment. One Story per brief or theme; consolidate rather than inflate. The register is `human-register`'s; this skill owns the ticket's shape.
Core principle
A Story is readable by a non-technical stakeholder in 15 seconds. This means: plain English, active voice, value-oriented title, high-level description. All implementation detail and verification evidence lands in the first comment -- never in the description -- so the description reads clean.
Story template
**Title:** verb + outcome, plain English, no jargon, 80 chars max.
**Description fields:**
| Field | Content | |-------|---------| | *Objective* | 1-2 sentences: what it achieves and why (high level) -- the plain register of `technical-explanation`: consequence over artifact, common nouns, no identifiers. | | *What it covers* | 3-5 bullets of scope -- what, not how. | | *Acceptance criteria* | Checklist "Done when..." -- verifiable, not vague. | | *Links* | Brief slug / repo if applicable. |
**Evidence** -- first comment only, never in description: commit hashes, verbatim commands, anything reproducible.
Subtask template
**Title:** short action phrase, plain English. **Description:** one line -- what it is / done when X.
Process
1. **Map to a brief or theme.** One Story = one brief or coherent chunk of work. If the work spans multiple unrelated concerns, split into separate Stories. If it is one theme with sequential steps, use Subtasks.
2. **Write the title last.** Draft the Objective and What-it-covers first; the title compresses naturally from those. If the title needs jargon to be precise, the description is missing context.
3. **Write the Acceptance Criteria as done-when checks.** Each AC is a checkbox that a person (not a CI system) can verify. Vague ACs get pushed back: "migrated" means what? "History intact" means no commit lost.
4. **Move all evidence to the first comment.** After the ticket is created, post a comment with: commit hashes, commands run verbatim, output snippets. This keeps the description clean for stakeholders and the evidence auditable for engineers.
5. **Adapt to the project's board conventions.** Do not create Epics if the team does not use them. Respect the active Sprint. Use existing Labels and Components, not invented ones. Check 2-3 existing tickets before creating the first one.
6. **Consolidate, do not inflate.** Prefer fewer well-scoped tickets over many granular ones. If two Subtasks share all context, make one Subtask. If a Story has one Subtask, fold the Subtask into the Story.
Style rules
- Plain English, active voice. Write "Move repositories to Bitbucket" not
"Repository migration to Bitbucket platform will be performed."
- Title is value-oriented: what the user or team gains, not the mechanism.
- No implementation detail in the description. "Configure DNS records" belongs
in a Subtask description or the evidence comment, not the Story Objective.
- Subtasks are ultra-light: one-line description, action-phrase title.
- Fields: Assignee, Status (To Do / Done), Sprint -- set these before saving.
See `examples.md` for real tickets from the AOS migration project.
Anti-patterns
- **Evidence in the description** -- pollutes the readable summary; goes in
the first comment instead.
- **Title is the mechanism, not the outcome** -- "Run git push for all repos"
is a task; "Migrate AOS repositories to Bitbucket" is a Story.
- **One Subtask per command** -- over-granular; group related steps into one
Subtask with a multi-step description.
- **Inventing Epics or Labels** -- inconsistency with the team's board adds
noise. Adapt to what is already there.
- **Vague Acceptance Criteria** -- "Works correctly" is not verifiable.
"History intact" is verifiable only when it means "no commit missing from git log --oneline."
Generative AI Interface for Agents. Specialist agents for Claude Code and OpenCode, with a memory that outlives the session and a consent gate on everything that changes state.
Other skills on gaia.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about ticket-writing.
- Which coding agents can use ticket-writing?
- ticket-writing installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

