Measured from the GitHub API by the same workflow that rebuilds every other number here — no third-party stat services, no external cards. Languages are counted by how many repositories use them, not by bytes of code.
Four things I do the same way in every repository, and the artefacts you can check them against.
- Mechanism over memory — anything that matters is a script or a gate, not a habit. A convention nobody enforces is a convention that will be skipped on the day it matters most.
- Public rules over private habit — the workflows, the conventions and the trade-offs are written down and versioned, so they can be read without taking my word for it. Every rule in the shared catalogue gets an answer from this repository — adopted and by what mechanism, rejected and why, or no subject here — in
.rules/bindings.json. - Incidents over folklore — a rule exists because something broke. Each one carries the failure it grew from, and they live together in a public catalogue rather than in my head.
- Measured over hand-written — every number on this page is rebuilt from its source by a daily job. A number nobody measures is a number that rots, and it rots quietly.
- Agent work, signed and traceable — the work here is done in agent sessions, and the history says so: every commit carries who did it and a link to the session that produced it. Over the last 30 days that is 77 of 78 work commits — machine rebuilds excluded, because a scheduled job takes no decisions to sign for. A gate refuses the ones that don't, before the merge rather than after.
One worked example, not the whole argument. On the flagship repository the branch protection is public and machine-readable: 15 required checks on main, run across 3 operating systems × 3 Python versions with 3.15 experimental, over 12 releases — read the ruleset yourself instead of believing this line. The other repositories hold the same shape at their own maturity; this one simply has the most to show.
| CI & merge automation | stronger gates, less manual shepherding |
| Regression coverage | every fixed bug leaves a test behind |
| English documentation | full parity with the Russian docs tree |
| Local web UX | making --serve the primary workflow, not the fallback |
Python · pytest · Hypothesis · Ruff · mypy · GitHub Actions · PyPI · Playwright
CLI tooling · local web UI · benchmarking · OS sandboxing · docs architecture · release automation · typed boundaries · property-based testing
Мейнтейнер open-source на Python. Я не рассчитываю на то, что вспомню: всё существенное здесь держат проверки. Перед коммитом бежит один набор, перед слиянием другой, и уговорить их нельзя — сломанное просто не уезжает дальше. Это не строгость к себе, а экономия: помнить два десятка договорённостей дороже, чем один раз их записать так, чтобы за ними следила машина.
Правила у меня не берутся из головы. Каждое выросло из конкретной поломки, и рядом с ним записано, из какой именно — 207 записей в общем каталоге, одном на все репозитории. Каждый отвечает по каждому правилу: принял и чем держит, отклонил и почему, предмета нет — и ответ сверяется гейтом, а не совестью. Правило, за которым не бежит ничего, на витрине видно отдельной долей: если его прятать, картинка всегда выглядит хорошо.
Числа на этой странице я не пишу руками — их пересобирает workflow из тех репозиториев, которые их порождают. Причина простая: число, которое никто не измеряет, устаревает молча, и первым это замечает не автор, а читатель. Когда источник не отвечает, страница показывает вчерашнюю картинку и говорит об этом вслух, вместо того чтобы подставить правдоподобное.



