Create Ticket
Guidelines for creating implementation tickets in .workaholic/tickets/.
Frontmatter Template (REQUIRED - DO NOT SKIP)
---
created_at: <run: date -Iseconds>
author: <run: git config user.email>
type: <enhancement | bugfix | refactoring | housekeeping>
layer: [<UX | Domain | Infrastructure | DB | Config>]
effort: <leave empty - filled after implementation>
commit_hash: <leave empty - filled when archived>
category: <leave empty - filled when archived>
---
All fields are mandatory. Run the shell commands to fill created_at and author.
Filename Convention
Format: YYYYMMDDHHmmss-<short-description>.md
Use current timestamp: date +%Y%m%d%H%M%S
Example: 20260114153042-add-dark-mode.md
File Structure
---
created_at: YYYY-MM-DDTHH:MM:SS+TZ
author: <git user.email>
type: enhancement | bugfix | refactoring | housekeeping
layer: [<layers affected>]
effort: <filled after implementation>
commit_hash: <filled when archived>
category: <filled when archived>
---
# <Title>
## 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:
- [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
1---2name: create-ticket-23description: Create implementation tickets with proper format and conventions.4---5
6# Create Ticket
7
8Guidelines for creating implementation tickets in `.workaholic/tickets/`.
9
10## Frontmatter Template (REQUIRED - DO NOT SKIP)
11
12```yaml
13---
14created_at: <run: date -Iseconds>
15author: <run: git config user.email>
16type: <enhancement | bugfix | refactoring | housekeeping>
17layer: [<UX | Domain | Infrastructure | DB | Config>]
18effort: <leave empty - filled after implementation>
19commit_hash: <leave empty - filled when archived>
20category: <leave empty - filled when archived>
21---
22```
23
24**All fields are mandatory.** Run the shell commands to fill `created_at` and `author`.
25
26## Filename Convention
27
28Format: `YYYYMMDDHHmmss-<short-description>.md`
29
30Use current timestamp: `date +%Y%m%d%H%M%S`
31
32Example: `20260114153042-add-dark-mode.md`
33
34## File Structure
35
36```markdown
37---
38created_at: YYYY-MM-DDTHH:MM:SS+TZ
39author: <git user.email>
40type: enhancement | bugfix | refactoring | housekeeping
41layer: [<layers affected>]
42effort: <filled after implementation>
43commit_hash: <filled when archived>
44category: <filled when archived>
45---
46
47# <Title>
48
49## Overview
50
51<Brief description of what will be implemented>
52
53## Key Files
54
55- `path/to/file.ts` - <why this file is relevant>
56
57## Related History
58
59<1-2 sentence summary synthesizing what historical tickets reveal about this area>
60
61Past tickets that touched similar areas:
62
63- [20260127010716-rename-terminology-to-terms.md](.workaholic/tickets/archive/<branch>/20260127010716-rename-terminology-to-terms.md) - Renamed terminology directory (same layer: Config)
64- [20260125113858-auto-commit-ticket-on-creation.md](.workaholic/tickets/archive/<branch>/20260125113858-auto-commit-ticket-on-creation.md) - Modified ticket.md (same file)
65
66## Implementation Steps
67
681. <Step 1>
692. <Step 2>
70 ...
71
72## Considerations
73
74- <Any trade-offs, risks, or things to watch out for>
75```
76
77## Frontmatter Fields
78
79### Required at Creation
80
81- **created_at**: Creation timestamp in ISO 8601 format. Use `date -Iseconds`
82- **author**: Git email. Use `git config user.email`
83- **type**: Infer from request context:
84 - `enhancement` - New features or capabilities (keywords: add, create, implement, new)
85 - `bugfix` - Fixing broken behavior (keywords: fix, bug, broken, error)
86 - `refactoring` - Restructuring without changing behavior (keywords: refactor, restructure, reorganize)
87 - `housekeeping` - Maintenance, cleanup, documentation (keywords: clean, update, remove, deprecate)
88- **layer**: Architectural layers affected (YAML array, can specify multiple):
89 - `UX` - User interface, components, styling
90 - `Domain` - Business logic, models, services
91 - `Infrastructure` - External integrations, APIs, networking
92 - `DB` - Database, storage, migrations
93 - `Config` - Configuration, build, tooling
94
95### Filled After Implementation
96
97- **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.
98- **commit_hash**: Short git commit hash. Set automatically by archive script.
99- **category**: Change category (Added, Changed, or Removed). Set automatically by archive script based on commit message verb.
100
101## Exploring the Codebase
102
103Before writing a ticket:
104
105- Use Glob, Grep, and Read tools to find relevant files
106- Understand existing patterns, architecture, and conventions
107- Identify files that will need to be modified or created
108
109## Related History
110
111The Related History section is populated by the `history-discoverer` subagent (invoked by `/ticket` command).
112
113**Link format**: Use markdown links with repository-relative paths:
114```markdown
115- [filename.md](.workaholic/tickets/archive/<branch>/filename.md) - Description (match reason)
116```
117
118The full path includes the branch directory from the search results (e.g., `feat-20260126-214833`).
119
120If the subagent returns no matches, omit the Related History section entirely.
121
122## Writing Guidelines
123
124- Focus on the "why" and "what", not just "how"
125- Keep implementation steps actionable and specific
126- Reference existing code patterns when applicable
127- Use the Write tool directly - it creates parent directories automatically