PR Comments to Linear Ticket
File Linear tickets from PR review feedback and notify the PR author.
Overview
This skill automates the workflow of:
- Analyzing PR comments and reviews to find actionable concerns
- Creating a well-structured Linear ticket with full context
- Commenting on the PR to notify the author with the ticket link
Workflow
Step 1: Gather PR Context
Get the current PR info:
gh pr view --json number,headRepository,author
gh repo view --json nameWithOwner
Step 2: Fetch All Comments
Retrieve all comment sources:
# PR-level comments
gh api /repos/{owner}/{repo}/issues/{number}/comments
# Review comments (inline on code)
gh api /repos/{owner}/{repo}/pulls/{number}/comments
# Reviews with body text
gh api /repos/{owner}/{repo}/pulls/{number}/reviews
Step 3: Analyze & Filter Comments
Skip these:
- Bot comments (Linear linkback
<!-- linear-linkback -->, CI bots)
- Resolved review threads
- Simple approvals without feedback
Identify actionable items:
- Bug reports (keywords: "bug", "broken", "doesn't work", "error", ":bug:")
- UI/visual concerns (keywords: "visual", "design", "UI", "looks", "styling", "doesn't look")
- Performance issues (keywords: "slow", "performance", "optimize")
- UX concerns (keywords: "confusing", "UX", "user experience")
- Tech debt (keywords: "refactor", "cleanup", "tech debt", "TODO")
Extract from comments:
- Screenshots (markdown image syntax
 or <img ...>)
- Code snippets and diff hunks
- File paths and line numbers
Detect parent ticket:
- Look for Linear bot comment with linkback pattern
- Extract ticket ID (e.g., FSAI-2631) from the linked issue URL
Step 4: Confirm with User
Present a summary of detected concerns using AskUserQuestion:
- Which concerns to include - List each detected concern, let user confirm or adjust
- Which team to file under - Suggest based on concern type (see heuristics below)
- Who to tag in PR comment - Default to PR author, allow override
Step 5: Create Linear Ticket
Use mcp__linear__create_issue with:
Title: Concise description of the concern(s)
- Example: "Improve Location Panel inline editing UI visual design"
Team: Based on concern type heuristics (see below)
Description template:
## Context
Follow-up from PR #{number} ({pr_title}). {brief_context}
## Concerns to Address
### 1. {Concern Title}
{Concern description from review}
{Include any screenshots}
### 2. {Additional concerns if multiple}
...
## Next Steps
- {Suggested action items}
## Related
- PR: {pr_url}
- Parent ticket: {parent_ticket_id if detected}
Links: Attach the PR URL using the links parameter
Step 6: Comment on PR
Notify the PR author:
gh pr comment {number} --body "@{pr_author} Filed ticket for the feedback: {linear_ticket_url}"
Step 7: Report Summary
Tell the user what was created:
Created Linear ticket {TEAM-123}: {title}
URL: {linear_url}
Tagged @{author} in PR #{number}
Team Selection Heuristics
| Concern Type |
Keywords |
Suggested Team |
| UI/Visual |
"visual", "design", "UI", "looks", "styling", "doesn't look right" |
Design |
| UX |
"confusing", "UX", "user experience", "hard to use" |
Design |
| Bug |
"bug", "broken", "doesn't work", "error", ":bug:" |
Development |
| Performance |
"slow", "performance", "optimize", "laggy" |
Development |
| Tech Debt |
"refactor", "cleanup", "tech debt" |
Development |
| Default |
(anything else) |
Development |
Guidelines
- Always confirm before creating - Show the user what will be filed
- Preserve screenshots - Copy image URLs directly into the ticket description
- Link bidirectionally - Include PR link in ticket, ticket link in PR comment
- Be concise - Ticket titles should be scannable, details go in description
- Detect parent tickets - Look for Linear bot comments to find related issues
- Default to PR author for tagging - They need to follow up on the feedback
- One ticket per PR - Unless user explicitly wants separate tickets for distinct concerns
1---2name: pr-to-ticket3description: File Linear tickets from PR review feedback and notify the PR author. Use when asked to file a ticket from PR comments, create a ticket from PR feedback, ticket PR concerns, or create a Linear ticket from a PR review. Triggers on phrases like "file ticket from PR", "ticket the PR concerns", "linear ticket for PR", "create ticket from PR feedback", or "ticket this review".4---5
6# PR Comments to Linear Ticket
7
8File Linear tickets from PR review feedback and notify the PR author.
9
10## Overview
11
12This skill automates the workflow of:
131. Analyzing PR comments and reviews to find actionable concerns
142. Creating a well-structured Linear ticket with full context
153. Commenting on the PR to notify the author with the ticket link
16
17## Workflow
18
19### Step 1: Gather PR Context
20
21Get the current PR info:
22```bash
23gh pr view --json number,headRepository,author
24gh repo view --json nameWithOwner
25```
26
27### Step 2: Fetch All Comments
28
29Retrieve all comment sources:
30```bash
31# PR-level comments
32gh api /repos/{owner}/{repo}/issues/{number}/comments
33
34# Review comments (inline on code)
35gh api /repos/{owner}/{repo}/pulls/{number}/comments
36
37# Reviews with body text
38gh api /repos/{owner}/{repo}/pulls/{number}/reviews
39```
40
41### Step 3: Analyze & Filter Comments
42
43**Skip these:**
44- Bot comments (Linear linkback `<!-- linear-linkback -->`, CI bots)
45- Resolved review threads
46- Simple approvals without feedback
47
48**Identify actionable items:**
49- Bug reports (keywords: "bug", "broken", "doesn't work", "error", ":bug:")
50- UI/visual concerns (keywords: "visual", "design", "UI", "looks", "styling", "doesn't look")
51- Performance issues (keywords: "slow", "performance", "optimize")
52- UX concerns (keywords: "confusing", "UX", "user experience")
53- Tech debt (keywords: "refactor", "cleanup", "tech debt", "TODO")
54
55**Extract from comments:**
56- Screenshots (markdown image syntax `` or `<img ...>`)
57- Code snippets and diff hunks
58- File paths and line numbers
59
60**Detect parent ticket:**
61- Look for Linear bot comment with linkback pattern
62- Extract ticket ID (e.g., FSAI-2631) from the linked issue URL
63
64### Step 4: Confirm with User
65
66Present a summary of detected concerns using `AskUserQuestion`:
67
681. **Which concerns to include** - List each detected concern, let user confirm or adjust
692. **Which team to file under** - Suggest based on concern type (see heuristics below)
703. **Who to tag in PR comment** - Default to PR author, allow override
71
72### Step 5: Create Linear Ticket
73
74Use `mcp__linear__create_issue` with:
75
76**Title:** Concise description of the concern(s)
77- Example: "Improve Location Panel inline editing UI visual design"
78
79**Team:** Based on concern type heuristics (see below)
80
81**Description template:**
82```markdown
83## Context
84
85Follow-up from PR #{number} ({pr_title}). {brief_context}
86
87## Concerns to Address
88
89### 1. {Concern Title}
90{Concern description from review}
91
92{Include any screenshots}
93
94### 2. {Additional concerns if multiple}
95...
96
97## Next Steps
98- {Suggested action items}
99
100## Related
101- PR: {pr_url}
102- Parent ticket: {parent_ticket_id if detected}
103```
104
105**Links:** Attach the PR URL using the `links` parameter
106
107### Step 6: Comment on PR
108
109Notify the PR author:
110```bash
111gh pr comment {number} --body "@{pr_author} Filed ticket for the feedback: {linear_ticket_url}"
112```
113
114### Step 7: Report Summary
115
116Tell the user what was created:
117```
118Created Linear ticket {TEAM-123}: {title}
119URL: {linear_url}
120Tagged @{author} in PR #{number}
121```
122
123## Team Selection Heuristics
124
125| Concern Type | Keywords | Suggested Team |
126|--------------|----------|----------------|
127| UI/Visual | "visual", "design", "UI", "looks", "styling", "doesn't look right" | Design |
128| UX | "confusing", "UX", "user experience", "hard to use" | Design |
129| Bug | "bug", "broken", "doesn't work", "error", ":bug:" | Development |
130| Performance | "slow", "performance", "optimize", "laggy" | Development |
131| Tech Debt | "refactor", "cleanup", "tech debt" | Development |
132| Default | (anything else) | Development |
133
134## Guidelines
135
136- **Always confirm before creating** - Show the user what will be filed
137- **Preserve screenshots** - Copy image URLs directly into the ticket description
138- **Link bidirectionally** - Include PR link in ticket, ticket link in PR comment
139- **Be concise** - Ticket titles should be scannable, details go in description
140- **Detect parent tickets** - Look for Linear bot comments to find related issues
141- **Default to PR author for tagging** - They need to follow up on the feedback
142- **One ticket per PR** - Unless user explicitly wants separate tickets for distinct concerns