agent-approval-protoco…
Use for approval_request, COMMAND_SET, approval identifiers, fingerprints, and progress data
Use when creating or drafting tickets or issues, or when standardizing ticket output for a project
$ npx -y skills add metraton/gaia --skill ticket-writing --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ticket-writingContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when creating or drafting tickets or issues, or when standardizing ticket output for a project
name: ticket-writing description: Use when creating or drafting tickets or issues, or when standardizing ticket output for a project
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.
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.
**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). | | *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.
**Title:** short action phrase, plain English. **Description:** one line -- what it is / done when X.
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.
"Repository migration to Bitbucket platform will be performed."
in a Subtask description or the evidence comment, not the Story Objective.
See `examples.md` for real tickets from the AOS migration project.
the first comment instead.
is a task; "Migrate AOS repositories to Bitbucket" is a Story.
Subtask with a multi-step description.
noise. Adapt to what is already there.
"History intact" is verifiable only when it means "no commit missing from git log --oneline."
Repo: metraton/gaia
Use for approval_request, COMMAND_SET, approval identifiers, fingerprints, and progress data
Use for the exact input/output schema and validation rules of agent_contract_handoff
Use when creating a new specialist agent for Gaia, or reviewing whether an existing agent follows the correct structure, tone, and component inventory
Use when the orchestrator must read, reconcile, route, and present an agent_contract_handoff
Use when writing, drafting, or publishing a blog article for metraton.github.io