Skip to content
cccskills
FreePublished on GitHub

gmail-linear-exports

Scan Gmail (default: today's inbox), produce an anonymized summary with action points, then export each email to Linear as an issue with a sensible priority. No personal details — names, email addresses, or company identifiers — ever leave the summary or reach Linear. Use when the user types /gmail-linear-exports, or asks to turn their inbox into Linear issues / export emails to Linear.

The English summary is being prepared. Showing the original description.

Works withGmailLinear
See how to install

Files included (1)

  • SKILL.md4.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Gmail → Linear Exports

Fetch emails via the Gmail MCP, produce a privacy-safe digest with prioritized action points, confirm the target Linear team, then create one anonymized Linear issue per email/action point.

Prerequisites

  • Gmail MCP connected and authenticated (mcp__claude_ai_Gmail__*).
  • Linear MCP connected and authenticated (mcp__linear__*). This project's .mcp.json already defines the linear server; if its tools aren't loaded, tell the user to run /mcp → authenticate in an interactive session and stop.
  • Both are remote OAuth servers — a non-interactive session cannot run the login flow.

Input

$ARGUMENTS (all optional) may narrow the scan:

  • A date or range (default: today in the user's local timezone; use currentDate from context if present).
  • A Gmail filter to append (e.g. is:unread, label:..., category:primary).
  • A target Linear team name (skips the team question in Step 5).

Default with no arguments: today's inbox → the Testpawelhuryn-style default team after confirming.

Steps

1. Scan Gmail

Call mcp__claude_ai_Gmail__search_threads with:

  • query: after:YYYY/MM/DD before:YYYY/MM/DD in:inbox (upper bound is the day after the target day; append any $ARGUMENTS filter).
  • pageSize: 50.

Only keep messages whose date falls in the target window. A returned thread may include older messages (e.g. an old SENT message in a reply thread) — ignore those for counting/export.

2. Read what needs action

For each thread that looks like it needs a decision or action, call mcp__claude_ai_Gmail__get_thread with messageFormat: FULL_CONTENT to read the real body (snippets truncate and hide the ask). Skip full fetches for obvious noise (newsletters, automated notifications) — snippet is enough to classify.

3. Anonymize (hard rule)

Never echo — in the summary or in Linear — any of:

  • Sender/recipient names or email addresses.
  • Company, product, or platform names that identify a party.
  • Verbatim subject lines, or names appearing inside snippets/bodies.

Refer to parties generically: "a vendor's security team", "a cold outreach", "a paid-collaboration pitch". Describe subjects by topic, not literal text. Keep the actionable substance (what's being asked, the next step) — strip only the identifying details.

4. Summarize for the user first

Present a tight anonymized digest before writing anything to Linear:

  • One short line per email/action point.
  • Flag which items have a genuine next action vs. which are decline/ignore.

5. Confirm the Linear target

Call mcp__linear__list_teams.

  • If $ARGUMENTS named a team, use it.
  • If exactly one team exists, use it.
  • If multiple exist and none was specified, ask the user which team (a cheap, non-obvious choice) before creating anything.

6. Export to Linear

Create one issue per email/action point with mcp__linear__save_issue:

  • team: the confirmed team.
  • title: short, action-oriented, anonymized (e.g. "Resubmit security vulnerability report via bug-bounty platform").
  • description: start with Source: inbox action point (anonymized)., then 1–2 sentences of anonymized context, then a Next step: line. Use literal newlines, not \n.
  • priority by urgency:
    • 1 Urgent — time-critical, tied to a deadline today/tomorrow.
    • 2 High — a real response is expected and matters.
    • 3 Medium — a genuine next action, not time-critical.
    • 4 Low — decline / archive / FYI, no action really required.
  • Leave state at default (Backlog) unless the user asked otherwise.

Send independent save_issue calls in parallel in one message.

7. Report back

Show a compact table: issue identifier (linked to its url), priority, title. Note how many have a real next action. Offer to set states/due dates or move issues if wanted.

Notes

  • Skip self-sent / automated mail for export unless it carries a real action.
  • Re-runs: this creates fresh issues each run; if the user re-scans the same day, ask before duplicating, or mention that duplicates will be created.
  • Keep the whole chat response tight — this skill's value is a clean digest plus a clean set of issues, not a wall of text.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Identify the first beachhead market segment for a product launch. Evaluates segments against burning pain, willingness to pay, winnable market share, and referral potential. Use when choosing a first market, targeting an initial customer segment, or planning market entry strategy.

The English summary is being prepared. Showing the original description.

phuryn/claude-template-session7Updated Jul 10, 2026

Use OpenAI Codex CLI as a peer collaboration partner — same standing as Claude, not a one-shot tool. Bring Codex in EARLY (ideation, framing decisions, stuck moments), not only for late peer-review. Hand it strategic context (target, research, draft, reasoning), iterate conversationally over ~3-8 turns, converge before surfacing to the human. Invoke when the user says "check / iterate / ideate with Codex" or "ask Codex" — and proactively when stuck between two reasonable framings, pressure-testing a load-bearing claim or structure, or about to ask the human to pick between options two agents could resolve.

The English summary is being prepared. Showing the original description.

phuryn/claude-template-session7Updated Jul 10, 2026

DON'T USE THAT SKILL. IT'S JUST AN EXAMPLE. Summarize today's Gmail inbox by category with anonymized senders and subjects, then surface the top 3 emails to focus on next. Run only when the user types /email-summary.

The English summary is being prepared. Showing the original description.

phuryn/claude-template-session7Updated Jul 10, 2026

rc-new

Free

Spawn a new Claude Code session with remote control enabled (default: a detached background session — via screen on macOS/Linux, via a minimized PowerShell Start-Process on Windows — fully remote-safe, no approvals/windows), so it appears in the mobile Claude Code session picker. Takes an optional directory path; defaults to the current working directory. Use when the user runs /rc-new.

The English summary is being prepared. Showing the original description.

phuryn/claude-template-session7Updated Jul 10, 2026

See all skills by phuryn

Report a problem with this skill