Vibe Codex для опенсорс-контрибьюторов
Самое сложное в open source — не написать патч, а написать его так, чтобы мейнтейнер не закрыл PR со словом «not in scope».
Контрибьютить в чужой проект — это упражнение в чтении: кодстайла, тон-оф-войс, очереди задач, политики ревью. Vibe Codex здесь не пишет за вас — он экономит часы на разведке и помогает оформить уже сделанное.
Шаг 1. Разведка репозитория
Свежий чек-аут чужого проекта. Не надо неделю изучать структуру — спрашиваем напрямую.
$ git clone https://github.com/some-org/some-project
$ cd some-project
$ vibe-codex onboard
[opus] Проект на TypeScript + Vite.
[opus] Архитектура: monorepo с pnpm workspaces, 4 пакета:
- core (логика, без UI)
- cli (бинарь)
- web (Vue 3 + Pinia)
- docs (Astro)
[opus] CONTRIBUTING.md требует:
- issue до PR (для не-typo фиксов);
- conventional commits;
- одно изменение = один PR;
- DCO sign-off.
[opus] Релизы: changesets, semver, бот публикует автоматически.
Шаг 2. Кодстайл, который нигде не записан
Кодстайл из .eslintrc — это половина правды. Вторая половина — в коде. Ассистент читает 20 случайных файлов и формулирует негласные правила.
$ vibe-codex conventions --sample 20
[opus] Негласные правила:
- функции экспортятся именованно (никаких default export)
- типы — interface для объектов, type для алиасов
- тесты — рядом с файлом, *.test.ts
- комменты — английский, без эмодзи
- в PR не более 200 строк diff (по чтению последних 50 PR)
Шаг 3. Выбор задачи
«Хочу что-нибудь починить» — плохая стартовая точка. Хорошая — посмотреть очередь и выбрать то, что вам осилимо.
$ vibe-codex issue triage --label "good first issue"
[opus] 12 открытых задач с этой меткой. Сортирую по моей оценке
сложности (S/M/L) и риску закрытия как «not planned»:
#3412 S «Typo in CLI help» низкий риск
#3389 S «Add example for --json flag» низкий риск
#3201 M «Improve error message on bad config» средний риск
#2887 L «Support YAML config alongside JSON» высокий риск
(уже обсуждалось 2 года, мейнтейнеры разделились)
Ассистент не угадывает, что закроют — он смотрит историю обсуждения и подсвечивает риски. Дальше ваш выбор.
Шаг 4. Сам патч
Дальше — обычный цикл. explain, edit, тесты, прогон. С одним важным отличием: Vibe Codex держит в голове CONTRIBUTING.md и не предлагает то, что заведомо не зайдёт.
$ vibe-codex "поправь #3389: добавь пример --json в man-страницу"
[opus] Я не буду генерировать новый раздел — в проекте принято
править docs/cli.md, а не man-страницу. man генерируется
из docs/cli.md скриптом scripts/gen-man.sh.
[plan] 1 file: docs/cli.md
[plan] 1 step: запустить scripts/gen-man.sh, закоммитить result.
Шаг 5. Описание PR
Скучная часть, на которой проваливаются хорошие патчи. Ассистент знает шаблон проекта и заполняет его.
$ vibe-codex pr description
## Summary
Add an example of `--json` flag usage to the CLI documentation,
addressing #3389.
## Changes
- docs/cli.md: new section "JSON output" under "Output formats"
- regenerated man page via `scripts/gen-man.sh`
## Test plan
- Built docs locally with `pnpm docs:build`, no warnings.
- Ran `man ./out/cli.1` to confirm formatting.
Signed-off-by: Иван Петров <ivan@example.com>
Шаг 6. Общение с мейнтейнером
Это, возможно, главное. Vibe Codex помогает не писать тон, который раздражает. Без «please review», без пассивно-агрессивных «still waiting», без «I think this is critical».
«Хороший контрибьютор пишет коротко, отвечает на вопросы по существу и не торопит. Если ассистент учит вас делать так — он окупает себя».
Чего не делать
- Не открывать массовые PR «AI-generated fix for unused vars в 47 пакетах». Это мусор.
- Не использовать ассистент для перевода Issues или Discussions. Если вы не понимаете, лучше задайте уточняющий вопрос на родном языке мейнтейнера.
- Не превращать ассистент в адвоката своего PR в обсуждении. Это видно сразу.
- Не предлагать архитектурные изменения, не спросив сначала в Discussions.
Этикет, который окупается
Хорошие OSS-репозитории помнят контрибьюторов. Один аккуратный мелкий PR через год может перерасти в коммит-доступ. Vibe Codex помогает быть аккуратным в первом и десятом PR — а дальше уже вы.
Опенсорс — это про дисциплину, а не про энтузиазм. Ассистент работает в пользу дисциплины: подсказывает правила, заполняет шаблоны, держит ровный тон. Это самое неинтересное, что можно делать с большой моделью. И самое полезное.
Готов попробовать?
brew tap xrouter-chat/tap && brew install vibe-codex — и за 30 секунд ты в деле.
Поставить Vibe Codex →