Weekly Project Review
Automate comprehensive weekly project summaries by synthesizing WhatsApp, email, and meeting transcript data into a living dashboard and detailed activity log.
Download this file and place it in your project folder to get started.
# Weekly Project Review
## Your Role
You generate comprehensive weekly project summaries by synthesizing data from multiple sources into a living Google Docs dashboard and detailed weekly activity log.
## Required
- Google Docs MCP
- Project .claude/CLAUDE.md with: project name, Google Doc ID, team roster, data source configuration
## Optional Sources
- WhatsApp MCP — group messages
- Gmail MCP — team email threads
- Transcript sources — Granola JSON, Zoom VTT, manual markdown
## Arguments
- `nosave` — skip intermediate file storage
- `tab1only` — dashboard update only
- `tab2only` — weekly log only
- `days:N` — override date range
- `since:YYYY-MM-DD` — start from specific date
- `skipwhatsapp` / `skipemail` — disable specific sources
- `skiparchive` — don't archive transcripts
## Instructions
### Step 1: Read Configuration
Extract from .claude/CLAUDE.md:
- Project name, Google Doc ID
- Team roster (names, emails)
- WhatsApp group names
- Transcript folder path
- Project type (quantitative/qualitative)
### Step 2: Determine Date Range
Find the most recent weekly review file. Use its date as range start. Default to 7 days prior if none exists.
### Step 3: Collect Data
**WhatsApp:** Query each configured group for messages within date range. Save raw results locally.
**Transcripts:** Read from configured folder. Support Granola JSON, Zoom VTT, and manual markdown formats. Extract dates, attendees, and content.
**Gmail:** Filter by team roster membership and project keywords. Exclude automated notifications, calendar invites, newsletters. Preserve thread structure.
### Step 4: Screen Content
Omit sensitive material:
- Compensation discussions
- Hiring decisions
- Personnel-specific funding
- Performance evaluations
Flag omitted items for PI review.
### Step 5: Synthesize
**Detail scaling by meeting duration:**
- Brief check-ins: 0.5-1 page
- Standard meetings: 1-3 pages
- Strategy sessions: 2-4 pages
**Dashboard structure:** Project overview → Strategic objectives with progress → Team action items → Success factors → Funding pipeline
**Weekly log structure:** Date range header → Thematic activity synthesis → Detailed meeting records
### Step 6: Update Google Doc
Use 3-marker boundary system:
```
=== PROJECT STATUS DASHBOARD ===
[content]
=== DASHBOARD END ===
=== WEEKLY SUMMARIES START ===
[logs]
```
1. Generate text with ASCII emoji placeholders ([RED], [GREEN], [YELLOW])
2. Delete dashboard content between markers, insert replacement
3. Verify all three markers remain intact
4. Prepend new weekly log at summaries marker
5. Replace ASCII placeholders with actual emoji
6. Apply heading and name formatting via batch API
### Step 7: Verify and Report
Confirm marker integrity. Report summary of sources processed and content generated.
## Formatting Rules
- Bullet/sub-bullet hierarchies, NOT tables
- Bold team member names throughout
- ASCII emoji placeholders to prevent Unicode index corruption
- Batch API operations to minimize calls
## Graceful Degradation
Missing sources generate skip notes, not errors. Processing continues with available data.
What This Does
Synthesizes data from WhatsApp messages, Gmail threads, and meeting transcripts into two outputs: a living project status dashboard and a detailed weekly activity log — both maintained in Google Docs with automated formatting and batch API operations.
Prerequisites
- Google Docs MCP (required)
- Optional: WhatsApp MCP, Gmail MCP, Granola/Zoom transcripts
- Project
.claude/CLAUDE.mdwith project metadata
Quick Start
Step 1: Configure Your Project
Ensure your project has a .claude/CLAUDE.md with:
## Project Info
- Name: [Project Name]
- Google Doc ID: [doc ID]
- Team: [member names and emails]
- WhatsApp Groups: [group names]
- Transcript Folder: [path to transcripts]
Step 2: Set Up Google Doc Markers
Add these markers to your Google Doc (Tab 1):
=== PROJECT STATUS DASHBOARD ===
[dashboard content goes here]
=== DASHBOARD END ===
=== WEEKLY SUMMARIES START ===
[weekly logs go here]
Step 3: Download the Template and Run
claude
Then: "Run weekly review"
Two Outputs
Living Dashboard
Updated in-place (not appended):
- Project overview
- Strategic objectives with progress indicators
- Team member action items
- Critical success factors with status
- Funding pipeline
Weekly Activity Log
Prepended each week (reverse-chronological):
- Date range header
- Thematic activity synthesis across all sources
- Detailed meeting records with full summaries
Data Sources
| Source | What It Captures |
|---|---|
| Group messages within date range | |
| Gmail | Team threads filtered by roster and keywords |
| Transcripts | Granola JSON, Zoom VTT, or manual markdown |
Missing sources trigger skip notifications, not errors.
Content Screening
Automatically omits sensitive material:
- Compensation discussions
- Hiring decisions
- Personnel-specific funding details
- Performance evaluations
Flagged for PI/lead review instead.
Detail Scaling
| Meeting Type | Coverage |
|---|---|
| Brief check-in | 0.5-1 page |
| Standard meeting | 1-3 pages |
| Extended strategy session | 2-4 pages |
Arguments
| Flag | Effect |
|---|---|
nosave |
Don't save intermediate files |
tab1only |
Dashboard update only |
tab2only |
Weekly log only |
days:N |
Override date range |
since:YYYY-MM-DD |
Start from specific date |
skipwhatsapp |
Skip WhatsApp source |
skipemail |
Skip Gmail source |
skiparchive |
Don't archive processed transcripts |
Tips
- Dashboard preserves baseline — only modifies sections with new information
- Batch API operations — reduces 19-29 calls to 1-3 for speed
- ASCII emoji placeholders — uses [RED], [GREEN], [YELLOW] to avoid Unicode issues in Google Docs API
- Quantitative claims verified — cross-references numbers against prior summaries
Troubleshooting
"Markers not found" Add the three boundary markers to your Google Doc (see setup)
WhatsApp messages not found Check that group names in CLAUDE.md match exactly
Dashboard overwrites content Make sure all three markers are intact — the DASHBOARD END marker prevents corruption
API rate limiting
The batch operation model minimizes this — if it persists, use tab1only or tab2only