Add issues to Linear Backlog from user input. Interprets free-form descriptions into well-structured issues.
Purpose
- •Convert user's free-form ideas into structured Backlog issues
- •Parse multiple items from a single input
- •Reference conversation context or investigation findings
- •Write problem-focused descriptions (what, not how)
- •Include implementation hints for
plan-backlogto use later
Input Modes
The skill supports three input modes based on $ARGUMENTS:
Mode 1: Direct Description
User provides task descriptions directly:
/add-to-backlog Add rate limiting to API routes, also need to handle image upload errors gracefully, and the barcode scanner fails on blurry images
Mode 2: From Conversation
User references the current conversation:
/add-to-backlog from conversation - add the three issues we discussed /add-to-backlog add all the improvements mentioned above /add-to-backlog track the bug we just found
Mode 3: From Investigation
User references findings from investigate skill:
/add-to-backlog from investigation findings /add-to-backlog add the issues found by investigate
Workflow
- •Parse input - Understand what to add based on $ARGUMENTS
- •Identify items - Separate multiple items from the input
- •Check existing Backlog - Avoid duplicates
- •Draft issues - Write problem-focused descriptions
- •Confirm with user - Show proposed issues before creating
- •Create in Linear - Add to Backlog state
Issue Structure
Each issue should have:
Title
- •Clear, concise problem statement
- •Action-oriented: "Rate limiting missing on API routes", "Barcode scanner fails on blurry images"
- •NO solution in title
Description
Structure:
**Problem:** [What is wrong or missing - 1-2 sentences] **Context:** [Where this occurs, affected files/areas - brief] **Impact:** [Why this matters - user impact, data quality, errors] **Implementation Hints:** (optional) [Suggestions for plan-backlog, patterns to follow, related code]
Labels
Map to Linear labels based on issue type:
| Issue Type | Linear Label |
|---|---|
| Missing functionality | Feature |
| Broken behavior | Bug |
| Better approach exists | Improvement |
| Code quality issue | Technical Debt |
| Security concern | Security |
| Slow/resource issue | Performance |
| Style/format issue | Convention |
Priority
Assess based on impact:
| Impact | Priority |
|---|---|
| Data loss, security hole, production down | 1 (Urgent) |
| Incorrect data, broken feature | 2 (High) |
| Inconvenience, missing enhancement | 3 (Medium) |
| Minor polish, nice-to-have | 4 (Low) |
Parsing Input
Direct Descriptions
Look for natural separators:
- •"also", "and also", "additionally"
- •Numbered lists: "1.", "2.", etc.
- •Bullet points: "-", "*"
- •Commas followed by action verbs
- •Complete sentences as separate items
Example:
"Add rate limiting, also handle upload errors, and fix the blurry barcode bug"
--> Three issues:
- •Rate limiting missing on API routes
- •Image upload error handling incomplete
- •Barcode scanner fails on blurry images
Conversation References
When user says "from conversation" or similar:
- •Review the conversation above
- •Identify discussed problems, improvements, or bugs
- •Extract actionable items
Investigation References
When user mentions investigation findings:
- •Look for investigation output in conversation
- •Extract issues, errors, or recommendations found
- •Convert findings into actionable issues
Duplicate Detection
Before creating, check existing Backlog:
- •Query
mcp__linear__list_issueswithteam=Food Scanner, state=Backlog - •Compare proposed issues against existing titles/descriptions
- •If similar issue exists:
- •Note as "Similar to FOO-XXX"
- •Ask user if they want to create anyway or skip
User Confirmation
Before creating issues, show the user what will be created:
I'll create the following Backlog issues: 1. **Rate limiting missing on API routes** (Security, High) No rate limiting on public API endpoints, vulnerable to abuse. Hint: Use Next.js middleware with upstash/ratelimit or similar 2. **Image upload error handling incomplete** (Bug, Medium) Upload failures show generic error, no retry or user guidance. Hint: Add specific error types in the upload handler 3. **Barcode scanner fails on blurry images** (Bug, High) Low-quality camera input causes scanner to return no results silently. Hint: Add image quality detection before scanning attempt Similar existing issues found: - FOO-12: "API security hardening" - might overlap with #1 Create these issues? (I'll skip duplicates unless you confirm)
Wait for user confirmation before proceeding.
Creating Issues
Use mcp__linear__create_issue for each confirmed issue:
team: "Food Scanner" state: "Backlog" title: "[Issue title]" description: "**Problem:**\n[description]\n\n**Context:**\n[context]\n\n**Impact:**\n[impact]\n\n**Implementation Hints:**\n[hints]" priority: [1|2|3|4] labels: [Mapped label]
Writing Good Issues
DO:
- •Focus on the problem, not the solution
- •Include context about where/when the issue occurs
- •Explain impact to help prioritization
- •Add implementation hints for plan-backlog
- •Reference related files or code if known
DON'T:
- •Include step-by-step implementation
- •Write the solution in the description
- •Use vague language ("improve this", "fix the thing")
- •Create issues without clear problem statement
Good Example:
**Problem:** API routes have no rate limiting, allowing unlimited requests from any client. **Context:** Affects all routes under app/api/. Public endpoints like /api/scan and /api/food are most vulnerable. **Impact:** Service can be overwhelmed by automated requests, causing downtime for all users. **Implementation Hints:** - Consider upstash/ratelimit or next-rate-limit - See existing middleware pattern in middleware.ts - Should return 429 with Retry-After header
Bad Example:
Add rate limiting. Use upstash ratelimit library. Create a middleware that checks IP address and limits to 100 requests per minute. Return 429 status code.
Error Handling
| Situation | Action |
|---|---|
| $ARGUMENTS empty | Ask user what to add |
| Can't parse items | Show interpretation, ask for clarification |
| Linear unavailable | Stop, tell user to check Linear auth |
| All items are duplicates | Report existing issues, ask if user wants to create anyway |
| Conversation reference unclear | List recent topics, ask which to add |
Rules
- •Always confirm before creating - Show proposed issues first
- •Problem-focused - Describe what's wrong, not how to fix
- •Include hints - Help plan-backlog with implementation suggestions
- •Check duplicates - Avoid cluttering backlog
- •One problem per issue - Split combined issues
Termination
After creating issues, output:
Created X issues in Linear Backlog: - FOO-123: [Title] (Label, Priority) - FOO-124: [Title] (Label, Priority) - FOO-125: [Title] (Label, Priority) Skipped: - [Description] - duplicate of FOO-12 Next steps: - Review issues in Linear Backlog - Use `plan-backlog` to create implementation plans - Use `plan-backlog FOO-123` to plan a specific issue
Do not ask follow-up questions. Do not offer to plan or implement.