/SKILL.md
Fetches a person's Linear issues via Linear MCP and generates a weekly report in English, Notion /quote format. Use when the user asks for a Linear weekly report, 周报, or to generate a status update for someone (by email, name, or "me").
npx skillsauth add jackpanyj/linear-weekly-report linear-weekly-reportInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Queries a specified user's Linear issues via Linear MCP and generates a weekly report in the "Next Week's Focus / Blockers / Last Week's Highlights" structure, formatted for direct paste into Notion /quote blocks.
user-Linear) with access to get_user and list_issues tools.list_issues assignee parameter supports: User ID, name, email, or "me".updatedAt supports ISO-8601 duration format, e.g., -P7D (past 7 days).Extract the target person from user input, supporting:
[email protected]panyanjieme: Currently logged-in Linear userIf needed, call get_user first (with query as one of the above) to retrieve displayName for the title.
Call list_issues (Linear MCP):
| Parameter | Value | Description |
|------------|-------------|----------------------------------------------|
| assignee | User identifier | Email, name, or "me" |
| updatedAt| -P7D | Issues updated in the last 7 days |
| orderBy | updatedAt | Sort by update time |
| limit | 50 | Optional, defaults to 50 |
If assignee by email/name returns nothing, try using the id returned by get_user.
Done, Done (Production), etc. Extract title or brief description.In Progress, Todo, In Testing (Staging), etc. Extract title; merge similar items (e.g., multiple Mobile subtasks).None.; only include if user explicitly mentions blockers.IMPORTANT: Keep reports concise. Control item counts in each section:
Last Week's Highlights: Max 3-5 key achievements
Next Week's Focus: Max 3-5 main tasks
Keep each item brief (1 line max). Remove prefixes like [Mobile], ENG-xxxx, retaining only semantic clarity. Use English for item text: Translate or summarize Chinese issue titles into English. No issue IDs: Do not include (ENG-xxxx), (ACADEMY-xx), or any Linear identifier in output.
displayName or common name (from get_user) after @.Front-end, Backend) is not provided by Linear. Leave as @name - or fill based on known info/user input.Use > + space quote block syntax. Section headers are first-level bullets (start with -), specific items are second-level bullets (start with -, 2-space indent), making it easy to paste into Notion and convert to nested bulleted lists.
> ▶️ 👤 @{displayName} - {Role}
>
> - ⏭ Next Week's Focus (Deliverables):
> - {item 1}
> - {item 2}
>
> - 🚧 Blockers / Dependencies:
> - None.
>
> - ✅ Last Week's Highlights:
> - {item 1}
> - {item 2}
(ENG-xxxx), (ACADEMY-xx), or any Linear identifier to items.- for section headers and - (2-space indent) for items, so Notion can recognize them as nested list items for easy conversion to bulleted lists.list_issues returns 0 items: Reply with e.g. "No issues assigned and updated in the last 7 days", and still output a template with empty Blockers/Highlights and Next Focus showing "—" or "TBD" (in English).get_user finds no user: Reply with e.g. "User not found in Linear. Please check email/name or try me." (in English).CRITICAL: The weekly report MUST be directly copyable from the chat window.
markdown or text for easy copying.pbcopy, xclip, or similar clipboard commands. These often fail and are unreliable.> + space in Notion to create a quote block, paste the content, then press Cmd + Shift + 8 to convert to bulleted list."Display the report like this:
Here's your weekly report:
```
> ▶️ 👤 @jack - Front-end
>
> - ⏭ Next Week's Focus (Deliverables):
> - Trading Tournament features
> - Bug fixes
>
> - 🚧 Blockers / Dependencies:
> - None.
>
> - ✅ Last Week's Highlights:
> - Shipped assets feature
```
**How to use in Notion:**
1. Copy the content above
2. Paste the content in notion
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.