with one click
n8n-linear-issue
// Fetch and analyze Linear issue with all related context. Use when starting work on a Linear ticket, analyzing issues, or gathering context about a Linear issue.
// Fetch and analyze Linear issue with all related context. Use when starting work on a Linear ticket, analyzing issues, or gathering context about a Linear issue.
| name | n8n:linear-issue |
| description | Fetch and analyze Linear issue with all related context. Use when starting work on a Linear ticket, analyzing issues, or gathering context about a Linear issue. |
| argument-hint | [issue-id] |
| compatibility | {"requires":[{"mcp":"linear","description":"Core dependency — used to fetch issue details, relations, and comments"},{"cli":"gh","description":"GitHub CLI — used to fetch linked PRs and issues. Must be authenticated (gh auth login)"}],"optional":[{"mcp":"notion","description":"Used to fetch linked Notion documents. Skip Notion steps if unavailable."},{"skill":"loom-transcript","description":"Used to fetch Loom video transcripts. Skip Loom steps if unavailable."},{"cli":"curl","description":"Used to download images/attachments. Typically pre-installed."}]} |
Start work on Linear issue $ARGUMENTS
This skill depends on external tools. Before proceeding, verify availability:
Required:
mcp__linear): Must be connected. Without it the skill cannot function at all.gh): Must be installed and authenticated. Run gh auth status to verify. Used to fetch linked PRs and issues.Optional (graceful degradation):
mcp__notion): Needed only if the issue links to Notion docs. If unavailable, note the Notion links in the summary and tell the user to check them manually./loom-transcript): Needed only if the issue contains Loom videos. If unavailable, note the Loom links in the summary for the user to watch.If a required tool is missing, stop and tell the user what needs to be set up before continuing.
Follow these steps to gather comprehensive context about the issue:
Use the Linear MCP tools to fetch the issue details and comments together:
mcp__linear__get_issue with the issue ID to get full details including attachmentsmcp__linear__list_comments with the issue ID to fetch all commentsBoth calls should be made together in the same step to gather the complete context upfront.
After fetching the issue, immediately check its labels:
Look at the labels returned with the issue.
If any label is n8n-private:
a. Run git remote -v (via Bash) to list all configured remotes.
b. If any remote URL contains n8n-io/n8n without the -private suffix (i.e. matches the public repo), stop immediately and tell the user:
This issue is marked
n8n-privateand must be developed in a clean clone of the private repository.One or more of your remotes point to the public
n8n-io/n8nrepo. Mixed remotes are not allowed — you must work in a separate local clone ofn8n-io/n8n-privatewith no references to the public repo. For the full process, see: https://www.notion.so/n8n/Processing-critical-high-security-bugs-vulnerabilities-in-private-2f45b6e0c94f803da806f472111fb1a5
Do not continue with any further steps — return after showing this message.
If the label is not present, or all remotes point exclusively to n8n-io/n8n-private, continue normally.
IMPORTANT: This step is NOT optional. You MUST scan and fetch all visual content from BOTH the issue description AND all comments.
Screenshots/Images (ALWAYS fetch):
<img> tagscurl -sL "url" -o /path/to/image.png (GitHub URLs require following redirects) OR the linear mcpRead tool on the downloaded file to view itLoom Videos (ALWAYS fetch transcript):
/loom-transcript skill to fetch the FULL transcriptRelated Linear Issues:
mcp__linear__get_issue for any issues mentioned in relations (blocking, blocked by, related, duplicates)GitHub PRs and Issues:
gh CLI to fetch PR/issue details:
gh pr view <number> for pull requestsgh issue view <number> for issuescurl -H "Authorization: token $(gh auth token)" -L <image-url> -o image.pngNotion Documents:
mcp__notion__notion-fetch with the Notion URL or page ID to retrieve document contentComments were already fetched in Step 1. Review them for:
Determine whether this issue is specific to a particular n8n node (e.g. a trigger, action, or tool node). Look for clues in:
node:linear, node:slack)If the issue is node-specific:
Find the node type ID. Use Grep to search for the node's display name (or keywords from it) in packages/frontend/editor-ui/data/node-popularity.json to find the exact node type ID. For reference, common ID patterns are:
n8n-nodes-base.<camelCaseName> (e.g. "HTTP Request" → n8n-nodes-base.httpRequest)n8n-nodes-base.<name>Trigger (e.g. "Gmail Trigger" → n8n-nodes-base.gmailTrigger)n8n-nodes-base.<name>Tool (e.g. "Google Sheets Tool" → n8n-nodes-base.googleSheetsTool)@n8n/n8n-nodes-langchain.<camelCaseName> (e.g. "OpenAI Chat Model" → @n8n/n8n-nodes-langchain.lmChatOpenAi)Look up the node's popularity score — first check for a Flaky assessment (see below), otherwise use the popularity file:
Primary: Check for Flaky's assessment in Linear comments. Flaky is an auto-triage agent that posts issue analysis as a comment. Search the comments already fetched in Step 1 for a comment from a user named "Flaky" (or containing "Flaky" in the author name) — do not re-fetch comments. If found, extract the popularity score and level directly from Flaky's analysis and use those values.
Fallback (if no Flaky comment exists): Look up the node's popularity score from packages/frontend/editor-ui/data/node-popularity.json. Use Grep to search for the node ID in that file. The popularity score is a log-scale value between 0 and 1. Use these thresholds to classify:
| Score | Level | Description | Examples |
|---|---|---|---|
| ≥ 0.8 | High | Core/widely-used nodes, top ~5% | HTTP Request (0.98), Google Sheets (0.95), Postgres (0.83), Gmail Trigger (0.80) |
| 0.4–0.8 | Medium | Regularly used integrations | Slack (0.78), GitHub (0.64), Jira (0.65), MongoDB (0.63) |
| < 0.4 | Low | Niche or rarely used nodes | Amqp (0.34), Wise (0.36), CraftMyPdf (0.33) |
Include the raw score and the level (high/medium/low) in the summary, and note whether it came from Flaky or the popularity file.
If the node is not found in the popularity file (and no Flaky comment exists), note that it may be a community node or a very new/niche node.
Primary: Check for Flaky's effort estimate in Linear comments. Search the comments already fetched in Step 1 for a Flaky comment — do not re-fetch. If found, extract the effort/complexity estimate directly from it and use that as your assessment.
Fallback (if no Flaky comment exists): After gathering all context, assess the effort required to fix/implement the issue. Use the following T-shirt sizes:
| Size | Approximate effort |
|---|---|
| XS | ≤ 1 hour |
| S | ≤ 1 day |
| M | 2-3 days |
| L | 3-5 days |
| XL | ≥ 6 days |
To make this assessment, consider:
Provide the T-shirt size along with a brief justification explaining the key factors that drove the estimate. Note whether it came from Flaky or your own assessment.
Before presenting, verify you have completed:
gh CLIAfter gathering all context, present a comprehensive summary including:
n8n-nodes-base.xxx), popularity score with level (e.g. 0.64 — medium popularity)AI-1975, node-1975, or just 1975 (will search)