name: pm-weekly-update created_by: Aman Parmar last_modified: 20-04-2026 description: | Generate weekly or monthly status updates from local PM data. Use this skill when:
- It's end of week and you need a status update for leadership or stakeholders
- You need a monthly executive summary
- You want to draft an email update using data from meetings, tracker tickets, and decisions
- The user says "weekly update", "status report", "what happened this week?", "weekly summary"
- The user says "Friday update", "send status email", "EOW update" Pulls from work logs, meetings, ticket tracker, and decisions — no manual input needed.
PM Weekly / Monthly Update Generator
Generate structured status updates by reading local PM data from .local/. No manual input needed — everything is pulled from synced data.
Prerequisites
Before generating an update, ensure data is fresh:
- Refresh ticket-tracker data (e.g.,
/pm-syncif available) - Ensure meetings from the period are processed
If data looks stale (e.g., sprint file is from 3 days ago), warn the user and offer to sync first.
Weekly Update Workflow
Step 1: Gather Data
Read these files from .local/:
| Source | File | What to Extract |
|---|---|---|
| Sprint progress | tracker/sprints/<active-sprint>.md | Points done vs total, issues moved |
| Meetings | meetings/processed/*.md (this week only) | Meeting count, key discussions |
| Action items | meetings/meeting-action-items.md | New items this week, closed items |
| Decisions | decisions/decision-log.md | Decisions made this week |
| Epics | tracker/epics.md | Epic-level progress |
Also cross-reference meetings for this week to ensure completeness (list meetings with a this_week time range, compare against processed files).
Also pull from the ticket-tracker API directly for most current data:
- Tickets created this week:
project = [PROJECT_KEY] AND created >= startOfWeek() - Tickets resolved this week:
project = [PROJECT_KEY] AND resolved >= startOfWeek() - Tickets in progress:
project = [PROJECT_KEY] AND status = "In Progress"
Step 2: Generate the Update
Write to .local/updates/weekly/YYYY-WNN.md:
# Weekly Update — Week N (Mon DD – Fri DD, Month YYYY)
> Project: [your project] ([PROJECT_KEY])
> Author: [your name]
> Generated: DD-MM-YYYY
## Sprint Progress: "<Sprint Name>"
- **Velocity**: X/Y story points completed (Z%)
- **Issues**: A done, B in progress, C to do (of D total)
### Completed This Week
| Key | Summary | Type | Points |
|-----|---------|------|--------|
| [PROJECT-XX] | ... | Story | 3 |
### In Progress
| Key | Summary | Assignee | Points |
|-----|---------|----------|--------|
| [PROJECT-XX] | ... | Name | 5 |
### Blocked / At Risk
| Key | Summary | Blocker |
|-----|---------|---------|
<!-- If any -->
## Key Decisions
| Decision | Context | Date |
|----------|---------|------|
| ... | From meeting X | Mon |
## Meetings This Week
- **Mon**: <Meeting title> — <1-line summary>
- **Tue**: <Meeting title> — <1-line summary>
- ...
## Action Items Status
- **New this week**: X items
- **Closed this week**: Y items
- **Still open**: Z items
## Risks & Blockers
<!-- From decisions log and meetings -->
## Next Week Focus
<!-- Infer from in-progress items and upcoming meetings -->
Step 3: Generate Shareable Formats
Also produce a short version for Slack/email at the bottom of the file:
---
## Slack / Email Version
**[your project] — Week N Update**
Sprint: X/Y pts done (Z%)
- <Top 3 things completed>
- <Top 3 things in progress>
- <Any blockers>
Decisions: <1-2 key decisions>
Next week: <Focus areas>
Step 4: Offer to Send
After generating, ask:
- "Update saved. Want me to draft an email version for leadership?"
- If yes, write a polished email to
.local/mail/drafts/weekly-YYYY-WNN.md
Monthly Executive Summary Workflow
When the user asks for a monthly summary:
Step 1: Gather Monthly Data
- Read all weekly updates from
.local/updates/weekly/for the month - Read all decisions from the month
- Pull tracker data: tickets created/resolved in the month
Step 2: Generate Summary
Write to .local/updates/monthly/YYYY-MM.md:
# Monthly Executive Summary — <Month YYYY>
> Project: [your project] ([PROJECT_KEY])
> Author: [your name]
## Highlights
- <Top 3-5 achievements this month>
## Sprint Summary
| Sprint | Planned (pts) | Completed (pts) | Velocity |
|--------|--------------|-----------------|----------|
| Sprint N | X | Y | Z% |
## Key Metrics
- **Tickets created**: X
- **Tickets resolved**: Y
- **Story points delivered**: Z
- **Active epics**: N
## Major Decisions
| Decision | Date | Impact |
|----------|------|--------|
| ... | ... | ... |
## Risks & Mitigations
| Risk | Status | Mitigation |
|------|--------|------------|
## Next Month Focus
- <Planned epics/features>
- <Key milestones>
Important Rules
- Data-driven — every claim must be backed by a ticket, meeting note, or decision log entry
- No fluff — stakeholders want facts, not filler
- Highlight blockers — never hide problems. Surface them with proposed mitigations
- Keep it scannable — tables over paragraphs, bullets over prose
- Time-box data — only include data from the relevant period (week/month)
- Always offer the short version — stakeholders read chat more than docs
Anti-Patterns
- Fabricating numbers when data is missing — always cite source or mark "data unavailable"
- Rewriting the same narrative for both weekly and monthly — roll up, don't repeat
- Listing every ticket instead of aggregating — stakeholders want signal, not a changelog
- Hiding blockers to make the update look better — surfacing risks builds trust
Quality Checklist
- Every metric has a source (ticket ID, meeting file, decision log)
- Blockers and risks are explicitly called out
- Short version (Slack/email) is present alongside the full update
- Dates are formatted DD-MM-YYYY
- Ticket IDs are hyperlinked to the tracker
- Next-week focus is inferred from in-progress items, not invented