i2r-nfr-authoring-mode
Installation
SKILL.md
i2r-nfr-authoring-mode
Purpose: Walk all 9 ISO/IEC 25010:2023 quality characteristics, derive NFRs for this product's context, attach a Volere fit_criterion (threshold + environment + period) to every required NFR, and mark the rest not_applicable (with reason) or deferred (with missing info). Produces 05-nfr.json that passes i2r.py validate --stage 5.
Core discipline (read first)
- WHAT/WHY only — never HOW. Apply the stack-swap test: if swapping the database, framework, or infrastructure provider forces an edit to the
descriptionorfit_criterion, rewrite. Naming Redis, S3, PostgreSQL, JWT, or any library inside an NFR =IMPLEMENTATION_LEAK(BLOCKER). - No vague adjectives without a number. "Fast", "secure", "scalable", "robust" in
descriptionorfit_criterion→PLACEHOLDER(BLOCKER). EveryrequiredNFR must have a realfit_criterionwith a measurablethreshold. - No silent omission. Every ISO 25010:2023 characteristic must be CONSIDERED and explicitly marked —
required(with a realfit_criterion),not_applicable(withna_reason), ordeferred(withdeferred_missing_info). A characteristic SILENTLY omitted (neither addressed nor explicitly marked) =MAJORgap, not BLOCKER. The intent is "no silently-empty category", not "all 9 must berequired". 3b. An NFR you cannot motivate is over-specification. Before marking a characteristicrequired, climb the RML ladder (root skillrequirements-minimalism.md): does this product actually need a quality target here, or is it an engineered default nobody asked for? ArequiredNFR withsource: assumedand no real driver is a candidate to markdeferred(withdeferred_missing_info) instead — the gate surfaces it (OVER_SPECIFICATION, MINOR, advisory). Never re-state a platform/standard guarantee (TLS, hashing the stack mandates) as an NFR — that belongs in CONSTRAINTS. The safety floor (security / data / accessibility / compliance) is never minimized away — those stayrequired. - Source every NFR.
source_ref→ pointer intoraw/or a decision reference. Never fabricate.