Skip to content

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 17:37
· 230 commits to main since this release
d5e16e7

Добавлено

  • doctor --run --since <ссылка> — только то, что внёс диф. Первый прогон в живом проекте
    показывал долг за все годы: стену красного не разбирают, проверку выключают. Теперь находки
    сужаются до файлов, которых касался диф. Три исхода названы вслух: находка внутри дифа —
    красный; находки только снаружи — зелёный с числом спрятанного; гейт, печатающий вердикт
    без путей, сузить нечем — он остаётся красным, и причина названа. Молчаливого «всё хорошо»
    здесь нет ни в одном из трёх случаев

  • Запись каталога gate-not-weakened — первая, ловящая приём, а не стиль: не «код плохой»,
    а «сигнал о плохом коде выключен». Красным делается безадресное подавление — # noqa без кода,
    eslint-disable без имени правила, @ts-ignore, @SuppressWarnings("all"), --no-verify в
    конвейере. Проверено замером по пятнадцати чужим репозиториям: 20 774 файла, 22 находки,
    19 настоящих. Замер же нашёл два дефекта в самой проверке — оба до внесения записи в каталог

  • Запись каталога ci-actually-fails — закрывает дыру, найденную в собственной оснастке:
    gates-run-in-ci проверял, что гейт упомянут в конфиге конвейера, и пропускал
    run: pytest || true зелёным. Новая запись красит шаг, который и выносит вердикт, и не может
    провалиться. Замер по пятнадцати чужим репозиториям: 2 находки, обе настоящие (у reviewdog
    два шага собственных линтеров под continue-on-error: true), 0 ложных — после трёх
    переписываний, каждое из которых потребовал замер

  • Запись каталога test-has-assertion — три случая, в которых тест зелёный при любых
    данных: пустое тело, утверждение-тавтология, пропуск без названной причины. Граница найдена
    замером: первая формулировка «тест без утверждения» дала 1843 находки, из них 1843 ложных —
    186 оказались законным стилем «вызвали и проверили, что не упало». После шести переписываний:
    8 находок на ~25 000 файлов в девятнадцати репозиториях, включая шесть выключенных без причины
    тестов в swr

  • Запись каталога promise-has-gate — центральный вопрос комплекта: у каждого правила в
    точке входа виден сторож. Правило несёт пометку <!-- aqk: имя-гейта --> или
    <!-- aqk: человек -->; пометка, ведущая в несуществующий гейт, — тоже красное. Первый прогон
    по собственному AGENTS.md: тринадцать железных правил, ни у одного сторож не назван. После
    разметки одиннадцать из тринадцати оказались исполняемыми человеком — и это стало видно

  • Шаблон AGENTS.md, который кладёт init, размечен на обоих языках: у каждого правила
    в чужом проекте сразу виден сторож

  • Раздел «обвес самого агента» в карте готовых правил — agnix (455 правил, активен) и
    agents-lint. Запись docs-commands-run отменена, не начата: agents-lint делает это
    лучше. Поиск перед работой снял с плана целую запись

  • Скорость проверок каталога. Список файлов больше не накапливается строкой в цикле
    оболочки — это квадрат по длине: на 6407 файлах проверка шла 44 секунды, не прочитав ни одного
    файла. Отбор делает find, признак «сгенерирован» — сам awk. Стало 1,1 с и 2,3 с

  • Раздел «заглушка вместо реализации» в карте готовых правил. Запись no-stub-in-done
    написана, измерена и не внесена: из 120 находок 91 оказалась законным приёмом
    (null-объекты, безопасные заглушки), 29 покрывает pylint W0223, своей доли на 25 000 файлах не
    осталось. Готовые правила — no-empty-function, W0223, F901, PIE790 — внесены в карту

  • Правило «сомнение — повод посмотреть наружу» — железным правилом в AGENTS.md, разделом
    в kit/rules/general.md (переносится в проекты) и навыком .claude/skills/search-first

  • Зрелость записи каталога считается машиной. Три состояния: stable — доказательство
    ссылается на журнал шишек, experimental — не ссылается, deprecated — объявлено вместе с
    преемником. Объявить себя зрелым нельзя: lifecycle: stable в записи отклоняется приёмкой.
    У всех трёх соседей, чей каталог мы разбирали, это поле заполняет автор — значение, написанное
    автором, означает доверие к автору, а не факт. PROJECT.md §9 п.4 закрыт

  • aqk add отказывает в выведенной записи и называет ту, что её заменяет. Запись, которую
    всё ещё можно поставить одной командой, не выведена, а просто помечена. aqk start такую
    запись пропускает, называя преемника в общем списке пропущенного

  • tool/selfcheck/lifecycle.mjs — таблица зрелости всего каталога одной командой. Правило
    живёт в одной функции (entryLifecycle) и оттуда же читается приёмкой: повтор на sh дал бы
    второй источник истины, расходящийся с первым молча

npx agent-quality-kit doctor