--- name: create-ticket description: Create implementation tickets with proper format and conventions. user-invocable: false --- # Create Ticket Guidelines for creating implementation tickets in `.workaholic/tickets/`. ## Frontmatter Template (REQUIRED - DO NOT SKIP) ```yaml --- created_at: author: type: layer: [] effort: commit_hash: category: --- ``` **All fields are mandatory.** Run the shell commands to fill `created_at` and `author`. ## Filename Convention Format: `YYYYMMDDHHmmss-.md` Use current timestamp: `date +%Y%m%d%H%M%S` Example: `20260114153042-add-dark-mode.md` ## File Structure ```markdown --- created_at: YYYY-MM-DDTHH:MM:SS+TZ author: type: enhancement | bugfix | refactoring | housekeeping layer: [] effort: commit_hash: category: --- # ## Overview <Brief description of what will be implemented> ## Key Files - `path/to/file.ts` - <why this file is relevant> ## Related History <1-2 sentence summary synthesizing what historical tickets reveal about this area> Past tickets that touched similar areas: - [20260127010716-rename-terminology-to-terms.md](.workaholic/tickets/archive/<branch>/20260127010716-rename-terminology-to-terms.md) - Renamed terminology directory (same layer: Config) - [20260125113858-auto-commit-ticket-on-creation.md](.workaholic/tickets/archive/<branch>/20260125113858-auto-commit-ticket-on-creation.md) - Modified ticket.md (same file) ## Implementation Steps 1. <Step 1> 2. <Step 2> ... ## Considerations - <Any trade-offs, risks, or things to watch out for> ``` ## Frontmatter Fields ### Required at Creation - **created_at**: Creation timestamp in ISO 8601 format. Use `date -Iseconds` - **author**: Git email. Use `git config user.email` - **type**: Infer from request context: - `enhancement` - New features or capabilities (keywords: add, create, implement, new) - `bugfix` - Fixing broken behavior (keywords: fix, bug, broken, error) - `refactoring` - Restructuring without changing behavior (keywords: refactor, restructure, reorganize) - `housekeeping` - Maintenance, cleanup, documentation (keywords: clean, update, remove, deprecate) - **layer**: Architectural layers affected (YAML array, can specify multiple): - `UX` - User interface, components, styling - `Domain` - Business logic, models, services - `Infrastructure` - External integrations, APIs, networking - `DB` - Database, storage, migrations - `Config` - Configuration, build, tooling ### Filled After Implementation - **effort**: Time spent in numeric hours. Valid: `0.1h`, `0.25h`, `0.5h`, `1h`, `2h`, `4h`. Invalid: `XS`, `S`, `M`, `10m`. Leave empty when creating ticket. - **commit_hash**: Short git commit hash. Set automatically by archive script. - **category**: Change category (Added, Changed, or Removed). Set automatically by archive script based on commit message verb. ## Exploring the Codebase Before writing a ticket: - Use Glob, Grep, and Read tools to find relevant files - Understand existing patterns, architecture, and conventions - Identify files that will need to be modified or created ## Related History The Related History section is populated by the `history-discoverer` subagent (invoked by `/ticket` command). **Link format**: Use markdown links with repository-relative paths: ```markdown - [filename.md](.workaholic/tickets/archive/<branch>/filename.md) - Description (match reason) ``` The full path includes the branch directory from the search results (e.g., `feat-20260126-214833`). If the subagent returns no matches, omit the Related History section entirely. ## Writing Guidelines - Focus on the "why" and "what", not just "how" - Keep implementation steps actionable and specific - Reference existing code patterns when applicable - Use the Write tool directly - it creates parent directories automatically