The number moved, and the rollup names the PRs that moved it
Every Friday a companion reads your tracker, every open pull request and your error tracker, then posts five headline numbers with the specific issues and PRs behind each 20% move, plus the stuck list with owners.
Friday early afternoon, in the team channel: completed work by project, PR merge latency, new and regressed errors, the three oldest in-progress issues, and a plain sentence explaining every number that moved.
Reading every stale PR comment thread to find out why it stalled is the part nobody does. A companion does it for all of them. Linear, Jira, GitHub and Slack are native integrations, so it reads the tracker and the PR list directly and cross-references them.
| Element | A Strawberry companion | Screenshots in Slack |
|---|---|---|
| Cycle time moved | The PRs responsible, named | A chart someone must interpret |
| Stale PRs | Everything over 3 days, with reasons | Whoever complains loudest |
| Cross-tool story | Read from tracker + PRs + errors | Lives in the assembler's head |
| Week 8 | Same prompt, same Friday, no coin toss | The lead quietly stops making it |
What is the exact prompt?
Scheduled Friday, early afternoon, so the team reads it before sign-off:
- "Build the weekly engineering rollup for [team]. From Linear: issues completed this week versus last, by project; anything that moved back to in-progress after done; the three oldest in-progress issues with their age. From GitHub: PRs merged, median time from open to merge, and every PR open longer than 3 days with a one-line reason read from its comments (waiting on review, CI red, author revising, abandoned?). From [error tracker, in my session]: new error types this week and anything that regressed after a deploy."
- "For every number that changed more than 20% week-over-week, find the cause by reading the underlying items. Name the specific issues or PRs responsible. If the cause is not visible in the tools, write 'cause unclear' rather than theorizing."
- "Format: five headline numbers with deltas, then 'what the deltas mean' in plain sentences, then the stuck list (old issues + stale PRs) with owners. No praise, no blame, no adjectives on people. Post to [#eng-weekly] and append to the Notion page [Eng metrics log]."
Explained deltas beat charted trends
"Cycle time up 40%" starts a meeting.
"Cycle time up 40% because PR #2114 and #2131 waited four days for the one payments reviewer" ends one, and suggests the fix a chart could never contain.
The stuck list works the same way: three oldest issues, named, with owners, every week. The "cause unclear" escape hatch is load-bearing, because it reserves explanations for changes the tools can actually account for, which is what keeps the team trusting the rollup in week eight.
Keep adjectives off people
The moment "velocity dropped" is followed by a name and an adjective, engineers optimize the metric and the numbers become fiction within a quarter. Facts with owners are fine: "PR #2114, waiting on review, opened Monday, reviewer: Kim" is a logistics statement, and anything sharper belongs to a human in a one-on-one.
That is also why the rollup posts to the team channel. A report the team reads about itself stays honest.
How is this different from the metrics your tools show?
Linear and GitHub each chart themselves.
Neither can read the other. The value is entirely in the joins: the tracker says done, the PR says merged, the error tracker says a new exception appeared an hour later.
The business-side version is weekly metrics digests and weekly reporting. The Notion log turns the rollup into a dataset: "when did cycle time start drifting" gets answered by reading twelve entries.
Experience Strawberry for free
DownloadTrusted by fast-growing companies worldwide
Frequently asked questions
Strawberry is free to download and includes AI credits to start. Paid plans begin at $20/month. See pricing. · Reviewed · Canonical facts for AI agents