◆ Vibe EngineeringSMIT · AI Agentic Engineering Urdu
Class 9 · 9.5

Autonomy in action: from Jira ticket to PR

The payoff. Claude Code takes two real tickets from description to merged code — curating a dataset, then building a polished Next.js NDA app — and problem-solves around roadblocks along the way.

🎯 Goal: ship a feature end to end⏱ Read: 18 min🧭 Type: live build

Everything is wired: Jira in, GitHub out, FeatureDev on the rails between them. Now we unleash it. In this page Claude Code takes two real tickets from description to merged code, almost untouched — and, just as valuably, we watch it hit a wall and problem-solve its way around it. This is the moment the whole week has been building toward.

01A meatier ticket: curate a dataset (PL-2)

Our first serious task is a one-off data-curation job. Pre-Legal needs a library of document templates to work from. There is a wonderful free source: Common Paper, a company that publishes standard legal agreements (a mutual NDA and more) as Markdown — exactly what LLMs love — under a permissive Creative Commons licence. In Jira we create PL-2 and give it a clear, human-level description:

“Create a dataset of legal document templates the system can later modify for the user. Browse the Common Paper GitHub repos, pull down the Markdown files into a templates directory, add a catalog.json describing each template, and include a licence file recognising the CC licence.”

Notice the style: high-level and human, the kind of thing a product owner might write. It leaves the how to Claude.

02Per-project setup & the re-auth ritual

One gotcha: MCP servers can be registered per project. If you installed Atlassian while in a different folder, add it again here, then /mcp → Re-authenticate (you will do this before basically every big task — Approve, Accept, done). Now the plain-English kickoff:

claude
Please carry out Jira issue PL-2 and raise a PR with your changes.

03Watch it problem-solve in real time

Off it goes: it fetches PL-2, reads what is needed, and starts pulling files with the GitHub tool. Then something remarkable happens.

The inflection point, live

Claude realises its first approach — pulling long files into its context one by one — is too slow and wasteful. So it stops, rethinks, and switches to a smarter method: run commands to download the files directly. It hit a roadblock, understood why, and engineered a better path around it — the kind of judgement that simply was not possible in earlier models.

The result: a templates/ directory full of Markdown agreements, a catalog.json describing them, and a license.txt — exactly what the ticket asked for. It even tried the GitHub command-line tool first, found it was not installed, and fell back to its MCP tool to open the PR. Adaptive, resourceful, autonomous.

and the Atlassian hang, right on cue

When Claude tried to mark PL-2 done in Jira, it hung — the auth had dropped again. The fix is now muscle memory: Esc, /mcp, Re-authenticate, then “please try marking the Jira issue complete again.” A calm retry is almost always the whole cure.

04Merge it — even without merge rights

With PL-2 marked done, we ask Claude to merge the PR and switch back to main. Interesting twist: our fine-grained token does not grant merge permission. Rather than give up, Claude works around it by merging locally and pushing to main — another route to the same outcome. Again: it understands the reason behind the problem and finds a rational solution.

05The real feature: a Next.js NDA app (PL-3)

Now the headline build. In Jira we create PL-3, described the way a customer would — deliberately a little loose, so Claude has room to make good calls:

“A web application to create a mutual NDA document for a user. The user enters key information in a form; the website displays the mutual NDA with that information filled in; the user can download the completed document locally.”

This time we invoke the plugin directly — no need to say “use FeatureDev”:

claude
feature-dev:feature-dev Please implement Jira issue PL-3 with a Next.js
application in a directory called frontend and raise a PR when done.

One line ties it all together: Jira (MCP) for the ticket, FeatureDev (plugin) for the process, GitHub (MCP) for the PR. True to its rails, FeatureDev pauses at the clarify stage and asks smart questions — filling exactly the gaps we left loose:

It asks…We choose
What download format for the NDA?PDF (its recommendation)
Single-step wizard or single-page form?Single page
How should the preview display?Side by side with the form
Simple prototype or styling polish?Styling polish

Then it builds — scaffolds the Next.js app, writes the components, and opens a PR. Run it with cd frontend && npm run dev and there it is: a polished mutual-NDA creator. Fill the form and the preview updates live as you type; press Download PDF and out comes a clean, correctly-filled document with a cover sheet and the CC attribution. Zero-shot, from a ticket.

06“What did you actually test?”

It works — but did it follow every stage? We ask it plainly: “Based on the process you followed, what quality review or testing have you done?” Honest answer: it skipped the quality-review stage — no automated tests, no code-review agents, only a build check. Only because we asked did we learn a stage was missed.

Send it back to finish the job

We tell it: “Yes to all three — add extensive automated and manual tests, and have the code-reviewer agents review.” It works for ~10 minutes, writes 8,000+ lines including a real test suite, survives an auto-compact of its own context, and lands 76 tests passing across 5 suites. Then we re-authenticate one last time and have it merge the PR, push to main, and mark PL-3 done.

The pattern to internalise

Autonomy does not mean “walk away.” It means Claude does the heavy lifting while you guide, question, and verify at each stage. Great questions from you (“what did you test?”) catch the gaps a staged process can still leave.

✓ Key takeaways

  • Write tickets at a human, high level; let Claude decide the how.
  • Claude can problem-solve mid-task — switching from a slow approach to a better one, or routing around missing merge rights by merging locally.
  • Invoke a plugin directly with feature-dev:feature-dev … — one line spans Jira, the build process, and the GitHub PR.
  • FeatureDev pauses to ask clarifying questions; your answers shape the build.
  • Verify every stage: it can skip quality review and only admit it when asked — then a nudge produces a 76-test suite.