This skill should be used when the user asks to "collect Linear activity", "generate Linear report", "show my Linear issues", "what did I work on in Linear", or requests activity summaries from Linear for specific date ranges. Provides workflow for collecting issues, projects, and cycles via Linear MCP.
View on GitHubjongwony/cc-plugin
linear
linear/skills/activity/SKILL.md
January 24, 2026
Select agents to install to:
npx add-skill https://github.com/jongwony/cc-plugin/blob/main/linear/skills/activity/SKILL.md -a claude-code --skill activityInstallation paths:
.claude/skills/activity/# Linear Activity Reporter
Collect Linear activity data via MCP and generate time-organized markdown reports.
## Workflow
### Phase 1: Initialize Context
```python
user = mcp__plugin_linear_linear__get_user(query="me")
teams = mcp__plugin_linear_linear__list_teams(limit=250)
```
Extract: `userId`, `displayName`, `email`, `teamIds`, `teamNames`
**On error**: Check MCP configuration in `~/.claude.json`, verify Linear workspace access.
**Multiple teams**: Present team selection via `AskUserQuestion` with multiSelect.
### Phase 2: Calculate Date Range
| Request | Action |
|---------|--------|
| Explicit date ("2025-11-05") | Use directly |
| Relative ("yesterday", "last week") | Calculate with `date` command |
| Not specified | Prompt with `AskUserQuestion` |
Convert to ISO 8601: `YYYY-MM-DDTHH:MM:SSZ`
### Phase 3: Collect Activity Data
Execute parallel MCP calls per team:
| Data Type | MCP Function | Key Filters |
|-----------|--------------|-------------|
| Issues Created | `list_issues` | `assignee="me"`, `createdAt` |
| Issues Updated | `list_issues` | `assignee="me"`, `updatedAt` |
| Comments | `list_comments` | `issueId` (filter date client-side) |
| Projects | `list_projects` | `member="me"`, `createdAt`/`updatedAt` |
| Cycles | `list_cycles` | `teamId` (filter date client-side) |
MCP uses `>=` comparison only. Filter end date client-side.
For API details: [references/api-reference.md](references/api-reference.md)
### Phase 4: Process Data
1. Convert UTC to local timezone (detect via `datetime.now().astimezone()`)
2. Group by hour (00-23) and team
3. Categorize by activity type
4. Deduplicate by issue/project ID
### Phase 5: Generate Reports
Output directory: `~/.claude/tmp/linear-activity/reports/`
```bash
mkdir -p ~/.claude/tmp/linear-activity/reports/
```
**Files:**
- `YYYY-MM-DD.md` - Human-readable markdown
- `YYYY-MM-DD.json` - Machine-readable (for calendar-sync)
For format specification: [references/output-template.md](references/out