Our Philosophy
Automate the boring, amplify the important.
The Daily Ritual That Wastes Everyone's Time
Nine people dial into a call. One by one, each person recites what they did yesterday, what they're doing today, and whether they have any blockers. Half the attendees are checking Slack while others drone on about work that doesn't affect them. The meeting takes 25 minutes. Fifteen of those minutes are pure status reporting—information that could have been pulled from Jira or GitHub in seconds.
This is the modern standup: a ceremony designed for collaboration that has devolved into a synchronous status dump.
The valuable 10 minutes? They're gold. The moment someone says "I'm blocked on the API team" and the senior engineer says "I can help with that after this call"—that's worth protecting. That human coordination, the blocker surfacing, the quick course corrections? That's what standups were invented for.
The problem is that we've buried those moments under 15 minutes of rote recitation. So we asked: What if the standup wrote itself?
The Real Problems
Status Theater
Developers spend 5-10 minutes before each standup reviewing what they did yesterday. They scroll through commit history, check which PRs got merged, remember which tickets moved. Then they compress this into a 90-second monologue—often missing things, always losing nuance.
Meanwhile, the information they're trying to recall? It's already recorded. Every commit has a message. Every PR has a title. Every ticket has a status transition history.
We're asking humans to serve as degraded proxies for their own tool logs.
The Blocker Burial Problem
Research on engineering team effectiveness consistently identifies one pattern: blockers that go unmentioned or under-discussed are the biggest killers of sprint goals.
Why do blockers get buried? In the 90 seconds each person gets, they're spending 80% on status reporting. By the time they get to "any blockers?"—the most important question—they're rushing. They don't want to hold up the meeting. They figure they'll mention it later. Later never comes.
The Data Rot Issue
Even when blockers get mentioned, they evaporate. Three weeks later, in the retrospective, someone says "We kept getting blocked on the API team" and everyone nods—but there's no data. No pattern analysis. Just vibes and memory.
How Do You Automate the Boring Parts of a Standup?
You automate a standup by pulling status from the tools that already record it: issues from Linear or Jira, commits and PRs from GitHub, GitLab, or Bitbucket. Humans add only what the tools can't know. We built our standup system around that philosophy: if it's already recorded somewhere, don't make humans repeat it.
Phase 1: Automatic Activity Collection
The system pulls the last 48 hours of activity from your connected integrations:
- From Linear/Jira: Issues started, issues completed, issues updated
- From GitHub/GitLab/Bitbucket: Commits pushed, PRs opened, PRs merged, PRs reviewed
Each developer's activity gets aggregated automatically. The system handles identity resolution—matching sarah@company.com in your Git commits to sarah.chen in your Linear workspace.
No manual entry. No forgetting what you did. No scrolling through commit logs.
Phase 2: AI-Generated Summaries
Raw activity data is noisy. "15 commits" doesn't tell you much. So we run each developer's activity through Claude to generate concise summaries:
"Completed the authentication refactoring (3 PRs merged). Started work on rate limiting. Reviewed 4 PRs from the payments team."
For developers with minimal activity, the system generates a simple note:
"Light activity: 2 commits, 1 issue update."
No judgment. Just facts.
Phase 3: Manual Input Where It Matters
Here's the key insight: we didn't fully automate standups. We automated the boring parts.
After the system collects and summarizes activity, each developer adds three things:
- Blockers: What's preventing progress?
- Help Needed: What assistance would be valuable?
- Context for Team: Anything the team should know that doesn't show up in tools?
This is the high-value human input—the stuff that can't be extracted from Jira.
Instead of spending 80% of standup time on status and 20% on blockers, we flip the ratio.
The Blocker System
We didn't stop at collecting blocker text. We built a system that treats blockers as first-class entities.
Blocker Lifecycle
When a developer mentions a blocker, it becomes a tracked item with:
- Category: Dependency, technical issue, requirements gap, resource constraint, or external factor
- Status: Open, resolved, or carried forward to retrospective
- Resolution: When it gets fixed, how was it fixed?
- Occurrence Count: How many standups has this blocker appeared in?
Pattern Detection
Over time, the system identifies patterns:
"The 'waiting on API team' blocker has appeared in 7 standups over the past 2 weeks."
Suddenly that blocker isn't just a one-off complaint—it's a systemic issue with data behind it.
Escalation Thresholds
Configure automatic escalation settings:
- Warning threshold: Blocker open for 24+ hours
- Escalation threshold: Blocker open for 72+ hours
No more blockers that quietly persist for weeks because nobody flagged them loud enough.
Retro Integration
Open blockers flow directly into your retrospective. Instead of starting the retro with "what didn't go well?" and hoping people remember, the system surfaces unresolved blockers from the sprint with their full history.
Real data. Real patterns. Real conversations.
Zero-Input Mode
Zero-input mode is full automation for teams that want it: the standup creates itself on a schedule, with no manual entry at all.
{
autoGenerate: true,
generateTime: "09:00",
timezone: "America/New_York",
lookbackHours: 48,
autoGenerateSummaries: true
}
Every morning at 9 AM, the system fetches activity, generates AI summaries, and creates the standup automatically.
When your team opens the standup, the status portion is already complete. The only thing left is the human stuff: adding blockers, requesting help, sharing context.
The 25-minute standup becomes a 10-minute standup—and the 10 minutes that remain are the valuable ones.
Live Standup Mode
Some teams prefer synchronous standups. So we built a live mode with WebSocket collaboration:
- Presenter tracking: The facilitator advances through developers in order
- Real-time updates: Everyone sees blocker inputs as they're discussed
- Facilitator controls: Start, advance, complete
The key difference: the status reporting is already on screen. The presenter isn't reciting from memory—they're highlighting what matters from their already-populated activity summary.
"So you can see I merged the auth PRs yesterday. The one thing I want to flag is this blocker—I'm waiting on test environment credentials from DevOps."
Twenty seconds instead of two minutes.
What We're Not Doing
No Surveillance
We don't track how long developers spend writing standup input. We don't analyze typing patterns. We don't compare "engagement scores" between developers.
No Mandatory Participation
Some days you don't have blockers. Some days you don't need help. The system doesn't penalize people for not adding manual input.
No Estimation Tracking
We're not trying to turn standups into accountability theater. The system doesn't track "committed to X, delivered Y" from standup to standup. That's not what standups are for.
Why This Matters
Standups are daily. If each standup wastes 15 minutes of rote status reporting for a team of 8:
- 15 min × 8 people = 2 hours per standup
- 2 hours × 5 days = 10 hours per week
- 10 hours × 52 weeks = 520 hours per year
That's 520 hours of engineer time spent being a degraded proxy for data that already exists in your tools.
The standup that writes itself gives you those hours back. More importantly, it redirects attention to what standups were always supposed to be about: coordination, blockers, and team alignment.
The Philosophy
We believe in a simple principle: humans should do human things, and machines should do machine things.
Reciting commit logs from memory? Machine thing. Parsing Jira ticket transitions? Machine thing. Formatting activity into a readable summary? Machine thing.
Flagging a blocker that needs cross-team coordination? Human thing. Asking for help on a tricky technical problem? Human thing. Sharing context about customer feedback? Human thing.
The best tools don't try to replace human judgment—they free up human attention for the things that actually require judgment.
That's the standup that writes itself.
Try It
If you're tired of standups that feel like status theater... if you've ever watched blockers persist for weeks because they weren't flagged loudly enough... if you want your team's standup time focused on coordination instead of recitation...
Standups that write themselves
AI generates updates from commits and tickets. Your team adds blockers and context—the valuable stuff.
The standup writes itself. The important conversations happen. The blockers get tracked.
That's the idea.
Continue reading
- Coaching Developers Without Becoming Big BrotherEngineering managers need to help their teams grow. But individual tracking creates surveillance culture. Here's the third way. · 10 min read
- How We Built Privacy Into Architecture, Not PolicyMost privacy promises are just policies that can be changed. Here's how we made surveillance a build-a-feature problem instead of a settings toggle—and why that matters for data accuracy. · 10 min read
- The Real Cost of Productivity TheaterThe performance of work optimized for visibility rather than value is destroying engineering teams. Here's the hidden price tag. · 10 min read