---
name: undominated-family-snapshot
description: Require family membership to be a subset of the catalogue snapshot it claims to follow.
license: MIT
metadata:
  author: Undominated.ai
  version: "1.0.0"
---

# Family snapshot

Use when a family list may have been built from an older catalogue.

1. Every family member must appear in the snapshot.
2. A member absent from the snapshot is stale, not a new model.
3. The snapshot may contain models that are not in the family. That is not an error.
4. Do not invent a family from name similarity.

## Run the local check

```sh
python3 scripts/check.py examples/synthetic.json
python3 scripts/check.py /absolute/path/to/your-input.json
```

The bundled example is **synthetic**, not a market measurement. The script reads one local JSON file, prints JSON, and writes nothing. Python 3.10+; no dependencies.

Exit codes: `0` the supplied claim matches the rule; `1` review required; `2` invalid input. A pass is not publication permission.

## Input contract

`snapshot` and `members` are arrays of non-empty id strings. Duplicates inside either array are invalid.

## Deliverable and limits

Return members that are not in the snapshot.

The user retains control over external actions. This skill does not install dependencies, spend API credits, modify production settings, or publish anything.
