Non-Functional Requirements Assessment
The nfr-assess skill performs comprehensive evaluation of non-functional requirements (NFRs) to ensure the implementation meets quality attributes beyond functional correctness. NFRs are cross-cutting concerns that determine system quality, reliability, and long-term viability. This skill assesses 6 critical quality categories with measurable criteria, evidence-based evaluation, and automated checks where possible.
Unlike functional requirements that define what the system does, non-functional requirements define how well the system performs. This skill provides objective assessment across Security (authentication, encryption, vulnerabilities), Performance (response times, throughput, resource usage), Reliability (error handling, monitoring, fault tolerance), Maintainability (code quality, documentation, testability), Scalability (horizontal scaling, database design, async processing), and Usability (API design, error messages, documentation).
The assessment produces a weighted overall NFR score, individual category scores, identifies gaps with severity ratings, and provides actionable recommendations. Results feed directly into the quality-gate skill to inform merge/release decisions. Automated checks (security scans, linting, test coverage, performance tests) are integrated where available to provide objective, reproducible metrics.
When to Use This Skill
This skill should be used when:
- Non-functional quality attributes need validation during implementation review
- System-wide quality concerns (security, performance, reliability) need assessment
- Gaps in quality attributes need identification with severity ratings
- Evidence-based NFR reports are required for audit/compliance
- NFR metrics need to feed into quality gate decision-making
- Production readiness needs validation from quality perspective
This skill is particularly valuable:
- Before quality gate review (identifies issues early)
- After functional testing completes (assess non-functional aspects)
- During architectural review (validate design patterns for NFRs)
- When preparing for production deployment (ensure production readiness)
- For compliance validation (OWASP, WCAG, performance budgets)
This skill should NOT be used when:
- Functional requirements haven't been implemented yet (assess functionality first)
- Task is purely planning/design (no implementation to assess)
- You only need to test functional behavior (use run-tests instead)
Prerequisites
Before running nfr-assess, ensure you have:
- Task specification file with implementation record
- Project configuration (.claude/config.yaml) with quality settings
- Implementation files accessible for code review
- Automated tools available (optional but recommended):
- Security:
npm audit, semgrep, or equivalent
- Code quality: linter (eslint, pylint, etc.)
- Test coverage: coverage tools (jest --coverage, pytest-cov, etc.)
- Performance: load testing tools (artillery, k6, etc.)
Dependencies on other skills:
- Optional: risk-profile (provides security/performance risk context)
- Optional: trace-requirements (provides implementation evidence)
- Optional: test-design (provides performance/load test specifications)
Sequential NFR Assessment Process
This skill executes through 9 sequential steps. Each step must complete successfully before proceeding. The process is designed to systematically evaluate all 6 NFR categories with evidence collection, automated checks, and gap identification.
Step 0: Load Configuration and Context
Purpose: Load project configuration, task specification, and all relevant context needed for NFR assessment. Identify implementation files, prepare automated checks, and determine which NFR categories are most relevant based on task type.
Actions:
- Load project configuration from
.claude/config.yaml (quality settings, NFR thresholds)
- Read task specification file (extract task ID, title, type, NFR requirements, implementation record)
- Load related assessments if available (risk profile, traceability matrix, test design)
- Identify implementation files from implementation record (source, config, infrastructure, dependencies)
- Identify relevant NFR categories based on task type (e.g., API tasks prioritize Security/Performance)
- Prepare automated checks (security scans, linting, test coverage, performance tests)
- Prepare output file path (
.claude/quality/assessments/{task-id}-nfr-{YYYYMMDD}.md)
Halt If:
- Config file missing or invalid
- Task file not found
- Cannot create output directory
Output: Configuration loaded, task spec loaded, related assessments checked, implementation files identified, NFR categories prioritized, automated checks prepared, output path set
See: references/templates.md#step-0-configuration-loading-output for complete format and nfr-categories.md for category descriptions
Step 1: Security Assessment
Purpose: Evaluate security posture including authentication, authorization, input validation, dependency vulnerabilities, and security best practices. Leverage automated security scans (npm audit, semgrep) and manual code review to identify security gaps with evidence.
Actions:
- Define security criteria (10 criteria: authentication, authorization, input validation, output encoding, dependency vulnerabilities, secrets management, HTTPS/TLS, rate limiting, CORS, security headers)
- Run automated security checks:
- Dependency vulnerability scan (
npm audit --json or equivalent)
- Code security scan (
semgrep --config=auto if available)
- Secret detection (check for hardcoded credentials)
- Manual code review for security:
- Search for authentication/authorization code
- Check input validation implementation (Zod, Joi, etc.)
- Check for SQL injection risks (parameterized queries?)
- Check for XSS risks (output encoding?)
- Check CORS configuration and rate limiting
- Collect evidence for each criterion (file paths, line numbers, code snippets, scan results)
- Score each criterion (PASS/CONCERNS/FAIL/UNCLEAR)
- Calculate overall security score (weighted average: PASS=100, CONCERNS=50, FAIL=0)
- Identify security gaps with severity ratings (CRITICAL/HIGH/MEDIUM)
Output: Overall security score, criteria breakdown (PASS/CONCERNS/FAIL), automated check results (vulnerabilities, secrets), critical gaps count
See: references/templates.md#step-1-security-assessment-output for complete format, nfr-categories.md for criteria, nfr-examples.md for evidence examples
Step 2: Performance Assessment
Purpose: Evaluate performance characteristics including response times, throughput, resource usage, caching, and optimization. Run performance tests if available, analyze database queries for N+1 problems, and check algorithm complexity in hot paths.
Actions:
- Define performance criteria (10 criteria: response time, throughput, resource usage, database queries, caching, asset optimization, algorithm complexity, connection pooling, async operations, load testing)
- Run automated performance checks:
- Performance tests (
npm run test:perf if available)
- Load tests (artillery, k6, etc. if available)
- Bundle size analysis (if UI application)
- Database query analysis (EXPLAIN ANALYZE)
- Manual code review for performance:
- Check database queries for N+1 problems
- Check for blocking operations in request handlers
- Check algorithm complexity in hot paths (O(n log n) or better?)
- Check caching implementation (Redis, in-memory)
- Check connection pooling configuration
- Collect evidence (performance test results, query analysis, code review findings)
- Score each criterion (PASS/CONCERNS/FAIL/UNCLEAR)
- Calculate overall performance score
- Identify performance gaps (e.g., missing caching, N+1 queries, no load testing)
Output: Overall performance score, response time metrics (p50/p95/p99), throughput, load test results, performance gaps
See: references/templates.md#step-2-performance-assessment-output for complete format with benchmark tables
Step 3: Reliability Assessment
Purpose: Evaluate system reliability including error handling, fault tolerance, recovery, monitoring, and logging. Check for comprehensive error handling, graceful degradation when dependencies fail, and proper observability (logging, monitoring, health checks).
Actions:
- Define reliability criteria (10 criteria: error handling, input validation errors, graceful degradation, retry logic, circuit breakers, logging, monitoring, idempotency, data integrity, disaster recovery)
- Manual code review for reliability:
- Check try-catch blocks in async operations
- Check error response formatting
- Check database transaction usage
- Check logging implementation (winston, pino, structured logs?)
- Check health check endpoints
- Check monitoring integration (Prometheus, Datadog, etc.)
- Collect evidence (error handlers, logging examples, monitoring configuration)
- Score each criterion (PASS/CONCERNS/FAIL/UNCLEAR)
- Calculate overall reliability score
- Identify reliability gaps (e.g., no monitoring, no log aggregation, missing health checks)
Output: Overall reliability score, error handling status, logging status (structured/aggregation), monitoring status (health checks/metrics), reliability gaps
See: references/templates.md#step-3-reliability-assessment-output for complete format
Step 4: Maintainability Assessment
Purpose: Evaluate code maintainability including code quality, documentation, testability, modularity, and technical debt. Leverage automated tools (linting, test coverage, complexity analysis) and manual review for documentation, naming, and code organization.
Actions:
- Define maintainability criteria (10 criteria: code quality, test coverage, documentation, modularity, naming, complexity, duplication, type safety, dependencies, technical debt)
- Run automated maintainability checks:
- Linting (
npm run lint or equivalent)
- Test coverage (
npm run test:coverage)
- Complexity analysis (cyclomatic complexity ≤10?)
- Duplication detection (jscpd, etc.)
- Type checking (TypeScript strict mode)
- Manual code review for maintainability:
- Check code structure and organization
- Check naming conventions (clear, descriptive?)
- Check function/class sizes (≤50 lines?)
- Check documentation completeness (README, API docs, JSDoc)
- Check for technical debt (TODO/FIXME comments)
- Collect evidence (coverage reports, complexity metrics, lint results, documentation)
- Score each criterion (PASS/CONCERNS/FAIL/UNCLEAR)
- Calculate overall maintainability score
- Identify maintainability gaps (e.g., missing documentation, high complexity, low coverage)
Output: Overall maintainability score, test coverage %, avg/max complexity, linting results, documentation status, maintainability gaps
See: references/templates.md#step-4-maintainability-assessment-output for complete format with metrics breakdown
Step 5: Scalability Assessment
Purpose: Evaluate system scalability including horizontal/vertical scaling capability, load handling, database design, and caching strategy. Check for stateless design, proper database indexing, async processing for expensive operations, and readiness for load balancing.
Actions:
- Define scalability criteria (10 criteria: stateless design, horizontal scaling, database design, connection pooling, caching, async processing, rate limiting, load balancing readiness, resource limits, auto-scaling)
- Review architecture for scalability:
- Check if application is stateless (no in-memory session state)
- Check database schema and indexing (foreign keys indexed?)
- Check for file uploads (should use object storage like S3)
- Check for background job processing (should use queue like Bull/BullMQ)
- Check for proper shutdown handlers (graceful shutdown)
- Collect evidence (architecture review, schema analysis, code review)
- Score each criterion (PASS/CONCERNS/FAIL/UNCLEAR)
- Calculate overall scalability score
- Identify scalability gaps (e.g., stateful design, missing indexes, no async processing)
Output: Overall scalability score, stateless design status, database indexing (count/missing), async processing status, horizontal scaling readiness, scalability gaps
See: references/templates.md#step-5-scalability-assessment-output for complete format with DB analysis
Step 6: Usability Assessment
Purpose: Evaluate system usability including API design, error messages, documentation, and accessibility (if UI). For APIs, check RESTful conventions, error message clarity, and API documentation. For UIs, check WCAG compliance, responsive design, and user experience.
Actions:
- Define usability criteria:
- For APIs (10 criteria): API design, error messages, documentation, versioning, pagination, filtering, HTTP status codes, response format, HATEOAS, developer experience
- For UIs (10 criteria): accessibility (WCAG 2.1 AA), responsive design, loading states, error handling, keyboard navigation, color contrast, screen reader support, form validation, intuitive navigation, performance
- Review API/UI design:
- Check REST conventions (proper HTTP verbs, resource naming)
- Check error response format (clear, actionable messages?)
- Check API documentation (OpenAPI/Swagger spec?)
- Check pagination/filtering implementation
- For UIs: Check accessibility with automated tools (axe, lighthouse)
- Collect evidence (route definitions, error responses, documentation, accessibility scan results)
- Score each criterion (PASS/CONCERNS/FAIL/UNCLEAR)
- Calculate overall usability score
- Identify usability gaps (e.g., missing API docs, generic error messages, accessibility issues)
Output: Overall usability score, API/UI design status, error messages quality, documentation status, accessibility status (if UI), usability gaps
See: references/templates.md#step-6-usability-assessment-output for API and UI formats
Step 7: Generate NFR Assessment Report
Purpose: Create comprehensive NFR assessment report using template with all category assessments, overall score calculation, gap summary, and recommendations.
Actions:
- Load NFR assessment template
- Compute overall NFR score using weighted formula (Security 25%, Performance 20%, Reliability 20%, Maintainability 15%, Scalability 10%, Usability 10%)
- Determine overall status (≥90%: Excellent, 75-89%: Good, 60-74%: CONCERNS, <60%: FAIL)
- Aggregate gaps with priorities (P0/P1/P2)
- Generate prioritized recommendations
- Predict quality gate impact
- Populate template and write report
Output: Report path, overall NFR score/status, category scores, total gaps breakdown (P0/P1/P2), report size
See: references/templates.md#step-7-overall-nfr-scoring-formula for complete formula and examples, nfr-scoring.md for methodology, nfr-gaps.md for gap categorization
Step 8: Present Summary to User
Purpose: Provide concise summary with key metrics, critical gaps, quality gate impact, and recommended next steps.
Actions:
- Display formatted summary: Task metadata, overall NFR score/status, category scores (6), critical gaps (P0), high gaps (P1), quality gate impact + reasoning, actionable recommendations with time estimates, report path
- Suggest next steps: Review report, prioritize P0 gaps, create tickets for P1 gaps, re-run after fixes, proceed to quality-gate when ≥75%
- Emit telemetry
Output: Complete formatted summary with scores, gaps, quality gate prediction, recommendations, next steps
See: references/templates.md#step-8-complete-user-summary-format for full formatted output, nfr-examples.md for examples
Integration with Other Skills
Integration with risk-profile: Security/performance/reliability risks from risk profile inform NFR assessment priorities and amplify gap severity (e.g., HIGH gap + HIGH risk = CRITICAL P0)
Integration with trace-requirements: Implementation evidence validates NFR implementation; NFR gaps feed back as coverage gaps in traceability matrix
Integration with test-design: Performance/load/security test specifications inform corresponding NFR category assessments
Integration with quality-gate: Overall NFR score + category scores + critical gaps feed into quality gate decision (≥90%: PASS-excellent, 75-89%: PASS-good, 60-74%: CONCERNS, <60%: FAIL; Security/Reliability <50%: production blocker)
See: references/templates.md#integration-examples for detailed integration workflows and decision logic
Best Practices
Run NFR assessment before quality gate | Integrate automated checks (security, linting, coverage) | Document evidence thoroughly (file paths, line numbers, snippets) | Prioritize Security and Reliability (production blockers) | Set measurable thresholds in config | Re-run after fixes to validate | Customize category weights per project | Review with stakeholders (cross-functional decisions)
References
templates.md - All output formats, complete examples, scoring formulas, integration workflows, JSON structures
nfr-categories.md - Detailed assessment criteria for all 6 NFR categories with examples and thresholds
nfr-scoring.md - Scoring methodology, weighting formulas, status thresholds, automated check integration
nfr-gaps.md - Gap identification, severity levels (CRITICAL/HIGH/MEDIUM), prioritization (P0/P1/P2), remediation guidance
nfr-examples.md - Complete example assessments, evidence formats, benchmarks, summary outputs
NFR Assessment skill - Version 2.0 - Minimal V2 Architecture
1---2name: nfr-assess3description: Assess non-functional requirements across 6 quality categories (Security, Performance, Reliability, Maintainability, Scalability, Usability) with measurable criteria, evidence-based evaluation, and automated checks. Scores each category, identifies gaps with severity ratings, and provides remediation guidance. Use during quality review to evaluate production readiness and NFR compliance.4---5
6# Non-Functional Requirements Assessment
7
8The **nfr-assess** skill performs comprehensive evaluation of non-functional requirements (NFRs) to ensure the implementation meets quality attributes beyond functional correctness. NFRs are cross-cutting concerns that determine system quality, reliability, and long-term viability. This skill assesses 6 critical quality categories with measurable criteria, evidence-based evaluation, and automated checks where possible.
9
10Unlike functional requirements that define *what* the system does, non-functional requirements define *how well* the system performs. This skill provides objective assessment across Security (authentication, encryption, vulnerabilities), Performance (response times, throughput, resource usage), Reliability (error handling, monitoring, fault tolerance), Maintainability (code quality, documentation, testability), Scalability (horizontal scaling, database design, async processing), and Usability (API design, error messages, documentation).
11
12The assessment produces a weighted overall NFR score, individual category scores, identifies gaps with severity ratings, and provides actionable recommendations. Results feed directly into the quality-gate skill to inform merge/release decisions. Automated checks (security scans, linting, test coverage, performance tests) are integrated where available to provide objective, reproducible metrics.
13
14## When to Use This Skill
15
16**This skill should be used when:**
17- Non-functional quality attributes need validation during implementation review
18- System-wide quality concerns (security, performance, reliability) need assessment
19- Gaps in quality attributes need identification with severity ratings
20- Evidence-based NFR reports are required for audit/compliance
21- NFR metrics need to feed into quality gate decision-making
22- Production readiness needs validation from quality perspective
23
24**This skill is particularly valuable:**
25- Before quality gate review (identifies issues early)
26- After functional testing completes (assess non-functional aspects)
27- During architectural review (validate design patterns for NFRs)
28- When preparing for production deployment (ensure production readiness)
29- For compliance validation (OWASP, WCAG, performance budgets)
30
31**This skill should NOT be used when:**
32- Functional requirements haven't been implemented yet (assess functionality first)
33- Task is purely planning/design (no implementation to assess)
34- You only need to test functional behavior (use run-tests instead)
35
36## Prerequisites
37
38Before running nfr-assess, ensure you have:
39
401. **Task specification file** with implementation record
412. **Project configuration** (.claude/config.yaml) with quality settings
423. **Implementation files** accessible for code review
434. **Automated tools available** (optional but recommended):
44 - Security: `npm audit`, `semgrep`, or equivalent
45 - Code quality: linter (eslint, pylint, etc.)
46 - Test coverage: coverage tools (jest --coverage, pytest-cov, etc.)
47 - Performance: load testing tools (artillery, k6, etc.)
48
49**Dependencies on other skills:**
50- Optional: risk-profile (provides security/performance risk context)
51- Optional: trace-requirements (provides implementation evidence)
52- Optional: test-design (provides performance/load test specifications)
53
54## Sequential NFR Assessment Process
55
56This skill executes through 9 sequential steps. Each step must complete successfully before proceeding. The process is designed to systematically evaluate all 6 NFR categories with evidence collection, automated checks, and gap identification.
57
58### Step 0: Load Configuration and Context
59
60**Purpose:** Load project configuration, task specification, and all relevant context needed for NFR assessment. Identify implementation files, prepare automated checks, and determine which NFR categories are most relevant based on task type.
61
62**Actions:**
631. Load project configuration from `.claude/config.yaml` (quality settings, NFR thresholds)
642. Read task specification file (extract task ID, title, type, NFR requirements, implementation record)
653. Load related assessments if available (risk profile, traceability matrix, test design)
664. Identify implementation files from implementation record (source, config, infrastructure, dependencies)
675. Identify relevant NFR categories based on task type (e.g., API tasks prioritize Security/Performance)
686. Prepare automated checks (security scans, linting, test coverage, performance tests)
697. Prepare output file path (`.claude/quality/assessments/{task-id}-nfr-{YYYYMMDD}.md`)
70
71**Halt If:**
72- Config file missing or invalid
73- Task file not found
74- Cannot create output directory
75
76**Output:** Configuration loaded, task spec loaded, related assessments checked, implementation files identified, NFR categories prioritized, automated checks prepared, output path set
77
78**See:** `references/templates.md#step-0-configuration-loading-output` for complete format and [nfr-categories.md](references/nfr-categories.md) for category descriptions
79
80---
81
82### Step 1: Security Assessment
83
84**Purpose:** Evaluate security posture including authentication, authorization, input validation, dependency vulnerabilities, and security best practices. Leverage automated security scans (npm audit, semgrep) and manual code review to identify security gaps with evidence.
85
86**Actions:**
871. Define security criteria (10 criteria: authentication, authorization, input validation, output encoding, dependency vulnerabilities, secrets management, HTTPS/TLS, rate limiting, CORS, security headers)
882. Run automated security checks:
89 - Dependency vulnerability scan (`npm audit --json` or equivalent)
90 - Code security scan (`semgrep --config=auto` if available)
91 - Secret detection (check for hardcoded credentials)
923. Manual code review for security:
93 - Search for authentication/authorization code
94 - Check input validation implementation (Zod, Joi, etc.)
95 - Check for SQL injection risks (parameterized queries?)
96 - Check for XSS risks (output encoding?)
97 - Check CORS configuration and rate limiting
984. Collect evidence for each criterion (file paths, line numbers, code snippets, scan results)
995. Score each criterion (PASS/CONCERNS/FAIL/UNCLEAR)
1006. Calculate overall security score (weighted average: PASS=100, CONCERNS=50, FAIL=0)
1017. Identify security gaps with severity ratings (CRITICAL/HIGH/MEDIUM)
102
103**Output:** Overall security score, criteria breakdown (PASS/CONCERNS/FAIL), automated check results (vulnerabilities, secrets), critical gaps count
104
105**See:** `references/templates.md#step-1-security-assessment-output` for complete format, [nfr-categories.md](references/nfr-categories.md#security-assessment) for criteria, [nfr-examples.md](references/nfr-examples.md#security-evidence) for evidence examples
106
107---
108
109### Step 2: Performance Assessment
110
111**Purpose:** Evaluate performance characteristics including response times, throughput, resource usage, caching, and optimization. Run performance tests if available, analyze database queries for N+1 problems, and check algorithm complexity in hot paths.
112
113**Actions:**
1141. Define performance criteria (10 criteria: response time, throughput, resource usage, database queries, caching, asset optimization, algorithm complexity, connection pooling, async operations, load testing)
1152. Run automated performance checks:
116 - Performance tests (`npm run test:perf` if available)
117 - Load tests (artillery, k6, etc. if available)
118 - Bundle size analysis (if UI application)
119 - Database query analysis (EXPLAIN ANALYZE)
1203. Manual code review for performance:
121 - Check database queries for N+1 problems
122 - Check for blocking operations in request handlers
123 - Check algorithm complexity in hot paths (O(n log n) or better?)
124 - Check caching implementation (Redis, in-memory)
125 - Check connection pooling configuration
1264. Collect evidence (performance test results, query analysis, code review findings)
1275. Score each criterion (PASS/CONCERNS/FAIL/UNCLEAR)
1286. Calculate overall performance score
1297. Identify performance gaps (e.g., missing caching, N+1 queries, no load testing)
130
131**Output:** Overall performance score, response time metrics (p50/p95/p99), throughput, load test results, performance gaps
132
133**See:** `references/templates.md#step-2-performance-assessment-output` for complete format with benchmark tables
134
135---
136
137### Step 3: Reliability Assessment
138
139**Purpose:** Evaluate system reliability including error handling, fault tolerance, recovery, monitoring, and logging. Check for comprehensive error handling, graceful degradation when dependencies fail, and proper observability (logging, monitoring, health checks).
140
141**Actions:**
1421. Define reliability criteria (10 criteria: error handling, input validation errors, graceful degradation, retry logic, circuit breakers, logging, monitoring, idempotency, data integrity, disaster recovery)
1432. Manual code review for reliability:
144 - Check try-catch blocks in async operations
145 - Check error response formatting
146 - Check database transaction usage
147 - Check logging implementation (winston, pino, structured logs?)
148 - Check health check endpoints
149 - Check monitoring integration (Prometheus, Datadog, etc.)
1503. Collect evidence (error handlers, logging examples, monitoring configuration)
1514. Score each criterion (PASS/CONCERNS/FAIL/UNCLEAR)
1525. Calculate overall reliability score
1536. Identify reliability gaps (e.g., no monitoring, no log aggregation, missing health checks)
154
155**Output:** Overall reliability score, error handling status, logging status (structured/aggregation), monitoring status (health checks/metrics), reliability gaps
156
157**See:** `references/templates.md#step-3-reliability-assessment-output` for complete format
158
159---
160
161### Step 4: Maintainability Assessment
162
163**Purpose:** Evaluate code maintainability including code quality, documentation, testability, modularity, and technical debt. Leverage automated tools (linting, test coverage, complexity analysis) and manual review for documentation, naming, and code organization.
164
165**Actions:**
1661. Define maintainability criteria (10 criteria: code quality, test coverage, documentation, modularity, naming, complexity, duplication, type safety, dependencies, technical debt)
1672. Run automated maintainability checks:
168 - Linting (`npm run lint` or equivalent)
169 - Test coverage (`npm run test:coverage`)
170 - Complexity analysis (cyclomatic complexity ≤10?)
171 - Duplication detection (jscpd, etc.)
172 - Type checking (TypeScript strict mode)
1733. Manual code review for maintainability:
174 - Check code structure and organization
175 - Check naming conventions (clear, descriptive?)
176 - Check function/class sizes (≤50 lines?)
177 - Check documentation completeness (README, API docs, JSDoc)
178 - Check for technical debt (TODO/FIXME comments)
1794. Collect evidence (coverage reports, complexity metrics, lint results, documentation)
1805. Score each criterion (PASS/CONCERNS/FAIL/UNCLEAR)
1816. Calculate overall maintainability score
1827. Identify maintainability gaps (e.g., missing documentation, high complexity, low coverage)
183
184**Output:** Overall maintainability score, test coverage %, avg/max complexity, linting results, documentation status, maintainability gaps
185
186**See:** `references/templates.md#step-4-maintainability-assessment-output` for complete format with metrics breakdown
187
188---
189
190### Step 5: Scalability Assessment
191
192**Purpose:** Evaluate system scalability including horizontal/vertical scaling capability, load handling, database design, and caching strategy. Check for stateless design, proper database indexing, async processing for expensive operations, and readiness for load balancing.
193
194**Actions:**
1951. Define scalability criteria (10 criteria: stateless design, horizontal scaling, database design, connection pooling, caching, async processing, rate limiting, load balancing readiness, resource limits, auto-scaling)
1962. Review architecture for scalability:
197 - Check if application is stateless (no in-memory session state)
198 - Check database schema and indexing (foreign keys indexed?)
199 - Check for file uploads (should use object storage like S3)
200 - Check for background job processing (should use queue like Bull/BullMQ)
201 - Check for proper shutdown handlers (graceful shutdown)
2023. Collect evidence (architecture review, schema analysis, code review)
2034. Score each criterion (PASS/CONCERNS/FAIL/UNCLEAR)
2045. Calculate overall scalability score
2056. Identify scalability gaps (e.g., stateful design, missing indexes, no async processing)
206
207**Output:** Overall scalability score, stateless design status, database indexing (count/missing), async processing status, horizontal scaling readiness, scalability gaps
208
209**See:** `references/templates.md#step-5-scalability-assessment-output` for complete format with DB analysis
210
211---
212
213### Step 6: Usability Assessment
214
215**Purpose:** Evaluate system usability including API design, error messages, documentation, and accessibility (if UI). For APIs, check RESTful conventions, error message clarity, and API documentation. For UIs, check WCAG compliance, responsive design, and user experience.
216
217**Actions:**
2181. Define usability criteria:
219 - **For APIs** (10 criteria): API design, error messages, documentation, versioning, pagination, filtering, HTTP status codes, response format, HATEOAS, developer experience
220 - **For UIs** (10 criteria): accessibility (WCAG 2.1 AA), responsive design, loading states, error handling, keyboard navigation, color contrast, screen reader support, form validation, intuitive navigation, performance
2212. Review API/UI design:
222 - Check REST conventions (proper HTTP verbs, resource naming)
223 - Check error response format (clear, actionable messages?)
224 - Check API documentation (OpenAPI/Swagger spec?)
225 - Check pagination/filtering implementation
226 - For UIs: Check accessibility with automated tools (axe, lighthouse)
2273. Collect evidence (route definitions, error responses, documentation, accessibility scan results)
2284. Score each criterion (PASS/CONCERNS/FAIL/UNCLEAR)
2295. Calculate overall usability score
2306. Identify usability gaps (e.g., missing API docs, generic error messages, accessibility issues)
231
232**Output:** Overall usability score, API/UI design status, error messages quality, documentation status, accessibility status (if UI), usability gaps
233
234**See:** `references/templates.md#step-6-usability-assessment-output` for API and UI formats
235
236---
237
238### Step 7: Generate NFR Assessment Report
239
240**Purpose:** Create comprehensive NFR assessment report using template with all category assessments, overall score calculation, gap summary, and recommendations.
241
242**Actions:**
2431. Load NFR assessment template
2442. Compute overall NFR score using weighted formula (Security 25%, Performance 20%, Reliability 20%, Maintainability 15%, Scalability 10%, Usability 10%)
2453. Determine overall status (≥90%: Excellent, 75-89%: Good, 60-74%: CONCERNS, <60%: FAIL)
2464. Aggregate gaps with priorities (P0/P1/P2)
2475. Generate prioritized recommendations
2486. Predict quality gate impact
2497. Populate template and write report
250
251**Output:** Report path, overall NFR score/status, category scores, total gaps breakdown (P0/P1/P2), report size
252
253**See:** `references/templates.md#step-7-overall-nfr-scoring-formula` for complete formula and examples, [nfr-scoring.md](references/nfr-scoring.md) for methodology, [nfr-gaps.md](references/nfr-gaps.md) for gap categorization
254
255---
256
257### Step 8: Present Summary to User
258
259**Purpose:** Provide concise summary with key metrics, critical gaps, quality gate impact, and recommended next steps.
260
261**Actions:**
2621. Display formatted summary: Task metadata, overall NFR score/status, category scores (6), critical gaps (P0), high gaps (P1), quality gate impact + reasoning, actionable recommendations with time estimates, report path
2632. Suggest next steps: Review report, prioritize P0 gaps, create tickets for P1 gaps, re-run after fixes, proceed to quality-gate when ≥75%
2643. Emit telemetry
265
266**Output:** Complete formatted summary with scores, gaps, quality gate prediction, recommendations, next steps
267
268**See:** `references/templates.md#step-8-complete-user-summary-format` for full formatted output, [nfr-examples.md](references/nfr-examples.md#summary-formats) for examples
269
270---
271
272## Integration with Other Skills
273
274**Integration with risk-profile:** Security/performance/reliability risks from risk profile inform NFR assessment priorities and amplify gap severity (e.g., HIGH gap + HIGH risk = CRITICAL P0)
275
276**Integration with trace-requirements:** Implementation evidence validates NFR implementation; NFR gaps feed back as coverage gaps in traceability matrix
277
278**Integration with test-design:** Performance/load/security test specifications inform corresponding NFR category assessments
279
280**Integration with quality-gate:** Overall NFR score + category scores + critical gaps feed into quality gate decision (≥90%: PASS-excellent, 75-89%: PASS-good, 60-74%: CONCERNS, <60%: FAIL; Security/Reliability <50%: production blocker)
281
282**See:** `references/templates.md#integration-examples` for detailed integration workflows and decision logic
283
284---
285
286## Best Practices
287
288Run NFR assessment before quality gate | Integrate automated checks (security, linting, coverage) | Document evidence thoroughly (file paths, line numbers, snippets) | Prioritize Security and Reliability (production blockers) | Set measurable thresholds in config | Re-run after fixes to validate | Customize category weights per project | Review with stakeholders (cross-functional decisions)
289
290---
291
292## References
293
294- **[templates.md](references/templates.md)** - All output formats, complete examples, scoring formulas, integration workflows, JSON structures
295
296- **[nfr-categories.md](references/nfr-categories.md)** - Detailed assessment criteria for all 6 NFR categories with examples and thresholds
297
298- **[nfr-scoring.md](references/nfr-scoring.md)** - Scoring methodology, weighting formulas, status thresholds, automated check integration
299
300- **[nfr-gaps.md](references/nfr-gaps.md)** - Gap identification, severity levels (CRITICAL/HIGH/MEDIUM), prioritization (P0/P1/P2), remediation guidance
301
302- **[nfr-examples.md](references/nfr-examples.md)** - Complete example assessments, evidence formats, benchmarks, summary outputs
303
304---
305
306*NFR Assessment skill - Version 2.0 - Minimal V2 Architecture*