Create Ticket
Turn a rough idea into a well-structured ticket through clarifying questions and a standard task template.
Configuration
This skill supports multiple issue trackers. Configure for your project:
| Setting |
Default |
Options |
| Issue tracker |
GitHub Issues |
GitHub Issues, GitLab Issues, Jira, Linear, ClickUp |
| Default list/project |
None |
Configure your project/board/list name |
| Custom fields |
None |
e.g. tier, pod, team, priority — depends on tracker |
| Auto-tag |
ai-created |
Tag added to tickets created by this skill |
Workflow
Step 1: Understand the Idea
Take the user's rough description and ask targeted clarifying questions to fill gaps. Focus on:
- What needs to be done and why (Brief Description)
- Done looks like what? (Acceptance Criteria — at least 2 checkboxes)
- Open questions or unknowns (Refinement)
- Where it lives: project/list (always ask), parent task (if subtask of an epic), tags, priority, team/assignee, status
Always ask which project/list to put the task in, even if a default exists. Don't assume.
Don't ask everything at once. Start with what's missing from the description — skip questions the user already answered. Batch related questions together (max 3-4 per message).
Step 2: Suggest Metadata
Before asking the user for tags, priority, and team — suggest values first based on context:
- Tags: Discover available tags by checking existing tasks in the target project/list. Suggest tags that fit the ticket's domain.
- Priority/Tier: Infer from the type of work (e.g. design work, API work, UI work, infrastructure).
- Team: Infer from the project/list and context.
Present your suggestions and let the user confirm or adjust. Always aim for at least 2 tags per task.
Step 3: Prepare the Ticket
Before creating, show the user a preview of the ticket in the Task Template format (see below). Include:
- Title
- Description (rendered from the template)
- Project/List, tags, priority, team, status, parent (if applicable)
Wait for confirmation or edits before proceeding.
Step 4: Create the Ticket
Create the ticket using your issue tracker's API or CLI:
- Set the target project/list
- Set the title and description (formatted per the Task Template)
- Apply tags, priority, team, and any custom fields
- Set parent task if creating a subtask
- Set status (default: "Open" or equivalent)
After creation, add the ai-created tag to mark it as generated by this skill.
Step 5: Confirm
Show the created ticket with its ID and link. Ask if any immediate edits are needed.
Rewriting an Existing Ticket
When the user asks to rewrite or reformat an existing ticket's description:
- Fetch the ticket details
- Back up the original description as a comment on the ticket before making any changes
- Restructure the content into the Task Template format — preserve all original information, don't summarize or drop content
- Update the ticket with the new description
- Follow the same metadata suggestion flow (Step 2) if tags/priority/team are missing
Task Template
All ticket descriptions must use this format. Headers use ## (heading 2). No blank line between a heading and its content.
## Brief Description
{What needs to be done and why}
## Refinement
{Open questions, things to figure out, or ... if none yet}
## Acceptance Criteria
- [ ] {Criterion 1}
- [ ] {Criterion 2}
## Links to design
...
## Notes
...
## Architecture
...
Issue Tracker Notes
- Configure your project/list names and IDs in your project's configuration
- Custom field IDs (for priority, team, etc.) vary by tracker — check your tracker's API docs
- Tags may be read-only in some trackers — never create new tags unless the tracker supports it
- To discover available tags, check existing tasks in the target project/list
1---2name: create-ticket3description: Create a single well-refined ticket from a rough idea or description, or rewrite an existing ticket's description. Use when the user wants to create a ticket, write a task, file a bug, add a story, turn a rough idea into a task, or reformat/rewrite an existing ticket. Triggers on "create ticket", "new ticket", "new task", "file a bug", "add a story", "create a task", "rewrite ticket", "reformat ticket", or any request to turn an idea into a single ticket. Also used by the backlog-grooming skill to create individual subtasks within an epic.4---56# Create Ticket78Turn a rough idea into a well-structured ticket through clarifying questions and a standard task template.910## Configuration1112This skill supports multiple issue trackers. Configure for your project:1314| Setting | Default | Options |15|---------|---------|---------|16| **Issue tracker** | GitHub Issues | GitHub Issues, GitLab Issues, Jira, Linear, ClickUp |17| **Default list/project** | None | Configure your project/board/list name |18| **Custom fields** | None | e.g. tier, pod, team, priority — depends on tracker |19| **Auto-tag** | `ai-created` | Tag added to tickets created by this skill |2021## Workflow2223### Step 1: Understand the Idea2425Take the user's rough description and ask targeted clarifying questions to fill gaps. Focus on:26271. **What** needs to be done and **why** (Brief Description)282. **Done looks like what?** (Acceptance Criteria — at least 2 checkboxes)293. **Open questions** or unknowns (Refinement)304. **Where it lives**: project/list (always ask), parent task (if subtask of an epic), tags, priority, team/assignee, status3132Always ask which project/list to put the task in, even if a default exists. Don't assume.3334Don't ask everything at once. Start with what's missing from the description — skip questions the user already answered. Batch related questions together (max 3-4 per message).3536### Step 2: Suggest Metadata3738Before asking the user for tags, priority, and team — **suggest values first** based on context:3940- **Tags**: Discover available tags by checking existing tasks in the target project/list. Suggest tags that fit the ticket's domain.41- **Priority/Tier**: Infer from the type of work (e.g. design work, API work, UI work, infrastructure).42- **Team**: Infer from the project/list and context.4344Present your suggestions and let the user confirm or adjust. Always aim for at least 2 tags per task.4546### Step 3: Prepare the Ticket4748Before creating, show the user a preview of the ticket in the Task Template format (see below). Include:49- **Title**50- **Description** (rendered from the template)51- **Project/List**, **tags**, **priority**, **team**, **status**, **parent** (if applicable)5253Wait for confirmation or edits before proceeding.5455### Step 4: Create the Ticket5657Create the ticket using your issue tracker's API or CLI:58- Set the target project/list59- Set the title and description (formatted per the Task Template)60- Apply tags, priority, team, and any custom fields61- Set parent task if creating a subtask62- Set status (default: "Open" or equivalent)6364After creation, add the `ai-created` tag to mark it as generated by this skill.6566### Step 5: Confirm6768Show the created ticket with its ID and link. Ask if any immediate edits are needed.6970## Rewriting an Existing Ticket7172When the user asks to rewrite or reformat an existing ticket's description:73741. Fetch the ticket details752. **Back up** the original description as a comment on the ticket before making any changes763. Restructure the content into the Task Template format — preserve all original information, don't summarize or drop content774. Update the ticket with the new description785. Follow the same metadata suggestion flow (Step 2) if tags/priority/team are missing7980## Task Template8182All ticket descriptions must use this format. Headers use `##` (heading 2). No blank line between a heading and its content.8384```markdown85## Brief Description86{What needs to be done and why}8788## Refinement89{Open questions, things to figure out, or ... if none yet}9091## Acceptance Criteria92- [ ] {Criterion 1}93- [ ] {Criterion 2}9495## Links to design96...9798## Notes99...100101## Architecture102...103```104105## Issue Tracker Notes106107- Configure your project/list names and IDs in your project's configuration108- Custom field IDs (for priority, team, etc.) vary by tracker — check your tracker's API docs109- Tags may be read-only in some trackers — never create new tags unless the tracker supports it110- To discover available tags, check existing tasks in the target project/list