# Nfr Jira Epic

> Create a Jira Epic with one story per applicable NFR for tracking NFR compliance as sprint work

- Skill: `majiayu000/nfr-jira-epic` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/nfr-jira-epic`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/nfr-jira-epic/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/nfr-jira-epic

---


# /nfr-jira-epic

Create a Jira Epic with one story per applicable NFR, turning the NFR compliance table into trackable sprint work. Each story includes the requirement, evidence guidance, and acceptance criteria.

## Usage

```
/nfr-jira-epic ERPSystem CS1 all,gdpr
/nfr-jira-epic "AlertHub" CS1 all,gdpr ARCH
/nfr-jira-epic DataPlatform CS2 all,pci,gdpr,caa_nis
```

## Data Source

All NFR data is read from `.claude/data/nfr-reference.yaml` — the single source of truth for all 66 NFRs. Do NOT hard-code NFR content; always read from the YAML.

## Prerequisites

- Atlassian MCP tools must be available (Jira access via `createJiraIssue`)
- User must have permissions to create issues in the target Jira project

## Instructions

### Phase 1: Load NFR Data

1. **Read** `.claude/data/nfr-reference.yaml`
2. Parse sections and NFRs
3. **Read** `.claude/data/nfr-evidence-rules.yaml` for automated check references

### Phase 2: Filter NFRs

1. Parse the `types` argument into a list (split on comma)
2. Always include `all` in the types list
3. Filter sections by applicability (same logic as `/nfr-capture`)
4. Map CS tier to SL tier: CS1→SL1, CS2→SL2, CS3→SL3, CS4→SL4

### Phase 3: Determine Jira Project

If `project` argument is provided, use it. Otherwise, ask the user:

```
Which Jira project should the NFR Epic be created in?
Enter the Jira project key (e.g., ARCH, ENG, OPS):
```

### Phase 4: Create Epic

Use the Atlassian MCP `createJiraIssue` tool to create the Epic:

- **Issue Type:** Epic
- **Project:** [project key]
- **Summary:** `NFR Compliance — [System Name] ([CS tier]/[SL tier])`
- **Description:**

```
h2. NFR Compliance Epic

*System:* [System Name]
*Classification:* [CS tier] / [SL tier]
*Applicability:* [types list]
*Sections:* [included count] of 13
*NFRs:* [included NFR count] of 66

This epic tracks NFR compliance for [System Name] as defined in the BA NFR Template (Confluence page 664765269, v0.2).

Each story represents one NFR requirement. Stories close when evidence is attached and reviewed.

*Generated by:* /nfr-jira-epic skill
*NFR Reference:* .claude/data/nfr-reference.yaml
```

- **Labels:** `nfr-compliance`, `nfr-epic`

### Phase 5: Create Stories

For each applicable NFR, create a Jira story linked to the Epic:

- **Issue Type:** Story
- **Project:** [project key]
- **Summary:** `[NFR ID] — [NFR title]`
- **Description:**

```
h2. [NFR ID]: [NFR title]

h3. Requirement
[nfr.requirement]

h3. Guidance
[nfr.guidance]

h3. Target ([SL tier])
[tier_values for SL tier if tiered, else "Not tiered — applies uniformly"]

h3. Evidence Guidance
[nfr.evidence_guidance]

h3. Evidence Type
[nfr.evidence_type] — [If automated: "Automated checks available via nfr-evidence-collect.sh"]

h3. Acceptance Criteria
* Evidence is documented and linked to this story
* Evidence matches the format described in Evidence Guidance
* Status is confirmed as Met, Partial, or N/A with justification
[If evidence_type == automated]:
* Automated check results attached (AWS Config / CLI output)
```

- **Labels:** `nfr-compliance`, `nfr-[section-id lowercase]` (e.g., `nfr-sec`, `nfr-rel`)
- **Priority:** Mapped from CS tier:
  - CS1 → Critical
  - CS2 → High
  - CS3 → Medium
  - CS4 → Low
- **Epic Link:** Link to the Epic created in Phase 4

**Rate limiting:** Pause briefly between story creation calls to avoid Jira API rate limits. Create stories section by section.

### Phase 6: Summary

After creating all stories, print a summary:

```
NFR Jira Epic Created for [System Name] ([CS tier]/[SL tier])

Epic: [PROJ]-[ID] — NFR Compliance — [System Name] ([CS tier]/[SL tier])
URL: [epic URL]

Stories created: [count] of [total applicable NFRs]

| Section | Stories | IDs |
|---------|---------|-----|
| [Section Name] | [count] | [PROJ-ID, PROJ-ID, ...] |
| ... | ... | ... |

Priority: [CS1→Critical/CS2→High/CS3→Medium/CS4→Low]
Labels: nfr-compliance, nfr-[section-ids]

Next steps:
1. Assign stories to team members or squads
2. Add to sprint backlog
3. Use /nfr-capture with-evidence-prompts for guidance on completing each NFR
4. Close stories when evidence is attached and reviewed
```

## Related

- `.claude/data/nfr-reference.yaml` — NFR single source of truth
- `.claude/data/nfr-evidence-rules.yaml` — Automated AWS evidence checks
- `.claude/skills/nfr-capture/SKILL.md` — Generate NFR tables
- `.claude/skills/nfr-review/SKILL.md` — Gap analysis against existing HLDs

