send-to-linear▌
casper-studios/casper-marketplace · updated Apr 8, 2026
Turn unstructured input into well-structured Linear tickets.
Send to Linear
Turn unstructured input into well-structured Linear tickets.
Setup
Config resolution
Look for team configuration in this order (first match wins):
~/.agents/configs/send-to-linear/config.json(user overrides)references/config.json(bundled defaults, relative to this skill file)
Use the user config if found. Otherwise fall back to the bundled config.json.
If no user config exists AND the bundled config has empty required fields (team, default_assignee), stop and prompt the user:
No local config found. The bundled
references/config.jsonhas empty defaults and will be overwritten whenever this skill updates.Create a user config at:
~/.agents/configs/send-to-linear/config.jsonCopy the bundled
references/config.jsonas a starting point and fill in your team, project, assignee, labels, and conventions.
Template resolution
Same pattern for the ticket template:
~/.agents/configs/send-to-linear/ticket-template.md(user overrides)references/ticket-template.md(bundled default)
The template rarely needs customization, so no prompt if only the bundled version exists.
Phase 1: Ingest Input
Accept any combination of:
- Slack dump — pasted messages or fetched via Slack MCP tools
- Call transcript — from Fireflies (
mcp__fireflies__*tools), pasted text, or a file - Screenshots — read image files with the Read tool
- Meeting notes / docs — any markdown, text, or document content
- User description — freeform "we need X, Y, Z"
If the user's input is ambiguous or incomplete, ask one clarifying question before proceeding. Do not over-interrogate.
For Fireflies transcripts specifically: fetch both the summary (fireflies_get_summary) and full transcript (fireflies_get_transcript). Use the summary for topic identification, the full transcript for detail extraction.
Phase 2: Extract Topics and Actionable Items
For short input (<5K chars): extract directly in the main context.
For long input (>5K chars, e.g. full call transcripts): launch parallel subagents, one per major topic or time segment, to extract:
- Concrete examples and use cases — the most critical output. Capture specific scenarios, companies/tickers, KPIs, exact quotes, timestamps, and reasoning chains. A ticket saying "fix interpretation errors" is useless. A ticket saying "fix interpretation errors — e.g., when commentary says 'flat to down' for Intel CapEx but consensus expects 'down', recognize this as upward revision" is actionable.
- Feature requirements — what needs to be built or changed
- Limitations/boundaries — things explicitly ruled out
- Acceptance criteria — testable conditions
Categorize items as:
- Actionable tickets — clear scope, can be worked on immediately
- Ideas / needs more thought — visionary or exploratory, tracked but not immediately actionable
Phase 3: Draft Tickets to Scratchpad
Write to .claude/scratchpad/linear-tickets-YYYY-MM-DD.md using the format from references/ticket-template.md.
Every ticket with a real-world example from the source MUST include that example verbatim — do not summarize away specifics.
Phase 4: Verification (for long-form input only)
Skip for short/simple input. For call transcripts or long Slack threads:
Launch a verification subagent that reads the full source material and the drafted tickets, then produces a gap list:
- Use cases mentioned but missing from tickets
- Action items assigned to people but not captured
- Design decisions agreed upon but not in acceptance criteria
- Any "we need to do X" statements not in any ticket
Update the draft with any gaps found.
Phase 5: User Review
STOP. Tell the user the file is ready and wait for explicit instruction before creating anything in Linear.
The user may restructure, merge, split, rename, add notes, or tell you to skip items. Apply all feedback to the scratchpad file before proceeding.
Phase 6: Create in Linear (only on explicit approval)
Read config using the resolution order from Setup, then:
mcp__linear__list_teams— resolve team IDmcp__linear__list_issue_labels— resolve label IDsmcp__linear__list_projects— resolve project ID (if configured)mcp__linear__list_cycleswithtype: "current"— resolve current cycle (ifassign_to_current_cycleis true)
Create each approved ticket with mcp__linear__create_issue:
team: from configproject: from configassignee: from configcycle: current cycle numberstate: from configdefault_statuslabels: matched from ticket's Labels fieldtitle: from ticketdescription: full ticket body in markdownlinks: source link if available (e.g. Fireflies transcript URL, Slack permalink)
Report created ticket identifiers back to the user.
Key Rules
- Concrete examples are non-negotiable. Engineers understand what to build from specific scenarios, not abstract descriptions. Preserve full reasoning chains, exact quotes, and real-world context.
- Never create tickets without user approval. Always draft to scratchpad first.
- Config is defaults, not constraints. User can override team, assignee, labels, or any other field per invocation.
- Don't over-consolidate. If two items are independent work, they're separate tickets. Group only when items are truly part of the same deliverable.
- Standalone requirements buried in conversation are tickets too. Things said in passing like "we also need to compare dates" represent distinct work items.
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.6★★★★★60 reviews- ★★★★★Pratham Ware· Dec 28, 2024
Solid pick for teams standardizing on skills: send-to-linear is focused, and the summary matches what you get after install.
- ★★★★★Yusuf Shah· Dec 16, 2024
send-to-linear reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Sophia Srinivasan· Dec 8, 2024
send-to-linear fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Chaitanya Patil· Dec 4, 2024
Useful defaults in send-to-linear — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Ren Mensah· Nov 27, 2024
Registry listing for send-to-linear matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Piyush G· Nov 23, 2024
send-to-linear is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Sophia Harris· Nov 7, 2024
We added send-to-linear from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Luis Dixit· Oct 26, 2024
send-to-linear fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Kofi Flores· Oct 18, 2024
send-to-linear reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Shikha Mishra· Oct 14, 2024
Keeps context tight: send-to-linear is the kind of skill you can hand to a new teammate without a long onboarding doc.
showing 1-10 of 60