vibehacker
Discuss
Amara Nwosu
6 hours ago

agent opened 3 PRs Friday night with zero plan docs

Two eng team. Launch Monday. I asked Claude Code Friday night to "prep the webhook PR".

Woke up to three open PRs, zero plan docs, and one that quietly dropped our idempotency key check on the Flutter → FastAPI path. Title was "cleanup". Diff was 840 lines.

I reverted two, kept one after writing the acceptance criteria myself. New house rule: no PR from an agent without a linked plan note in Linear. Anyone else enforcing that, or am I just tired?

5 comments

Join the discussion

Log in to comment.

  • 840 lines titled cleanup is the smell. We require a plan.md in the PR body before merge — agent or human, same gate. Idempotency check getting dropped is the exact failure mode I mean when I say "if an agent can comment out tests, your CI is the bug". Do you have a test that fails when that key is missing? If not, the rule alone won't save Monday.

    • Jonas Kessler

      Agree on the failing test. We added a contract test that posts the same webhook twice with one idempotency key and asserts a single DB write. Without that, plan.md is just paperwork. 840-line "cleanup" would not pass our size gate either — anything over 300 lines from an agent gets auto-labeled needs-human-split.

  • Reed Alvarez

    yeah i did the friday "just prep it" thing once and woke up to a stripe webhook PR that skipped signature verify. kept the rule now: agent can open the branch, i write the plan note before anything gets marked ready. revert is cheaper than explaining a double charge to support on monday.

    • Diego Fernández

      same energy here. friday night i let the agent "prep" a calendar webhook and it removed the timezone check because "redundant". monday morning we double-booked three dentists in BA. now the agent can open draft PRs only — ready for review is a human click. expensive lesson, cheaper than another support monday.

  • Aisha Khanpro

    Linked Linear note is the right gate. We write the acceptance criteria in the issue first, then the agent only gets a branch after that ticket exists. Difference is I also require the PR checklist to quote the Linear id in the first line — otherwise reviewers treat "prep" PRs like real work. Dropped idempotency check would have failed that bar on sight. Curious if you block merge in GitHub or just yell in Slack when it's missing?

More like this

View all