agentleFS
jamesyang124jamesyang124/agent-skills/skills/sdd-qa-to-ticket/SKILL.md

sdd-qa-to-ticket

Skill2 starsChanged 15 days agoMITView on GitHub

Reads local SDD artifacts (from spec-kit, openspec, or similar tools) and derives BDD QA scenarios, then creates QA sub-tickets under the existing root Jira ticket from Phase 7. Use when handing off QA after a PR is created in the SDD workflow.

  • Reads credentials

The file

Show its rules and text

We split this skill into the rules it gives an agent

23 rules. About 0 are common, 17 are distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈17

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    All QA sub-tickets must follow the BDD template at: references/qa-ticket-template.md (relative to this skill's folder)

    line 22
  2. Distinctive:

    All optional — anything not passed is asked for.

    line 27
  3. Distinctive:

    Before using this skill, ensure:

    line 42
  4. Distinctive:

    If the MCP server is not configured, guide the user to run:

    line 52
  5. Distinctive:

    Before proceeding, confirm with the user:

    line 75
  6. Distinctive:

    If the user hasn't explicitly confirmed readiness, surface this: "This skill creates QA tickets as a formal hand-off to SDET.

    line 79
  7. Distinctive:

    If no files are found, ask the user for the {configured SDD tool} feature directory path.

    line 89
  8. Distinctive:

    Read all found files in full before proceeding.

    line 90
  9. Very specific:

    If not provided, ask: "What is the root Jira ticket key for this feature?

    line 95
  10. Distinctive:

    Read all SDD artifacts and derive scenarios grouped by type:

    line 100
  11. Distinctive:

    Do not write test steps — only behavioral outcomes.

    line 110
  12. Distinctive:

    If scenarios exceed 10, group related ones and flag to the RD for scope discussion.

    line 116
  13. Distinctive:

    Before creating any Jira tickets, present all derived scenarios to the RD:

    line 120
  14. Very specific:

    After RD confirmation, create one sub-ticket per scenario using mcp__atlassian__jira_create_issue:

    line 155
  15. Very specific:

    Description: Follow the BDD template at references/qa-ticket-template.md

    line 160
  16. Distinctive:

    Do not include PR URL or Confluence page links in sub-tickets — those belong on the root ticket only.

    line 162
  17. Very specific:

    After creating all sub-tickets, post a comment on the root ticket using mcp__atlassian__jira_add_comment:

    line 166
  18. Distinctive:

    After all tickets are created:

    line 186
  19. Distinctive:

    Before presenting scenarios to the RD, verify each one:

    line 207
  20. Distinctive:

    If a scenario fails this check, either fix it or drop it.

    line 215
  21. Very specific:

    No test steps: If you find yourself writing "Step 1: navigate to...", that's a test step.

    line 253
  22. Distinctive:

    Sub-tickets are lean: All traceability (PR link, Confluence link, spec version) goes on the root ticket comment.

    line 254
  23. Distinctive:

    Confirm before creating: Always present scenarios for RD review before touching Jira.

    line 255

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

SDD QA to Ticket

Install this skill

npx skills add jamesyang124/agent-skills --skill sdd-qa-to-ticket -g

This skill bridges the Implement and QA phases of the SDD workflow. It reads all SDD artifacts in the feature folder, derives end-to-end BDD scenarios, presents them to the RD for review, then creates QA sub-tickets under the existing root Jira ticket — no new root ticket is created.

Key principle: Sub-tickets describe what to verify (Given/When/Then), not how. SDET owns the testing method, order, and approach entirely.

QA Ticket Template (MANDATORY)

All QA sub-tickets must follow the BDD template at: references/qa-ticket-template.md (relative to this skill's folder)

Arguments

All optional — anything not passed is asked for.

Token shapeInterpreted as
matches [A-Z]+-\d+root Jira ticket key from Phase 7 — the parent for the QA sub-tickets
anything elseSDD feature directory holding the artifacts to read

The root ticket key is required to proceed — sub-tickets cannot be created without a parent.


Prerequisites

IMPORTANT: This skill requires the Atlassian MCP Server to be installed and configured.

Before using this skill, ensure:

  1. ✅ Atlassian MCP server is installed (see the install-atlassian-mcp skill)
  2. ✅ Credentials are configured in ~/.env.mcp-atlassian
  3. ✅ A PR is open (this is the prerequisite that proves implementation is committed and reviewable)
  4. ✅ The existing root Jira ticket key from Phase 7 is available (e.g. PROJ-101)
  5. ✅ The following MCP tools are available:
    • mcp__atlassian__jira_get_issue
    • mcp__atlassian__jira_create_issue
    • mcp__atlassian__jira_add_comment

If the MCP server is not configured, guide the user to run:

install-atlassian-mcp skill (run it in your agent)

Input Sources (Tiered by Priority)

PrioritySourceContribution
Coreprd-source.mdBusiness intent and user-facing requirements → business-perspective BDD scenarios
Corespec.mdRD's technical interpretation → scenario context and constraints
Corerequirements.mdTechnical acceptance criteria → primary BDD scenarios
Coreplan.mdTechnical decisions, alternatives rejected → edge cases
ExtendedAny other *.md in the feature folderADRs, impl notes, discovery notes → richer edge cases
RequiredRoot Jira ticket key (from Phase 7)Parent for QA sub-tickets
OptionalConfluence design review page IDVersion stamp reference

Scan strategy: Read all *.md files found in the SDD feature directory. Skip project-level files (README.md, CHANGELOG.md, CONTRIBUTING.md). Implementation notes written during coding (edge cases, discovered constraints, API quirks) are especially valuable — they often surface the best QA scenarios that the original spec didn't anticipate.

Process

Step 1: Confirm PR Prerequisite

Before proceeding, confirm with the user:

  • Is a PR open for this feature?
  • Is the implementation ready for QA (not just "PR exists", but the RD's deliberate judgment)?

If the user hasn't explicitly confirmed readiness, surface this: "This skill creates QA tickets as a formal hand-off to SDET. Are you confident the implementation is ready for testing?"

Step 2: Locate SDD Artifacts

Before proceeding: Check docs/agents/sdd.md for the SDD tool and use its name in artifact location hints and user-facing messages. Fall back to spec-kit if absent.

  • Scan the current working directory (and one level up) for *.md files.
  • Skip: README.md, CHANGELOG.md, CONTRIBUTING.md.
  • Prioritize reading: prd-source.md, spec.md, requirements.md, plan.md first.
  • Then read any remaining *.md files (impl notes, ADRs, etc.).
  • If no files are found, ask the user for the {configured SDD tool} feature directory path.
  • Read all found files in full before proceeding.

Step 3: Confirm Root Ticket

  • The user should provide the root Jira ticket key (e.g. PROJ-101) from Phase 7.
  • If not provided, ask: "What is the root Jira ticket key for this feature? (created in Phase 7 with /tech-plan-to-ticket)"
  • Retrieve the root ticket with mcp__atlassian__jira_get_issue to confirm it exists and get its project key.

Step 4: Derive BDD Scenarios

Read all SDD artifacts and derive scenarios grouped by type:

Happy paths — the primary success flows described in requirements.md and spec.md. Edge cases — boundary conditions, alternative inputs, unexpected states from plan.md and impl notes. Error paths — failure modes, timeouts, invalid inputs, degraded state from spec.md and impl notes. Non-functional — performance, security, data integrity requirements from requirements.md.

Derivation rules:

  • Each scenario maps to exactly one BDD triple (Given/When/Then).
  • Scenarios must be observable (the "Then" must be something SDET can verify without access to internals).
  • Do not write test steps — only behavioral outcomes.
  • Source every scenario to a specific file and section so the RD can verify the derivation.

Scenario count guidance:

  • Minimum: 3 scenarios (at least one happy path, one edge case, one error path).
  • Maximum: ~10 scenarios per feature (more than 10 suggests the feature scope needs scoping).
  • If scenarios exceed 10, group related ones and flag to the RD for scope discussion.

Step 5: Present Proposed Scenarios for Review

Before creating any Jira tickets, present all derived scenarios to the RD:

Proposed QA scenarios for [Feature Name]
Derived from: spec.md, requirements.md, plan.md, [other files found]

Happy Paths:
1. [SCENARIO] [Short name]
   Given [precondition]
   When [action]
   Then [outcome]
   Source: requirements.md §[section]

Edge Cases:
2. [SCENARIO] [Short name]
   Given [precondition]
   When [action]
   Then [outcome]
   Source: plan.md §[section]

Error Paths:
3. [SCENARIO] [Short name]
   Given [precondition]
   When [action]
   Then [outcome]
   Source: spec.md §[section]

Root ticket: [PROJ-101]
Sub-tickets will be created as: [QA][SERVICE] [Scenario name]

Shall I create these as Jira sub-tickets? (Type y to proceed, n/skip to cancel, or describe any changes to make first.)

Step 6: Create QA Sub-Tickets in Jira

After RD confirmation, create one sub-ticket per scenario using mcp__atlassian__jira_create_issue:

  • Issue type: Sub-task
  • Parent: Root ticket key from Step 3
  • Summary: [QA][SERVICE] [Short scenario name]
  • Description: Follow the BDD template at references/qa-ticket-template.md

Do not include PR URL or Confluence page links in sub-tickets — those belong on the root ticket only.

Step 7: Update Root Ticket with QA Hand-Off Note

After creating all sub-tickets, post a comment on the root ticket using mcp__atlassian__jira_add_comment:

## QA Verification

PR: [PR URL — ask user if not known]
Source: [Confluence design review URL — ask user if not known, or mark as N/A]
Spec version: [from local files date or Confluence page version]

QA sub-tickets added:
- [PROJ-104] [Short scenario name]
- [PROJ-105] [Short scenario name]
- [PROJ-106] [Short scenario name]

Scenarios derived from: spec.md, requirements.md, plan.md, [other files].
SDET owns testing approach — sub-tickets define WHAT to verify, not HOW.

Step 8: Report

After all tickets are created:

✅ QA hand-off complete

Sub-tickets created under [PROJ-101]:
- [PROJ-104]: [QA][SERVICE] [Scenario 1]
- [PROJ-105]: [QA][SERVICE] [Scenario 2]
- [PROJ-106]: [QA][SERVICE] [Scenario 3]

Root ticket [PROJ-101] updated with QA hand-off note.

Next steps:
  1. Share the ticket keys with your SDET.
  2. SDET owns execution order and testing method.
  3. SDET closes sub-tickets as scenarios are verified.
  4. When all QA sub-tickets are closed, the feature is ready for release.

Scenario Quality Checklist

Before presenting scenarios to the RD, verify each one:

  • "Then" describes an observable outcome (not an internal state)
  • Scenario is independent of other scenarios (can run in isolation)
  • No test steps — only Given/When/Then
  • "Given" describes a realistic precondition (not test setup steps)
  • Scenario maps to at least one requirement or spec section

If a scenario fails this check, either fix it or drop it. Do not create low-quality tickets.

Handling Missing Files

ScenarioBehavior
requirements.md missingDerive primary scenarios from spec.md; warn that coverage may be incomplete.
spec.md missingProceed with requirements.md and plan.md; warn RD.
plan.md missingEdge cases may be thin; warn RD and proceed with what's available.
prd-source.md missingSkip business-perspective scenarios; proceed with technical files.
All files missingStop. Ask user to provide the {configured SDD tool} feature directory path.
Root ticket key not providedAsk user before proceeding — cannot create sub-tickets without a parent.

Workflow Integration

This skill sits at the Implement → QA boundary in the SDD workflow:

[/generate-pr-notes]
    PR created (phase exit condition for Phase 8)
         │
         ▼ (RD deliberate decision — not automatic)
[sdd-qa-to-ticket]  ← YOU ARE HERE
    Reads SDD *.md files → Derives BDD scenarios → Creates QA sub-tickets
         │
         ▼
[SDET execution]
    SDET claims sub-tickets → Executes in own order/method → Closes tickets when verified
         │
         ▼ (all QA sub-tickets closed)
[Release ready]

Tips for the Agent

  • RD judgment, not automation: This skill is triggered by the RD's deliberate decision. Surface the readiness question clearly — don't skip it.
  • prd-source.md is valuable: Business-perspective scenarios from the PO's original requirements often catch gaps that technical specs miss. Always read it if present.
  • Implementation notes are gold: Files like impl-notes.md, decisions.md, or any *.md written during coding often contain the best edge cases (API quirks, discovered constraints, timing issues). Prioritize these for edge case scenario derivation.
  • No test steps: If you find yourself writing "Step 1: navigate to...", that's a test step. Convert it to a Given/When/Then behavioral description.
  • Sub-tickets are lean: All traceability (PR link, Confluence link, spec version) goes on the root ticket comment. Sub-tickets contain only the BDD scenario and brief context.
  • Confirm before creating: Always present scenarios for RD review before touching Jira. The RD may want to add, remove, or reword scenarios.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.