{% extends "base.html" %} {% from "_links.html" import go %} {# Compound capabilities: the realizes/requires projection, drawn from the same build as the map. A compound capability contains the components its span encompasses; overlap without containment is shown as a looser cluster, never as a containment. Authored nowhere -- read from the graph's edges (ADR 2026-09-28). #} {% block main %}
Compound capabilities {{ compound.compounds | length }} compound · {{ compound.overlaps | length }} overlap

Compound capabilities

A capability whose realizes/requires span encompasses the entire span of one or more others is compound; those others are its components. Containment is a partial order the single-parent tree cannot show, so it lives only here. Hard where the shared span rests on requirements, soft where it rests on a contract.

← Back to the map
{% if not compound.compounds and not compound.overlaps %}

No compound capabilities: no two capabilities' spans stand in containment, and none merely overlap. Every capability's boundary footprint is its own.

{% endif %} {% if compound.compounds %}

Compound → components

{% for c in compound.compounds %}

{% if c.status %}{% endif %} {% if c.route %}{{ c.label }}{% else %}{{ c.label }}{% endif %} subsumes {{ c.components | length }}

    {% for comp in c.components %}
  • {% if comp.route %}{{ comp.label }}{% else %}{{ comp.label }}{% endif %} {{ comp.strength }}{% if comp.contract_mediated %}, lower bound{% endif %}
  • {% endfor %}
{% endfor %}
{% endif %} {% if compound.overlaps %}

Overlap clusters

Spans that intersect without containment: interdependent, but neither compound over the other.

{% endif %}
{% endblock %}