Orchestrate developer activity collection from GitHub and Linear, then sync to Google Calendar.
/plugin marketplace add jongwony/cc-plugin/plugin install jongwony-activity-workflow-activity-workflow@jongwony/cc-pluginOrchestrate the collection of developer activities from multiple sources (GitHub, Linear) and optionally sync them to Google Calendar. Provide consolidated activity reports for productivity tracking.
GitHub (gh CLI) ──→ ~/.claude/tmp/github-activity/reports/*.json ──┐
├──→ Consolidate ──→ Calendar Sync
Linear (MCP) ──→ ~/.claude/tmp/linear-activity/reports/*.json ──┘
Parse user's date range:
Calculate ISO dates:
START_DATE=$(date -v-7d '+%Y-%m-%d')
END_DATE=$(date '+%Y-%m-%d')
# Ensure directories
mkdir -p ~/.claude/tmp/github-activity/reports
# Get user
GH_USER=$(gh api user --jq '.login')
# Search PRs
gh search prs --involves=@me --updated="${START_DATE}..${END_DATE}" \
--json number,title,repository,state,url,createdAt,closedAt,author
# Search Issues
gh search issues --involves=@me --updated="${START_DATE}..${END_DATE}" \
--json number,title,repository,state,url,createdAt,author
# Search Commits (public only)
gh search commits --author=@me --committer-date="${START_DATE}..${END_DATE}" \
--json commit,repository,sha,url
Use MCP tools:
mcp__plugin_linear_linear__list_issues(
assignee="me",
updatedAt="${START_DATE}T00:00:00Z"
)
Save to ~/.claude/tmp/linear-activity/reports/${START_DATE}_${END_DATE}.json
If user requests calendar sync:
gcalcli list
Ask user which calendar to use
For each activity, create event:
gcalcli add --calendar "CALENDAR_NAME" \
--title "ICON TITLE" \
--when "DATE TIME" \
--duration MINUTES \
--description "URL" \
--where "SOURCE" \
--noprompt
Activity type mapping:
| Type | Icon | Duration |
|---|---|---|
| PR merged | ✅ | 60 min |
| PR created | 🔀 | 60 min |
| Issue created | 🆕 | 30 min |
| Commit | 🔨 | 30 min |
| Linear issue | 🎫 | 30 min |
## Activity Summary (DATE_RANGE)
### GitHub
- PRs: X merged, Y created
- Issues: X created
- Commits: X across Y repos
### Linear
- Issues: X created, Y completed
### Calendar
- X events synced to CALENDAR_NAME
Will:
Will Not:
Use this agent to verify that a Python Agent SDK application is properly configured, follows SDK best practices and documentation recommendations, and is ready for deployment or testing. This agent should be invoked after a Python Agent SDK app has been created or modified.
Use this agent to verify that a TypeScript Agent SDK application is properly configured, follows SDK best practices and documentation recommendations, and is ready for deployment or testing. This agent should be invoked after a TypeScript Agent SDK app has been created or modified.
Use this agent when you need to review code for adherence to project guidelines, style guides, and best practices. This agent should be used proactively after writing or modifying code, especially before committing changes or creating pull requests. It will check for style violations, potential issues, and ensure code follows the established patterns in CLAUDE.md. Also the agent needs to know which files to focus on for the review. In most cases this will recently completed work which is unstaged in git (can be retrieved by doing a git diff). However there can be cases where this is different, make sure to specify this as the agent input when calling the agent. Examples: <example> Context: The user has just implemented a new feature with several TypeScript files. user: "I've added the new authentication feature. Can you check if everything looks good?" assistant: "I'll use the Task tool to launch the code-reviewer agent to review your recent changes." <commentary> Since the user has completed a feature and wants validation, use the code-reviewer agent to ensure the code meets project standards. </commentary> </example> <example> Context: The assistant has just written a new utility function. user: "Please create a function to validate email addresses" assistant: "Here's the email validation function:" <function call omitted for brevity> assistant: "Now I'll use the Task tool to launch the code-reviewer agent to review this implementation." <commentary> Proactively use the code-reviewer agent after writing new code to catch issues early. </commentary> </example> <example> Context: The user is about to create a PR. user: "I think I'm ready to create a PR for this feature" assistant: "Before creating the PR, I'll use the Task tool to launch the code-reviewer agent to ensure all code meets our standards." <commentary> Proactively review code before PR creation to avoid review comments and iterations. </commentary> </example>