Guides creation of well-structured tickets (task documents)...
This skill augments Caster's document creation workflow for tickets - task documents that describe work to be done. Tickets can represent features, bugs, improvements, research tasks, or any actionable work item.
/ticket-create command is invokedType: Ticket (task document)
Unlike context packs (reference material), tickets are actionable - they describe work to be completed. They typically move through states (draft → active → completed) and may be assigned to someone.
Tickets vary significantly in scope. Match structure to complexity:
| Complexity | Example | Typical Length | Structure |
|---|---|---|---|
| Simple | Bug fix, small task | 50-150 lines | Summary + Requirements + Acceptance Criteria |
| Medium | Feature addition | 150-400 lines | Summary + Context + Requirements + Implementation Notes + AC |
| Large | System refactor | 400-1500+ lines | Summary + Numbered Parts + Decisions + Questions + AC |
For large tickets, use numbered Parts to organize complex content:
## Part 1: Overview## Part 2: Component A## Part 3: Component BWhen creating a ticket, adapt Caster's standard workflow:
During gap analysis, specifically look for:
Prioritize questions about:
Propose structure based on the specific task, not a fixed template. Common sections include:
| Section | When to Include |
|---|---|
| Summary | Always - numbered list of key changes/requirements |
| Context/Background | When motivation or history matters |
| Parts (numbered) | For large tickets with multiple components |
| Requirements/Scope | When task has specific deliverables |
| Decisions Made | When documenting choices (table format) |
| Resolved Questions | When key decisions need rationale |
| Acceptance Criteria | When success needs to be measurable (checkboxes) |
| Implementation Notes | For technical tasks with design decisions |
| Open Questions | When decisions are still pending |
| References | Links to relevant code, docs, or other tickets |
Do NOT enforce all sections - include only what serves this specific ticket.
Before creating frontmatter, run the metadata script to get git context:
.opencode/scripts/spec_metadata.sh
Or use thoughts metadata to get current values.
---
# Git context (from metadata script)
date: 2025-01-15T10:30:00+03:00
researcher: username # Who created this
git_commit: abc1234
branch: feature/my-feature
repository: project-name
# Document type
kind: ticket
status: draft # draft | active | blocked | implemented | verified | abandoned
topic: "Brief Descriptive Title"
tags: [feature, api, refactor] # Categorization
source: manual # manual | linear | github | jira
# Priority and tracking
priority: 2 # 0-4 (P0=critical, P4=backlog)
schema_version: 1
# References (enables wiki-links)
aliases:
- ticket-2025-01-15-descriptive-slug
# Optional fields
assignee: alice # Who's responsible
due: 2025-02-01 # YYYY-MM-DD deadline
depends_on: # What must complete first
- "[[other-ticket-alias]]"
# Change tracking (updated automatically on edits)
last_updated: 2025-01-15T10:30:00+03:00
last_updated_by: username
last_updated_note: "Initial creation"
---
---
date: 2025-01-15T10:30:00+03:00
researcher: username
kind: ticket
status: draft
topic: "Fix login button alignment"
tags: [bug, ui]
priority: 3
aliases:
- ticket-2025-01-15-login-button-fix
---
Tickets are saved to the current project's thoughts directory:
{project}/thoughts/shared/tickets/YYYY-MM-DD_descriptive-slug.md
After saving, remind the user to run thoughts sync to commit and push changes.
Format: {kind}-{YYYY-MM-DD}-{descriptive-slug}
Examples:
ticket-2025-01-15-user-auth-flowticket-2025-01-15-api-rate-limitingticket-2025-01-15-dashboard-redesignUse checkbox format for testable criteria:
## Acceptance Criteria
### Category 1
- [ ] Specific measurable criterion
- [ ] Another criterion with expected behavior
### Category 2
- [ ] Third criterion
Group related criteria under subheadings for large tickets.
Before finalizing, verify:
Tickets are living documents. Start lean - it's better to have a clear, focused ticket than a comprehensive but bloated one. The ticket can be updated as understanding evolves. For large refactors, expect multiple review rounds to refine the specification.