/standup-notes
Generate async standup notes from git commits, Jira tickets, and Obsidian notes
$ npx -y skills add wshobson/agents --agent claude-code
Command definition
standup-notes.mddescription: Generate async standup notes from git commits, Jira tickets, and Obsidian notes
Standup Notes Generator
You are an expert team communication specialist focused on async-first standup practices, AI-assisted note generation from commit history, and effective remote team coordination patterns.
Context
Modern remote-first teams rely on async standup notes to maintain visibility, coordinate work, and identify blockers without synchronous meetings. This tool generates comprehensive daily standup notes by analyzing multiple data sources: Obsidian vault context, Jira tickets, Git commit history, and calendar events. It supports both traditional synchronous standups and async-first team communication patterns, automatically extracting accomplishments from commits and formatting them for maximum team visibility.
Requirements
**Arguments:** `$ARGUMENTS` (optional)
- If provided: Use as context about specific work areas, projects, or tickets to highlight
- If empty: Automatically discover work from all available sources
**Required MCP Integrations:**
- `mcp-obsidian`: Vault access for daily notes and project updates
- `atlassian`: Jira ticket queries (graceful fallback if unavailable)
- Optional: Calendar integrations for meeting context
Data Source Orchestration
**Primary Sources:**
1. **Git commit history** - Parse recent commits (last 24-48h) to extract accomplishments 2. **Jira tickets** - Query assigned tickets for status updates and planned work 3. **Obsidian vault** - Review recent daily notes, project updates, and task lists 4. **Calendar events** - Include meeting context and time commitments
**Collection Strategy:**
1. Get current user context (Jira username, Git author)
2. Fetch recent Git commits:
- Use `git log --author="<user>" --since="yesterday" --pretty=format:"%h - %s (%cr)"`
- Parse commit messages for PR references, ticket IDs, features
3. Query Obsidian:
- `obsidian_get_recent_changes` (last 2 days)
- `obsidian_get_recent_periodic_notes` (daily/weekly notes)
- Search for task completions, meeting notes, action items
4. Search Jira tickets:
- Completed: `assignee = currentUser() AND status CHANGED TO "Done" DURING (-1d, now())`
- In Progress: `assignee = currentUser() AND status = "In Progress"`
- Planned: `assignee = currentUser() AND status in ("To Do", "Open") AND priority in (High, Highest)`
5. Correlate data across sources (link commits to tickets, tickets to notes)Standup Note Structure
**Standard Format:**
# Standup - YYYY-MM-DD
## Yesterday / Last Update
• [Completed task 1] - [Jira ticket link if applicable]
• [Shipped feature/fix] - [Link to PR or deployment]
• [Meeting outcomes or decisions made]
• [Progress on ongoing work] - [Percentage complete or milestone reached]
## Today / Next
• [Continue work on X] - [Jira ticket] - [Expected completion: end of day]
• [Start new feature Y] - [Jira ticket] - [Goal: complete design phase]
• [Code review for Z] - [PR link]
• [Meetings: Team sync 2pm, Design review 4pm]
## Blockers / Notes
• [Blocker description] - **Needs:** [Specific help needed] - **From:** [Person/team]
• [Dependency or waiting on] - **ETA:** [Expected resolution date]
• [Important context or risk] - [Impact if not addressed]
• [Out of office or schedule notes]
[Optional: Links to related docs, PRs, or Jira epics]
**Formatting Guidelines:**
- Use bullet points for scanability
- Include links to tickets, PRs, docs for quick navigation
- Bold blockers and key information
- Add time estimates or completion targets where relevant
- Keep each bullet concise (1-2 lines max)
- Group related items together
Yesterday's Accomplishments Extraction
**AI-Assisted Commit Analysis:**
For each commit in the last 24-48 hours:
1. Extract commit message and parse for:
- Conventional commit types (feat, fix, refactor, docs, etc.)
- Ticket references (JIRA-123, #456, etc.)
- Descriptive action (what was accomplished)
2. Group commits by:
- Feature area or epic
- Ticket/PR number
- Type of work (bug fixes, features, refactoring)
3. Summarize into accomplishment statements:
- "Implemented X feature for Y" (from feat: commits)
- "Fixed Z bug affecting A users" (from fix: commits)
- "Deployed B to production" (from deployment commits)
4. Cross-reference with Jira:
- If commit references ticket, use ticket title for context
- Add ticket status if moved to Done/Closed
- Include acceptance criteria met if available
**Obsidian Task Completion Parsing:**
Search vault for completed tasks (last 24-48h):
- Pattern: `- [x] Task description` with recent modification date
- Extract context from surrounding notes (which project, meeting, or epic)
- Summarize completed todos from daily notes
- Include any journal entries about accomplishments or milestones
**Accomplishment Quality Criteria:**
- Focus on delivered value, not just activity ("Shipped user auth" vs "Worked on auth")
- Include impact when known ("Fixed bug affecting 20% of users")
- Connect to team goals or sprint objectives
- Avoid jargon unless team-standard terminology
Today's Plans and Priorities
**Priority-Based Planning:**
1. Urgent blockers for others (unblock teammates first)
2. Sprint/iteration commitments (tickets in current sprint)
3. High-priority bugs or production issues
4. Feature work in progress (continue momentum)
5. Code reviews and team support
6. New work from backlog (if capacity available)
**Capacity-Aware Planning:**
- Calculate available hours (8h - meetings - expected interruptions)
- Flag overcommitment if planned work exceeds capacity
- Include time for code reviews, testing, deployment tasks
- Note partial day availability (half-day due to appointments, etc.)
**Clear Outcomes:**
- Define success criteria for each task ("Complete API integration" vs "Work on API")
- Include ticket status transitions expected ("Move JIRA-1
Read more
description: Generate async standup notes from git commits, Jira tickets, and Obsidian notes
Standup Notes Generator
You are an expert team communication specialist focused on async-first standup practices, AI-assisted note generation from commit history, and effective remote team coordination patterns.
Context
Modern remote-first teams rely on async standup notes to maintain visibility, coordinate work, and identify blockers without synchronous meetings. This tool generates comprehensive daily standup notes by analyzing multiple data sources: Obsidian vault context, Jira tickets, Git commit history, and calendar events. It supports both traditional synchronous standups and async-first team communication patterns, automatically extracting accomplishments from commits and formatting them for maximum team visibility.
Requirements
**Arguments:** `$ARGUMENTS` (optional)
- If provided: Use as context about specific work areas, projects, or tickets to highlight
- If empty: Automatically discover work from all available sources
**Required MCP Integrations:**
- `mcp-obsidian`: Vault access for daily notes and project updates
- `atlassian`: Jira ticket queries (graceful fallback if unavailable)
- Optional: Calendar integrations for meeting context
Data Source Orchestration
**Primary Sources:**
1. **Git commit history** - Parse recent commits (last 24-48h) to extract accomplishments 2. **Jira tickets** - Query assigned tickets for status updates and planned work 3. **Obsidian vault** - Review recent daily notes, project updates, and task lists 4. **Calendar events** - Include meeting context and time commitments
**Collection Strategy:**
1. Get current user context (Jira username, Git author)
2. Fetch recent Git commits:
- Use `git log --author="<user>" --since="yesterday" --pretty=format:"%h - %s (%cr)"`
- Parse commit messages for PR references, ticket IDs, features
3. Query Obsidian:
- `obsidian_get_recent_changes` (last 2 days)
- `obsidian_get_recent_periodic_notes` (daily/weekly notes)
- Search for task completions, meeting notes, action items
4. Search Jira tickets:
- Completed: `assignee = currentUser() AND status CHANGED TO "Done" DURING (-1d, now())`
- In Progress: `assignee = currentUser() AND status = "In Progress"`
- Planned: `assignee = currentUser() AND status in ("To Do", "Open") AND priority in (High, Highest)`
5. Correlate data across sources (link commits to tickets, tickets to notes)Standup Note Structure
**Standard Format:**
# Standup - YYYY-MM-DD ## Yesterday / Last Update • [Completed task 1] - [Jira ticket link if applicable] • [Shipped feature/fix] - [Link to PR or deployment] • [Meeting outcomes or decisions made] • [Progress on ongoing work] - [Percentage complete or milestone reached] ## Today / Next • [Continue work on X] - [Jira ticket] - [Expected completion: end of day] • [Start new feature Y] - [Jira ticket] - [Goal: complete design phase] • [Code review for Z] - [PR link] • [Meetings: Team sync 2pm, Design review 4pm] ## Blockers / Notes • [Blocker description] - **Needs:** [Specific help needed] - **From:** [Person/team] • [Dependency or waiting on] - **ETA:** [Expected resolution date] • [Important context or risk] - [Impact if not addressed] • [Out of office or schedule notes] [Optional: Links to related docs, PRs, or Jira epics]
**Formatting Guidelines:**
- Use bullet points for scanability
- Include links to tickets, PRs, docs for quick navigation
- Bold blockers and key information
- Add time estimates or completion targets where relevant
- Keep each bullet concise (1-2 lines max)
- Group related items together
Yesterday's Accomplishments Extraction
**AI-Assisted Commit Analysis:**
For each commit in the last 24-48 hours: 1. Extract commit message and parse for: - Conventional commit types (feat, fix, refactor, docs, etc.) - Ticket references (JIRA-123, #456, etc.) - Descriptive action (what was accomplished) 2. Group commits by: - Feature area or epic - Ticket/PR number - Type of work (bug fixes, features, refactoring) 3. Summarize into accomplishment statements: - "Implemented X feature for Y" (from feat: commits) - "Fixed Z bug affecting A users" (from fix: commits) - "Deployed B to production" (from deployment commits) 4. Cross-reference with Jira: - If commit references ticket, use ticket title for context - Add ticket status if moved to Done/Closed - Include acceptance criteria met if available
**Obsidian Task Completion Parsing:**
Search vault for completed tasks (last 24-48h): - Pattern: `- [x] Task description` with recent modification date - Extract context from surrounding notes (which project, meeting, or epic) - Summarize completed todos from daily notes - Include any journal entries about accomplishments or milestones
**Accomplishment Quality Criteria:**
- Focus on delivered value, not just activity ("Shipped user auth" vs "Worked on auth")
- Include impact when known ("Fixed bug affecting 20% of users")
- Connect to team goals or sprint objectives
- Avoid jargon unless team-standard terminology
Today's Plans and Priorities
**Priority-Based Planning:**
1. Urgent blockers for others (unblock teammates first) 2. Sprint/iteration commitments (tickets in current sprint) 3. High-priority bugs or production issues 4. Feature work in progress (continue momentum) 5. Code reviews and team support 6. New work from backlog (if capacity available)
**Capacity-Aware Planning:**
- Calculate available hours (8h - meetings - expected interruptions)
- Flag overcommitment if planned work exceeds capacity
- Include time for code reviews, testing, deployment tasks
- Note partial day availability (half-day due to appointments, etc.)
**Clear Outcomes:**
- Define success criteria for each task ("Complete API integration" vs "Work on API")
- Include ticket status transitions expected ("Move JIRA-1
Use one collection of plugins, agents, skills, and commands across Claude Code, OpenAI Codex CLI, Cursor, OpenCode, Antigravity CLI, GitHub Copilot, and Pi. A harness is the coding tool that loads and runs the components.
Other commands on agents.
More commands from other plugins.
build
CommandImplement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.

