From linear-report
Generate a weekly activity report from Linear for a specific project, showing completed and in-progress issues grouped by milestone/cycle, with labels and contributors. Triggered when the user asks for a Linear report, weekly summary, or sprint recap.
How this skill is triggered — by the user, by Claude, or both
Slash command
/linear-report:linear-reportThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are generating a **weekly Linear activity report** for a specified project. Follow every step in order.
You are generating a weekly Linear activity report for a specified project. Follow every step in order.
Determine the following from the user's request:
Required:
Optional (ask only if not provided):
YYYY-MM-DD → YYYY-MM-DDCompute the week boundaries:
Run these lookups in parallel:
mcp__linear-server__list_projects → find the target project, get id, name, teamIdmcp__linear-server__list_milestones (with projectId) → get all milestones/targetsmcp__linear-server__list_cycles (with teamId) → identify which cycle overlaps the report weekmcp__linear-server__list_issue_statuses (with teamId) → get status names and categoriesmcp__linear-server__list_issue_labels (with teamId) → get label names for displayIf the project is not found, tell the user and list available projects.
Fetch issues from Linear for the target project. Use mcp__linear-server__list_issues with filters:
projectId: the resolved project IDcompletedAt within the week rangecancelledAt within the week rangeRun multiple fetches in parallel if needed (e.g., one per status category).
For each issue, collect:
id, identifier (e.g. ENG-42), titlestate (status name and category)prioritylabels (names)assignee (display name)milestone (name, if set)cycle (name, if set)estimatecompletedAt, updatedAt, createdAturlGroup issues into these buckets:
completedAt within report rangeWithin each bucket, sub-group by Milestone (then by Label if no milestone).
Compute summary stats:
Output the report in this exact format:
# Weekly Linear Report
**Project:** [Project Name]
**Week:** [Monday date] – [Sunday/today date] ([Cycle name if applicable])
**Generated:** [today's date]
---
## Summary
| Metric | Count |
|--------|-------|
| ✅ Completed | [N] issues ([X pts] if estimates available) |
| 🔄 In Progress | [N] issues |
| ⏩ Carried Over | [N] issues |
| ❌ Cancelled | [N] issues |
| 👥 Contributors | [name1, name2, ...] |
---
## Completed This Week
### [Milestone Name] *(or "No Milestone" if unassigned)*
| ID | Title | Labels | Assignee | Points |
|----|-------|--------|----------|--------|
| [ENG-42]([url]) | [title] | [label1, label2] | [name] | [pts or —] |
| ... | | | | |
*(repeat for each milestone)*
---
## In Progress
### [Milestone Name]
| ID | Title | Status | Labels | Assignee | Points |
|----|-------|--------|--------|----------|--------|
| [ENG-55]([url]) | [title] | [In Review] | [label] | [name] | [pts or —] |
| ... | | | | |
---
## Carried Over from Previous Week
| ID | Title | Status | Labels | Assignee | Age (days) |
|----|-------|--------|--------|----------|-----------|
| [ENG-33]([url]) | [title] | [In Progress] | [label] | [name] | [N] |
| ... | | | | |
---
## Cancelled This Week
| ID | Title | Labels | Assignee |
|----|-------|--------|----------|
| [ENG-22]([url]) | [title] | [label] | [name] |
*(omit this section if empty)*
---
## Highlights & Notes
- [Largest completed item or epic progress note]
- [Any blocked items or risks if visible from data]
- [Milestone progress: X of Y issues done]
---
*Report generated by linear-report skill*
Rules for the report:
Run both actions in parallel:
6a — Create the document
Use mcp__linear-server__create_document with:
title: Reporte Semanal — [Project Name] | [Monday date short] – [Sunday/today date short] [year] (e.g. "Reporte Semanal — Lety 2.0 | 30 Mar – 5 Abr 2026")content: the full report markdown from STEP 5project: 238db191-8f5b-4c85-9657-5ea5d044f8176b — Update the Reports & Communications project summary
Use mcp__linear-server__save_project with:
id: 238db191-8f5b-4c85-9657-5ea5d044f817summary: a concise summary (max 255 chars) with document title, generation date, and 1-2 key highlights from the reportAfter both complete, show the document URL to the user.
After the report, offer:
Follow-up options:
/linear-task— Create a new task for any gaps spotted- Ask me to filter by a specific milestone or label
- Ask me to compare with the previous week
- Ask me to export this report as markdown
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub lety-ai/lety-skill-hub --plugin linear-report