# Which one needs a human?

Your agents opened eleven pull requests this morning. Two colleagues opened three more. The
channel that was supposed to tell you which one to look at first has fourteen posts about them,
five about the same one, and nothing about which of them can wait.

That is the problem PullPulse exists for, and this post is the shape of the answer.

## Ranking, not filtering

Every pull request notifier filters. Labels, paths, authors, a keyword in the title. Filtering
answers "should this be in the channel at all", which is a question about the channel. The question
a reviewer has is about themselves: how much of my attention does this need, and is there anything
I must know before I approve?

So PullPulse rates review effort instead. Four tiers, trivial to high, from the shape of the change
alone: which files, what kind, how many reviewable lines. A 900-line lockfile bump is trivial. A
six-line change spread across three services is not. Beside the tier, an estimate in minutes, and
the handful of flags a reviewer must know before approving: a migration, no tests, a credential in
an added line, the team's own sensitive areas.

The rating is deterministic. No model, no history, no guesses about what your directories mean, and
the Explain button on every card shows which rule fired. A model may propose extra flags, shown as
suggested with a sentence each. It may never set the tier.

## One message, edited in place

A pull request gets one Slack message. Every later event, a check finishing, a review landing, a
push, edits that message. Nothing is re-sent. The message carries a rail with four stops, Ready,
Checks, Review, Merge, and one event moves one glyph:

```text
●●○○  Needs a reviewer · ▮▮▮▮ high · ~45 min · migration, no tests
●●◔○  Lee is reviewing
●●●○  Ready to merge
●●●●  Merged · sam · 2h 22m from ready to merged
```

When it merges, the message folds to that last line and the channel gets its space back. At fifty
a day, the channel can keep one board instead, a table edited in place, and the asks move to direct
messages.

## Agents are a different class of object

Pull requests opened by agent accounts are detected from the account, a bot actor type plus a
registry of known agent logins, and never from commit trailers or branch names. A person using an
AI editor is a person, and guessing otherwise only demotes their work.

An agent's pull request is held until it is ready and CI is green, collapsed into one rollup per
repository, and escalated to a human only when the review effort earns it. The morning's eleven
become one line until one of them is worth someone's time.

## Agents are users too

The same review state the card shows is exposed over MCP, so Claude Code or Cursor can ask what is
blocking and who knows the code, instead of guessing from a diff:

```text
> what's blocking my PRs, and who should I ask?

pullpulse · list_review_queue (author: you)
  #4127  Split ledger writes out of the actor
         ●●◔○  Lee is reviewing · 2 of 2 approvals needed
```

Eight tools, all but one read-only. Tokens are minted per person from Slack.

## What it costs a team

Routing, the message, reminders, escalation and digests run on every plan, including the free one.
What a plan decides is model spend, MCP, and how many repositories and linked reviewers a workspace
may hold. A workspace that stops paying gets a quieter product, never a broken one.

Add it to Slack, choose the repositories, and the first card posts when the next pull request is
ready and green. There is a fourteen-day trial with no card, and it becomes the free tier on its own.