---
name: undominated-population-scope
description: Check that a claimed count uses the population the sentence names, not a smaller one.
license: MIT
metadata:
  author: Undominated.ai
  version: "1.0.0"
---

# Population scope

Use when a sentence names a population and a count that may have been taken from a subset.

1. The named population and the counted population must be the same set of ids.
2. A smaller counted set is a subset claim, not a claim about the named population.
3. Order does not matter. Identity does.
4. Do not case-fold. The caller normalises first.

## 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

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

## Deliverable and limits

Return ids in the named population that were not counted, and ids counted that were not named.

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