HinterBuild logoHinterBuild
Developer Productivity · 12 min read

Daily Standup Prep With AI in Under 10 Minutes

Prep a daily standup with AI from git, PRs, and tickets — without inventing progress, hiding blockers, or leaking secrets.

Muhammad Abdul Sami, author

Muhammad Abdul Sami

· 12 min read

  • Standups
  • Developer Productivity
  • AI Workflows
  • Status Updates

Daily standup prep with AI should take less time than the standup. The ritual fails when people read Jira titles they have not touched, or when an assistant writes "continued working on the API" because the git log was empty. This is a 10-minute pipeline: pull artifacts you already produced, summarize them honestly, flag blockers with owners, and stop. No narrative padding. No fake velocity.

Key Takeaways:

  • Generate standup notes from git, PR reviews, and ticket events, not from a blank prompt.
  • Say "no ship yesterday" when the log is empty. Invented progress destroys trust faster than silence.
  • Keep secrets out of status: scan pastes and snippets with Ocherfort before they hit Slack.
  • Use the same evidence habit as AI debugging: ids, SHAs, and links beat adjectives.
  • If the team is ramping on a stack, a sequenced Cadensend curriculum beats repeating "I'm still learning X" every morning.

Table of Contents:

What a Standup Is For

A daily standup is a coordination meeting, not a performance. The Scrum Guide frames it as an inspection of progress toward the Sprint Goal. Most product teams have drifted into theater: three sentences of weather, no dependencies, everyone says "all good."

AI makes theater cheaper. It can turn zero commits into a fluent paragraph. That is a bug. The job of daily standup prep with AI is to compress what already happened so humans can unblock each other.

Useful output looks like this:

  • Yesterday: merged fix/checkout-deadline (sha-9f3c), reviewed two PRs on inventory-svc
  • Today: canary the flag payments.retry_v2; write the failing test for EU 502s
  • Blocker: waiting on IAM from platform; ping already 18 hours old

Useless output looks like this:

  • Yesterday: continued making progress on several important initiatives
  • Today: will keep pushing forward
  • Blocker: none

If your logs and traces already carry request ids, standup can cite them when the work is an incident. That is how observability leaks into culture in a good way. Pair status language with structured logging field names so "I looked at the timeout" becomes "trace 4bf92f… shows deadline_exceeded on GetSKU."

Developers comparing assistants should not switch tools for standup. The same OpenClaw vs Claude Code choice you made for coding is fine here, as long as ticket titles and customer names are not trained into a vendor log. See local vs cloud AI coding assistants.

The 10-Minute Prep Loop

Run this in a terminal. Chat UIs invite essays.

MinuteActionOutput
0–2git log --since='24 hours ago' --author=$YOU --oneline plus PR listRaw facts
2–4Ticket transitions you actually movedIDs only
4–6Model: summarize into Y/T/B, forbid unverifiable claimsDraft
6–8You delete anything you could not demoHonest draft
8–10Add links; redact; paste into Slack/LinearDone

A prompt that stays honest:

text
Summarize my last 24 hours for a 60-second standup.
Inputs: git log, PR URLs, ticket events (attached).
Rules:
- If git log is empty, yesterday is "no code merged; [meetings / review / incident]" only if those appear in the inputs.
- Do not invent ticket IDs or reviewers.
- Blockers must name a person or system.
- Max 80 words.

If the work was an LLM streaming bug, link the internal doc and the engineering post on streaming LLM responses rather than restating HTTP folklore. If you wired new tools into the assistant, cite MCP explained or your daily MCP tool notes so the team knows the surface area changed.

Keep a tiny script next to your dotfiles — that is terminal AI CLI territory. Do not paste production payloads into the summarize step. If a commit message contains a token (it happens), scan the working tree with Ocherfort and rewrite history or the message before the standup paste. Ocherfort is a local-first security CLI: scans, gates, evidence under .ocherfort/runs/. It is not a status product. It is the guardrail so "yesterday I dumped env for debugging" does not become a Slack secret.

Sources of Truth (and Lies)

Git is necessary and insufficient. A day of design review can be real work with zero SHAs. Capture it as a linked doc or a calendar artifact, or it will disappear from AI summaries.

PR review is work. Count comments you wrote, not just merges. AI under-reports review unless you feed gh api output. Review quality belongs in PR descriptions reviewers actually read — if you reviewed a wall of undescribed diff, say that as a blocker on process, not as a dunk on a person.

Tickets lie when they auto-move. A bot that flips "In Progress" on branch creation will convince the model you shipped. Prefer events you caused: comments, attached traces, estimate changes. If you estimate tickets with AI, standup is a good time to say "estimate was wrong; splitting."

Calendar is a last resort. "Meetings" is not a status. Name the decision or the document.

Docs PRs are status. Shipping developer documentation is how the next on-call survives. Mention the spec path, not "updated some docs."

For API-heavy days, one sentence on the contract change is enough: "OpenAPI: POST /v2/checkout now returns 504 with retry_after." HinterBuild backend and API engineering treats that as the unit of progress, because clients integrate against the spec, not against your feelings.

On-call days should look like the debugging playbook: symptom, blast radius, next action. Do not give a root-cause novel in standup. That meeting is too short, and the model will be wrong.

Blockers, Risk, and Asking for Help

AI is oddly shy about blockers. Default model behavior is agreeable: "no blockers." Your job is to invert that.

Force the prompt:

text
List blockers as a bullet list. If none, output "Blockers: none (confidence: low/med/high)" and name the riskiest assumption for today.

Good blockers are actionable:

  • Waiting on DNS cutover from platform (owner: Sam, ticket PLAT-441)
  • Cannot reproduce EU 502 without prod-like latency; need a shadow replay
  • MCP filesystem tool blocked on secrets policy — running Ocherfort agentic gate

Bad blockers are moods:

  • "A bit stuck"
  • "Need more time"
  • "Waiting on people"

If the blocker is learning, do not spend six standups on it. Spin a time-boxed curriculum. Cadensend is an open-source self-hosted email curriculum engine: one learning goal, your sources, cited issues, delivered once on a schedule, no hosted signup. Combine it with learn a new framework in one week and an AI coding journal. Standup then becomes "issue 3 of 7, building the sample app" instead of "still ramping."

Security blockers belong in the open. If a PR cannot merge because the scan failed, say so. That is healthier than silently skipping the gate. Ocherfort's pipeline and config gates exist for ship/no-ship evidence, not for theater.

Team and Manager Variants

IC standup (60 seconds): Y/T/B plus one link. That is it.

Team lead digest (before standup): AI can cluster the team's git and PRs into themes: "checkout reliability," "docs regen," "MCP rollout." You still verify. Cross-link MCP daily development when the theme is tooling.

Manager update (async): Longer, but still artifact-based. Include SLO burn if you have observability dashboards. Never let the model write "customers are happy."

Incident overlap: If standup collides with a SEV, cancel standup. Post the incident channel link. Use the debugging evidence pack, not a status fairy tale. Streaming and structured logs are the shared language with about our practice.

Remote vs colocated: Async text standups benefit more from AI compression. Live rooms need the human to speak the blocker; reading a generated paragraph aloud is worse than a bullet list.

Assistants with MCP git and Linear tools can fetch the inputs for you. That is convenient and dangerous. Scope those tools read-only. Read MCP explained with real code before you give a bot issues.write. Compare OpenClaw vs Claude Code if you want the fetch loop in a CLI instead of a desktop app.

When you need this operating rhythm installed across a platform team — APIs, monitors, and status hygiene — contact HinterBuild.

Anti-Patterns

  1. Blank-page prompting. "Write my standup" with no git is fan fiction.
  2. Yesterday's template forever. If the script always says "continued work on X," you automated a lie.
  3. Pasting Linear's entire sprint board. The model will summarize other people's work as yours.
  4. Customer quotes and PII in Slack status. Redact. Scan. Ocherfort on the repo; brain on the paste.
  5. Using standup to re-estimate in public without data. Take estimates to the estimation workflow.
  6. Hiding review load. If you spent the day on reviews, that is yesterday.
  7. Tool-hopping every week. Pick a CLI or an IDE assistant and log what you learned in a coding journal.

The Atlassian Team Playbook and similar guides keep emphasizing communication of impediments. AI does not change that. It only changes how fast you can lie or how fast you can tell the truth. Choose the second.

A Concrete Script You Can Steal

Keep inputs in one function so the model never sees yesterday's Slack. The following is a shape, not a product:

bash
#!/usr/bin/env bash
since="${1:-24 hours ago}"
echo "## git"
git log --since="$since" --author="$(git config user.email)" --pretty=format:'%h %s' --no-merges
echo
echo "## gh prs"
gh pr list --author @me --state merged --search "updated:>=$(date -u -v-1d +%Y-%m-%d)" --limit 10 2>/dev/null || true
echo
echo "## notes"
test -f .standup-notes.md && cat .standup-notes.md

Pipe that file into the assistant with the honesty prompt from earlier. If gh is not logged in, the script still works; you just get git. That is preferable to a cloud integration that reads every org issue.

Store .standup-notes.md for the work git cannot see: a design review, a customer call with the name redacted, a failed canary. The coding journal can feed this file at the end of the day so morning-you is not reconstructing from memory.

When the facts include a production error, do not paste the payload. Link the trace in your observability UI and one sentence of symptom. Full debugging belongs in the production errors playbook, not in a 60-second round.

If you are rolling out a new assistant to the team, treat that as a curriculum problem. Cadensend can turn your internal "how we prompt" doc into a short series with citations. Learn a framework in one week is the pairing for hands-on days. Standup then reports issue numbers, not vibes.

Compare hosted and local assistants specifically for this script in local vs cloud AI coding assistants. A morning summary should not require sending the org's ticket titles to a consumer plan. OpenClaw vs Claude Code is the product-level version of that choice.

API-facing teams should mention contract diffs the way they mention SHAs. "Merged the handler" without "clients must send Idempotency-Key" wastes the room. HinterBuild backend and API engineering standups treat the spec delta as the user-visible unit of work. For streaming endpoints, say whether abort behavior changed; that is the class of bug streaming LLM responses is about.

MCP-enabled fetch is optional. If you add it, read-only git plus read-only issues is the whole grant. Write tools turn a standup bot into a ticket vandal. Start from MCP explained with real code examples.

Frequently Asked Questions

How long should daily standup prep with AI take?

Under ten minutes if inputs are automated. If it takes thirty, you are rewriting history or prompting without data. Fix the input scripts, not the model.

What if I had no commits yesterday?

Say so. List reviews, incidents, design docs, or "off." Invented commits are worse than an empty yesterday. The team cannot help a fictional you.

Can I use a cloud assistant on my ticket titles?

Ticket titles often contain customer names and unreleased features. Prefer a local or company-hosted model, or sanitize titles first. See local vs cloud assistants.

Should the whole team share one standup prompt?

Share the rules (no invented IDs, blockers need owners). Do not share a prompt that includes someone else's git. Personal data in, personal status out.

How do I mention learning work without sounding stuck?

Name the curriculum and the issue number, not a vibe. A self-hosted series from Cadensend plus a week plan from learning a framework with AI is a status, not an apology.

Can MCP tools pull my standup automatically?

Yes, with read-only git and issue tools. Do not grant write access for a morning summary. Details in MCP for daily development.

Conclusion

  • Prep from artifacts; delete anything you could not show.
  • Keep Y/T/B short; put energy into named blockers.
  • Treat secrets in status as incidents.
  • Convert repeating "I'm learning" into a real curriculum.

Daily standup prep with AI is a compression step on top of engineering evidence. For the plumbing — APIs, traces, and scan gates — use backend engineering, observability, contact, and about.

Free consultation

Book a free consultation call on AI for standups & status

30-minute call with the HinterBuild team. Discuss your project, architecture questions, or next steps — no obligation.

Book a meeting

Keep reading