The "-ilities" framework for non-functional requirements. Use when defining NFRs, evaluating architecture trade-offs, or ensuring quality attributes are addressed in system design. Covers scalability, reliability, availability, performance, security, maintainability, and more.
View on GitHubmelodic-software/claude-code-plugins
systems-design
plugins/systems-design/skills/quality-attributes-taxonomy/SKILL.md
January 21, 2026
Select agents to install to:
npx add-skill https://github.com/melodic-software/claude-code-plugins/blob/main/plugins/systems-design/skills/quality-attributes-taxonomy/SKILL.md -a claude-code --skill quality-attributes-taxonomyInstallation paths:
.claude/skills/quality-attributes-taxonomy/# Quality Attributes Taxonomy This skill provides a comprehensive framework for understanding and applying quality attributes (non-functional requirements) in system design. ## When to Use This Skill **Keywords:** NFR, non-functional requirements, quality attributes, -ilities, scalability, reliability, availability, performance, security, maintainability, ISO 25010 **Use this skill when:** - Defining non-functional requirements for a system - Evaluating architectural trade-offs - Conducting architecture reviews - Preparing for system design interviews - Ensuring all quality dimensions are considered - Translating business needs to technical requirements ## What Are Quality Attributes? Quality attributes (QAs) describe HOW a system performs, not WHAT it does. They're often called: - Non-Functional Requirements (NFRs) - The "-ilities" (scalability, reliability, etc.) - Cross-cutting concerns - System qualities **Key insight:** Functional requirements define features; quality attributes define how well those features work. ## The Core Quality Attributes ### Primary Attributes (The Big 6) | Attribute | Definition | Key Question | | --------- | ---------- | ------------ | | **Scalability** | Handle growing load | Can we grow 10x? 100x? | | **Reliability** | Consistent correct operation | Does it work correctly every time? | | **Availability** | System uptime | Is it running when needed? | | **Performance** | Speed and throughput | How fast is it? | | **Security** | Protection from threats | Is it safe from attacks? | | **Maintainability** | Ease of change | Can we update it easily? | ### Secondary Attributes | Attribute | Definition | Key Question | | --------- | ---------- | ------------ | | **Testability** | Ease of verification | Can we test it effectively? | | **Observability** | System visibility | Can we see what's happening? | | **Operability** | Ease of operation | Can we run it in production? | | **Portability** | Platform independence | Can we mov