Standup Summary
Produces a formatted markdown standup with What I Did, What I'm Working On, meetings, team channel, blockers, AI status, follow-ups, and discovered work.
Inputs
| Input |
Type |
Default |
Purpose |
repo |
string |
— |
Repository path |
repo_name |
string |
— |
Config key (e.g. automation-analytics-backend) |
issue_key |
string |
— |
Resolve repo from Jira project (e.g. AAP-12345 → AAP) |
days |
int |
1 |
Days back for commits/Jira |
include_jira |
bool |
true |
Include Jira section |
include_gitlab |
bool |
true |
Include GitLab MR section |
author |
string |
— |
Override git author (default: git config) |
slack_format |
bool |
false |
Use <url|text> for links |
Repo resolution: Use repo if given; else repo_name from config.json → repositories; else issue_key → project prefix → matching repo; else cwd if git repo.
Persona Switches
- developer: Git, Jira, GitLab, Gmail, performance
- meetings:
google_calendar_list_events
- slack:
slack_find_channel, slack_list_messages
Workflow
1. Bootstrap
persona_load("developer")
check_known_issues("gitlab_mr_list")
check_known_issues("jira_search")
2. Resolve Repo & Author
- Resolve
repo_path, gitlab_project, jira_project from inputs + config.json
git_config_get(repo, key="user.email") — author email
git_config_get(repo, key="user.name") — author name
- Use
inputs.author if provided
3. Git Commits
git_log(repo=repo_path, limit=30,>
- Parse output: extract sha, message; extract Jira keys (e.g. AAP-12345) from messages
4. Calendar
persona_load("meetings")
google_calendar_list_events(days=1)
- Parse: time, title for today's events
5. Slack
persona_load("slack")
slack_find_channel(query="team-automation-analytics")
slack_list_messages(channel_id=..., limit=20)
- Parse recent messages (first 10)
6. Jira (if include_jira)
persona_load("developer")
jira_my_issues(max_results=20)
jira_search(jql='project = {jira_project} AND assignee = currentUser() AND status in ("In Progress", "In Review") ORDER BY updated DESC')
jira_search(jql='project = {jira_project} AND assignee = currentUser() AND status = Done AND updated >= -{days}d ORDER BY updated DESC')
- Parse: key, summary for in-progress and done
7. GitLab (if include_gitlab)
gitlab_mr_list(project=gitlab_project, state="all", author=author_name) — my MRs
gitlab_mr_list(project=gitlab_project, state="all", reviewer=author_name) — reviewed
- Parse: iid, title (e.g.
!1452 pattern)
8. Optional Context
gmail_unread_count
performance_highlights
knowledge_query(project="automation-analytics-backend", persona="developer", section="metadata") — confidence
code_stats(project="automation-analytics-backend") — files_indexed, chunks, search_count
9. Memory
memory_read(key="state/current_work") — follow_ups, active_issues
- Discovered work: check memory for discovered work items (created/synced today) if available
10. Output Format
## 📋 Standup Summary
**Date:** YYYY-MM-DD
**Author:** {name}
### ✅ What I Did
**Commits:** {count}
- `{sha}` {message}
**Issues Closed:** {list}
**PRs Reviewed:** {list}
### 🔄 What I'm Working On
- {in-progress issues}
**Open MRs:** {list}
### 📅 Today's Meetings
- {time}: {title}
### 💬 Team Channel (Recent)
- {recent Slack messages}
### 🚧 Blockers
- None (or list)
### 🤖 AI Assistant Status
- **Knowledge Confidence:** {confidence}%
- **Code Index:** {files} files, {chunks} chunks
### 📋 Follow-ups (from memory)
- {priority} {task}
### 📝 Discovered Work (Today)
- **Discovered:** {count} items
- **Synced to Jira:** {count}
- **Issues Created:** {keys}
- **By Type:** {breakdown}
11. Post-Standup
memory_session_log("Generated standup summary", "X commits, Y in progress")
- On "no such host":
learn_tool_fix("gitlab_mr_list", "no such host", "VPN not connected", "Run vpn_connect()")
- On Jira "command timed out":
learn_tool_fix("jira_search", "command timed out", "Jira API timeout", "Check VPN and retry")
Key Details
- Link format:
slack_format → <url|text>, else [text](url); use linkify_jira_keys / linkify_mr_ids patterns from parsers if available
- Jira project: From resolved repo config (e.g. AAP, APPSRE)
- Team channel:
team-automation-analytics (or config override)
- Discovered work: From memory/discovered-work if present; suggest
sync_discovered_work for pending items
1---2name: standup-summary3description: Generate a standup summary from recent activity - git commits, Jira issues, MRs, calendar, Slack, memory follow-ups, discovered work. Use when user says "standup", "generate standup", "what did I do?", or "daily status".4---56# Standup Summary78Produces a formatted markdown standup with What I Did, What I'm Working On, meetings, team channel, blockers, AI status, follow-ups, and discovered work.910## Inputs1112| Input | Type | Default | Purpose |13|-------|------|---------|---------|14| `repo` | string | — | Repository path |15| `repo_name` | string | — | Config key (e.g. `automation-analytics-backend`) |16| `issue_key` | string | — | Resolve repo from Jira project (e.g. AAP-12345 → AAP) |17| `days` | int | 1 | Days back for commits/Jira |18| `include_jira` | bool | true | Include Jira section |19| `include_gitlab` | bool | true | Include GitLab MR section |20| `author` | string | — | Override git author (default: git config) |21| `slack_format` | bool | false | Use `<url\|text>` for links |2223**Repo resolution**: Use `repo` if given; else `repo_name` from `config.json` → `repositories`; else `issue_key` → project prefix → matching repo; else cwd if git repo.2425## Persona Switches2627- **developer**: Git, Jira, GitLab, Gmail, performance28- **meetings**: `google_calendar_list_events`29- **slack**: `slack_find_channel`, `slack_list_messages`3031## Workflow3233### 1. Bootstrap34- `persona_load("developer")`35- `check_known_issues("gitlab_mr_list")`36- `check_known_issues("jira_search")`3738### 2. Resolve Repo & Author39- Resolve `repo_path`, `gitlab_project`, `jira_project` from inputs + `config.json`40- `git_config_get(repo, key="user.email")` — author email41- `git_config_get(repo, key="user.name")` — author name42- Use `inputs.author` if provided4344### 3. Git Commits45- `git_log(repo=repo_path, limit=30, oneline=true)`46- Parse output: extract sha, message; extract Jira keys (e.g. AAP-12345) from messages4748### 4. Calendar49- `persona_load("meetings")`50- `google_calendar_list_events(days=1)`51- Parse: time, title for today's events5253### 5. Slack54- `persona_load("slack")`55- `slack_find_channel(query="team-automation-analytics")`56- `slack_list_messages(channel_id=..., limit=20)`57- Parse recent messages (first 10)5859### 6. Jira (if `include_jira`)60- `persona_load("developer")`61- `jira_my_issues(max_results=20)`62- `jira_search(jql='project = {jira_project} AND assignee = currentUser() AND status in ("In Progress", "In Review") ORDER BY updated DESC')`63- `jira_search(jql='project = {jira_project} AND assignee = currentUser() AND status = Done AND updated >= -{days}d ORDER BY updated DESC')`64- Parse: key, summary for in-progress and done6566### 7. GitLab (if `include_gitlab`)67- `gitlab_mr_list(project=gitlab_project, state="all", author=author_name)` — my MRs68- `gitlab_mr_list(project=gitlab_project, state="all", reviewer=author_name)` — reviewed69- Parse: iid, title (e.g. `!1452` pattern)7071### 8. Optional Context72- `gmail_unread_count`73- `performance_highlights`74- `knowledge_query(project="automation-analytics-backend", persona="developer", section="metadata")` — confidence75- `code_stats(project="automation-analytics-backend")` — files_indexed, chunks, search_count7677### 9. Memory78- `memory_read(key="state/current_work")` — follow_ups, active_issues79- Discovered work: check memory for discovered work items (created/synced today) if available8081### 10. Output Format8283```markdown84## 📋 Standup Summary85**Date:** YYYY-MM-DD86**Author:** {name}8788### ✅ What I Did89**Commits:** {count}90- `{sha}` {message}91**Issues Closed:** {list}92**PRs Reviewed:** {list}9394### 🔄 What I'm Working On95- {in-progress issues}96**Open MRs:** {list}9798### 📅 Today's Meetings99- {time}: {title}100101### 💬 Team Channel (Recent)102- {recent Slack messages}103104### 🚧 Blockers105- None (or list)106107### 🤖 AI Assistant Status108- **Knowledge Confidence:** {confidence}%109- **Code Index:** {files} files, {chunks} chunks110111### 📋 Follow-ups (from memory)112- {priority} {task}113114### 📝 Discovered Work (Today)115- **Discovered:** {count} items116- **Synced to Jira:** {count}117- **Issues Created:** {keys}118- **By Type:** {breakdown}119```120121### 11. Post-Standup122- `memory_session_log("Generated standup summary", "X commits, Y in progress")`123- On "no such host": `learn_tool_fix("gitlab_mr_list", "no such host", "VPN not connected", "Run vpn_connect()")`124- On Jira "command timed out": `learn_tool_fix("jira_search", "command timed out", "Jira API timeout", "Check VPN and retry")`125126## Key Details127128- **Link format**: `slack_format` → `<url|text>`, else `[text](url)`; use `linkify_jira_keys` / `linkify_mr_ids` patterns from parsers if available129- **Jira project**: From resolved repo config (e.g. AAP, APPSRE)130- **Team channel**: `team-automation-analytics` (or config override)131- **Discovered work**: From memory/discovered-work if present; suggest `sync_discovered_work` for pending items