docs: единый источник правды для счётчиков/фаз + онбординг (фаза 1) - #2
Merged
Conversation
…аза 1) Дизайн фазы «удобство для новичка»: STAMP-генератор впечатывает ground-truth (блоки=103, источники=461, каналы=29, API=39) и фазы из phases.yaml в README/ SKILL/docs между маркерами; CI --check падает при рассинхроне. Согласовано посекционно в брейншторме. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…4 группы) TDD-план фазы 1: catalog_counts (regex ground-truth) + phases.yaml (stdlib-парсер) + stamp_docs (--write/--check) + маркеры в доках + первая штамповка правды + CI-гейт + QUICKSTART. 20 тестов. Группы A→D, каждая = свой коммит. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
catalog_counts.counts() считает blocks/channels/stat_sources/api/genres выверенными regex прямо из references/. Pure read. Golden-тест на 103/29/461/39/6. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…сключён, 1 канал) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…о optional) Единственный структурный источник фаз. Парсер без PyYAML — гейт не тянет зависимость. Поля выверены по SKILL.md:111-118 и runtime_verification.md:92 (6.5=haiku/low). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
render_values (счётчики+фазы, refuse на zero), stamp_text (unknown-key/unbalanced raise), run (drift-детект + warn на unused key). 10 тестов на temp-файлах. Доки не тронуты. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…а ещё старые) 116 маркеров в 13 доках. Убран неиспользуемый ключ phases:list:en из render_values (нечего штамповать → YAGNI; phases:table:en покрывает англ. рендер фаз). --check показывает только DRIFT (числа корректирует следующий коммит), без warning. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…→461, каналы 28→29, API 30+→39, фазы→9) - stamp_docs.py --write впечатал правду; вернул Phase 6.5+7 в таблицу README - stamp_text усилен: падает на ВЛОЖЕННЫХ маркерах (regression — таблица фаз в README оборачивала count-маркеры); +тест test_nested_markers_raise - ручные прозы-фиксы стале-счёта фаз вне маркеров (README:123, DESIGN:23, runtime_verification:89 6/7→9) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ассинхрона) Два новых шага в structure-and-budget: прогон unit-тестов и проверка, что счётчики/фазы в доках совпадают с источниками. Без сети, без токенов. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…чётчики под маркерами) Короткая входная дорожка для новичка + ссылка из README. Счётчики в QUICKSTART под gen-маркерами, подхватываются stamp_docs (TARGETS), стережётся CI --check. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… в счёте источников
- phases_manifest._strip_quotes: квотированное значение с inline-комментом больше
не портится ("1" # x → 1); +тест test_inline_comment_stripped
- catalog_counts._count_stat_sources: исключить INDEX/README (там template
'**URL:** <main URL>' — не реальный источник) → честные 460 вместо 461
- перештампованы доки 461→460, golden-тест обновлён
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Фаза 1 «масштабнее и удобнее»: устранить рассинхрон документации и упростить вход для новичка. Дальше — фаза 2 (мульти-LLM runner), отдельным PR.
Проблема (вскрыта regex'ом)
Доки систематически врали, машиночитаемого источника не было:
<main URL>в INDEX)Решение — STAMP
Правда живёт в источнике, доки производны, CI стережёт:
scripts/catalog_counts.py— счётчики из файловreferences/выверенными regex (pure read).phases.yaml+scripts/phases_manifest.py— единственный структурный источник 9 фаз; парсер на stdlib (гейт без PyYAML-зависимости).depth_gateвместо плоскогоoptional.scripts/stamp_docs.py— впечатывает значения в маркеры<!--gen:KEY-->…<!--/gen-->;--writeправит,--checkпадает при рассинхроне. Защиты: отказ штамповать ноль, raise на неизвестном ключе / вложенных маркерах, warn на неиспользуемом ключе.validate.yml):pytest+stamp_docs.py --checkна каждый PR. Без сети, без токенов.QUICKSTART.md— установка → вызов → результат за ~5 минут, счётчики под маркерами.Дифф крупный, но почти весь — механическая перештамповка чисел (особенно
docs/index.html, ~30 i18n-мест EN+RU). Содержательная логика — в трёх скриптахscripts/*.py(~290 строк) + тестах. Смотреть стоит коммитыb7607e2(извлекатель),5c1947a(манифест),a7d0f2b(штамповщик);c9ef04d— это и есть массовая замена чисел.Проверено
python -m pytest tests/ -q→ 22 passed.python scripts/stamp_docs.py --check→ rc 0.🤖 Generated with Claude Code