Comprehensive product and team performance analysis combining meeting transcripts (Fireflies), communication patterns (Slack), OKR progress, and KPI tracking. Use when you need to analyze team effectiveness, product meeting outcomes, goal achievement, identify recurring issues, measure communication patterns, cross-reference discussions with actual metrics, or generate executive reports on product/engineering performance.
---
name: product-performance-analysis
description: Comprehensive product and team performance analysis combining meeting transcripts (Fireflies), communication patterns (Slack), OKR progress, and KPI tracking. Use when you need to analyze team effectiveness, product meeting outcomes, goal achievement, identify recurring issues, measure communication patterns, cross-reference discussions with actual metrics, or generate executive reports on product/engineering performance.
---
# Product Performance Analysis
Comprehensive analysis framework for evaluating product and engineering team performance across meetings, communications, goals, and key metrics.
## What This Skill Does
1. **Meeting Analysis** - Analyze Fireflies transcripts for patterns, effectiveness, recurring themes
2. **Communication Patterns** - Track Slack activity, sentiment, engagement across team members
3. **Goal Tracking** - Compare stated OKRs against actual achievement
4. **KPI Monitoring** - Evaluate performance against key metrics
5. **Cross-Analysis** - Identify disconnects between what's discussed and what's delivered
6. **Executive Reporting** - Generate formatted Google Docs with insights and recommendations
## When to Use
- "Analyze product scrub meetings over the last 6 months"
- "How is the engineering team performing against OKRs?"
- "What are recurring themes in our product discussions?"
- "Compare meeting topics with actual KPI performance"
- "Generate a performance report for the product team"
## Curacel-Specific Context
**When analyzing Curacel product/engineering performance, read [curacel-context.md](references/curacel-context.md) first.**
This file contains:
- Product names (Auto, Health, Pay, Grow)
- Key customers/partners (AXA, Germania, etc.)
- Meeting patterns (Product Scrub, Engineering Standup, etc.)
- Slack channels to monitor
- Google Sheet IDs for OKRs and KPIs
- Team member names and roles
- Common themes and blockers
- Output preferences
With this context loaded, you'll know exactly which meetings to search for, which sheets to pull from, and which patterns to look for without asking.
## Data Sources Required
1. **Fireflies API** - Meeting transcripts
- Key: `~/clawd/secrets/fireflies-team.key` (or specify account)
- GraphQL endpoint: `https://api.fireflies.ai/graphql`
2. **Google Workspace** - OKRs and KPIs from Sheets
- Service account (DWD): `~/clawd/secrets/google-superada.json`
- User: `henry@curacel.ai`
3. **Slack** (optional) - Communication patterns
- Tokens: `~/clawd/secrets/slack-super-ada.json`
## Analysis Components
### 1. Meeting Effectiveness
Query Fireflies for meeting transcripts matching criteria (title pattern, date range, participants).
**Key metrics:**
- Meeting frequency and duration
- Participant attendance patterns
- Action item distribution
- Recurring discussion themes
- Keywords and sentiment
**Sample query:**
```graphql
{
transcripts(limit: 100) {
id
title
date
duration
participants
summary {
action_items
overview
shorthand_bullet
keywords
}
}
}
```
### 2. Communication Patterns (Slack)
Analyze message frequency, tone, engagement across channels and team members.
**Key metrics:**
- Messages per person per month
- Proactive vs reactive communication
- Frustration vs positive sentiment
- Channel participation
### 3. OKR Analysis
Pull goal data from Google Sheets, calculate achievement percentages, identify gaps.
**Key metrics:**
- Overall achievement rate
- Progress by product/team
- Features delivered vs revenue achieved
- Goal-setting vs execution gaps
### 4. KPI Tracking
Extract performance metrics from tracking sheets, compare against targets.
**Key metrics:**
- Performance vs target (%)
- Trend analysis (improving/declining)
- Outliers and variances
### 5. Cross-Analysis
**Critical insights:**
- Products discussed most ≠ products performing best
- Meeting topics missing from OKRs
- Technical delivery focus vs commercial outcomes
- Action items without owners
## Output Format
### Google Docs Report
Use rich text formatting:
- **Font:** Century Gothic (Henry's preference)
- **Structure:** Executive summary → Findings → Recommendations → Appendix
- **Tables:** For metrics, comparisons, action items
- **Highlights:** Color-coded sections (concerns = red, wins = green, actions = blue)
**Template structure:**
```
# [Analysis Title] - [Date]
## Executive Summary
[3-4 sentence overview of key findings]
## Analysis
### [Section 1: e.g., Meeting Effectiveness]
[Findings with supporting data]
### [Section 2: e.g., OKR Performance]
[Achievement rates, gaps identified]
### [Section 3: e.g., Cross-Analysis]
[Disconnects and patterns]
## Recommendations
1. [Immediate actions]
2. [Strategic changes]
3. [Process improvements]
## Appendix
### Data Sources
[List of all data pulled]
### Methodology
[How analysis was conducted]
```
### Local Files
Save for programmatic access and future reference:
1. **Structured JSON** - `~/clawd/output/[analysis-name]-data.json`
```json
{
"meetings": [...],
"okrs": {...},
"kpis": {...},
"insights": [...]
}
```
2. **Markdown Report** - `~/clawd/output/[analysis-name]-report.md`
- Full detailed report in markdown
- Include all data tables and findings
3. **Raw Data** - `~/clawd/output/[analysis-name]-raw.json`
- Complete unprocessed data for audit trail
## Workflow
1. **Scope the analysis**
- Time range (e.g., last 6 months)
- Meeting types (e.g., "Product Scrub")
- Data sources needed
- Specific questions to answer
2. **Data collection**
- Pull Fireflies transcripts matching criteria
- Extract OKR data from specified sheet
- Extract KPI data from specified sheet
- (Optional) Pull Slack messages from relevant channels
3. **Analysis**
- Calculate metrics for each component
- Identify patterns and anomalies
- Cross-reference data sources
- Generate insights
4. **Report generation**
- Create HTML for Google Docs
- Upload to Google Docs with rich formatting
- Save structured JSON locally
- Save markdown report locally
5. **Delivery**
- Share Google Doc link
- Brief executive summary
- Highlight top 3-5 insights
## Best Practices
### Small vs Big Updates
- **Small updates** (minor corrections, added detail) → Modify existing doc in place
- **Big updates** (new analysis, major sections) → Create new tab or new doc
### Analysis Depth
Balance comprehensiveness with clarity:
- Focus on actionable insights
- Use data to support recommendations
- Avoid overwhelming with raw numbers
- Tell a story with the data
### Recommendations
Make them SMART:
- **Specific** - Name owners, define actions
- **Measurable** - Include success metrics
- **Achievable** - Consider constraints
- **Relevant** - Tied to business goals
- **Time-bound** - Set deadlines (e.g., 30 days, next quarter)
## Example Queries
### Find all Product Scrub meetings (last 6 months)
```graphql
{
transcripts(limit: 200) {
id
title
date
participants
summary {
action_items
overview
keywords
}
}
}
```
Filter client-side for title contains "Product Scrub" and date within range.
### Get OKR data
```javascript
const sheets = google.sheets({ version: 'v4', auth: jwt });
const response = await sheets.spreadsheets.values.get({
spreadsheetId: '[SHEET_ID]',
range: '[TAB_NAME]!A1:Z100'
});
```
### Cross-reference example
```javascript
// Meetings discussing "AXA"
const axaMeetings = transcripts.filter(t =>
t.summary.keywords.includes('AXA') ||
t.title.includes('AXA')
);
// AXA-related KPIs
const axaKPIs = kpis.filter(k => k.product === 'AXA');
// Insight: High meeting activity, low KPI performance
if (axaMeetings.length > 10 && axaKPIs.avgPerformance < 60) {
insights.push({
type: 'disconnect',
message: 'AXA heavily discussed but underperforming'
});
}
```
## Common Pitfalls
1. **Too much raw data** - Synthesize into insights, don't dump numbers
2. **Vague recommendations** - Always name owners and deadlines
3. **Analysis paralysis** - Set time limits, ship insights iteratively
4. **Ignoring context** - Consider external factors (market, team changes)
5. **Missing follow-through** - Build action tracking into recommendations
## Dependencies
- Node.js (for Google Workspace scripts)
- `google-auth-library`, `googleapis` (npm packages)
- curl (for Fireflies API)
- jq (for JSON processing)
## See Also
- `meeting-notes` skill - For individual meeting summaries
- `google-workspace` skill - For Sheets/Docs operations
- `slack` skill - For Slack data access
don't have the plugin yet? install it then click "run inline in claude" again.