원클릭으로
derive-nfr-from-driver
Derives measurable NFRs from a parent business driver.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Derives measurable NFRs from a parent business driver.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Flags risky shell commands and unsafe tree ops.
Detects high-confidence security risks in code.
Surfaces the dojo's non-negotiable prime directives.
Activates the dojo framework at the start of a session.
Plans multi-step work before writing code.
Captures lessons and promotes recurring patterns.
| name | derive-nfr-from-driver |
| description | Derives measurable NFRs from a parent business driver. |
| tier | practical |
| category | workflow |
| created_by | human |
| platforms | ["windows","macos","linux"] |
| tags | ["requirements","traceability","nfr","togaf"] |
| verifier | traceability-sample |
| author | Andreas Wasita (@andreaswasita) |
Turns a ratified business driver (BR) — and the functional requirements (FRs) derived from it — into measurable Non-Functional Requirements with verified parentage. This skill does NOT elicit drivers and does NOT invent FRs; it derives NFRs against parents that already exist on disk.
BR-* and at least one FR-* exist for the engagement and need
performance, availability, scalability, or accessibility targets
before Phase D begins.requirements-elicitation first.requirements/<engagement>/BR/ contains at least one ratified BR-*
artifact (ratified_by is non-empty).requirements/<engagement>/FR/ contains the FR(s) this NFR will
constrain.spec/artifact-schema.md is the contract for frontmatter fields.If a prerequisite is missing the skill must stop and report — never emit an NFR pointing at a non-existent or unratified parent.
# 1. Confirm the parent exists and is ratified
bash scripts/verify-traceability.sh requirements/<engagement>
# 2. Create the NFR file (filename MUST equal {id}.md)
# Then run the gate again to prove the new link resolves
bash scripts/verify-traceability.sh requirements/<engagement>
| Action | Tool | Notes |
|---|---|---|
| Read parent BR/FR | view | Get the exact id values. |
| List existing NFRs | glob requirements/<engagement>/NFR/*.md | Pick the next free NFR-NNN. |
| Write NFR | create | Frontmatter per spec/artifact-schema.md. |
| Verify lineage | bash scripts/verify-traceability.sh | Must pass before commit. |
The frontmatter the agent emits:
---
id: NFR-007
layer: NFR
title: Classification latency under load
parent_ids: [BR-001, FR-002]
owner: jane.doe@example.com
measurable: true
ratified_by: ""
target: "p95 < 2s on 3G, p99 < 4s"
derivation_skill: derive-nfr-from-driver
tags: [latency, classification]
---
BR-* and any candidate FR-* with view.ratified_by empty). Send back to requirements-elicitation.For each quality attribute, write one NFR with:
target field (percentile + threshold +
operating envelope — never just "fast"). If you cannot write a
number, you have not derived an NFR yet.parent_ids MUST include the driver's BR-* and SHOULD include the
most specific FR-* the NFR constrains.derivation_skill: derive-nfr-from-driver is mandatory — the curator
uses this to attribute learned patterns.bash scripts/verify-traceability.sh requirements/<engagement>
The gate must pass with zero failures. A warning on ratified_by is
expected until a human ratifies the NFR at the architecture review
board.
measurable: false to bypass the gate; the gate
fails on it for NFRs by design (see spec/artifact-schema.md §2.3).ratified_by from inside the agent. Ratification is
the human's signal that the derivation is accepted. The agent leaves
it blank.target field. The
target is a number with units; the prose belongs in the body.NFR-*.md filename equals its id.parent_ids lists at least one BR-* that exists on disk.target contains a numeric threshold and an operating envelope.bash scripts/verify-traceability.sh requirements/<engagement> exits 0.bash scripts/gen-rtm.sh requirements/<engagement> shows the new
NFR linked under its driver in docs/rtm.md.bash scripts/verify.sh passes the full gate.