Daily meeting update skill

Interactive daily standup/meeting update generator.

by davila7·MIT license·★ 32,299 Stars on the repo·GitHub ↗

Use now

Files of Daily meeting update

davila7/main1 file shown
SKILL.md
Show the full text409 lines

Daily Meeting Update

Generate a daily standup/meeting update through an interactive interview. Never assume tools are configured—ask first.


Workflow

START
  │
  ▼
┌─────────────────────────────────────────────────────┐
│ Phase 1: DETECT & OFFER INTEGRATIONS                │
│ • Check: Claude Code history? gh CLI? jira CLI?     │
│ • Claude Code → Pull yesterday's session digest     │
│   → User selects relevant items via multiSelect     │
│ • GitHub/Jira → Ask user, pull if approved          │
│ • Pull data NOW (before interview)                  │
├─────────────────────────────────────────────────────┤
│ Phase 2: INTERVIEW (with insights)                  │
│ • Show pulled data as context                       │
│ • Yesterday: "I see you merged PR #123, what else?" │
│ • Today: What will you work on?                     │
│ • Blockers: Anything blocking you?                  │
│ • Topics: Anything to discuss at end of meeting?    │
├─────────────────────────────────────────────────────┤
│ Phase 3: GENERATE UPDATE                            │
│ • Combine interview answers + tool data             │
│ • Format as clean Markdown                          │
│ • Present to user                                   │
└─────────────────────────────────────────────────────┘

Phase 1: Detect & Offer Integrations

Step 1: Silent Detection

Check for available integrations silently (suppress errors, don't show to user):

Integration Detection
Claude Code History ~/.claude/projects directory exists with .jsonl files
GitHub CLI gh auth status succeeds
Jira CLI jira command exists
Atlassian MCP mcp__atlassian__* tools available
Git Inside a git repository
Step 2: Offer GitHub/Jira Integrations (if available)

Claude Code users: Use AskUserQuestionTool tool for all questions in this phase.

GitHub/Git:

If HAS_GH or HAS_GIT:

"I detected you have GitHub/Git configured. Want me to pull your recent activity (commits, PRs, reviews)?"

Options:
- "Yes, pull the info"
- "No, I'll provide everything manually"

If yes:

"Which repositories/projects should I check?"

Options:
- "Just the current directory" (if in a git repo)
- "I'll list the repos" → user provides list

Jira:

If HAS_JIRA_CLI or HAS_ATLASSIAN_MCP:

"I detected you have Jira configured. Want me to pull your tickets?"

Options:
- "Yes, pull my tickets"
- "No, I'll provide everything manually"
Step 3: Pull GitHub/Jira Data (if approved)

GitHub/Git — For each approved repo:

  • Commits by user since yesterday
  • PRs opened/merged by user
  • Reviews done by user

Jira — Tickets assigned to user, updated in last 24h

Key insight: Store results to use as context in Phase 2 interview.

Step 4: Offer Claude Code History

This integration captures everything you worked on with Claude Code — useful for recalling work that isn't in git or Jira.

Detection:

ls ~/.claude/projects/*/*.jsonl 2>/dev/null | head -1

If Claude Code history exists, ask:

"I can also pull your Claude Code session history from yesterday. This can help recall work that isn't in git/Jira (research, debugging, planning). Want me to check?"

Options:
- "Yes, pull my Claude Code sessions"
- "No, I have everything I need"

If yes, run the digest script:

python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --format json

Then present sessions with multiSelect:

Use AskUserQuestionTool with multiSelect: true to let user pick relevant items:

"Here are your Claude Code sessions from yesterday. Select the ones relevant to your standup:"

Options (multiSelect):
- "Fix authentication bug (backend-api)"
- "Implement OAuth flow (backend-api)"
- "Update homepage styles (frontend-app)"
- "Research payment providers (docs)"

Key insight: User selects which sessions are work-related. Personal projects or experiments can be excluded.

Do NOT run digest script when:

  • User explicitly says "No" to Claude Code history
  • User says they'll provide everything manually
  • ~/.claude/projects directory doesn't exist

If digest script fails:

  • Fallback: Skip Claude Code integration silently, proceed with interview
  • Common issues: Python not installed, no sessions from yesterday, permission errors
  • Do NOT block the standup flow — the script is supplemental, not required

Phase 2: Interview (with insights)

Claude Code users: Use AskUserQuestionTool tool to conduct the interview. This provides a better UX with structured options.

Use pulled data as context to make questions smarter.

Question 1: Yesterday

If data was pulled, show it first:

"Here's what I found from your activity:
- Merged PR #123: fix login timeout
- 3 commits in backend-api
- Reviewed PR #456 (approved)

Anything else you worked on yesterday that I missed?"

If no data pulled:

"What did you work on yesterday/since the last standup?"

If user response is vague, ask follow-up:

  • "Can you give more details about X?"
  • "Did you complete anything specific?"
Question 2: Today
"What will you work on today?"

Options:
- [Text input - user types freely]

If Jira data was pulled, you can suggest:

"I see you have these tickets assigned:
- PROJ-123: Implement OAuth flow (In Progress)
- PROJ-456: Fix payment bug (To Do)

Will you work on any of these today?"
Question 3: Blockers
"Do you have any blockers or impediments?"

Options:
- "No blockers"
- "Yes, I have blockers" → follow-up for details
Question 4: Topics for Discussion
"Any topic you want to bring up at the end of the daily?"

Options:
- "No, nothing to discuss"
- "Yes" → follow-up for details

Examples of topics:
- Technical decision that needs input
- Alignment with another team
- Question about prioritization
- Announcement or info for the team

Phase 3: Generate Update

Combine all information into clean Markdown:

# Daily Update - [DATE]

## Yesterday
- [Items from interview]
- [Items from GitHub/Jira if pulled]

## Today
- [Items from interview]

## Blockers
- [Blockers or "No blockers"]

## PRs & Reviews (if pulled from GitHub)
- [PRs opened]
- [PRs merged]
- [Reviews done]

## Jira (if pulled from Jira)
- [Tickets updated]

## Topics for Discussion
- [Topics or "None"]

---
*Links:*
- [PR links]
- [Ticket links]

Core Principles

  1. Interview is primary — Tools supplement, they don't replace human context
  2. Consent before access — Always ask before pulling from any integration
  3. Context-aware questions — Show pulled data during interview to trigger memory ("I see you merged PR #123...")

Quick Reference

Phase Action Tool
1. Detect & Offer Check gh/jira/claude history, ask user, pull data Bash (silent), AskUserQuestionTool*
2. Interview Ask 4 questions with insights AskUserQuestionTool*
3. Generate Format Markdown Output text

*Claude Code only: Use AskUserQuestionTool tool for structured questions.

Claude Code Digest Script
# Get yesterday's sessions as JSON
python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --format json

# Get today's sessions
python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --date today --format json

# Filter to specific project
python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --project ~/my-app --format json

Example Session

Claude: "Let's prepare your daily! I detected GitHub configured. Want me to pull your recent activity?"
User: "Yes"

Claude: "Which repos should I check?"
User: "backend-api and frontend-app"

[Claude pulls GitHub data silently]

Claude: "I can also pull your Claude Code session history from yesterday. Want me to check?"
User: "Yes"

[Claude runs digest script, gets 5 sessions]

Claude: "Here are your Claude Code sessions from yesterday. Select the ones relevant to your standup:"
  ☑ Fix authentication timeout bug (backend-api)
  ☑ Implement OAuth flow (backend-api)
  ☐ Update personal blog (blog) - [user unchecks personal project]
  ☑ Research payment providers (docs)
  ☐ Debugging test failures (experiments)

User: [selects 3 relevant items]

Claude: "Here's what I found from your activity:
- Merged PR #120: fix login timeout
- Opened PR #125: feat: add OAuth flow
- Reviewed PR #123 (approved), PR #456 (changes requested)
- 5 commits in backend-api
- [From Claude Code] Fix authentication timeout bug
- [From Claude Code] Implement OAuth flow
- [From Claude Code] Research payment providers

Anything else you worked on yesterday that I missed?"
User: "No, that covers it"

Claude: "What will you work on today?"
User: "Continue the OAuth feature and deploy to staging"

Claude: "Any blockers?"
User: "No"

Claude: "Any topic to bring up at the end of the daily?"
User: "Yes, I want to discuss the architecture of the new payments module"

[Claude generates update]

Output Example

# Daily Update - 2026-01-22

## Yesterday
- Worked on authentication feature
- Research on payment providers
- Merged PR #120 (fix: login timeout)
- Opened PR #125 (feat: add OAuth flow)

## Today
- Continue OAuth feature
- Deploy to staging

## Blockers
- No blockers

## PRs & Reviews
- **Opened:** PR #125 - feat: add OAuth flow
- **Merged:** PR #120 - fix: login timeout
- **Reviews:** PR #123 (approved), PR #456 (changes requested)

## Topics for Discussion
- Architecture of the new payments module

---
*Links:*
- https://github.com/org/repo/pull/125
- https://github.com/org/repo/pull/120

Anti-Patterns

Avoid Why (Expert Knowledge) Instead
Run gh/jira without asking Users may have personal repos visible, or be in a sensitive project context they don't want exposed Always ask first, let user choose repos
Assume current directory is the only project Developers often work on 2-5 repos simultaneously (frontend, backend, infra) Ask "Which projects are you working on?"
Skip interview even with tool data Tools capture WHAT happened but miss WHY and context (research, meetings, planning) Interview is primary, tools supplement
Generate update before all 4 questions User might have critical blocker or discussion topic that changes the narrative Complete interview, then generate
Include raw commit messages Commit messages are often cryptic ("fix", "wip") and don't tell the story Summarize into human-readable outcomes
Ask for data after interview Showing insights during interview makes questions smarter ("I see you merged PR #123, anything else?") Pull data first, then interview with context

NEVER

  • NEVER assume tools are configured — Many devs have gh installed but not authenticated, or jira CLI pointing to wrong instance
  • NEVER skip the "Topics for Discussion" question — This is often the most valuable part of standup that tools can't capture
  • NEVER generate more than 15 bullets — Standup should be <2 minutes to read; long updates lose the audience
  • NEVER include ticket/PR numbers without context — "PROJ-123" means nothing; always include title or summary
  • NEVER pull data from repos user didn't explicitly approve — Even if you can see other repos, respect boundaries
1---
2name: daily-meeting-update
3description: "Interactive daily standup/meeting update generator. Use when user says 'daily', 'standup', 'scrum update', 'status update', 'what did I do yesterday', 'prepare for meeting', 'morning update', or 'team sync'. Pulls activity from GitHub, Jira, and Claude Code session history. Conducts 4-question interview (yesterday, today, blockers, discussion topics) and generates formatted Markdown update."
4user-invocable: true
5---
6 
7# Daily Meeting Update
8 
9Generate a daily standup/meeting update through an **interactive interview**. Never assume tools are configured—ask first.
10 
11---
12 
13## Workflow
14 
15```
16START
17 │
18 ▼
19┌─────────────────────────────────────────────────────┐
20│ Phase 1: DETECT & OFFER INTEGRATIONS │
21│ • Check: Claude Code history? gh CLI? jira CLI? │
22│ • Claude Code → Pull yesterday's session digest │
23│ → User selects relevant items via multiSelect │
24│ • GitHub/Jira → Ask user, pull if approved │
25│ • Pull data NOW (before interview) │
26├─────────────────────────────────────────────────────┤
27│ Phase 2: INTERVIEW (with insights) │
28│ • Show pulled data as context │
29│ • Yesterday: "I see you merged PR #123, what else?" │
30│ • Today: What will you work on? │
31│ • Blockers: Anything blocking you? │
32│ • Topics: Anything to discuss at end of meeting? │
33├─────────────────────────────────────────────────────┤
34│ Phase 3: GENERATE UPDATE │
35│ • Combine interview answers + tool data │
36│ • Format as clean Markdown │
37│ • Present to user │
38└─────────────────────────────────────────────────────┘
39```
40 
41---
42 
43## Phase 1: Detect & Offer Integrations
44 
45### Step 1: Silent Detection
46 
47Check for available integrations **silently** (suppress errors, don't show to user):
48 
49| Integration | Detection |
50|-------------|-----------|
51| **Claude Code History** | `~/.claude/projects` directory exists with `.jsonl` files |
52| GitHub CLI | `gh auth status` succeeds |
53| Jira CLI | `jira` command exists |
54| Atlassian MCP | `mcp__atlassian__*` tools available |
55| Git | Inside a git repository |
56 
57### Step 2: Offer GitHub/Jira Integrations (if available)
58 
59> **Claude Code users:** Use `AskUserQuestionTool` tool for all questions in this phase.
60 
61**GitHub/Git:**
62 
63If `HAS_GH` or `HAS_GIT`:
64 
65```
66"I detected you have GitHub/Git configured. Want me to pull your recent activity (commits, PRs, reviews)?"
67 
68Options:
69- "Yes, pull the info"
70- "No, I'll provide everything manually"
71```
72 
73If yes:
74 
75```
76"Which repositories/projects should I check?"
77 
78Options:
79- "Just the current directory" (if in a git repo)
80- "I'll list the repos" → user provides list
81```
82 
83**Jira:**
84 
85If `HAS_JIRA_CLI` or `HAS_ATLASSIAN_MCP`:
86 
87```
88"I detected you have Jira configured. Want me to pull your tickets?"
89 
90Options:
91- "Yes, pull my tickets"
92- "No, I'll provide everything manually"
93```
94 
95### Step 3: Pull GitHub/Jira Data (if approved)
96 
97**GitHub/Git** — For each approved repo:
98- Commits by user since yesterday
99- PRs opened/merged by user
100- Reviews done by user
101 
102**Jira** — Tickets assigned to user, updated in last 24h
103 
104**Key insight**: Store results to use as context in Phase 2 interview.
105 
106### Step 4: Offer Claude Code History
107 
108This integration captures everything you worked on with Claude Code — useful for recalling work that isn't in git or Jira.
109 
110**Detection:**
111```bash
112ls ~/.claude/projects/*/*.jsonl 2>/dev/null | head -1
113```
114 
115**If Claude Code history exists, ask:**
116 
117```
118"I can also pull your Claude Code session history from yesterday. This can help recall work that isn't in git/Jira (research, debugging, planning). Want me to check?"
119 
120Options:
121- "Yes, pull my Claude Code sessions"
122- "No, I have everything I need"
123```
124 
125**If yes, run the digest script:**
126 
127```bash
128python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --format json
129```
130 
131**Then present sessions with multiSelect:**
132 
133Use `AskUserQuestionTool` with `multiSelect: true` to let user pick relevant items:
134 
135```
136"Here are your Claude Code sessions from yesterday. Select the ones relevant to your standup:"
137 
138Options (multiSelect):
139- "Fix authentication bug (backend-api)"
140- "Implement OAuth flow (backend-api)"
141- "Update homepage styles (frontend-app)"
142- "Research payment providers (docs)"
143```
144 
145**Key insight:** User selects which sessions are work-related. Personal projects or experiments can be excluded.
146 
147**Do NOT run digest script when:**
148- User explicitly says "No" to Claude Code history
149- User says they'll provide everything manually
150- `~/.claude/projects` directory doesn't exist
151 
152**If digest script fails:**
153- Fallback: Skip Claude Code integration silently, proceed with interview
154- Common issues: Python not installed, no sessions from yesterday, permission errors
155- Do NOT block the standup flow — the script is supplemental, not required
156 
157---
158 
159## Phase 2: Interview (with insights)
160 
161> **Claude Code users:** Use `AskUserQuestionTool` tool to conduct the interview. This provides a better UX with structured options.
162 
163**Use pulled data as context** to make questions smarter.
164 
165### Question 1: Yesterday
166 
167**If data was pulled**, show it first:
168 
169```
170"Here's what I found from your activity:
171- Merged PR #123: fix login timeout
172- 3 commits in backend-api
173- Reviewed PR #456 (approved)
174 
175Anything else you worked on yesterday that I missed?"
176```
177 
178**If no data pulled:**
179 
180```
181"What did you work on yesterday/since the last standup?"
182```
183 
184If user response is vague, ask follow-up:
185- "Can you give more details about X?"
186- "Did you complete anything specific?"
187 
188### Question 2: Today
189 
190```
191"What will you work on today?"
192 
193Options:
194- [Text input - user types freely]
195```
196 
197**If Jira data was pulled**, you can suggest:
198 
199```
200"I see you have these tickets assigned:
201- PROJ-123: Implement OAuth flow (In Progress)
202- PROJ-456: Fix payment bug (To Do)
203 
204Will you work on any of these today?"
205```
206 
207### Question 3: Blockers
208 
209```
210"Do you have any blockers or impediments?"
211 
212Options:
213- "No blockers"
214- "Yes, I have blockers" → follow-up for details
215```
216 
217### Question 4: Topics for Discussion
218 
219```
220"Any topic you want to bring up at the end of the daily?"
221 
222Options:
223- "No, nothing to discuss"
224- "Yes" → follow-up for details
225 
226Examples of topics:
227- Technical decision that needs input
228- Alignment with another team
229- Question about prioritization
230- Announcement or info for the team
231```
232 
233---
234 
235## Phase 3: Generate Update
236 
237Combine all information into clean Markdown:
238 
239```markdown
240# Daily Update - [DATE]
241 
242## Yesterday
243- [Items from interview]
244- [Items from GitHub/Jira if pulled]
245 
246## Today
247- [Items from interview]
248 
249## Blockers
250- [Blockers or "No blockers"]
251 
252## PRs & Reviews (if pulled from GitHub)
253- [PRs opened]
254- [PRs merged]
255- [Reviews done]
256 
257## Jira (if pulled from Jira)
258- [Tickets updated]
259 
260## Topics for Discussion
261- [Topics or "None"]
262 
263---
264*Links:*
265- [PR links]
266- [Ticket links]
267```
268 
269---
270 
271## Core Principles
272 
2731. **Interview is primary** — Tools supplement, they don't replace human context
2742. **Consent before access** — Always ask before pulling from any integration
2753. **Context-aware questions** — Show pulled data during interview to trigger memory ("I see you merged PR #123...")
276 
277---
278 
279## Quick Reference
280 
281| Phase | Action | Tool |
282|-------|--------|------|
283| 1. Detect & Offer | Check gh/jira/claude history, ask user, pull data | Bash (silent), AskUserQuestionTool* |
284| 2. Interview | Ask 4 questions with insights | AskUserQuestionTool* |
285| 3. Generate | Format Markdown | Output text |
286 
287*Claude Code only: Use `AskUserQuestionTool` tool for structured questions.
288 
289### Claude Code Digest Script
290 
291```bash
292# Get yesterday's sessions as JSON
293python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --format json
294 
295# Get today's sessions
296python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --date today --format json
297 
298# Filter to specific project
299python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --project ~/my-app --format json
300```
301 
302---
303 
304## Example Session
305 
306```
307Claude: "Let's prepare your daily! I detected GitHub configured. Want me to pull your recent activity?"
308User: "Yes"
309 
310Claude: "Which repos should I check?"
311User: "backend-api and frontend-app"
312 
313[Claude pulls GitHub data silently]
314 
315Claude: "I can also pull your Claude Code session history from yesterday. Want me to check?"
316User: "Yes"
317 
318[Claude runs digest script, gets 5 sessions]
319 
320Claude: "Here are your Claude Code sessions from yesterday. Select the ones relevant to your standup:"
321 ☑ Fix authentication timeout bug (backend-api)
322 ☑ Implement OAuth flow (backend-api)
323 ☐ Update personal blog (blog) - [user unchecks personal project]
324 ☑ Research payment providers (docs)
325 ☐ Debugging test failures (experiments)
326 
327User: [selects 3 relevant items]
328 
329Claude: "Here's what I found from your activity:
330- Merged PR #120: fix login timeout
331- Opened PR #125: feat: add OAuth flow
332- Reviewed PR #123 (approved), PR #456 (changes requested)
333- 5 commits in backend-api
334- [From Claude Code] Fix authentication timeout bug
335- [From Claude Code] Implement OAuth flow
336- [From Claude Code] Research payment providers
337 
338Anything else you worked on yesterday that I missed?"
339User: "No, that covers it"
340 
341Claude: "What will you work on today?"
342User: "Continue the OAuth feature and deploy to staging"
343 
344Claude: "Any blockers?"
345User: "No"
346 
347Claude: "Any topic to bring up at the end of the daily?"
348User: "Yes, I want to discuss the architecture of the new payments module"
349 
350[Claude generates update]
351```
352 
353---
354 
355## Output Example
356 
357```markdown
358# Daily Update - 2026-01-22
359 
360## Yesterday
361- Worked on authentication feature
362- Research on payment providers
363- Merged PR #120 (fix: login timeout)
364- Opened PR #125 (feat: add OAuth flow)
365 
366## Today
367- Continue OAuth feature
368- Deploy to staging
369 
370## Blockers
371- No blockers
372 
373## PRs & Reviews
374- **Opened:** PR #125 - feat: add OAuth flow
375- **Merged:** PR #120 - fix: login timeout
376- **Reviews:** PR #123 (approved), PR #456 (changes requested)
377 
378## Topics for Discussion
379- Architecture of the new payments module
380 
381---
382*Links:*
383- https://github.com/org/repo/pull/125
384- https://github.com/org/repo/pull/120
385```
386 
387---
388 
389## Anti-Patterns
390 
391| Avoid | Why (Expert Knowledge) | Instead |
392|-------|------------------------|---------|
393| Run gh/jira without asking | Users may have personal repos visible, or be in a sensitive project context they don't want exposed | Always ask first, let user choose repos |
394| Assume current directory is the only project | Developers often work on 2-5 repos simultaneously (frontend, backend, infra) | Ask "Which projects are you working on?" |
395| Skip interview even with tool data | Tools capture WHAT happened but miss WHY and context (research, meetings, planning) | Interview is primary, tools supplement |
396| Generate update before all 4 questions | User might have critical blocker or discussion topic that changes the narrative | Complete interview, then generate |
397| Include raw commit messages | Commit messages are often cryptic ("fix", "wip") and don't tell the story | Summarize into human-readable outcomes |
398| Ask for data after interview | Showing insights during interview makes questions smarter ("I see you merged PR #123, anything else?") | Pull data first, then interview with context |
399 
400---
401 
402## NEVER
403 
404- **NEVER assume tools are configured** — Many devs have gh installed but not authenticated, or jira CLI pointing to wrong instance
405- **NEVER skip the "Topics for Discussion" question** — This is often the most valuable part of standup that tools can't capture
406- **NEVER generate more than 15 bullets** — Standup should be <2 minutes to read; long updates lose the audience
407- **NEVER include ticket/PR numbers without context** — "PROJ-123" means nothing; always include title or summary
408- **NEVER pull data from repos user didn't explicitly approve** — Even if you can see other repos, respect boundaries
409 

Discussion

Alternatives

Cs project managerProject Manager agent for sprint planning, Jira/Confluence workflows, Scrum ceremonies, and stakeholder reporting. Orchestrates project-management skills. Use when running delivery operations — e.g., planning a sprint with capacity and carry-over math in Jira, or assembling a portfolio health report for stakeholders from ticket and velocity data.Business & ops · MITProject Management — Domain Orchestrator & Delivery LoopUse when coordinating project-delivery work across the 8 project-management sub-skills — sprint/velocity analytics, portfolio health, Jira/JQL, Confluence, Atlassian admin, templates, meeting analysis, team comms. Triggers on 'our sprints feel off', 'project health report', 'audit our Jira permissions', 'when will it be done', 'run the delivery loop'. Forks context to route to one sub-skill via a deterministic signal router and returns a digest; can also drive a full goal→plan→execute→verify→close delivery loop through the repo-wide agent-harness with Jira MCP data bridged into the domain's analytics tools. Distinct from product-team (what to build vs how to deliver it), business-operations (internal ops), and engineering/agent-harness (the generic loop engine this orchestrator plugs into). · MITSenior Project Management ExpertSenior Project Manager for enterprise software, SaaS, and digital transformation projects. Specializes in portfolio management, quantitative risk analysis, resource optimization, stakeholder alignment, and executive reporting. Uses advanced methodologies including EMV analysis, Monte Carlo simulation, WSJF prioritization, and multi-dimensional health scoring. Use when a user needs help with project plans, project status reports, risk assessments, resource allocation, project roadmaps, milestone tracking, team capacity planning, portfolio health reviews, program management, or executive-level project reporting — especially for enterprise-scale initiatives with multiple workstreams, complex dependencies, or multi-million dollar budgets. · MITProject managerUse this agent when you need to establish project plans, track execution progress, manage risks, control budget/schedule, and coordinate stakeholders across complex initiatives.Business & ops · MIT