Пакет: Иерархия городов и закон Ципфа

Проверяемый пакет исследования «Иерархия городов и закон Ципфа, 1897–2026». Один источник (222 города, переписи 1897–2019 + оценки), весь расчёт — стандартная библиотека Python, воспроизведение ~10 секунд.

Версии

v1.0.0 · 2026-07-11 · git-тег artifact-zipf-v1.0.0

Первый релиз: 12 срезов 1897–2026, наклоны Габэ–Ибрагимова по топ-20/30/50, примация, 8 контрольных метрик с допуском ±0,001.

Состав

by-maps-zipf-v1.0.0/
├── README.md                    вопрос, вывод, как воспроизвести
├── manifest.json                машиночитаемое описание (файлы, sha256, допуски)
├── AGENT.md                     задачи для LLM-агента и формат отчёта
├── LIMITATIONS.md               7 известных ограничений
├── PROVENANCE.md                цепочка источник → преобразование → результат
├── CITATION.cff · LICENSE.md
├── sources/registry.csv         реестр источников (URL, лицензия, дата, sha256)
├── sources/raw/ps_cities.html   завендоренный сырой источник
├── code/run.sh                  единственная точка входа
├── code/build.py                весь расчёт (стандартная библиотека)
├── code/fetch.py · verify.py · requirements.lock
├── params/assumptions.yaml      6 допущений с обоснованиями
├── data/final/                  ранжировки, наклоны, примация, контрольные метрики
└── checks/                      инварианты, ожидаемые результаты, контрольные суммы

Быстрая проверка

unzip by-maps-zipf-v1.0.0.zip && cd by-maps-zipf-v1.0.0
bash code/run.sh
# == 1/3 Расчёт от sources/raw до data/final ==
# == 2/3 Инварианты данных ==
# == 3/3 Сверка с заявленными результатами ==
# Все 8 контрольных метрик воспроизведены в допусках.

Валидация в CI: каждый пуш пересобирает пакет и сверяет с опубликованным байт-в-байт; полный прогон run.sh — часть пайплайна.