skills/complexity-analysis/SKILL.md
Analyze specification quality using Axiomatic Design principles. Optional advanced validation for critical systems. Evaluates independence, completeness, and information content of requirements.
npx skillsauth add rafaelgorski/problem-based-srs complexity-analysisInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
OPTIONAL Advanced Validation Tool for Problem-Based SRS methodology
Purpose: Analyze specification quality using Axiomatic Design principles
When to use: After completing the standard process, when deeper quality analysis is needed
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 RFC 2119 RFC 8174 when, and only when, they appear in all capitals, as shown here.
This is NOT part of the standard Problem-Based SRS flow. Use it when you want to:
Standard Flow: customer-problems → software-glance → customer-needs → software-vision → functional-requirements → zigzag-validator
Optional: complexity-analysis (call explicitly when needed)
The complexity analysis is based on Axiomatic Design (Suh, 1990), an engineering design theory with two fundamental axioms:
| Axiom | Name | Principle | |-------|------|-----------| | Axiom 1 | Independence | Maintain independence of functional requirements | | Axiom 2 | Information | Minimize the information content of the design |
Based on the relationship between domains, specifications fall into three categories:
(Number of CNs < Number of CPs) OR (Number of FRs < Number of CNs)
(Number of CNs > Number of CPs) OR (Number of FRs > Number of CNs)
(Number of CNs = Number of CPs) AND (Number of FRs = Number of CNs)
For each mapping (CP→CN and CN→FR), check:
Create a design matrix to visualize relationships:
CN.1 CN.2 CN.3
CP.1 [X] [ ] [ ] ← Ideal: one X per row
CP.2 [ ] [X] [ ]
CP.3 [ ] [ ] [X]
Matrix Types:
| Type | Pattern | Status | |------|---------|--------| | Diagonal | One X per row/column | ✅ Ideal (uncoupled) | | Triangular | Xs below diagonal only | ✅ Acceptable (semi-coupled) | | Full | Xs scattered | ❌ Coupled (needs revision) |
Use C (Complete) and P (Partial) markers to indicate how well each element addresses its source:
CN.1 CN.2 CN.3
CP.1 [C] [ ] [ ] C = CN completely solves CP
CP.2 [P] [P] [ ] P = CN partially solves CP
CP.3 [ ] [ ] [C]
Interpretation:
FR.1 FR.2 FR.3 FR.4
CN.1 [C] [ ] [ ] [ ]
CN.2 [P] [P] [ ] [ ]
CN.3 [ ] [ ] [C] [P]
Information Content (IC) measures the probability that a design will successfully satisfy its requirements. Lower IC = better design.
Formula:
IC = log₂(1/p)
Where p = probability of success
For each CN, estimate:
Example:
CN.1: Manager needs to know account balances within 24 hours
Need Range: 0-24 hours (acceptable)
System Range: 0-2 hours (what system delivers)
Overlap: 100% → High probability of success → Low IC ✅
| Scenario | System vs Need | IC Level | Action | |----------|---------------|----------|--------| | System range fully within need range | Full overlap | Low ✅ | Good | | System range partially overlaps need | Partial overlap | Medium ⚠️ | Review constraints | | System range outside need range | No overlap | High ❌ | Redesign required |
When running complexity analysis, produce:
## Complexity Analysis Report
### 1. Element Count Summary
| Domain | Count |
|--------|-------|
| Customer Problems (CP) | [N] |
| Customer Needs (CN) | [N] |
| Functional Requirements (FR) | [N] |
**Specification Type:** [Coupled | Redundant | Ideal]
### 2. Independence Analysis
**CP → CN Matrix:**
[Include matrix with X markers]
**CN → FR Matrix:**
[Include matrix with X markers]
**Independence Status:** [Uncoupled ✅ | Semi-coupled ⚠️ | Coupled ❌]
### 3. Completeness Analysis
**CP → CN Completeness:**
[Include matrix with C/P markers]
**CN → FR Completeness:**
[Include matrix with C/P markers]
**Coverage Issues:**
- [List any uncovered CPs]
- [List any uncovered CNs]
- [List any orphan FRs]
### 4. Information Content Assessment
| CN | Need Range | System Range | Overlap | IC Level |
|----|------------|--------------|---------|----------|
| CN.1 | [range] | [range] | [%] | [Low/Med/High] |
### 5. Recommendations
1. [Specific recommendation based on analysis]
2. [Specific recommendation based on analysis]
| Situation | Use Complexity Analysis? | |-----------|-------------------------| | Quick prototype or MVP | No | | Learning the methodology | No | | Critical system (safety, finance) | Yes | | Large specification (>20 FRs) | Yes | | Specification seems bloated | Yes | | Requirements conflicts detected | Yes | | Formal review required | Yes |
Element Counts:
Assessment: Redundant specification (CNs > CPs, FRs > CNs)
CP → CN Matrix:
CN.1 CN.2 CN.3 CN.4 CN.5 CN.6
CP.1 [C] [P] [ ] [ ] [ ] [ ]
CP.2 [ ] [ ] [C] [ ] [ ] [ ]
CP.3 [ ] [ ] [ ] [C] [ ] [ ]
CP.4 [ ] [ ] [ ] [ ] [C] [P]
CP.5 [ ] [ ] [ ] [ ] [ ] [C]
Result: Semi-coupled (triangular tendency). CP.1 and CP.4 have multiple CNs but they don't compete. Acceptable.
Version: 1.2
Type: Optional Advanced Validation Tool
Command: /complexity-analysis
tools
Generate Functional Requirements (FR) and Non-Functional Requirements (NFR) from Customer Needs and Software Vision. Creates individual requirement files with traceability. Step 5 of Problem-Based SRS methodology.
testing
Validate traceability and consistency across Customer Problems, Customer Needs, and Functional Requirements domains. Use to check completeness, identify gaps, and ensure all requirements trace to real business problems.
data-ai
Transform Software Glance and Customer Needs into a detailed Software Vision with positioning, stakeholders, features, and architecture. Use after Customer Needs. Step 4 of Problem-Based SRS methodology.
content-media
Create the first abstract representation of a software solution from Customer Problems. Use after identifying CPs to design high-level system boundaries and components. Step 2 of Problem-Based SRS methodology.