Skip to content

release: 1.2.15 — CI гоняет все сюиты + чистка перед публичной раздачей - #42

Merged
jojoprison merged 1 commit into
mainfrom
fix/audit-1.2.15
Aug 20, 2026
Merged

jojoprison merged 1 commit into
mainfrom
fix/audit-1.2.15

Conversation

@jojoprison

Copy link
Copy Markdown
Owner

Аудит готовности к публичной раздаче: веер из 4 агентов + адверсариальная верификация их же выводов. Из 30+ находок реальных оказалось шесть, и ни одна не касается работающего кода — всё про доку, CI-обвязку и витрину репозитория.

Главное — механическое

CI гонял 7 тестовых сюит из 18. skill-lint.yml перечислял их пофайлово, поэтому тест, приехавший вместе с фичей, не запускался, пока кто-нибудь не вспомнит дописать шаг. test-context-window.py и test-autocompact-nudge.py, вышедшие в 1.2.14 днём раньше, не гонялись в CI ни разу.

Теперь один цикл по scripts/test-*.py — и предохранитель: если glob нашёл меньше 10 файлов, шаг падает. Без него сломанный glob отрапортовал бы зелёный гейт на нуле тестов, что неотличимо от «всё прошло».

Дока против кода

docs/review.md утверждал, что скан сессии «never falls back to another task». Он именно это и делает: без session id берёт ближайший Codex-rollout из того же каталога. 1.2.14 fallback не убрал, а пометил строкой SOURCE:. Это было единственное место в репозитории, где дока прямо противоречит коду. Скилл review теперь тоже читает эту строку и считает заимствованный скан недоступным, а не аудирует чужую работу как свою.

Согласованность и витрина

  • Канон гейта сведён в TESTING.md; CONTRIBUTING.md и docs/codex.md ссылаются на него. Три ручные копии успели разойтись, в двух не было verify-release.py.
  • config.example.json не нёс ключей, которые пишет setup (handoff, hot, review.full, hooks.hotDigest) — при том что README велит копировать этот файл как рабочий конфиг. Та же дыра была в full-schema.
  • README: дерево проекта отстало от диска, а в примере конфига не было блока hooks вовсе — читатель не узнавал ни о нуджах, ни о том, что оба блокирующих opt-in.
  • CHANGELOG 1.2.13 был по-русски, то есть это тело публичного GitHub Release. Переведён.
  • head -32 всё ещё резал вывод скана: render() даёт до 43 строк, 44 со SOURCE:, а WORTH_SAVING_SIGNALS печатается последним.

Следы, чтобы не переоткрывать

TESTING.md получил ручные проверки V19-V23, docs/BACKLOG.md — карточку про PreCompact как второе плечо к autocompactNudge, с записью, почему он не годится заменой: в момент PreCompact агент не работает, а значит close-out оттуда не запустить. Тема autocompact теперь видна из входных документов: BACKLOG 0 → 4, TESTING 0 → 2, README 0 → 4.

Гейт

17 сюит в цикле + fresh-install — все зелёные. lint-skills PASSED, verify-release подтверждает контракт v1.2.15.

🤖 Generated with Claude Code

Аудит готовности к публичной раздаче (веер 4 агентов + адверсариальная
верификация). Из 30+ находок реальных шесть; ни одна не про работающий код.

Механическое (главное):
- CI перечислял сюиты пофайлово и гонял 7 из 18. Два теста, вышедшие вчера в
  1.2.14 (test-context-window, test-autocompact-nudge), не запускались в CI
  НИ РАЗУ. Теперь цикл по scripts/test-*.py + предохранитель: меньше 10
  найденных файлов = падение, иначе пустой glob отрапортовал бы зелёный гейт
  на нуле тестов.
- Канон гейта сведён в TESTING.md; CONTRIBUTING.md и docs/codex.md ссылаются.
  Три ручные копии разошлись, в двух не было verify-release.py.

Дока против кода:
- docs/review.md утверждал «it never falls back to another task» — единственное
  место в репо, прямо противоречащее коду: при пустом session id скрипт берёт
  ближайший Codex-rollout, 1.2.14 это не убрал, а пометил строкой SOURCE:.
  Скилл review теперь тоже проверяет эту строку.

Публичная витрина и согласованность:
- README: дерево проекта отстало (нет autocompact-нуджа, context-window.py,
  двух references); в примере конфига не было блока hooks вовсе.
- config.example.json не нёс ключей, которые пишет setup (handoff, hot,
  review.full, hooks.hotDigest), хотя README велит копировать его как рабочий
  конфиг; та же дыра в full-schema, и строка «defaults are: …» читалась как
  исчерпывающая, умалчивая про hotDigest=true.
- CHANGELOG 1.2.13 был на русском — то есть тело публичного GitHub Release.
  Переведён; цитаты триггер-фраз оставлены как есть.
- head -32 всё ещё резал вывод: render() даёт до 43 строк, 44 со SOURCE:, а
  WORTH_SAVING_SIGNALS печатается последним. Поднято до 44.

Находимость и следы:
- TESTING.md: секция V19-V23 под 1.2.14/1.2.15, шапка с v1.2.6 на актуальную.
- BACKLOG: карточка P4 про PreCompact как ВТОРОЕ плечо к autocompactNudge с
  записью, почему он не годится заменой (в момент PreCompact агент не работает
  и close-out оттуда не запустить) — чтобы следующая сессия не предлагала это
  заново как новинку. Там же: у lint нет правила на [[wikilink]], а две ссылки
  на приватные заметки доехали до публичного PR в прошлом ревью.
- Тема autocompact теперь видна из входных документов: BACKLOG 0 -> 4,
  TESTING 0 -> 2, README 0 -> 4.

Гейт: 17 сюит в цикле + fresh-install, все зелёные, lint PASSED,
verify-release для v1.2.15 подтверждён.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jojoprison
jojoprison merged commit 6fbd4d3 into main Aug 20, 2026
1 check passed
@jojoprison
jojoprison deleted the fix/audit-1.2.15 branch August 20, 2026 14:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant