Turn a Jira Ticket Into a Working PR
Paste the ticket. Claude reads the codebase, asks two clarifying questions, proposes a plan and writes the code, so the ticket-to-PR gap shrinks.
how it works
01 / 06
You have a ticket.
Acceptance criteria, a few links, a screenshot. Standard fare.
02 / 06
You paste it to Claude with a pointer to the right folder.
One ticket, one folder hint. That's the whole input.
03 / 06
Claude reads the relevant code.
The folder you pointed at, plus whatever it pulls in.
04 / 06
Claude proposes a plan, asks two questions.
Files it'll change, the approach, the assumptions. Then it stops and waits.
05 / 06
You say go. Claude writes the code.
Implementation, tests, the boring parts.
06 / 06
You review, you push.
The diff is small enough to actually read. PR open.
The prompt
Paste the full ticket text. Don't summarize it.
Click a violet field and type your own details, then copy.
What you get back
Read the ticket and services/notifications/. Here's where I'd land.
Plan
The ticket asks for a "digest mode" toggle on email preferences so users get one daily summary instead of per-event emails. My read of the folder:
- The toggle goes on
UserPreferences(models/user-preferences.ts). New boolean, defaults tofalse. Migration needed. - The send path forks in
services/notifications/dispatch.ts:42. If digest mode is on, instead of sending immediately, queue into a newnotification_queuetable. A daily worker drains the queue and sends one email per user. - UI toggle goes in
app/settings/notifications/page.tsx. Existing pattern, straightforward. - Tests: unit on the dispatch fork, integration for the worker draining a sample queue.
Two assumptions I'd flag
- The ticket says "daily" but doesn't say when. I'd default to the user's timezone at 8am local. Push back if that's wrong.
- I'm assuming we don't need to backfill: users who toggle on get the digest starting tomorrow, not for events that already happened. Acceptance criteria didn't mention backfill, so I'm calling it out of scope.
Two questions before I start
- Is there an existing job runner I should plug the daily worker into, or do I scaffold a new cron? I see
lib/jobs/but it looks unused. - If a user has digest mode on and zero events that day, do we send an empty email, skip, or send "nothing happened today"? My instinct is skip but it's a product call.
I won't touch code until you answer those.
Variations
Same shape, small twists.
Click a violet field and type your own details, then copy.
Click a violet field and type your own details, then copy.
Click a violet field and type your own details, then copy.
Tips and gotchas
Point it at the right folder. Claude is good at finding related files once it's started, less good at guessing which corner of a monorepo to start in.
Tell it to plan before coding. Default behavior is to start writing immediately. The "stop and wait" instruction is what saves you from a 400-line diff that solved the wrong problem.
If the ticket is vague, ask Claude to list assumptions. A list of assumptions is much easier to correct than a half-built feature based on the wrong ones.
Ready to try?
Click a violet field and type your own details, then copy.
New guides, when they ship
One email, roughly weekly. CLAUDE.md templates, workflows I actually use, and the cut-for-length stuff that does not make the public guides. One-click unsubscribe.
Or read Product Field Notes, the Substack
