跳到正文
cccskills
免费在 GitHub 公开

nfr-capture

Generate pre-populated NFR table for a system's HLD based on tier and project type

中文简介正在准备中。当前显示原文说明。

集成工具ConfluenceJiraAWS
查看安装方法

包含的文件(1)

  • SKILL.md10.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

/nfr-capture

Generate a pre-populated NFR requirements table for a system's HLD, filtered by classification tier and project type. Reads from the NFR-as-Code YAML single source of truth.

Usage

/nfr-capture ERPSystem
/nfr-capture ERPSystem CS2
/nfr-capture "AlertHub" CS1 all,gdpr
/nfr-capture DataPlatform CS2 all,pci,gdpr confluence
/nfr-capture ERPSystem CS2 all,gdpr markdown with-evidence-prompts
/nfr-capture ERPSystem CS2 all,gdpr markdown from-hld:664765269

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.

Instructions

Phase 1: Read NFR Data

  1. Read .claude/data/nfr-reference.yaml
  2. Parse the YAML to extract all sections, NFRs, scoping questions, and archetypes
  3. Note the classification tiers from classification_tiers

Phase 2: Determine System Classification

Option A: Direct arguments — If tier and types are provided, use them.

Option B: Scoping questionnaire — If arguments are omitted, offer the user a choice:

  1. Quick scoping — ask the 6 plain-English questions from scoping_questions in the YAML. Map answers to tier and types using the maps_to fields.
  2. Archetype selection — show the archetypes from archetypes in the YAML and let the user pick one.
  3. Manual selection — show the tier/type selection tables (original behaviour).

If only tier is omitted, show the tier selection table:

What is the Criticality / Service Level tier for [system]?

| Tier | Criticality | Availability | RTO | RPO |
|------|-------------|-------------|-----|-----|
| CS1/SL1 | Critical | 99.95% | 4 hours | Zero data loss |
| CS2/SL2 | High | 99.50% | 8 hours | 1 hour |
| CS3/SL3 | Medium | 99.00% | 5 working days | 1 day |
| CS4/SL4 | Low | 98.50% | 10 working days | 5 days |

If only types is omitted, show the type selection:

Which project types apply to [system]? (select all that apply)

- [ ] All Projects (mandatory baseline)
- [ ] PCI — system handles payment card data
- [ ] GDPR — system processes personal data of UK/EEA subjects
- [ ] CAA/NIS — system supports essential aviation services

Note: "All Projects" should always be selected as it is the mandatory baseline.

Phase 3: Filter NFRs

Using the selected tier and project types:

  1. Include sections where the section's applicability overlaps with the selected project types:

    • Sections with applicability: [all] are always included
    • Sections with applicability: [pci] only included if PCI is selected
    • Sections with applicability: [gdpr] only included if GDPR is selected
    • Sections with applicability: [caa_nis] only included if CAA/NIS is selected
    • Some sections have multiple applicability values (e.g., [all, pci, gdpr, caa_nis]) — include if ANY match
  2. Map CS tier to SL tier: CS1→SL1, CS2→SL2, CS3→SL3, CS4→SL4

  3. Pre-fill tier values for tiered NFRs using the selected SL tier's tier_values

Phase 3b: Pre-fill from HLD (if from-hld:<page-id> flag)

If the from-hld flag is present:

  1. Fetch the HLD page from Confluence using Atlassian MCP getConfluencePage with the given page ID
  2. Parse the HLD content to identify sections that map to NFR requirements
  3. For each applicable NFR, search the HLD content for evidence that addresses the requirement:
    • Look for mentions of: encryption configuration, IAM/RBAC setup, backup policies, monitoring stack, VPC/network design, scaling approach, DR strategy, data handling, compliance controls
    • Use keyword matching against the NFR's requirement, guidance, and aws_services fields
  4. Pre-populate the evidence column with extracted content and source attribution:
    • Format: "Pre-filled from HLD page [ID], section [name]: [extracted evidence]"
  5. Mark remaining empty cells for manual completion

Phase 4: Generate Output

Generate the NFR table in the requested format (default: markdown).

Markdown Output

For each applicable section, generate:

### [Section Name]

> **Purpose:** [section.purpose]
>
> **Compliance:** [section.compliance_frameworks joined]
>
> **Applicability:** [section.applicability_notes]

**Tier Targets ([CS tier] / [SL tier]):**

[If section has tier_guidance, render the selected tier's values as a summary table]

| NFR ID | Requirement | Target ([SL tier]) | Verification / Evidence | Status |
|--------|------------|---------------------|------------------------|--------|
| [nfr.id] | [nfr.title]: [nfr.requirement] | [tier_values for SL tier if tiered, else "See guidance"] | _[nfr.evidence_guidance]_ | |

Important formatting rules:

  • Tier-specific values in the "Target" column should show the actual value for the selected tier, not all tiers
  • Evidence guidance should be in italics as prompts for the team to fill in
  • Status column is empty — teams fill this in (Met / Partial / Not Met / N/A)
  • Include section intro boxes (purpose, compliance, applicability) as blockquotes
  • If a section has tier_guidance at the section level, include a summary of the selected tier's values

With Evidence Prompts (with-evidence-prompts flag)

When this flag is present, add an additional column or section per NFR with an AI Evidence Prompt — a structured template the team can use to draft their evidence statement.

For each NFR, generate a prompt block after the table row:

<details>
<summary>AI Evidence Prompt for [NFR-ID]</summary>

**To draft evidence for this NFR, describe:**
- [Specific questions based on evidence_guidance field]
- [For automated evidence_type]: Which AWS Config rules or CLI commands can verify this? (See nfr-evidence-rules.yaml)
- [For manual evidence_type]: What documents, diagrams, or procedures demonstrate compliance?

**Example evidence statement:**
> [Generate a realistic example based on the NFR's requirement and evidence_guidance, using the system name and tier context]

</details>

For NFRs with evidence_type: automated, also include the specific AWS checks from .claude/data/nfr-evidence-rules.yaml:

**Automated checks available:**
- [check description]: `[command or config rule]`

Confluence Output

If output is confluence, generate Confluence wiki markup instead of markdown:

  • Use || for header rows and | for data rows
  • Use {info} macros for section intro boxes
  • Use {status} macros for the Status column placeholders
  • Include {page-properties} block at the top (see Phase 4b)

Confluence Page Properties (always included in Confluence output)

Add a {page-properties} block at the top of Confluence output:

{page-properties}
| NFR Status | Draft |
| NFR Tier | [CS tier] |
| NFR Sections Applicable | [included] of 13 |
| NFR Completion | 0/[total] (0%) |
| NFR Last Reviewed | [today's date] |
{page-properties}

This enables estate-wide dashboards via Confluence {page-properties-report}.

Jira Output

If output is jira, generate a structured list suitable for creating a Jira Epic:

  • Epic: "NFR Compliance — [System Name] ([CS tier])"
  • One story per NFR with:
    • Summary: "[NFR ID] — [NFR title]"
    • Description: requirement text + guidance + evidence guidance
    • Labels: nfr, [section-id lowercase]
    • Priority mapped from tier (CS1→Critical, CS2→High, CS3→Medium, CS4→Low)

Phase 5: Write Output

  1. Console output (default): Print the generated table to the terminal
  2. If the user requests, write to a vault note:
    • Location: Root directory
    • Filename: Concept - NFR Capture - [System Name].md
    • Include proper frontmatter:
---
type: Concept
title: "NFR Capture - [System Name]"
created: [today]
modified: [today]
tags:
  - activity/governance
  - activity/architecture
  - domain/engineering
confidence: high
freshness: current
source: synthesis
verified: false
reviewed: [today]
keywords: [nfr, nfr-capture, [system-name lowercase]]
relatedTo:
  - "[[Pattern - NFR Standards and Governance]]"
---
  1. Optionally push to Confluence using Atlassian MCP tools:
    • Use createConfluencePage to create as child of system's HLD page
    • Only if user explicitly requests Confluence push

Output Summary

After generating the table, print a summary:

NFR Capture Summary for [System Name] ([CS tier]/[SL tier])
- Sections included: [count] of 13
- NFRs included: [count] of 66
- Sections excluded: [list excluded section names with reason]
- Tiered NFRs: [count] with [SL tier] values pre-filled
- Evidence types: [count automated] automated, [count manual] manual
- Pre-filled from HLD: [count] NFRs (if from-hld flag used)
- Evidence prompts: included (if with-evidence-prompts flag used)

Related

  • .claude/data/nfr-reference.yaml — NFR single source of truth
  • .claude/data/nfr-evidence-rules.yaml — Automated AWS evidence checks for 37 NFRs
  • .claude/skills/nfr-review/SKILL.md — Gap analysis against existing HLDs
  • .claude/skills/nfr-jira-epic/SKILL.md — Create Jira Epic with stories per NFR
  • Pattern - NFR Standards and Governance — Tiered framework context
  • Pattern - NFR Compliance Evidence Best Practices — Evidence patterns

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Batch populate summary fields using content analysis

中文简介正在准备中。当前显示原文说明。

DavidROliverBA/ArchitectKB532026年3月2日 更新

auto-tag

免费

Batch auto-tag untagged notes using content analysis

中文简介正在准备中。当前显示原文说明。

DavidROliverBA/ArchitectKB532026年3月2日 更新

Generate C4 architecture diagrams from system notes

中文简介正在准备中。当前显示原文说明。

DavidROliverBA/ArchitectKB532026年3月2日 更新

canvas

免费

Create and edit Obsidian Canvas files for architecture visualization

中文简介正在准备中。当前显示原文说明。

DavidROliverBA/ArchitectKB532026年3月2日 更新

Check Outlook inbox and update daily note with message summary

中文简介正在准备中。当前显示原文说明。

DavidROliverBA/ArchitectKB532026年3月2日 更新

commit

免费

Stage and commit vault changes with UK English conventional commit messages

中文简介正在准备中。当前显示原文说明。

DavidROliverBA/ArchitectKB532026年3月2日 更新

查看 DavidROliverBA 的全部技能

报告此技能的问题