quality-attributes-taxonomy
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.
What this skill does
# 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 move it? |
| **Interoperability** | System integration | Can it work with others? |
| **Cost Efficiency** | Resource optimization | Is it cost-effective? |
## Detailed Quality Attribute Definitions
### Scalability
**Definition:** The ability to handle increased load by adding resources.
| Type | Description | Example |
| ---- | ----------- | ------- |
| **Vertical** | Add more power to existing machines | Upgrade to larger instance |
| **Horizontal** | Add more machines | Add more servers behind load balancer |
| **Elastic** | Automatic scaling based on load | Auto-scaling groups |
**Measurement:**
```text
- Maximum concurrent users
- Requests per second at given latency
- Data volume supported
- Cost per transaction at scale
```
**Trade-offs:**
- Scalability often conflicts with consistency (CAP theorem)
- More scalability = more complexity
- Horizontal scaling requires stateless design
### Reliability
**Definition:** The probability of correct operation over time.
| Concept | Definition |
| ------- | ---------- |
| **MTBF** | Mean Time Between Failures |
| **MTTR** | Mean Time To Recovery |
| **Fault Tolerance** | Continue despite component failures |
| **Resilience** | Recover from failures gracefully |
**Measurement:**
```text
- Error rate (errors / total requests)
- Failure rate (failures / time period)
- Data accuracy percentage
- Successful transaction rate
```
**Trade-offs:**
- Higher reliability = higher cost (redundancy)
- Reliability vs performance (checksums, validation)
- Reliability vs complexity (more failure modes to handle)
### Availability
**Definition:** The proportion of time a system is operational.
| Level | Uptime | Downtime/Year | Downtime/Month |
| ----- | ------ | ------------- | -------------- |
| 99% | Two 9s | 3.65 days | 7.31 hours |
| 99.9% | Three 9s | 8.76 hours | 43.8 minutes |
| 99.99% | Four 9s | 52.6 minutes | 4.38 minutes |
| 99.999% | Five 9s | 5.26 minutes | 26.3 seconds |
**Measurement:**
```text
Availability = Uptime / (Uptime + Downtime)
= MTBF / (MTBF + MTTR)
```
**Trade-offs:**
- Each additional "9" is exponentially more expensive
- Availability vs consistency (CAP theorem)
- Planned maintenance affects availability
### Performance
**Definition:** How fast and efficient the system operates.
| Metric | Definition |
| ------ | ---------- |
| **Latency** | Time to complete one request |
| **Throughput** | Requests processed per unit time |
| **Response Time** | Total time user waits |
| **Utilization** | Resource usage percentage |
**Common Targets:**
```text
- Web page load: < 2 seconds
- API response: < 100 ms (p99)
- Database query: < 10 ms
- Batch job: < scheduled window
```
**Trade-offs:**
- Performance vs cost (faster hardware costs more)
- Latency vs throughput (batching improves throughput, hurts latency)
- Performance vs consistency (caching improves speed, may serve stale data)
### Security
**Definition:** Protection of data and systems from unauthorized access.
| Principle | Description |
| --------- | ----------- |
| **Confidentiality** | Data accessible only to authorized |
| **Integrity** | Data is accurate and unaltered |
| **Availability** | Systems accessible when needed |
| **Non-repudiation** | Actions are attributable |
**Measurement:**
```text
- Time to detect breaches
- Number of vulnerabilities
- Compliance audit results
- Mean time to patch
```
**Trade-offs:**
- Security vs usability (more security = more friction)
- Security vs performance (encryption adds latency)
- Security vs cost (security tools and expertise are expensive)
### Maintainability
**Definition:** Ease of modifying the system over time.
| Aspect | Description |
| ------ | ----------- |
| **Modularity** | Components can change independently |
| **Reusability** | Components can be repurposed |
| **Analyzability** | Easy to understand the system |
| **Modifiability** | Easy to make changes |
| **Testability** | Easy to verify changes |
**Measurement:**
```text
- Time to implement typical change
- Defect injection rate per change
- Code complexity metrics
- Documentation coverage
```
**Trade-offs:**
- Maintainability vs performance (abstractions add overhead)
- Maintainability vs time-to-market (good design takes time)
- Maintainability vs specialization (generic = slower)
## Quality Attribute Scenarios
### How to Specify Quality Attributes
Use this template to make QAs measurable:
```text
Source: [Who or what generates the stimulus?]
Stimulus: [What event occurs?]
Artifact: [What part of the system is affected?]
Environment:[Under what conditions?]
Response: [How should the system respond?]
Measure: [How do we know it succeeded?]
```
### Example Scenarios
**Scalability Scenario:**
```text
Source: Marketing campaign
Stimulus: 10x traffic spike
Artifact: Web application
Environment:Normal operation
Response: Auto-scale to handle load
Measure: Latency stays under 200ms at p99
```
**Availability Scenario:**
```text
Source: Hardware failure
Stimulus: Database server dies
Artifact: Order processing system
Environment:Peak business hours
Response: Failover to replica
Measure: Recovery in < 30 seconds, no data loss
```
**Security Scenario:**
```text
Source: External attacker
Stimulus: SQL injection attempt
Artifact: User authentication
Environment:Production
Response: Block attack, alert security team
Measure: Zero successful injections, alert within 5 minutes
```
## ISO 25010 Quality Model
The ISO 25010 standard defines 8 quality characteristics:
| Characteristic | Sub-characteristics |
| -------------- | ------------------- |
| **Functional Suitability** | Completeness, correctness, appropriateness |
| **Performance Efficiency** | Time behavior, resource utilization, capacity |
| **Compatibility** | Co-existence, interoperability |
| **Usability** | Learnability, operability, accessibility |
| **Reliability** | Maturity, availability, fault toleranRelated in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.