Linear Create Issue
When to Use
- User asks to "create an issue" or "file a bug"
- User asks to "add a ticket" or "track this"
- User describes a problem, task, or feature to be tracked
- User wants to create issues with sub-tasks
Tools
Discovery & Context
- LINEAR_CUSTOM_GET_WORKSPACE_CONTEXT — Get teams, projects, labels, states
- LINEAR_CUSTOM_RESOLVE_CONTEXT — Map fuzzy names → IDs (team, user, labels, project, state)
- LINEAR_CUSTOM_SEARCH_ISSUES — Search issues by keyword
- LINEAR_CUSTOM_GET_ISSUE_FULL_CONTEXT — Get full issue details
- LINEAR_CUSTOM_GET_ACTIVE_SPRINT — Get current sprint/cycle info
- LINEAR_CUSTOM_GET_MY_TASKS — Get authenticated user's assigned issues
Creation
- LINEAR_CUSTOM_CREATE_ISSUE — Create issue with all fields
- Required: team_id, title
- Optional: description, assignee_id, priority (0-4), state_id, label_ids, project_id, cycle_id, due_date, estimate, parent_id
- Sub-issues: sub_issues array [{title, description, assignee_id, priority}]
Workflow
Step 1: Search for Duplicates (MANDATORY)
Before creating anything, search for existing issues:
LINEAR_CUSTOM_SEARCH_ISSUES(query="<keywords from user request>")
If similar issues exist:
- Show them to the user: "I found these existing issues that look similar..."
- Ask if they want to proceed or update an existing one
- Only continue to creation after user confirms no duplicate
Step 2: Learn Team Patterns
Understand how the team structures issues:
Get workspace context:
LINEAR_CUSTOM_GET_WORKSPACE_CONTEXT()
This reveals team names, available states, labels, and projects.
Read recent team issues (2-3):
LINEAR_CUSTOM_SEARCH_ISSUES(query="recent")
Study the results to learn:
- Title format (e.g., "[Component] Description" vs plain descriptions)
- Description structure (bullet points? acceptance criteria? steps to reproduce?)
- Common labels used
- Priority conventions
Match the team's style when writing the title and description.
Step 3: Evaluate Sub-Issue Potential
If the user's request is broad or multi-faceted:
- Break it down: Suggest logical sub-issues
- Example: "Implement auth" → "Design login flow", "Implement OAuth", "Add MFA", "Write tests"
- Ask the user: "This looks like it could be broken into sub-tasks. Want me to create sub-issues?"
- Keep it practical: Only suggest 2-5 sub-issues; too many is unhelpful
If the request is specific and focused, skip sub-issues entirely.
Step 4: Resolve All Entities
Use RESOLVE_CONTEXT to convert names to IDs:
LINEAR_CUSTOM_RESOLVE_CONTEXT(
team_name="engineering",
user_name="john",
label_names=["bug", "critical"],
project_name="Q1 Sprint",
state_name="backlog"
)
This returns: team_id, user_id, label_ids, project_id, state_id
For cycle_id (adding to current sprint):
LINEAR_CUSTOM_GET_ACTIVE_SPRINT()
Step 5: Create the Issue
LINEAR_CUSTOM_CREATE_ISSUE(
team_id=resolved_team_id,
title="Formatted like team's convention",
description="Structured like team's existing issues",
assignee_id=resolved_user_id,
priority=2,
label_ids=resolved_label_ids,
project_id=resolved_project_id,
state_id=resolved_state_id,
cycle_id=sprint_cycle_id,
sub_issues=[
{"title": "Sub-task 1", "priority": 2},
{"title": "Sub-task 2", "priority": 2}
]
)
Step 6: Confirm Results
Report back clearly:
- Issue identifier (e.g., "ENG-456")
- URL to the issue
- What was set (assignee, labels, project, sprint)
- Sub-issues created (if any)
- Anything that needs follow-up
Priority Mapping
- 0 = No priority
- 1 = Urgent
- 2 = High
- 3 = Medium
- 4 = Low
Important Rules
- Always search first — Never create without checking for duplicates
- Learn before creating — Read team patterns to match style
- Never guess IDs — Always use RESOLVE_CONTEXT to convert names
- Suggest structure — Offer sub-issues for broad tasks
- Confirm results — Show what was created with identifiers and URLs
1---2name: linear-create-issue3description: Create Linear issues intelligently - search for duplicates, learn team patterns, evaluate sub-issue breakdown, then create with proper context.4---56# Linear Create Issue78## When to Use9- User asks to "create an issue" or "file a bug"10- User asks to "add a ticket" or "track this"11- User describes a problem, task, or feature to be tracked12- User wants to create issues with sub-tasks1314## Tools1516### Discovery & Context17- **LINEAR_CUSTOM_GET_WORKSPACE_CONTEXT** — Get teams, projects, labels, states18- **LINEAR_CUSTOM_RESOLVE_CONTEXT** — Map fuzzy names → IDs (team, user, labels, project, state)19- **LINEAR_CUSTOM_SEARCH_ISSUES** — Search issues by keyword20- **LINEAR_CUSTOM_GET_ISSUE_FULL_CONTEXT** — Get full issue details21- **LINEAR_CUSTOM_GET_ACTIVE_SPRINT** — Get current sprint/cycle info22- **LINEAR_CUSTOM_GET_MY_TASKS** — Get authenticated user's assigned issues2324### Creation25- **LINEAR_CUSTOM_CREATE_ISSUE** — Create issue with all fields26 - Required: team_id, title27 - Optional: description, assignee_id, priority (0-4), state_id, label_ids, project_id, cycle_id, due_date, estimate, parent_id28 - Sub-issues: sub_issues array [{title, description, assignee_id, priority}]2930## Workflow3132### Step 1: Search for Duplicates (MANDATORY)3334Before creating anything, search for existing issues:3536```37LINEAR_CUSTOM_SEARCH_ISSUES(query="<keywords from user request>")38```3940If similar issues exist:41- Show them to the user: "I found these existing issues that look similar..."42- Ask if they want to proceed or update an existing one43- Only continue to creation after user confirms no duplicate4445### Step 2: Learn Team Patterns4647Understand how the team structures issues:48491. **Get workspace context:**50 ```51 LINEAR_CUSTOM_GET_WORKSPACE_CONTEXT()52 ```53 This reveals team names, available states, labels, and projects.54552. **Read recent team issues (2-3):**56 ```57 LINEAR_CUSTOM_SEARCH_ISSUES(query="recent")58 ```59 Study the results to learn:60 - Title format (e.g., "[Component] Description" vs plain descriptions)61 - Description structure (bullet points? acceptance criteria? steps to reproduce?)62 - Common labels used63 - Priority conventions64653. **Match the team's style** when writing the title and description.6667### Step 3: Evaluate Sub-Issue Potential6869If the user's request is broad or multi-faceted:7071- **Break it down:** Suggest logical sub-issues72 - Example: "Implement auth" → "Design login flow", "Implement OAuth", "Add MFA", "Write tests"73- **Ask the user:** "This looks like it could be broken into sub-tasks. Want me to create sub-issues?"74- **Keep it practical:** Only suggest 2-5 sub-issues; too many is unhelpful7576If the request is specific and focused, skip sub-issues entirely.7778### Step 4: Resolve All Entities7980Use RESOLVE_CONTEXT to convert names to IDs:8182```83LINEAR_CUSTOM_RESOLVE_CONTEXT(84 team_name="engineering",85 user_name="john",86 label_names=["bug", "critical"],87 project_name="Q1 Sprint",88 state_name="backlog"89)90```9192This returns: team_id, user_id, label_ids, project_id, state_id9394**For cycle_id** (adding to current sprint):95```96LINEAR_CUSTOM_GET_ACTIVE_SPRINT()97```9899### Step 5: Create the Issue100101```102LINEAR_CUSTOM_CREATE_ISSUE(103 team_id=resolved_team_id,104 title="Formatted like team's convention",105 description="Structured like team's existing issues",106 assignee_id=resolved_user_id,107 priority=2,108 label_ids=resolved_label_ids,109 project_id=resolved_project_id,110 state_id=resolved_state_id,111 cycle_id=sprint_cycle_id,112 sub_issues=[113 {"title": "Sub-task 1", "priority": 2},114 {"title": "Sub-task 2", "priority": 2}115 ]116)117```118119### Step 6: Confirm Results120121Report back clearly:122- Issue identifier (e.g., "ENG-456")123- URL to the issue124- What was set (assignee, labels, project, sprint)125- Sub-issues created (if any)126- Anything that needs follow-up127128## Priority Mapping129- 0 = No priority130- 1 = Urgent131- 2 = High132- 3 = Medium133- 4 = Low134135## Important Rules1361. **Always search first** — Never create without checking for duplicates1372. **Learn before creating** — Read team patterns to match style1383. **Never guess IDs** — Always use RESOLVE_CONTEXT to convert names1394. **Suggest structure** — Offer sub-issues for broad tasks1405. **Confirm results** — Show what was created with identifiers and URLs