Skip to content
View ArtVsMark's full-sized avatar

Block or report ArtVsMark

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ArtVsMark/README.md
Artem Markitanov — Python grading, benchmarking, testing and CI automation
Open-source Python maintainer; Grading · benchmarking · CI automation; Quality held by mechanism, not memory

GitHub engineering stats

GitHub engineering stats: 6 public repos, 13 stars earned, 95 followers, 6 727 contributions · 365d, 27 day streak, 27 longest streak Technology footprint: Python in 6 of 6 repos, 97.3% of code, Shell in 5 of 6 repos, 0.2% of code, HTML in 3 of 6 repos, 0.5% of code, JavaScript in 1 of 6 repos, 1.5% of code, CSS in 1 of 6 repos, 0.4% of code, Makefile in 1 of 6 repos, <0.1% of code, Batchfile in 1 of 6 repos, <0.1% of code; roles: CLI, web UI, GUI, pytest plugin, OS sandbox, docs, RU/EN, Python, JSONL over git, content, tooling, GitHub Actions, gates



A year of contributions day by day, peak 270 in a day, weekly trend below; a snake crossing the contribution grid

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.

What I maintain

Open Stepik-Python-Grader on GitHub Open Engineering-Pipeline-Mechanisms on GitHub Open Glossary-Python on GitHub Open Claude-Code_Usage-Token on GitHub Open Engineering-Incidents-Playbook on GitHub

data as of 2026-10-03

Engineering approach

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 87 of 87 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.

Current focus

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

Where this is headed

The repositories above are not parallel products competing for attention. They are one sequence, and the order is deliberate.

  • The grader came first. Stepik-Python-Grader — today's flagship — was the first real project, and the glossary later folded into it. Every infrastructure repository here grew out of a problem hit while building it.
  • Infrastructure before features. Three repositories do the job a project manager would: they sit between me as the client and AI agents as the development team, and hold the pace, the rules and the reusable machinery for everything else — shared pipeline mechanisms, a rule catalogue where every rule carries its incident, and development pace control from session telemetry. They are finished first, so the same mistake is not paid for again in every repository.
  • Then the grader, all the way. Work returns to the grader once that groundwork holds, and it is brought to a state worth promoting publicly. A quiet grader in the activity above is this ordering at work, not an abandoned project.
  • Then the next flagship. All of this is preparation for a modular platform that automates analytics, reporting and budgeting, built to grow beyond a single tool. It gets its own repository when there is code to show, not before.

A plan, not a promise with dates: the order can change, and this section changes with it.

Stack

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. Я не рассчитываю на то, что вспомню: всё существенное здесь держат проверки. Перед коммитом бежит один набор, перед слиянием другой, и уговорить их нельзя — сломанное просто не уезжает дальше. Это не строгость к себе, а экономия: помнить два десятка договорённостей дороже, чем один раз их записать так, чтобы за ними следила машина.

Правила у меня не берутся из головы. Каждое выросло из конкретной поломки, и рядом с ним записано, из какой именно — 216 записей в общем каталоге, одном на все репозитории. Каждый отвечает по каждому правилу: принял и чем держит, отклонил и почему, предмета нет — и ответ сверяется гейтом, а не совестью. Правило, за которым не бежит ничего, на витрине видно отдельной долей: если его прятать, картинка всегда выглядит хорошо.

Числа на этой странице я не пишу руками — их пересобирает workflow из тех репозиториев, которые их порождают. Причина простая: число, которое никто не измеряет, устаревает молча, и первым это замечает не автор, а читатель. Когда источник не отвечает, страница показывает вчерашнюю картинку и говорит об этом вслух, вместо того чтобы подставить правдоподобное.

Куда это движется. Репозитории выше — не параллельные продукты, а одна последовательность. Первым был грейдер; глоссарий позже влился в него, а три инфраструктурных проекта — механизмы конвейера, каталог правил и контроль темпа по телеметрии сессий — родились из проблем, найденных при его разработке. Они делают работу руководителя проектов: держат темп, правила и общие механизмы между мной как заказчиком и ИИ-агентами как командой. Сначала доделывается эта инфраструктура, чтобы не наступать на одни и те же грабли в каждом репозитории; затем грейдер доводится до готовности, с которой его можно продвигать; и только после него начинается следующий флагман — модульная платформа автоматизации аналитики, отчётности и бюджетирования. Это план, а не обязательство с датами.

Pinned Loading

  1. Engineering-Incidents-Playbook Engineering-Incidents-Playbook Public

    Правила работы с Claude Code и конвейером GitHub — каждое с историей поломки, из которой выросло · Incident-based rules for Claude Code and GitHub: every rule grew out of a real failure, with the i…

    Python 5

  2. Stepik-Python-Grader Stepik-Python-Grader Public

    Локальный грейдер для курсов «Поколение Python» на Stepik. Скачивает тесты к задаче с сайта и позволяет не только проверить решение локально, но и сравнить несколько решений более честно: сначала п…

    Python 3 6

  3. Glossary-Python Glossary-Python Public

    Глоссарий для людей изучающих Python

    Python 2

  4. Claude-Code_Usage-Token Claude-Code_Usage-Token Public

    Сколько на самом деле осталось от лимитов Claude Code — в цифрах, а не в светофоре

    Python 1

  5. Engineering-Pipeline-Mechanisms Engineering-Pipeline-Mechanisms Public

    «Механизмы конвейера: скелет один для всех проектов, наполнение своё. Правила — в ArtVsMark/Engineering-Incidents-Playbook»

    Python 1