Severity Model - listenrightmeow/signal-driven-development GitHub Wiki
Severity Model
SDD uses a two-level severity model for gap classification. Severity determines resolution priority, not whether a gap should be investigated.
Severity Levels
ERROR
The specification has a structural deficiency that will cause ambiguity or failure during implementation. Must be resolved before the model is implementation-ready.
Characteristics:
- Binary -- the element is missing or malformed
- Blocks implementation if left unresolved
- Cannot be deferred to a later pass without risk
Common ERROR gaps:
- Aggregate with zero invariants (SG-01)
- Command with no corresponding domain event (SG-02)
- Missing domain concept referenced in requirements (DG-01)
WARNING
The specification has a pattern that may cause problems or violates a known heuristic. Should be investigated and either resolved or documented as intentional.
Characteristics:
- May be a valid design choice in context
- Can sometimes be deferred to the next pass
- Requires investigation and documented rationale
Common WARNING gaps:
- Bounded context with no declared relationships (SG-03)
- Aggregate exceeding command density threshold (HG-01)
- Same term used with different definitions across contexts (LG-01)
- Boundary placement with undocumented tradeoffs (DG-03)
Severity Distribution
In a typical Pass 1 gap report (15--35 gaps):
| Severity | Typical Count | Percentage |
|---|---|---|
| ERROR | 3--8 | ~25% |
| WARNING | 12--27 | ~75% |
ERRORs decrease rapidly across passes because they represent structural deficiencies that are straightforward to identify and resolve. WARNINGs persist longer because they often represent genuine architectural tradeoffs that require investigation.
Resolution Requirements by Severity
| Severity | Must Resolve? | Can Defer? | Override Allowed? |
|---|---|---|---|
| ERROR | Yes -- before model is implementation-ready | Only to the next immediate pass | No -- structural deficiencies must be fixed |
| WARNING | Should investigate | Yes -- with documented rationale | Yes -- document why the current design is intentional |
Severity and Convergence
The convergence invariant applies to total gap count (errors + warnings combined). A model is converged when:
- Zero ERRORs remain
- Zero WARNINGs remain (or all remaining warnings are documented overrides)
- Total gap count has decreased across every pass