frontend-patterns/canon/Relations.md
tegwick 71a8c1424b Reconcile pattern metadata and prepare contrasting primary-source inputs
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
2026-09-24 15:23:06 +02:00

1.8 KiB

Pattern Relations

The language is primarily a graph.

Core relations

requires

Pattern A needs Pattern B. Cite its stable pattern ID and explain why. Conditions that do not require a particular pattern belong in prerequisites, not graph edges.

enables

Applying A makes B possible or substantially easier.

creates-context-for

A changes the system such that B becomes a relevant subsequent decision.

This is especially important for generative sequences.

refines

A is a more specific realization of B.

generalizes

A captures the common structure of several more specific patterns.

complements

A and B solve different parts of a larger problem and commonly reinforce each other.

alternative-to

A and B address substantially the same problem using different trade-offs.

conflicts-with

The assumptions or consequences of A and B are structurally incompatible or create severe tension.

commonly-combined-with

Empirical relation based on frequent co-occurrence.

implemented-by

Links a pattern to technologies or concrete mechanisms.

observed-in

Links a pattern to known systems or architectures.

Relation semantics

Relations should be directional where possible.

For example:

Server Authority
    creates-context-for → Server Projection

is more informative than:

Server Authority
    related-to ↔ Server Projection

Avoid a generic related-to relation unless no stronger relation can be justified.

Serialization contract

Use the typed relation records in PatternSchema and the kebab-case keys in vocabulary.yaml. Pattern endpoints resolve by stable FEP ID; technology, system and architecture endpoints resolve to existing repository paths. Human-readable names in diagrams are explanatory labels only.