How to Build an Agentic Coding Workflow with Claude Code and Jira: A Full Walkthrough
Learn the complete agentic coding workflow: ideation, PRD creation, Jira ticket generation, PIV loop implementation, and system evolution using Claude Code.
The Case for Automating Your Entire Dev Lifecycle
Software teams spend a surprising amount of time on work that isn’t writing code. Translating feature ideas into requirements, breaking requirements into tickets, tracking what’s been done, verifying what actually works — these tasks consume hours every sprint. An agentic coding workflow compresses that overhead dramatically.
This guide walks through a complete agentic coding workflow using Claude Code and Jira: starting from raw ideation, moving through PRD creation, generating structured Jira tickets, implementing a PIV (Plan-Implement-Verify) loop, and then feeding results back into the system so it improves over time. Whether you’re a solo developer or leading a product team, this workflow is designed to reduce busywork and keep development moving.
Understanding the Agentic Coding Workflow
Traditional development moves linearly: someone writes a spec, a PM creates tickets, developers pick them up, QA tests the output. Each handoff introduces delay and context loss.
An agentic coding workflow replaces those handoffs with a continuous loop where an AI agent handles coordination tasks — drafting, organizing, implementing, testing — while humans stay involved at the decision points that actually matter.
Claude Code is Anthropic’s CLI-based AI coding tool. It operates at the terminal level, reads your codebase, runs commands, and can act on multi-step instructions. Paired with Jira’s API, it becomes the backbone of a self-coordinating development system.
Here’s what the full workflow looks like at a glance:
- Ideation — turn vague feature ideas into structured input
- PRD creation — draft a product requirements document from that input
- Jira ticket generation — auto-generate epics, stories, and tasks
- PIV loop — Plan, Implement, Verify across each ticket
- System evolution — feed outcomes back to improve future cycles
Remy is new. The platform isn't.
Remy is the latest expression of years of platform work. Not a hastily wrapped LLM.
Prerequisites and Setup
Before building this workflow, make sure you have the following in place.
Tools Required
- Claude Code installed and authenticated (
npm install -g @anthropic-ai/claude-code, thenclaude login) - A Jira Cloud workspace with API access enabled
- A Jira API token (generated from your Atlassian account settings)
- Basic familiarity with terminal commands
- A Git repository for your project
Environment Configuration
Set your Jira credentials as environment variables so Claude Code can reference them securely:
export JIRA_BASE_URL="https://yourcompany.atlassian.net"
export JIRA_EMAIL="you@yourcompany.com"
export JIRA_API_TOKEN="your_token_here"
export JIRA_PROJECT_KEY="YOUR_PROJECT"
You can add these to your .bashrc or .zshrc to persist across sessions.
A CLAUDE.md File
Claude Code reads a CLAUDE.md file at the root of your project for persistent instructions. Create one now — you’ll populate it throughout this guide. It becomes the memory layer for your agent across sessions.
touch CLAUDE.md
Step 1: Structured Ideation
Good output starts with good input. Most feature ideas begin as vague notes: “we should let users export to CSV” or “the dashboard loads too slowly.” Claude Code can help you formalize these into something actionable, but you need to give it structure to work from.
Running an Ideation Session
Open your project in Claude Code (claude) and use a prompt like this:
I have a rough feature idea. Help me think through it systematically before we write any requirements.
Feature idea: [your raw idea here]
Ask me clarifying questions one at a time until you have enough information to draft a complete product requirements document. Cover: user problem, success metrics, scope boundaries, technical constraints, and dependencies.
Claude Code will ask follow-up questions. Answer them concisely. This is not a brainstorming session — it’s structured elicitation. Once Claude signals it has enough, move to the next step.
Capture the Session Context
After ideation wraps, ask Claude to summarize what was captured:
Summarize the ideation session as structured bullet points: problem statement, target users, success metrics, out-of-scope items, and technical notes. I'll use this as input for the PRD.
Copy that summary into a file like docs/ideation-notes.md. You’ll reference it in the next step.
Step 2: Creating a Product Requirements Document
With the ideation summary in hand, Claude Code can draft a PRD that’s specific enough to generate real tickets from.
PRD Prompt
Using the ideation notes in docs/ideation-notes.md, write a complete Product Requirements Document.
Structure it with these sections:
- Overview and Problem Statement
- User Stories (as "As a [user], I want [action] so that [outcome]")
- Functional Requirements (numbered)
- Non-Functional Requirements
- Acceptance Criteria per requirement
- Out of Scope
- Open Questions
Save the document to docs/PRD-[feature-name].md
Claude Code will read the ideation notes, generate the PRD, and write it to disk. Review it. Edit anything that’s wrong or missing. This is a human checkpoint — don’t skip it.
PRD Quality Checks
Before moving on, verify:
- Every user story has a corresponding acceptance criterion
- Non-functional requirements (performance, accessibility, security) are explicit, not assumed
- The “Out of Scope” section is honest — scope creep starts here
- Open questions are flagged rather than silently assumed away
Coding agents automate the 5%. Remy runs the 95%.
The bottleneck was never typing the code. It was knowing what to build.
A weak PRD produces weak tickets. Spend 10 minutes here to save hours later.
Step 3: Generating Jira Tickets from the PRD
This step uses Claude Code to read the PRD and call the Jira REST API to create structured epics, stories, and subtasks.
Create a Ticket Generation Script
Ask Claude Code to write the script:
Write a Python script that:
1. Reads docs/PRD-[feature-name].md
2. Parses the functional requirements and user stories
3. Creates one Epic in Jira for the feature
4. Creates one Story per user story, linked to the Epic
5. Creates Subtasks under each Story based on the acceptance criteria
Use the Jira REST API v3. Auth via environment variables JIRA_BASE_URL, JIRA_EMAIL, JIRA_API_TOKEN, JIRA_PROJECT_KEY.
Save the script to scripts/create-jira-tickets.py
Review the generated script. Claude Code will typically produce accurate Jira API calls, but verify the field mappings match your Jira project’s custom field configuration.
Run the Script
python scripts/create-jira-tickets.py
If your project uses custom fields (priority, story points, sprint assignment), prompt Claude Code to add those parameters before running. A typical output for a medium-sized feature generates:
- 1 Epic
- 4–8 Stories
- 2–5 Subtasks per Story
Capture the Ticket IDs
The script should print or log the created ticket IDs. Store them in a file like docs/ticket-map.json. This becomes the coordination layer for the PIV loop.
Step 4: Implementing the PIV Loop
The PIV (Plan-Implement-Verify) loop is the core of agentic development. Instead of working on tickets ad hoc, Claude Code cycles through each ticket systematically: planning what needs to happen, implementing the change, and verifying the result before marking the ticket done.
The Loop Structure
For each Jira ticket, the loop looks like this:
- Plan — Claude Code reads the ticket, reviews the relevant codebase sections, and produces a written plan before touching any files
- Implement — Claude Code makes the changes described in the plan
- Verify — Claude Code runs tests, checks acceptance criteria, and reports results
Setting Up the Loop
Create a CLAUDE.md entry that instructs the agent how to behave in each phase:
## PIV Loop Protocol
When working on a Jira ticket:
### Plan Phase
- Read the ticket description and acceptance criteria fully
- Identify all files that will need changes
- List each change as a numbered item with a rationale
- Do NOT make any code changes during this phase
- Output the plan and wait for approval
### Implement Phase
- Execute the plan item by item
- After each file change, confirm it matches the plan
- If you encounter something unexpected, stop and report it
### Verify Phase
- Run the relevant test suite
- For each acceptance criterion, explicitly confirm whether it passes or fails
- If any criterion fails, flag it and do not mark the ticket complete
- Update the Jira ticket status via API when all criteria pass
Running a PIV Cycle
Start a cycle with:
Load the next unstarted ticket from docs/ticket-map.json and begin the PIV loop. Start with the Plan phase and show me the plan before proceeding.
One coffee. One working app.
You bring the idea. Remy manages the project.
Claude Code will pull the ticket data, analyze the codebase, and produce a structured plan. Read it. If something looks wrong, correct it now — implementation is much cheaper to redirect at the plan stage than after files are changed.
Once you approve, tell it to proceed to the Implement phase, then Verify.
Handling Failures in the Verify Phase
When a verification fails, Claude Code should not silently fix and re-run. Set this expectation explicitly in CLAUDE.md:
## Verification Failure Protocol
If a test or acceptance criterion fails during the Verify phase:
1. Stop immediately
2. Report which criterion failed and why
3. Propose a fix as a plan item
4. Wait for human approval before implementing the fix
This prevents the agent from spinning in silent failure loops, which is one of the most common issues in agentic coding setups.
Step 5: Updating Jira Automatically
Claude Code can close the loop by updating Jira ticket statuses as work progresses. This keeps your board accurate without manual drag-and-drop.
Status Transition via API
Add this to your ticket generation script or create a separate scripts/update-ticket-status.py:
import requests
import os
def transition_ticket(ticket_key, transition_name):
base_url = os.environ['JIRA_BASE_URL']
auth = (os.environ['JIRA_EMAIL'], os.environ['JIRA_API_TOKEN'])
# Get available transitions
r = requests.get(
f"{base_url}/rest/api/3/issue/{ticket_key}/transitions",
auth=auth
)
transitions = r.json()['transitions']
# Find matching transition
target = next(t for t in transitions if t['name'].lower() == transition_name.lower())
# Apply it
requests.post(
f"{base_url}/rest/api/3/issue/{ticket_key}/transitions",
json={"transition": {"id": target['id']}},
auth=auth
)
Instruct Claude Code to call this function at the end of each successful Verify phase. Tickets move from “In Progress” to “Done” automatically.
Adding Comments to Tickets
For traceability, have Claude Code post a summary comment on each ticket after completing the Verify phase:
After each successful PIV cycle, post a comment to the Jira ticket with:
- A brief description of what was changed
- Which files were modified
- Test results summary
- Any edge cases noted during implementation
This creates an audit trail directly in Jira without requiring anyone to dig through Git history.
Step 6: System Evolution — Making the Workflow Learn
A workflow that stays static gets stale. The final layer is feeding outcomes back into the system so future cycles improve.
Retrospective Prompts
At the end of each feature’s ticket cycle, run:
Review all PIV cycles completed for this feature. Identify:
1. Any plan items that were consistently wrong or needed revision
2. Acceptance criteria that were ambiguous or incomplete
3. Test coverage gaps discovered during verify phases
4. Improvements to add to CLAUDE.md for future features
Claude Code will analyze the session history and surface patterns. Take its suggestions seriously — recurring plan failures often indicate your PRD template needs a specific section added.
Updating CLAUDE.md as a Living Document
Your CLAUDE.md file is the agent’s operating manual. After each feature, update it with lessons learned:
- If Claude Code kept misidentifying which files to change, add more explicit file location instructions
- If verification kept catching the same type of bug, add a specific check to the Verify phase protocol
- If PRDs kept missing a certain requirement type, add it to the ideation prompt template
Over time, CLAUDE.md becomes a compressed history of your team’s development patterns. New team members (or new Claude Code sessions) inherit all of that context immediately.
Tracking Metrics
Keep a lightweight docs/workflow-metrics.md that logs per-cycle data:
| Feature | Tickets Generated | PIV Cycles | Plan Revisions | Verify Failures | Time to Done |
|---|---|---|---|---|---|
| CSV Export | 12 | 12 | 3 | 2 | 4 hours |
This gives you honest data on where the workflow loses time, so you can fix the right thing.
Where MindStudio Fits in This Stack
Claude Code handles the coding side of the agentic workflow well. But the surrounding processes — product planning, stakeholder updates, cross-tool orchestration — often need their own automation layer.
This is where MindStudio adds leverage. Using MindStudio’s Agent Skills Plugin (@mindstudio-ai/agent), you can extend Claude Code’s reach into systems it doesn’t natively connect to. The plugin exposes over 120 typed capabilities as simple method calls — things like agent.sendEmail(), agent.searchGoogle(), or agent.runWorkflow().
For this workflow, a practical use case is automating stakeholder communication. When Claude Code completes a PIV cycle and closes a ticket, you could trigger a MindStudio workflow that:
- Sends a Slack message to the product channel with the change summary
- Updates a Notion page with the latest feature status
- Logs completion in a Google Sheet for sprint reporting
That kind of cross-tool coordination usually requires Zapier or a custom webhook setup. With the Agent Skills Plugin, Claude Code can trigger it directly as part of its verify phase, keeping everything in one agentic loop.
You can try MindStudio free at mindstudio.ai — building the kind of lightweight coordination workflow described above typically takes under 30 minutes using the visual builder.
If you’re exploring how AI agents handle multi-step automation, MindStudio’s approach of combining reasoning with direct tool calls maps closely to the PIV loop structure covered here.
Common Mistakes to Avoid
Skipping the Human Checkpoints
The workflow is designed with approval gates at the Plan phase for a reason. Removing them to speed things up tends to result in Claude Code implementing the wrong thing confidently. Slower loops with human review beat fast loops that require rollbacks.
Vague Acceptance Criteria
If your acceptance criteria say “the feature should work correctly,” the Verify phase has nothing to check against. Criteria need to be testable: “Given a logged-in user with 50+ records, the CSV export completes in under 3 seconds and includes all columns.”
Ignoring Verify Failures
It’s tempting to override a failed verification when you’re close to done. Don’t. Each ignored failure compounds — they show up later as bugs that are much harder to trace.
Letting CLAUDE.md Rot
The value of CLAUDE.md degrades if you stop updating it. Treat it like a codebase — it needs maintenance, not just initial setup.
Frequently Asked Questions
What is a PIV loop in agentic coding?
Built like a system. Not vibe-coded.
Remy manages the project — every layer architected, not stitched together at the last second.
PIV stands for Plan, Implement, Verify. It’s a structured cycle that an AI coding agent runs for each task: first producing a written plan (without touching any files), then executing that plan, then checking the results against defined acceptance criteria. The separation of phases keeps the agent from making changes before it fully understands the scope, and ensures each change is validated before moving to the next.
Can Claude Code interact with the Jira API directly?
Yes. Claude Code can write and execute Python or JavaScript scripts that call the Jira REST API. With your API token stored as an environment variable, it can create tickets, transition statuses, add comments, and query sprint data. You don’t need a plugin or middleware — standard HTTP calls work fine.
How do I prevent Claude Code from making unwanted changes?
The primary control is your CLAUDE.md protocol. Explicitly instruct it to stop and report rather than self-correct when something unexpected occurs. Also use the Plan phase as a gate — review every plan before approving implementation. For sensitive codebases, you can restrict Claude Code’s file access using its --allowed-paths flag.
How detailed should the PRD be before generating tickets?
Detailed enough that each user story has at least two concrete acceptance criteria, and every functional requirement has a clear definition of done. A PRD with 8 vague requirements will generate 8 vague tickets and poor implementation. A PRD with 8 well-specified requirements with testable criteria generates a reliable work queue.
What’s the difference between this workflow and just using GitHub Copilot?
GitHub Copilot is a code completion tool — it suggests the next line or block as you type. The agentic coding workflow described here is end-to-end: it starts before a single line of code exists, handles project planning, creates structured work items in Jira, and executes and verifies multi-file changes autonomously. Claude Code operates at the session and project level, not the autocomplete level.
Is this workflow suitable for teams or just solo developers?
Both. For solo developers, it eliminates the overhead of project management entirely. For teams, it standardizes how requirements translate to tickets, reduces the back-and-forth between PM and engineering, and creates a consistent implementation log in Jira. The main team-specific consideration is deciding who reviews and approves the Plan phase — that approval step should have a clear owner.
Key Takeaways
- An agentic coding workflow with Claude Code and Jira compresses ideation, planning, implementation, and verification into a single continuous loop.
- The PIV loop (Plan-Implement-Verify) is the core mechanic — it keeps the agent accountable at each stage and prevents silent failure spirals.
- Your
CLAUDE.mdfile is the system’s memory and operating manual — maintaining it is as important as the initial setup. - Human checkpoints at the Plan phase and PRD review stage are features, not friction.
- MindStudio’s Agent Skills Plugin extends this workflow into surrounding tools (Slack, Notion, email) without requiring separate automation infrastructure.
Start small: pick one upcoming feature, run it through the full ideation-to-ticket cycle, and run three PIV loops before evaluating. The workflow compounds — each iteration makes the next one faster.