{"id":"e38c83ca-fbce-4a3e-8906-3e0292e2e732","shortId":"tbhyn9","kind":"skill","title":"032-architecture-adr-non-functional-requirements","tagline":"Facilitates conversational discovery to create Architectural Decision Records (ADRs) for non-functional requirements using the ISO/IEC 25010:2023 quality model. Use when the user wants to document quality attributes, NFR decisions, security/performance/scalability architecture, o","description":"# Create ADRs for Non-Functional Requirements\n\nGuide stakeholders through a structured conversation to uncover and document architectural decisions for quality attributes using the ISO/IEC 25010:2023 quality model. **This is an interactive SKILL**. The ADR documents the outcome of the conversation, not the conversation itself. Act as an architecture consultant: challenge-first, consultative, adaptive.\n\n**What is covered in this Skill?**\n\n- Challenge-first opening: ISO 25010:2023 quality characteristics (Functional Suitability, Performance Efficiency, Compatibility, Reliability, Security, Maintainability, Flexibility, Safety)\n- Understanding the challenge: drivers, constraints, system context\n- Quality-specific deep dive tailored to primary NFR category\n- Solution exploration and trade-off preferences\n- Decision synthesis and validation before ADR creation\n- ADR document generation with Quality Metrics &amp; Success Criteria\n\n## Constraints\n\nUse challenge-first, consultative discovery—ask 1-2 questions at a time, build on answers, tailor to NFR category. Only create ADR after thorough conversation and user confirmation.\n\n- **MANDATORY**: Run `date` before starting to get accurate timestamps for the ADR\n- **MUST**: Read the reference template fresh—do not use cached questions\n- **MUST**: Start with challenge-first opening (ISO 25010:2023 quality characteristics)\n- **MUST**: Ask one or two questions at a time; never all at once\n- **MUST**: Validate summary with user (Does this accurately capture your quality needs?) before proposing ADR creation\n- **MUST**: Wait for user to confirm proceed before generating the ADR\n\n## When to use this skill\n\n- Create ADR for Non-functional requirements\n- Document Non-functional requirements\n- Capture Non-functional requirements\n- Generate Non-functional requirements in an ADR\n\n## Workflow\n\n0. **Get current date**\n\nRun `date` before discovery and use it for ADR timestamps.\n\n1. **Read reference and open with quality challenge**\n\nRead `references/032-architecture-adr-non-functional-requirements.md` and begin with the challenge-first ISO 25010:2023 quality characteristics framing.\n\n2. **Run consultative NFR discovery**\n\nAsk one or two questions at a time to capture drivers, constraints, quality priorities, options, and trade-off preferences tailored to the primary NFR category.\n\nStep constraints:\n- Never ask all discovery questions at once\n- Validate summary with user before proposing ADR generation\n\n3. **Generate ADR after explicit confirmation**\n\nOnly after user confirms proceed, create the ADR including measurable Quality Metrics and Success Criteria.\n\n## Reference\n\nFor detailed guidance, examples, and constraints, see [references/032-architecture-adr-non-functional-requirements.md](references/032-architecture-adr-non-functional-requirements.md).","tags":["032","architecture","adr","non","functional","requirements","cursor","rules","java","jabrena","agent-skills","ai-skills"],"capabilities":["skill","source-jabrena","skill-032-architecture-adr-non-functional-requirements","topic-agent-skills","topic-ai-skills","topic-claude","topic-claude-code","topic-claude-code-skills","topic-claude-code-subagents","topic-claude-skills","topic-cursor-agent","topic-cursor-ai","topic-cursor-skills","topic-cursorai","topic-github-copilot"],"categories":["cursor-rules-java"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/jabrena/cursor-rules-java/032-architecture-adr-non-functional-requirements","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add jabrena/cursor-rules-java","source_repo":"https://github.com/jabrena/cursor-rules-java","install_from":"skills.sh"}},"qualityScore":"0.631","qualityRationale":"deterministic score 0.63 from registry signals: · indexed on github topic:agent-skills · 362 github stars · SKILL.md body (2,827 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-26T18:53:39.908Z","embedding":null,"createdAt":"2026-04-18T22:01:45.556Z","updatedAt":"2026-04-26T18:53:39.908Z","lastSeenAt":"2026-04-26T18:53:39.908Z","tsv":"'-2':172 '0':299 '032':1 '1':171,313 '2':336 '2023':26,69,111,225,332 '25010':25,68,110,224,331 '3':384 'accur':200,248 'act':89 'adapt':98 'adr':4,16,44,78,153,155,186,204,255,267,274,297,311,382,386,397 'answer':179 'architectur':3,13,41,60,92 'architecture-adr-non-functional-requir':2 'ask':170,229,341,370 'attribut':37,64 'begin':324 'build':177 'cach':214 'captur':249,285,350 'categori':140,183,366 'challeng':95,106,126,166,220,320,328 'challenge-first':94,105,165,219,327 'characterist':113,227,334 'compat':118 'confirm':192,262,389,393 'constraint':128,163,352,368,411 'consult':93,97,168,338 'context':130 'convers':9,55,84,87,189 'cover':101 'creat':12,43,185,273,395 'creation':154,256 'criteria':162,404 'current':301 'date':195,302,304 'decis':14,39,61,148 'deep':134 'detail':407 'discoveri':10,169,306,340,372 'dive':135 'document':35,59,79,156,280 'driver':127,351 'effici':117 'exampl':409 'explicit':388 'explor':142 'facilit':8 'first':96,107,167,221,329 'flexibl':122 'frame':335 'fresh':210 'function':6,20,48,114,278,283,288,293 'generat':157,265,290,383,385 'get':199,300 'guid':50 'guidanc':408 'includ':398 'interact':75 'iso':109,223,330 'iso/iec':24,67 'maintain':121 'mandatori':193 'measur':399 'metric':160,401 'model':28,71 'must':205,216,228,241,257 'need':252 'never':237,369 'nfr':38,139,182,339,365 'non':5,19,47,277,282,287,292 'non-funct':18,46,276,281,286,291 'o':42 'one':230,342 'open':108,222,317 'option':355 'outcom':81 'perform':116 'prefer':147,360 'primari':138,364 'prioriti':354 'proceed':263,394 'propos':254,381 'qualiti':27,36,63,70,112,132,159,226,251,319,333,353,400 'quality-specif':131 'question':173,215,233,345,373 'read':206,314,321 'record':15 'refer':208,315,405 'references/032-architecture-adr-non-functional-requirements.md':322,413,414 'reliabl':119 'requir':7,21,49,279,284,289,294 'run':194,303,337 'safeti':123 'secur':120 'security/performance/scalability':40 'see':412 'skill':76,104,272 'skill-032-architecture-adr-non-functional-requirements' 'solut':141 'source-jabrena' 'specif':133 'stakehold':51 'start':197,217 'step':367 'structur':54 'success':161,403 'suitabl':115 'summari':243,377 'synthesi':149 'system':129 'tailor':136,180,361 'templat':209 'thorough':188 'time':176,236,348 'timestamp':201,312 'topic-agent-skills' 'topic-ai-skills' 'topic-claude' 'topic-claude-code' 'topic-claude-code-skills' 'topic-claude-code-subagents' 'topic-claude-skills' 'topic-cursor-agent' 'topic-cursor-ai' 'topic-cursor-skills' 'topic-cursorai' 'topic-github-copilot' 'trade':145,358 'trade-off':144,357 'two':232,344 'uncov':57 'understand':124 'use':22,29,65,164,213,270,308 'user':32,191,245,260,379,392 'valid':151,242,376 'wait':258 'want':33 'workflow':298","prices":[{"id":"a0932412-f458-42b8-b034-4042cfb80e0a","listingId":"e38c83ca-fbce-4a3e-8906-3e0292e2e732","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"jabrena","category":"cursor-rules-java","install_from":"skills.sh"},"createdAt":"2026-04-18T22:01:45.556Z"}],"sources":[{"listingId":"e38c83ca-fbce-4a3e-8906-3e0292e2e732","source":"github","sourceId":"jabrena/cursor-rules-java/032-architecture-adr-non-functional-requirements","sourceUrl":"https://github.com/jabrena/cursor-rules-java/tree/main/skills/032-architecture-adr-non-functional-requirements","isPrimary":false,"firstSeenAt":"2026-04-18T22:01:45.556Z","lastSeenAt":"2026-04-26T18:53:39.908Z"}],"details":{"listingId":"e38c83ca-fbce-4a3e-8906-3e0292e2e732","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"jabrena","slug":"032-architecture-adr-non-functional-requirements","github":{"repo":"jabrena/cursor-rules-java","stars":362,"topics":["agent-skills","ai-skills","claude","claude-code","claude-code-skills","claude-code-subagents","claude-skills","cursor-agent","cursor-ai","cursor-skills","cursorai","github-copilot","intellij-idea","java","prompting","system-prompts"],"license":"apache-2.0","html_url":"https://github.com/jabrena/cursor-rules-java","pushed_at":"2026-04-26T13:48:39Z","description":"A curated and opinionated collection of Skills and Agents to be used in modern SDLC workflows for Java Enterprise development with your favorite AI Agent harness.","skill_md_sha":"bf01ec9a1ac4c107d25d423c4f9d4629f3da194f","skill_md_path":"skills/032-architecture-adr-non-functional-requirements/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/jabrena/cursor-rules-java/tree/main/skills/032-architecture-adr-non-functional-requirements"},"layout":"multi","source":"github","category":"cursor-rules-java","frontmatter":{"name":"032-architecture-adr-non-functional-requirements","license":"Apache-2.0","description":"Facilitates conversational discovery to create Architectural Decision Records (ADRs) for non-functional requirements using the ISO/IEC 25010:2023 quality model. Use when the user wants to document quality attributes, NFR decisions, security/performance/scalability architecture, or design systems with measurable quality criteria. This should trigger for requests such as Create ADR for Non-functional requirements; Document Non-functional requirements; Capture Non-functional requirements; Generate Non-functional requirements in an ADR. Part of cursor-rules-java project"},"skills_sh_url":"https://skills.sh/jabrena/cursor-rules-java/032-architecture-adr-non-functional-requirements"},"updatedAt":"2026-04-26T18:53:39.908Z"}}