name: nfr-review skill: nfr-review description: Review an existing HLD against NFR reference and generate gap report context: fork arguments:
- name: system description: System name or Confluence page ID/URL of the HLD required: true
- name: tier description: CS tier (CS1-CS4) — if omitted, skill will infer or ask required: false
- name: output description: Output format — "vault" (creates Concept note, default), "confluence" (pushes to Confluence), "console" (prints to terminal) required: false model: opus
/nfr-review
Review an existing HLD from Confluence against the NFR YAML reference and generate a gap report with scoring and remediation recommendations. Uses parallel sub-agents for efficient analysis.
Usage
/nfr-review ERPSystem
/nfr-review "AlertHub" CS1
/nfr-review 664765269 CS2 confluence
/nfr-review https://britishairways.atlassian.net/wiki/spaces/BDOC/pages/12345 CS2
Data Source
NFR reference data: .claude/data/nfr-reference.yaml — single source of truth for all 66 NFRs.
Scoring Rubric (0-3 Scale)
| Score | Rating | Meaning |
|---|---|---|
| 3 | Explicitly Addressed | NFR requirement clearly documented with specific evidence, links, or implementation details |
| 2 | Mentioned | NFR topic discussed but lacking evidence, specifics, or measurable targets |
| 1 | Implied | Related concept mentioned but NFR not explicitly addressed; may be inferred from context |
| 0 | Not Covered | NFR not mentioned at all; no evidence of consideration |
| N/A | Not Applicable | NFR section does not apply to this system (e.g., PCI for non-payment system) |
Instructions
Phase 1: Load NFR Reference
- Read
.claude/data/nfr-reference.yaml - Parse all 66 NFRs with their requirements, tier values, and evidence guidance
- Note the section applicability matrix
Phase 2: Fetch the HLD
Resolve the system HLD using Atlassian MCP tools:
- If argument is a URL with
pageId: extract ID and usegetConfluencePage - If argument is a numeric ID: use
getConfluencePagedirectly - If argument is a system name: search for "[System Name] HLD" or "High-Level Design" in Confluence
- Search pattern:
searchConfluenceUsingCqlwithtitle ~ "[system] HLD" OR title ~ "[system] High-Level Design"
- If argument is a URL with
Read the full page content including child pages if present:
getConfluencePage with pageId getConfluencePageDescendants with pageId (check for child pages)Record metadata: page title, space, author, last modified date
Determine tier: If tier argument not provided:
- Search HLD content for tier references (CS1/CS2/CS3/CS4 or SL1/SL2/SL3/SL4)
- If found, use it
- If not found, ask the user
Determine applicable sections: Look for indicators of project type:
- Payment/card/PCI references → include PCI section
- Personal data/GDPR/DPIA references → include PRIV section
- Aviation/ERPSystem/EWS/flight/airworthiness references → include CAA section
- Always include: OE, SEC, DATA, CE, INT, REL, PERF, COST, SUS, COMP
Phase 3: Parallel Analysis (Sub-agents)
Launch 3 parallel Sonnet sub-agents, each reviewing different NFR sections:
Agent 1 — Security, Privacy & Compliance:
You are reviewing an HLD document against NFR requirements. Score each NFR on a 0-3 scale.
**System:** [system name]
**Tier:** [CS/SL tier]
**HLD Content:** [full page content]
**NFRs to Assess:**
[List all NFRs from sections: SEC, PRIV, COMP]
For each NFR:
1. Search the HLD for evidence that this requirement is addressed
2. Score 0-3 using the rubric (3=explicitly addressed with evidence, 2=mentioned without evidence, 1=implied, 0=not covered)
3. Quote the specific HLD text that provides evidence (or note absence)
4. Provide a remediation recommendation for any NFR scoring 0-1
Output format per NFR:
NFR_ID: [id]
SCORE: [0-3 or N/A]
EVIDENCE: "[quoted text from HLD or 'Not found']"
GAP: "[what's missing]"
RECOMMENDATION: "[specific remediation action]"
Agent 2 — Reliability, Performance & Operational Excellence:
[Same structure as Agent 1 but covering NFRs from sections: OE, REL, PERF]
Agent 3 — Regulatory, Cost & Sustainability:
[Same structure as Agent 1 but covering NFRs from sections: PCI (if applicable), CE, CAA (if applicable), DATA, INT, COST, SUS]
Phase 4: Synthesise Results
- Collect all agent outputs and merge into unified assessment
- Calculate scores:
- Per-NFR score (from agents)
- Per-section average score
- Overall average score (excluding N/A sections)
- Categorise gaps:
- Critical gaps (score 0): NFRs completely absent — highest remediation priority
- Partial coverage (score 1-2): NFRs mentioned but incomplete — need evidence or specifics
- Fully addressed (score 3): No action needed
- Rank remediation by section criticality: Security > Reliability > Regulatory > Operations > Performance > Cost > Sustainability
Phase 5: Generate Gap Report
Create the gap report using the template below.
Default output: Vault note at root directory as Concept - NFR Gap Analysis - [System Name].md
If output is console, print to terminal instead. If output is confluence, push as Confluence page.
Output Template
---
type: Concept
title: "NFR Gap Analysis - [System Name]"
created: [today]
modified: [today]
tags:
- activity/evaluation
- activity/architecture
- activity/governance
- domain/engineering
- [technology tags from HLD]
- [project tags if identifiable]
confidence: high
freshness: current
source: synthesis
verified: false
reviewed: [today]
keywords: [nfr, gap-analysis, nfr-review, [system-name lowercase]]
relatedTo:
- "[[Pattern - NFR Standards and Governance]]"
- "[[Concept - NFR Gap Analysis]]"
relatedTo: []
---
# NFR Gap Analysis: [System Name]
**Source HLD:** [Confluence URL or page title]
**Space:** [Confluence space]
**Last Modified:** [HLD last modified date]
**Review Date:** [today]
**System Tier:** [CS tier] / [SL tier]
**Applicable Sections:** [list of included sections]
---
## Overall Assessment
| Metric | Value |
|--------|-------|
| **Overall Score** | X.X / 3.0 |
| **NFRs Assessed** | XX of 66 |
| **Fully Addressed (3)** | XX |
| **Mentioned (2)** | XX |
| **Implied (1)** | XX |
| **Not Covered (0)** | XX |
| **Not Applicable** | XX |
| **Critical Gaps** | XX NFRs not addressed |
## Section Scores
| Section | Score | Fully Addressed | Gaps | RAG |
|---------|-------|-----------------|------|-----|
| Operational Excellence (OE) | X.X/3.0 | X of 5 | [gap IDs] | [colour] |
| Security (SEC) | X.X/3.0 | X of 10 | [gap IDs] | [colour] |
| Privacy (PRIV) | X.X/3.0 | X of 8 | [gap IDs] | [colour] |
| Data Retention (DATA) | X.X/3.0 | X of 1 | [gap IDs] | [colour] |
| Compliance (COMP) | X.X/3.0 | X of 1 | [gap IDs] | [colour] |
| PCI DSS (PCI) | X.X/3.0 | X of 8 | [gap IDs] | [colour] |
| Cyber Essentials (CE) | X.X/3.0 | X of 6 | [gap IDs] | [colour] |
| CAA/NIS (CAA) | X.X/3.0 | X of 9 | [gap IDs] | [colour] |
| Interoperability (INT) | X.X/3.0 | X of 1 | [gap IDs] | [colour] |
| Reliability (REL) | X.X/3.0 | X of 6 | [gap IDs] | [colour] |
| Performance (PERF) | X.X/3.0 | X of 4 | [gap IDs] | [colour] |
| Cost (COST) | X.X/3.0 | X of 4 | [gap IDs] | [colour] |
| Sustainability (SUS) | X.X/3.0 | X of 3 | [gap IDs] | [colour] |
**RAG:** 🟢 2.5+ | 🟡 1.5-2.4 | 🔴 <1.5
---
## Critical Gaps (Score 0)
NFRs completely absent from the HLD — require immediate attention.
| NFR ID | Requirement | Section | Remediation |
|--------|------------|---------|-------------|
| [id] | [title] | [section] | [specific action to address] |
## Partial Coverage (Score 1-2)
NFRs mentioned but lacking evidence or specifics.
| NFR ID | Score | Requirement | Evidence Found | Gap | Remediation |
|--------|-------|------------|----------------|-----|-------------|
| [id] | [1-2] | [title] | "[quoted text]" | [what's missing] | [action] |
## Fully Addressed (Score 3)
NFRs with clear evidence in the HLD.
| NFR ID | Requirement | Evidence |
|--------|------------|---------|
| [id] | [title] | "[quoted text or summary]" |
---
## Remediation Priority
### Immediate (Security & Compliance Gaps)
1. [Specific remediation action with NFR ID]
2. ...
### Short-term (Reliability & Operations Gaps)
1. [Specific remediation action with NFR ID]
2. ...
### Medium-term (Performance & Cost Gaps)
1. [Specific remediation action with NFR ID]
2. ...
---
## Tier Compliance
For tiered NFRs, verify the HLD targets match the [SL tier] requirements:
| NFR ID | Expected ([SL tier]) | Found in HLD | Match |
|--------|---------------------|--------------|-------|
| [tiered NFR id] | [expected tier value] | [found value or "Not specified"] | [Yes/No/Partial] |
---
*Gap analysis generated by Claude Code /nfr-review skill against NFR reference v[version] ([source_page_id]). Scores reflect HLD document completeness, not implementation quality.*
Post-Generation Actions
After generating the report, offer the user:
- Create Jira tickets for critical gaps (score 0-1) — one ticket per gap with NFR requirement as acceptance criteria
- Generate remediation plan — prioritised list of actions to close gaps
- Compare with previous review — if a prior gap analysis note exists for this system, show progress
Related
.claude/data/nfr-reference.yaml— NFR single source of truth.claude/skills/nfr-capture/SKILL.md— Generate NFR tables for new HLDs.claude/skills/confluence-review/SKILL.md— General Confluence page review (8-dimension scoring)Concept - NFR Gap Analysis— Gap analysis methodologyPattern - NFR Standards and Governance— Tiered framework context