A Claude Code plugin that reads Jira Cloud Stories and generates structured, professional test cases — covering positive, negative, edge case, and boundary value scenarios — using QE best practices.
Works with the Claude Code CLI and the Claude Code VS Code extension.
Companion to ado-testcraft for Azure DevOps.
Provide a Jira issue key or URL. The plugin fetches the Story from Jira Cloud and outputs a ready-to-use test case table with:
- Test case title, type, preconditions, steps, expected result, and priority
- Coverage across positive, negative, edge case, and boundary value scenarios
- A summary with automation priority suggestions
Description-first: Most Jira teams put steps, expected results, and acceptance criteria in the Description field. jira-testcraft treats Description as the primary requirements source — no separate Acceptance Criteria field is required.
- Claude Code — CLI or VS Code extension
- Node.js v18+
- Jira Cloud account with Browse Projects and View Issues permissions
No API tokens or admin configuration required — authentication uses OAuth 2.0.
Windows:
.\setup.ps1macOS / Linux:
chmod +x setup.sh && ./setup.shclaude plugin marketplace add dgambhir01/jira-testcraft
claude plugin install jira-testcraft
Restart Claude Code. On first start a browser window opens for Atlassian OAuth authorisation — sign in and click Allow. This happens once; tokens are cached automatically after that.
Then:
/jira-testcraft:generate PROJ-123
powershell -ExecutionPolicy Bypass -File .\scripts\test-jira-connection.ps1bash scripts/test-jira-connection.sh| Doc | Contents |
|---|---|
| docs/AUTH.md | OAuth flow, environment variables, token cache |
| docs/TROUBLESHOOTING.md | Common errors and fixes |
| SECURITY.md | Read-only access, credentials, reporting |
| Check | Behaviour |
|---|---|
| Invalid input format | Stops before calling Jira |
| Issue doesn't exist | Stops with permission hint |
| Wrong type (Bug, Task, Epic, etc.) | Stops — Stories only in v1 |
| Done / Closed / Resolved | Warns and asks before continuing |
| Empty Story | Stops — nothing to generate from |
| Sparse Description | Warns; asks to confirm |
| Rich Description (steps, Expected, Gherkin) | Proceeds normally |
Given a login Story with Step/Expected pairs in Description:
| # | Test Case Title | Type | Priority |
|---|---|---|---|
| 1 | Login with valid credentials | ✅ Positive | High |
| 2 | Login with wrong password | ❌ Negative | High |
| 3 | Submit with empty email | 🔲 Edge Case | Medium |
| 4 | Account lockout after 5 failures | 📐 Boundary Value | High |
See tests/fixtures/sample-story.md for an offline fixture.
claude --plugin-dir ./jira-testcraft
/reload-plugins
/jira-testcraft:generate PROJ-1/jira-testcraft:coverage-check— gap analysis against existing test cases/jira-testcraft:push-testcases— write generated test cases back to Jira/Xray- Gherkin / BDD output format
- Epic and Feature support