ワンクリックで
project-activity
Generate weekly project activity summaries from Slack and JIRA
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Generate weekly project activity summaries from Slack and JIRA
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Generate Quarto and HTML reports of local Codex session cost, token usage by model, project, coding vs cowork cost, weekly trends, annual projections, and top expensive sessions.
Check that core Sidekick integrations can authenticate and read common restricted files
Generate summary of 1:1 and meeting notes organized by audience, wins, and kudos
Capture missing TODOs from recent work context. Use when Codex needs to scan the user's Slack DMs with their manager or direct reports, manager/direct-report 1:1 docs, and leadership meeting notes for direct asks or action items assigned to the user, deduplicate against the user's configured todo app, and create missing tasks with source links and searchable metadata.
Draft concise interview scorecards from pasted long-form interview notes, nearby Google Calendar interview context, and memory/miclog/ transcript excerpts. Use when writing hiring feedback, interview scorecards, spikes/troughs, or candidate evaluation summaries.
Calculate a team's average Jira hours from Rovo Jira completed work, with optional Workday Approved Time Off absence adjustments for a date window and team roster.
| name | project-activity |
| description | Generate weekly project activity summaries from Slack and JIRA |
| argument-hint | [days] |
| auto-approve | true |
Generate a weekly summary of projects focused on what shipped, demos, risks, and upcoming milestones. Pulls from both Slack channels and JIRA issue comments. Organized by activity level for quick scanning.
This agent helps you:
local/projects.md with metadatalocal/projects.md file with project structureRead local/projects.md to extract all projects with their metadata.
For each project section (marked by ### heading), extract:
Create a structured list of all projects with their metadata to process.
Calculate the start date for the time period.
$ARGUMENTS if provided (e.g., 14 for 14 days)# Calculate start date
DAYS=${ARGUMENTS:-7}
START_DATE=$(date -v-${DAYS}d '+%Y-%m-%d')
END_DATE=$(date '+%Y-%m-%d')
For each project, fetch data from both Slack (if channel exists) and JIRA, then extract structured summary.
If the project has a Slack channel, use the /slack skill approach with slack_search_messages:
dash_invoke_search_action(
action_id="slack_search_messages",
params={
"query": "after:YYYY-MM-DD in:#channel-name",
"max_results": 100,
"sort": "timestamp",
"sort_direction": "desc"
}
)
Handle pagination: Check for next_cursor in response. Fetch additional pages if needed (up to ~100 messages total per channel).
For each JIRA Roadmap Initiative (DBX-XXXX):
A. Fetch child Epics:
Use Atlassian Rovo MCP JQL search first, for example parent = DBX-XXXX. Scope by project or issue type when useful.
This returns all child issues (Epics, Stories, etc.). Filter for:
Track the list of child Epic keys for this Roadmap Initiative.
B. Fetch Roadmap Initiative comments:
Use Rovo search/fetch for the roadmap initiative. Fetch by returned Atlassian resource ID when available.
Extract:
created field >= START_DATE)C. Fetch Epic comments (for each child Epic):
For each child Epic found in step A, use Rovo search/fetch to retrieve the Epic details and comments. Fall back to python3 -m sidekick.clients.jira query-by-parent ... or python3 -m sidekick.clients.jira get-issue ... only when Rovo is unavailable or lacks the needed comment/detail fields.
Extract:
Status extraction priority: When determining project status, prioritize in this order:
Look in comments for:
Handle errors: If issue fetch fails (404, auth error), note it and continue to next issue.
For each project, immediately extract and save (combining Slack + JIRA data):
Executive Summary: Generate a one-sentence summary of the project status based on:
Activity Level: Count total Slack messages + JIRA comments in time period:
Project Metadata:
Include from local/projects.md:
What Shipped: Search Slack messages AND JIRA comments for keywords (case-insensitive):
Demos: Search for keywords:
Risks: Search for keywords:
Next Milestone: Search for keywords and patterns:
Sample Activity: Save 3-5 representative items (Slack messages OR JIRA comments) with:
If a Slack channel or JIRA issue fails to fetch:
IMPORTANT: To preserve context window:
$TMP_DIR/project_summaries.md (append mode). Create $TMP_DIR with mktemp -d "${TMPDIR:-/tmp}/project-activity.XXXXXX" and clean it up with a trap.After processing all channels, generate consolidated report.
Group projects into sections:
Within each activity level, optionally group by C1 category (C1.1, C1.2, etc.).
Create report with this structure:
# Project Activity Report
**Generated:** [END_DATE]
**Period:** [START_DATE] to [END_DATE] ([DAYS] days)
**Projects Processed:** [success_count] successful, [failure_count] failed
---
## High Activity Projects (20+ items)
### Project Name
**Executive Summary:** [One-sentence summary of status, momentum, and key issues]
**Metadata:**
- **C1 Category:** C1.X - [Category Name]
- **Team:** [Team Name] ([Manager])
- **JIRA Project:** [KEY]
- **Roadmap Initiatives:** [DBX-1234](link), [DBX-5678](link)
- **Slack Channel:** [#channel-name](link)
**Activity:** [count] items ([X] Slack messages, [Y] JIRA comments)
**What Shipped:**
- [Item 1]
- [Item 2]
- [Or "None mentioned" if nothing found]
**Demos:**
- [Item 1]
- [Or "None mentioned" if nothing found]
**Risks:**
- [Item 1]
- [Item 2]
- [Or "None mentioned" if nothing found]
**Next Milestone:**
- **[Milestone name]: [Description]** - Target: [Date]
- [Or "Not specified in recent activity" if not found]
**Sample Activity:**
- [Slack] [2026-04-20 14:30] @user: [Brief excerpt] [link]
- [DBX-1234] [2026-04-19 09:15] @user: [Brief excerpt] [link]
- [Slack] [2026-04-18 16:20] @user: [Brief excerpt] [link]
---
[Repeat for each High Activity channel]
## Medium Activity Projects (5-19 messages)
[Same format as above]
## Low Activity Projects (1-4 messages)
[Same format as above]
## No Activity (0 items)
### Project Name 1
**Team:** [Team Name] ([Manager])
**C1 Category:** C1.X - [Category Name]
No Slack or JIRA activity in the last [DAYS] days.
### Project Name 2
**Team:** [Team Name] ([Manager])
**C1 Category:** C1.X - [Category Name]
No Slack or JIRA activity in the last [DAYS] days.
---
## Errors
### Project Name
**Team:** [Team Name] ([Manager])
**Slack Error:** [404 Not Found / Rate Limit / N/A]
**JIRA Error:** [403 Forbidden / N/A]
**Reason:** [Brief explanation]
Write final report to memory/project-activity-YYYY-MM-DD.md where YYYY-MM-DD is the end date
End the report with exactly:
This report generated using [chase-sidekick](https://github.com/chase-seibert/chase-sidekick) and the [project-activity skill](https://github.com/chase-seibert/chase-sidekick/tree/main/.agents/skills/project-activity).
Print processing summary:
Project Activity Report Generated
Processed: [success_count] projects successfully
Failed: [failure_count] projects (partial data may be available)
Time Period: [START_DATE] to [END_DATE] ([DAYS] days)
Activity Breakdown:
- High activity (20+ items): [count] projects
- Medium activity (5-19 items): [count] projects
- Low activity (1-4 items): [count] projects
- No activity (0 items): [count] projects
Data Sources:
- Slack messages: [total_count] across [channel_count] channels
- JIRA comments: [total_count] across [issue_count] issues
Output relative path to the memory file:
echo "Report saved to: memory/project-activity-${END_DATE}.md"
Clean up intermediate files:
rm -rf "$TMP_DIR"
After generating the report, update local/projects.md with the latest JIRA status for each project.
For each project processed in Step 3, collect:
A. Roadmap Initiative status:
Track from Step 3.2:
B. Child Epics:
Track from Step 3.2A:
For each project section in local/projects.md, update or add these lines:
Status Line (after JIRA Roadmap Initiative):
- **JIRA Roadmap Initiative:** [DBX-1234](link), [DBX-5678](link)
- **Status:** DBX-1234: In Progress (per comment 4/15: "moving to implementation phase"), DBX-5678: Done
Format:
[Issue-Key]: [Status][Status] (per comment [date]: "[excerpt]")Child Epics Line (after Status):
- **Status:** DBX-1234: In Progress
- **Child Epics:** [TEXP-123: Enable everyone group](link) (In Progress), [TEXP-456: Permissions API](link) (Done)
Format:
[KEY: Summary](jira-link) ([Status])https://dropbox.atlassian.net/browse/EPIC-KEYHandling edge cases:
Use the Edit tool to update local/projects.md:
For each project section:
### heading- **JIRA Roadmap Initiative:**)If Status line exists:
If Status line doesn't exist but project has initiatives:
If Child Epics line exists:
If Child Epics line doesn't exist but project has Epics:
Example transformation:
Before:
### Domain Restriction (Basic Gating)
- **Team:** Team Formation (Dan)
- **JIRA Team Project:** TFM
- **JIRA Roadmap Initiative:** [DBX-4526](link), [DBX-2957](link)
- **Slack Channel:** [#channel](link)
After:
### Domain Restriction (Basic Gating)
- **Team:** Team Formation (Dan)
- **JIRA Team Project:** TFM
- **JIRA Roadmap Initiative:** [DBX-4526](link), [DBX-2957](link)
- **Status:** DBX-4526: In Progress, DBX-2957: Done
- **Child Epics:** [TFM-123: Email notifications](link) (In Progress), [TFM-456: Admin UI](link) (Done)
- **Slack Channel:** [#channel](link)
Important:
After updating statuses, scan local/projects.md for projects where ALL roadmap initiatives are "Done":
Print to the user:
✓ Updated local/projects.md with latest JIRA statuses
Found [count] project(s) with all initiatives Done:
- [Project Name 1] (C1.X)
- [Project Name 2] (C1.X)
Would you like to archive these completed projects?
Options:
1. Remove from projects.md (clean file)
2. Move to archive section at bottom of file
3. Keep as-is (no changes)
Wait for user input - DO NOT automatically delete or move projects.
If user chooses option 1 (Remove):
### heading to next ### or section boundary)If user chooses option 2 (Archive):
If user chooses option 3 or doesn't respond:
Synthesize a one-sentence status update covering:
Prioritize JIRA comments for status:
Information sources (in priority order):
Examples:
Look in both Slack messages and JIRA comments for past-tense or completion language:
Focus on: Concrete deliverables that shipped in the time period
Look for scheduled or completed presentations:
Focus on: Any demos that happened or are scheduled soon
Look for blocking or concerning language:
Focus on: Actionable blockers or risks that need attention
Look for forward-looking milestone language:
Focus on: The immediate next milestone with target date
For Slack channel errors:
For JIRA issue errors:
Partial data handling:
NEVER stop processing all projects due to a single project failure.
### headings for project names, extract metadata from bullets belowquery-by-parent to find Epics under each Roadmap Initiative; these show granular work breakdownmemory/project-activity-YYYY-MM-DD.md$TMP_DIR/project_summaries.md (deleted after completion)local/projects.md is parsed once at the beginning