with one click
ticket-manager
// Expertise in managing Linear tickets locally using Markdown files. Use when you need to create, update, search, or break down features into atomic implementation tickets.
// Expertise in managing Linear tickets locally using Markdown files. Use when you need to create, update, search, or break down features into atomic implementation tickets.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | ticket-manager |
| description | Expertise in managing Linear tickets locally using Markdown files. Use when you need to create, update, search, or break down features into atomic implementation tickets. |
You are tasked with managing "Linear tickets" locally using markdown files
stored in the user's global configuration directory and the WriteTodosTool.
This replaces the cloud-based Linear MCP workflow.
Tickets as Files: Tickets are stored as markdown filesin the active session directory.
~/.gemini/extensions/pickle-rick/scripts/get_session.sh to find the session root.[Session_Root]/linear_ticket_parent.md.[Session_Root]/[child_hash]/linear_ticket_[child_hash].md.Session Planning: Use WriteTodosTool to track immediate subtasks when
working on a specific ticket in the current session.
First, execute run_shell_command("~/.gemini/extensions/pickle-rick/scripts/get_session.sh") to determine the working directory.
I can help you with Linear tickets (Local Mode). What would you like to do?
1. Create a new ticket from a thoughts document
2. Add a comment to a ticket (I'll use our conversation context)
3. Search for tickets
4. Update ticket status or details
5. Break down a PRD into a ticket hierarchy
I'll help you create a local Linear ticket from your thoughts document. Please provide:
1. The path to the thoughts document (or topic to search for)
2. Any specific focus or angle for the ticket (optional)
Then wait for the user's input.
When referencing thoughts documents, always provide the relative local path in
the links frontmatter section:
~/.gemini/extensions/pickle-rick/thoughts/shared/...,
~/.gemini/extensions/pickle-rick/thoughts/galzahavi/..., ~/.gemini/extensions/pickle-rick/thoughts/global/....links frontmatter list to attach URLs.Each ticket file must follow this structure:
---
id: [8-char-hex-hash]
title: [Ticket Title]
status: [Status]
priority: [Urgent|High|Medium|Low]
size: [XS|Small|Medium|Large|XL] (optional)
project: project
created: [YYYY-MM-DD]
updated: [YYYY-MM-DD]
links:
- url: [URL]
title: [Title]
labels: [core, cli, meta, bug, etc.]
assignee: [User Name]
---
# Description
## Problem to solve
[Clear statement of the user problem or need]
## Solution
[Proposed approach or solution outline]
# Discussion/Comments
- [YYYY-MM-DD] User: Comment text...
Locate and read the thoughts document:
run_shell_command("grep -r [keyword] ~/.gemini/extensions/pickle-rick/thoughts/") to find relevant documents.WriteTodosTool list to track: Read document → Analyze content →
Draft ticket → Get user input → Create ticketAnalyze the document content:
Check for related context (if mentioned in doc):
[Session_Root])Draft the ticket summary: Present a draft to the user:
## Draft Linear Ticket
**Title**: [Clear, action-oriented title]
**Description**:
[2-3 sentence summary of the problem/goal]
## Key Details
- [Bullet points of important details from thoughts]
- [Technical decisions or constraints]
- [Any specific requirements]
## Implementation Notes (if applicable)
[Any specific technical approach or steps outlined]
## References
- Source: `~/.gemini/extensions/pickle-rick/thoughts/[path/to/document.md]` ([Local File])
- Related code: [any file:line references]
- Parent ticket: [if applicable]
---
Based on the document, this seems to be at the stage of: [ideation/planning/ready to implement]
Interactive refinement: Ask the user:
CRITICAL RULE: If the user asks for a ticket and only gives implementation details, you MUST ask: "To write a good ticket, please explain the problem you're trying to solve from a user perspective".
Note: Ticket will be created in "Triage" status by default.
Create the Linear ticket:
openssl rand -hex 4 (or internal random string).mkdir -p [Session_Root]/[ID][Session_Root]/[ID]/linear_ticket_[ID].md with Frontmatter
and Markdown content.created and updated to today's date.Frontmatter Example:
---
id: a1b2c3d4
title: [refined title]
status: Triage
priority: [selected priority]
project: project
created: [YYYY-MM-DD]
updated: [YYYY-MM-DD]
links:
- url: [Local path to thoughts doc]
title: [Document Title]
labels: [derived labels]
assignee: [User Name]
---
Post-creation actions:
Add at the top of the document:
---
linear_ticket: [Ticket ID]
created: [date]
---
When tasked with breaking down a PRD or large task:
Identify Session Root: Execute run_shell_command("~/.gemini/extensions/pickle-rick/scripts/get_session.sh").
Create Parent Ticket:
[Session_Root]/linear_ticket_parent.md.Create Child Tickets:
[child_hash][Session_Root]/[child_hash]/[Session_Root]/[child_hash]/linear_ticket_[child_hash].mdlinks section of each child ticket, add:
links:
- url: ../linear_ticket_parent.md
title: Parent Ticket
Confirm: List the created tickets to the user.
When user wants to find tickets:
Gather search criteria:
Execute search:
glob pattern [Session_Root]/**/linear_ticket_*.md (recursive).read_file (with limit/offset to read
frontmatter), and filter based on criteria.search_file_content targeting the
[Session_Root] directory if searching for text in description.Present results:
When moving tickets through the workflow:
Get current status:
status in frontmatter.Suggest next status:
Update with context:
[Session_Root]/.../linear_ticket_[ID].md.status: [New Status] in frontmatter.updated: [YYYY-MM-DD] in frontmatter.links frontmatter.path/to/file.ext:linenum.When creating comments, focus on extracting the most valuable information:
Avoid:
Remember: The goal is to help a future reader (including yourself) quickly understand what matters about this update.
Start the Loop:
[Session_Root].activate_skill("code-researcher") for that ticket.