«Talk is cheap. Show me the code.»Линус Торвальдс · рассылка ядра Linux, 25 августа 2000
4 275 contributions за год
Языки
Доля коммитов
- Python34,7 %
- TypeScript28,5 %
- JavaScript11,8 %
- HTML9,7 %
- Shell5,2 %
- CSS3,3 %
- PLpgSQL1,7 %
- Jupyter1,6 %
- Прочие3,4 %
Репозитории по весу
Площадь круга — коммиты за год
Куда ушли коммиты
Доля коммитов по типам
- Продукты35,8 %
- Эксперименты21,8 %
- Клиентские20,5 %
- Контент12,9 %
- Инфраструктура7,6 %
- Мелкие1,3 %
По дням недели
Пик — среда, 19 %
На чём пишу
Технологии из манифестов репозиториев за год: зависимости, Dockerfile, CI и конфиги.
Фронтенд
ReactTailwind CSSNext.jsViteZodZustandTanStack QueryFramer MotionReact Routershadcn/uiRechartsReact Hook FormStreamlitSwiftUITelegram Mini AppsThree.jsHugoLuau
Бэкенд
Node.jsFastAPIUvicornhttpxPydanticSQLAlchemyPlaywright-парсингBeautifulSoupFastifyCeleryExpressTelethonaiogrampython-telegram-botDjangogrammYGoNestJSRustWagtail
Данные
PostgreSQLRedisExcel (openpyxl)NumPypandasJupyterSQLiteAlembicDrizzlePyMuPDFSupabasepgvectorApache SupersetPrismaClickHouseDuckDB
AI
Claude CodeCodexGemini APIOpenAI APIClaude APICursorDifyPyTorchTransformersWhisperpyannoteLangGraphn8n
Инфраструктура
Docker ComposeDockerGitHub ActionsCaddynginxGrafana / LokiPrometheusstructlogKeycloakKubernetes / HelmVercelAnsibleUptime Kuma
Качество
TypeScriptpytestESLintVitestRuffTesting LibraryПокрытие тестамиProperty-based тестыmypyPlaywright e2eTrivyPrettierStryker (мутации)hadolintJestaxe-corepre-commit
Хочешь себе так же?
Скопируйте промпт и отдайте агенту с доступом к терминалу — Claude Code или Codex. Он соберёт такой же год по вашему GitHub: только агрегаты, без названий репозиториев.
Роль: ты аналитик данных и верстальщик. Собери «Год в коде» — итоги моего года в GitHub — и сдай одностраничным HTML, PDF и PNG.
ОКРУЖЕНИЕ
- gh CLI установлен и авторизован: проверь gh auth status, логин возьми из gh api user.
- Период: ровно 365 дней, последний день — вчера. Часовой пояс спроси у меня, если не знаешь.
- Всё только чтением через API, репозитории не клонируй.
ПРИВАТНОСТЬ — ГЛАВНОЕ ПРАВИЛО
- Почти все мои репозитории приватные. В итоговые файлы попадают только агрегаты.
- Никаких названий репозиториев, организаций, веток, файлов, текстов коммитов и имён клиентов — ни в HTML, ни в JSON, ни в PDF, ни в PNG.
- Названия живут только в локальном repo_map.local.json. Сразу добавь его в .gitignore.
ЭТАП 1. СБОР
1. Репозитории, которыми владеет мой аккаунт: GraphQL viewer.repositories(ownerAffiliations: OWNER). Организации не трогай, пока я не скажу.
2. По каждому — мои коммиты за период по всем веткам: refs → history(since, until). Запрашивай только oid, authoredDate, additions, deletions, author.user.login. Сообщения коммитов не запрашивай.
3. Дедуп: коммит в нескольких ветках — один раз; после rebase и cherry-pick — по отпечатку authoredDate + additions + deletions.
4. Календарь contributionsCollection.contributionCalendar за тот же период — это число сойдётся с профилем.
5. GitHub отдаёт время в UTC. Переведи в мой часовой пояс до подсчёта часов и дней.
6. Сначала прогони 10 репозиториев, замерь время и назови оценку полного прогона.
ЭТАП 2. ПОДСЧЁТ → stats.json
- totals: репозитории на аккаунте, contributions, коммиты, строки добавлено, PR смержено. Коммиты крупнее 50 000 строк — почти всегда выгрузки и зависимости: исключи их из строк и покажи мне, что исключено.
- days (по календарю contributions): активные дни, самая длинная серия, пиковый день.
- rhythm: коммиты по 24 часам и 7 дням недели.
- languages: доля языка в репозитории × мои коммиты в нём, top-8 + прочие. Байты целого репозитория искажают картину.
- repos: анонимные {category, commits}. Категории product / client / experiment / infra / content предложи по названиям в терминале, итог утверждаю я.
- stack: технологии из package.json, pyproject, requirements, Dockerfile, compose и CI — только из справочника публичных названий, внутренние пакеты не выводить.
Покажи итоговые цифры в терминале и остановись до моего «да».
ЭТАП 3. ВЁРСТКА
- Один самодостаточный HTML без внешних запросов: шрифты с кириллицей встрой base64 и проверь покрытие по cmap, графики — inline SVG, данные — в <script type="application/json">.
- Состав: крупные итоговые числа, тепловая карта 53 × 7, языки, репозитории кружками (площадь = коммиты), дни недели в процентах, стек по слоям.
- Сначала пришли картинку: облик утверждаю по изображению, а не по описанию.
ЭТАП 4. ВЫПУСК И ПРОВЕРКИ
- PDF через Playwright: ровно одна страница A4, ничего не обрезано — проверь pdfinfo.
- PNG из PDF в 250 dpi: 90 dpi на ретине выглядит мылом.
- Гейт приватности: ищи каждое название из repo_map.local.json во всех выходных файлах (в PDF — по pdftotext, в PNG — по текстовым чанкам). Одно совпадение — не сдавай.