Smithery Logo
MCPsSkillsDocsPricing
Login
NewFlame, an assistant that learns and improves. Available onTelegramSlack
    alpinejs

    summarize-activity

    alpinejs/summarize-activity
    Writing
    31,132

    About

    SKILL.md

    Install

    • Telegram
      Telegram
    • Slack
      Slack
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    • Download skill
    ├─
    ├─
    └─
    Smithery Logo

    Give agents more agency

    Resources

    DocumentationPrivacy PolicySystem Status

    Company

    PricingAboutBlog

    Connect

    © 2026 Smithery. All rights reserved.

    About

    Summarize recent GitHub activity — discussions, PRs, issues, events, traffic — into an actionable report so you can stay on top of the project without reading everything.

    SKILL.md

    /summarize-activity - GitHub activity digest

    You generate a concise, actionable summary of recent Alpine.js GitHub activity for Caleb.

    IMPORTANT: Every numbered step below is mandatory. Do not skip steps, do not substitute your own approach. Run the exact commands listed. If a command fails, retry it — do not silently move on. Complete each step fully before starting the next.

    Step 1: Parse timeframe

    Parse $ARGUMENTS into a cutoff timestamp. Supported formats:

    • 24h, 48h, 72h — hours (default: 24h if no argument)
    • 7d, 14d, 30d — days
    • 1w, 2w — weeks (1w = 7d)

    Compute the ISO 8601 cutoff timestamp:

    # Example for 24h:
    date -u -v-24H '+%Y-%m-%dT%H:%M:%SZ'
    # Example for 7d:
    date -u -v-7d '+%Y-%m-%dT%H:%M:%SZ'
    

    Store the cutoff timestamp and the human-readable timeframe label (e.g., "last 24 hours", "last 7 days") for use in later steps.

    Step 2: Fetch activity in parallel

    Run ALL FIVE of these commands in parallel using the Bash tool. If any fail, retry them. Do not proceed to Step 3 until you have output from all five.

    Owner/repo: alpinejs/alpine

    2a. Discussions (GraphQL)

    gh api graphql -f query='
    {
      repository(owner: "alpinejs", name: "alpine") {
        discussions(first: 50, orderBy: {field: UPDATED_AT, direction: DESC}) {
          nodes {
            title
            url
            author { login }
            category { name }
            comments { totalCount }
            body
            answer { author { login } body createdAt }
            createdAt
            updatedAt
          }
        }
      }
    }'
    

    2b. Pull Requests

    gh pr list --repo alpinejs/alpine --state all --limit 50 --json number,title,url,author,state,labels,createdAt,updatedAt,additions,deletions,headRefName,baseRefName,reviewDecision,comments
    

    2c. Issues

    gh issue list --repo alpinejs/alpine --state all --limit 50 --json number,title,url,author,state,labels,createdAt,updatedAt,comments
    

    2d. Events

    gh api repos/alpinejs/alpine/events --paginate --jq '.[] | {type, actor: .actor.login, created_at: .created_at, payload_action: .payload.action, ref: .payload.ref, ref_type: .payload.ref_type}' | head -100
    

    2e. Traffic & stars

    gh api repos/alpinejs/alpine/traffic/views 2>/dev/null; echo "---SEPARATOR---"; gh api repos/alpinejs/alpine/traffic/clones 2>/dev/null; echo "---SEPARATOR---"; gh api repos/alpinejs/alpine --jq '{stargazers_count, forks_count, open_issues_count, watchers_count}'
    

    Note: Traffic endpoints require push access. If they return 403, skip traffic data and note it in the report.

    Step 3: Fetch comment threads for active items

    For discussions that have comments updated within the timeframe, fetch full comment bodies via GraphQL. Batch up to 10 discussions per query:

    gh api graphql -f query='
    {
      repository(owner: "alpinejs", name: "alpine") {
        discussion(number: {NUMBER}) {
          comments(last: 10) {
            nodes {
              author { login }
              body
              createdAt
              updatedAt
            }
          }
        }
      }
    }'
    

    For the most active PRs and issues (those with comments updated in timeframe), fetch recent comments:

    gh api repos/alpinejs/alpine/issues/{number}/comments --jq '.[] | select(.updated_at > "{CUTOFF}") | {user: .user.login, body: .body, created_at: .created_at}'
    

    Only fetch threads that are clearly within the timeframe. Don't fetch everything — be selective.

    Step 4: Filter by timeframe

    Discard anything with updatedAt / updated_at before the cutoff timestamp. Keep items where:

    • The item was created within the timeframe
    • The item received new comments within the timeframe
    • The item changed state (opened, closed, merged) within the timeframe

    Step 5: Analyze and write report

    Output a markdown report with these sections. Be concise — this is a digest, not a novel.


    Report format:

    # Alpine.js Activity — {timeframe label}
    _{start date} to {end date}_
    
    ## TL;DR
    {2-3 sentences. What's the pulse? Any fires? Anything exciting? Give Caleb the vibe in 10 seconds.}
    
    ## Needs Your Attention
    {Actionable items only. Each with a recommended next step: reply, merge, close, investigate, etc.}
    
    - **[Title](url)** by @author — {why it needs attention}. **Action:** {specific recommendation}
    
    {If nothing needs attention, say "Nothing urgent right now."}
    
    ## Hot Discussions
    {Discussions with the most activity or notable sentiment. Include key quotes if illuminating.}
    
    - **[Title](url)** ({category}) — {N} comments — {brief summary, sentiment note}
    
    {If no notable discussions, say "Quiet on the discussion front."}
    
    ## PR Activity
    
    ### Opened
    - **[#N Title](url)** by @author — {one-line summary} {+additions/-deletions}
    
    ### Merged
    - **[#N Title](url)** by @author — {one-line summary}
    
    ### Closed (not merged)
    - **[#N Title](url)** by @author — {one-line summary, why closed if clear}
    
    {Omit empty subsections.}
    
    ## Issue Activity
    
    ### Opened
    - **[#N Title](url)** by @author — {one-line summary}
    
    ### Closed
    - **[#N Title](url)** — {one-line summary}
    
    {Omit empty subsections.}
    
    ## Repo Pulse
    | Metric | Value |
    |--------|-------|
    | Stars | {total} |
    | Views (14d) | {count} |
    | Clones (14d) | {count} |
    | Open issues | {count} |
    | PRs opened | {count in timeframe} |
    | PRs merged | {count in timeframe} |
    | PRs closed | {count in timeframe} |
    
    {If traffic data is unavailable (403), omit those rows and note "Traffic data requires push access."}
    

    Important rules

    • Every item must include a [title](url) link so Caleb can click through.
    • Include @author for attribution.
    • Keep summaries to ONE line per item. This is a digest.
    • The "Needs Your Attention" section is the most important. Be opinionated about what deserves Caleb's time.
    • If a discussion or issue has heated sentiment, note it (e.g., "heated", "confused users", "strong demand").
    • Omit empty sections entirely — don't show "No activity" headers.
    • For PRs, mention if CI is failing when relevant.
    • Don't editorialize beyond what's helpful for triage. Be practical, not chatty.
    Recommended Servers
    Docfork
    Docfork
    OrgX
    OrgX
    Hugging Face
    Hugging Face
    Repository
    alpinejs/alpine
    Files