# Systems and relationships

A system is an explicitly configured set of cooperating components. Components
may represent APIs, resources, repositories, or artifacts. Unrelated
repositories remain separate even when they share a parent directory or match
the same search query.

Team configuration belongs in repository-root `reckon.yaml` and contains stable
identities without local absolute paths. Personal checkout paths belong in:

```text
$XDG_CONFIG_HOME/reckon/repositories.yaml
```

Commands:

```bash
reckon system list
reckon system show <system-id>
reckon system validate <system-id>
reckon system query <system-id>
```

The existing single MCP gateway exposes the same `system` operation with
`systemAction=list|show|validate|query`.

Relationship types include dependency, API provider/consumer, deployment,
provisioning, output/config/path references, events, images, and provenance.
Every relationship carries its target identity, exact evidence location,
adapter, evidence kind, confidence, freshness, and index generation when one
exists.

Declared relationships have highest confidence. Extracted package/contract/
infrastructure relationships are source-evidenced. Inferred literal or key
matches remain labeled and cannot silently create system membership. Optional
runtime evidence corroborates static evidence; it does not replace canonical
source.

`.reckon/federation.json` remains a compatibility input and is never silently
discarded. Loaded entries are labeled `legacy-federation` until migrated to
stable identities.

System validation fails closed for unresolved repository identities or missing
required checkouts. Partial query behavior must be explicit and name every
omitted component; absent evidence is never reported as zero.
