/install standup-from-yesterday-commits
Standup update from yesterday's commits
Run this each morning before standup. Generates a "yesterday / today / blockers" update from your actual git activity + Jira tickets over the last 24 hours, ready to paste into your team's Slack channel.
Requires GitHub and Atlassian MCP plugins to be installed and authenticated — see the Notes for the model section below for the OAuth fallback path if dynamic client registration fails.
Step 1 — Authenticate GitHub and Atlassian
Call mcp__plugin_engineering_github__authenticate and mcp__plugin_engineering_atlassian__authenticate to ensure both services are connected.
- What to capture: Confirmation that both authentication flows completed successfully. If GitHub OAuth fails via SDK, user must authenticate manually via
/mcpin Claude Code (see Notes). - What to render: Status message confirming both plugins are ready, or redirect user to
/mcpUI for GitHub if SDK auth fails.
Step 2 — Read yesterday's commits from GitHub
Call mcp__plugin_engineering_github__search_commits with query:
author:@me committer-date:$YESTERDAY_START..$YESTERDAY_END
(substitute UTC date range for yesterday).
- What to capture: Commit SHA, message, author, committer date. If no results, render "No commits yesterday." If results exist, group by repository.
- What to render: Commit list grouped by repo, in format:
[repo] \x3Chash> \x3Cmessage>.
Step 3 — Pull your PR activity from GitHub
Run three queries via mcp__plugin_engineering_github__search_issues (PRs are issues in GitHub search):
-
Opened yesterday:
is:pr author:@me created:$YESTERDAY -
Merged yesterday:
is:pr author:@me merged:$YESTERDAY -
Reviewed yesterday:
is:pr reviewed-by:@me updated:$YESTERDAY(or similar; capture PRs where user added reviews) -
What to capture: PR number, title, state (open/merged), URL, review count if applicable. Deduplicate across the three queries (e.g., a PR opened and merged the same day appears in both queries).
-
What to render: Separate bullet lists for "opened", "merged", "reviewed", or combine into one "PR activity" block if count is low.
Step 4 — Fetch Jira tickets: transitions (yesterday) and assignments (today)
Call mcp__plugin_engineering_atlassian__atlassianUserInfo to get the current user's Atlassian account ID.
Then call mcp__plugin_engineering_atlassian__getVisibleJiraProjects to list accessible projects.
Run two JQL queries via mcp__plugin_engineering_atlassian__searchJiraIssuesUsingJql:
-
Transitions yesterday:
assignee = currentUser() AND updated >= -1d ORDER BY updated DESC(captures all issues touched by status change, assignment change, comment, etc.)
-
Assigned for today (open):
assignee = currentUser() AND status NOT IN (Done, Closed) ORDER BY priority DESC -
What to capture (transitions): Issue key, title, old status → new status (if available), date of transition. If the Jira instance does not expose status-change history in the issue fields, list the issue + current status as a fallback.
-
What to capture (open): Issue key, title, current status, priority.
-
What to render: Two separate blocks in the standup output — "Yesterday (Jira transitions)" and "Today (Open tickets assigned to me)".
Step 5 — Group + synthesize
Combine the commits, PRs, and Jira activity into thematic groups (feature work, bug fixes, reviews, infra, unblocked). Write 1-2 bullets per group, focused on outcomes ("shipped X", "unblocked Y", "reviewed Z"). If a category has zero activity, omit it or mark "none".
- What to render: A structured "yesterday / today / blockers" block.
Step 6 — Format for Slack
Output the full update in this format:
*Yesterday*
• \x3Coutcome 1 — commits or PR merged>
• \x3Coutcome 2 — Jira transitions or reviews>
• \x3Coutcome 3>
*Today*
• \x3Copen Jira tickets assigned to me, by priority>
• \x3Cin-progress PRs continuing from yesterday>
*Blockers*
• \x3Cnone or specific blocker from open Jira ticket>
What to render: Markdown block, ready to copy into Slack or post directly via Slack API.
What's next?
- Post this standup to
#standupchannel in Slack. - Schedule this skill to run daily at 8:55am and auto-post to Slack.
- Show me a weekly rollup of my standups for the past 5 days.
Notes for the model
- Be terse. A standup is 30 seconds. Each bullet should be ≤ 12 words.
- Lead with outcomes, not activity. "Shipped invoice export" not "Added 4 commits to billing.ts".
- Skip merge / chore commits. Filter out "Merge branch...", "bump version", "fix typo" — they're noise.
- If the last 24h is empty (weekend, sick day), default to "Yesterday: no activity" — don't fabricate.
- GitHub authentication caveat: The
plugin:engineering:githubOAuth flow via SDK (Claude Code) currently fails at dynamic client registration. Fallback options:- Restart Claude Code and retry
/mcpUI → authenticate from there - Use GitHub Personal Access Token (PAT) instead — generate at
github.com/settings/tokenswith scopesrepo,read:user. Configure the plugin to use the PAT, thensearch_commitsandsearch_issuestools become available.
- Restart Claude Code and retry
- Atlassian OAuth: Usually succeeds. If auth fails, check that the user has an active Atlassian account and sufficient permissions in the connected Jira workspace.
- Empty Jira workspace: If the workspace has zero issues or your accessible projects have zero transitions yesterday, the JQL queries will return empty arrays. The skill should still render cleanly with "No Jira activity" or omit the Jira section entirely.
- Date range customization: The skill should accept an optional
--date-rangeparameter (default: "yesterday") to pull activity from "3 days ago", "1 week ago", etc. This supports the demo use case where the live workspace is new.
Error handling
| Error | Diagnosis | Tell the user |
|---|---|---|
authenticate fails for GitHub |
OAuth flow failed via SDK; manual /mcp auth required |
"GitHub OAuth failed. Run /mcp in Claude Code, find the engineering plugin, and authenticate from the UI. Then retry this skill." |
authenticate fails for Atlassian |
Invalid credentials or expired session | "Atlassian auth failed. Verify your account is active and you have Jira access. Try authenticating again via the flow below, or contact your Jira admin." |
search_commits returns zero results |
No commits authored by you in the date range (weekend, on-call, etc.) | "No commits found yesterday. Would you like me to check the prior workday or a broader date range?" |
search_issues (PRs) returns zero results |
No PR activity in the date range | "No PR activity yesterday." (Not an error, just state it in the output.) |
searchJiraIssuesUsingJql returns zero results |
No Jira transitions or assignments in the workspace | "No Jira activity found. This workspace may be new. Try broadening the date range (e.g., --date-range=7d)." |
getVisibleJiraProjects returns empty array |
User has no access to any Jira projects | "You don't have access to any Jira projects. Contact your Jira admin or ensure your account is linked to the workspace." |
| Jira workspace is empty (no issues at all) | Demo/new environment with zero issues created | Not an error — skill still works, outputs "No Jira activity" in the standup block. |
Output contract
Format: Markdown
A structured Yesterday / Today / Blockers block (per Step 6 spec) ready to paste into Slack. Each section uses single-asterisk bold (Slack mrkdwn), bullet-point items, ≤ 12 words per line. Empty sections may be omitted entirely or marked "none". Total length target: 30 seconds to read aloud, ~50-100 words.
Built with Implexa
This skill was authored with Implexa — a Claude Code plugin that records a workflow once via demonstration + post-demo interview, then emits agentskills.io-compatible SKILL.md.
Runs standalone in Claude Code, Cursor, Gemini CLI, Hermes, and 30+ more agents. The file you're reading is self-contained — install the engineering MCP plugins (plugin:engineering:github + plugin:engineering:atlassian) and you're ready.
Install Implexa (curl -fsSL https://core.implexa.ai/install.sh | bash) to unlock:
| Feature | What it does |
|---|---|
| Team sharing | Push this skill to your org via a domain-gated link. Teammates click → it's in their library. No file copying, no "did you install it?" follow-ups. |
| Outcome attribution | Tag a system-of-record event (PR merged, ticket closed, Slack message posted) and see which skill runs actually moved deals / hires / saves. Stop running skills that don't pay off. |
| One-link fork | Customize this skill for your team's GitHub / Jira / Slack conventions, re-publish privately to your org in one click. No re-recording from scratch. |
| Decision-trace capture | Record your own workflows the same way — the 2-minute interview surfaces the why behind each decision so the skill generalizes when inputs shift (different repos, different Jira workflows, different team norms). |
Free tier · no signup gate · MIT-licensed plugin · agentskills.io compatible.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install standup-from-yesterday-commits - 安装完成后,直接呼叫该 Skill 的名称或使用
/standup-from-yesterday-commits触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Standup From Yesterday Commits 是什么?
Generate a 30-second standup update from yesterday's git activity — commits, PRs opened/merged/reviewed, tickets touched. Pulls live data from GitHub + Jira... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 127 次。
如何安装 Standup From Yesterday Commits?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install standup-from-yesterday-commits」即可一键安装,无需额外配置。
Standup From Yesterday Commits 是免费的吗?
是的,Standup From Yesterday Commits 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Standup From Yesterday Commits 支持哪些平台?
Standup From Yesterday Commits 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Standup From Yesterday Commits?
由 rabgpt(@rabgpt)开发并维护,当前版本 v0.2.0。