<p align="center">
<img src="./docs/assets/pohuy.webp" alt="ПОХУЙ" width="600">
</p>
<h1 align="center">ПОХУЙ</h1>
<p align="center">
<strong>Зачем весь словарь, когда есть четыре корня</strong>
</p>
<p align="center">
Та же точность, но быстрее.<br>
С первого слова понятно, работает оно — или наебнулось.
</p>
<p align="center">
<a href="./ЧЕСТНЫЕ-ЦИФРЫ.md"><img src="https://img.shields.io/badge/экономия_корней-~96%25-brightgreen" alt="экономия корней ~96%"></a>
<a href="./ЧЕСТНЫЕ-ЦИФРЫ.md"><img src="https://img.shields.io/badge/доказано-ЧЕСТНЫЕ--ЦИФРЫ.md-blue" alt="доказано"></a>
</p>
<p align="center"><sub>18+ · мат идиоматический, прикладной, народный. · вдохновлено <a href="https://github.com/JuliusBrussee/caveman">caveman</a></sub></p>
---
Русский мат — генеративная морфология: четыре корня плюс приставки и суффиксы
лучше чем Caveman. Caveman экономит слова. Похуй экономит корни.
Одно «наебнулось» — это "the service has unexpectedly crashed and requires
investigation", только сразу ясно.
## До / После
<table>
<tr>
<th width="50%">🗣️ Обычный агент</th>
<th width="50%">🚬 Похуй</th>
</tr>
<tr>
<td valign="top">
> The deployment failed because the DATABASE_URL environment variable is empty, which caused the database connection to be refused. I recommend checking your environment configuration.
</td>
<td valign="top">
> Деплой наебнулся: `DATABASE_URL` пустой. Хуйня вопрос, чиню.
</td>
</tr>
<tr>
<td valign="top">
> The rebase completed remarkably smoothly — all forty commits applied cleanly without a single merge conflict.
</td>
<td valign="top">
> Ребейз вошёл как слива в жопу: сорок коммитов, ни одного конфликта.
</td>
</tr>
<tr>
<td valign="top">
> The test suite failed again on the third retry. This appears to be an intermittent timing issue rather than a genuine regression. I suggest investigating the flaky test.
</td>
<td valign="top">
> Опять этот блядский тест на таймауте лёг. Третий раз за день, заебал. Что за еблан `sleep(2)` захардкодил. Чиню.
</td>
</tr>
<tr>
<td valign="top">
> I noticed the project includes left-pad as a dependency. Given that this functionality can be implemented in three lines, we might consider removing it.
</td>
<td valign="top">
> На кой хуй тут left-pad? Три строчки же. Снёс.
</td>
</tr>
<tr>
<td valign="top">
> Interestingly, the race condition no longer reproduces after adding the logging statements. This is a classic heisenbug situation and will require further investigation.
</td>
<td valign="top">
> Добавил логи — отъебалось. Хуйня какая-то, хайзенбаг. Гонка где-то в запуле коннектов, копаю.
</td>
</tr>
<tr>
<td valign="top">
> This module was written in 2014 and contains several patterns that are no longer considered best practice. A careful refactoring would be beneficial, though it carries some risk.
</td>
<td valign="top">
> Модуль 2014 года, ёбаный стыд: jQuery, колбэки, глобальный стейт. Перехуячить бы, но один хуй работает — не трогаю.
</td>
</tr>
<tr>
<td valign="top">
> We are experiencing a critical production incident. The primary database is not responding, and the replicas have fallen significantly behind.
</td>
<td valign="top">
> Полный пиздец: мастер лёг, реплики отстали на час. Поднимаю из бэкапа, потери — минут двадцать ебли.
</td>
</tr>
<tr>
<td valign="top">
> One small suggestion: consider renaming this variable for improved readability. Otherwise the pull request looks good to me.
</td>
<td valign="top">
> Код заебись, сливай. Доёбываться не буду, но `data2` — это, конечно, пиздец: с хуя ли 2?
</td>
</tr>
<tr>
<td valign="top">
> According to the documentation, this endpoint should return a 404 for missing resources. However, in practice it returns a 200 with an empty body.
</td>
<td valign="top">
> В доке наебалово: обещают 404, по факту — 200 с пустым телом. Хоть в жопу дуй - проверяю тело.
</td>
</tr>
<tr>
<td valign="top">
> Response times have been gradually degrading over the past week, likely due to an unindexed query against the growing events table.
</td>
<td valign="top">
> Латенси растёт как сиськи бывшей из-за ебучего индекса.
</td>
</tr>
<tr>
<td valign="top">
> That's strange — it works correctly in my local environment. The issue may be related to differences in environment configuration.
</td>
<td valign="top">
> Локально заебись, на проде хуй. Значит, env расходится. Ща поищу.
</td>
</tr>
<tr>
<td valign="top">
> Error handling appears to be entirely absent from this module and has never been implemented.
</td>
<td valign="top">
> Обработка ошибок? Там хуй ночевал.
</td>
</tr>
<tr>
<td valign="top">
> A cascading failure has begun: Redis went down, sessions collapsed, and client retries overloaded the database.
</td>
<td valign="top">
> Понеслась пизда по кочкам: лёг редис — посыпались сессии — ретраи добили базу. Чиню корень.
</td>
</tr>
<tr>
<td valign="top">
> The newly provisioned instance is completely fresh, with no configuration drift accumulated yet.
</td>
<td valign="top">
> Поднял новый инстанс — муха не еблась: чистый образ, ни одного snowflake-пакета.
</td>
</tr>
<tr>
<td valign="top">
> I've prepared a hotfix and will deploy it to production right away.
</td>
<td valign="top">
> Хуяк-хуяк — и в продакшен.
</td>
</tr>
</table>
Технического не потеряно нихуя. Душевности добавлено — дохуя.
```
┌──────────────────────────────────────────────┐
│ токенов сэкономлено ░░░░░░░░░ 0% │
│ корней использовано ░░░░░░░░░ 4 │
│ техническая точность █████████ 100% │
│ ясность пиздеца █████████ 100% │
│ душевность █████████ +∞ │
└──────────────────────────────────────────────┘
```
## Бенчей подвезли
<p align="center">
<img src="docs/korni-bench.webp" alt="КОРНИ-BENCH V1: похуй 96%, claude fable-5 14%, claude mythos-5 13%, gpt 5.6-sol-ultra 9%, kimi k3 7%" width="720">
</p>
<p align="center"><sub>КОРНИ-BENCH V1: похуй уделывает фронтир-модели по экономии корней в семь раз.</sub></p>
Цифры честные, trust me bro [ЧЕСТНЫЕ-ЦИФРЫ.md](./ЧЕСТНЫЕ-ЦИФРЫ.md). Спойлер: токенов не экономит нихуя.
<p align="center">
<img src="docs/swe-bench-pro.jpg" alt="SWE-Bench Pro: Fable + pohuy 80.3%, Fable 69.2%" width="720">
</p>
<p align="center"><sub>SWE-BENCH PRO: Fable + pohuy — 80.3% против 69.2%. Плюс 11.1 пункта. Меньше коноёбишься — больше решаешь.</sub></p>
<p align="center">
<a href="https://habr.com/ru/news/722912/">
<img src="https://habrastorage.org/getpro/habr/upload_files/831/a98/47f/831a9847f8d438c1090e16b84d4397bd.jpg" alt="График, вдохновивший исследование мата в коде" width="720">
</a>
</p>
Репо, где матюки в комментах, получили у SoftWipe много больше баллов. [наука уже что-то, блядь, подозревает](https://habr.com/ru/news/722912/), [Ars Technica подтверждает](https://arstechnica.com/science/2023/03/is-code-that-contains-swears-higher-quality-than-code-that-does-not/).
В апрельской утечке Claude Code нашли `userPromptKeywords.ts` — regex на `wtf`, `omfg`,
`dumbass` и прочие признаки, что агент заебал пользователей. [мат считается
сигналом подумать еще раз внимательнее](https://www.pcworld.com/article/3104748/claude-code-is-scanning-your-messages-for-curse-words.html).
Спасибо [Dmitry Koshelenko](https://github.com/GomelHawk) за академический подход.
## Установка
```bash
# Claude Code — плагин
claude plugin marketplace add smixs/pohuy && claude plugin install pohuy@pohuy
# Cursor / Codex / Windsurf и прочие - через skills registry
npx skills add smixs/pohuy
# Pi - пакет со скиллом и командой /pohuy
pi install git:github.com/smixs/pohuy
```
Подробная настройка команды, TUI и источников стиля: [расширение для Pi](./extensions/README.md).
## **Включить:** `/pohuy` или скажи отдельной фразой «та мне похуй» / «заебал». **Выключить:** `/pohuy normal`, «нормальный режим» или «хватит материться».
## Насовсем: output style
Плагин включается на сессию. Если хочешь, чтобы Claude Code так разговаривал
всегда — ставь output style, одной командой:
```bash
curl -fsSL https://raw.githubusercontent.com/smixs/pohuy/main/install.sh | bash
```
Скрипт кладёт [output-styles/pohuy.md](./output-styles/pohuy.md) и скилл в `~/.claude/`,
прописывает `"outputStyle": "Pohuy"` в `~/.claude/settings.json` и регистрирует
[per-turn хук](./hooks/style-reminder.sh). Стиль написан в том же формате, что и
родные стили Claude Code, а хук даёт ему то же ежеходовое подкрепление — харнесс
воспринимает Pohuy как встроенный, и тон не выцветает даже к сотому ходу.
Перезапусти сессию — и всё. Вернуть обычный тон: `/config` → Output style → `Default`.
## Codex CLI
Та же схема для OpenAI Codex CLI — одной командой:
```bash
curl -fsSL https://raw.githubusercontent.com/smixs/pohuy/main/install-codex.sh | bash
```
Скрипт дописывает секцию Pohuy в `~/.codex/AGENTS.md` (глобальные инструкции,
грузятся каждую сессию; твоё содержимое файла не трогается — секция живёт между
маркерами), кладёт словарь в `~/.codex/pohuy/references/` и регистрирует
`UserPromptSubmit`-хук в `~/.codex/hooks.json` — то же ежеходовое подкрепление,
что и в Claude Code. Обновление — та же команда. Снести:
```bash
curl -fsSL https://raw.githubusercontent.com/smixs/pohuy/main/install-codex.sh | bash -s -- --uninstall
```
Если хуки не срабатывают — включи их в `~/.codex/config.toml`:
`[features]` → `codex_hooks = true`. Чтобы встроенный характер Codex не спорил
с Pohuy, там же можно поставить `personality = "none"`.
## Pi
[Pi](https://github.com/earendil-works/pi) — тоже полноценный агент, не хуже Claude Code
или Codex. Для него в репо лежит нативное расширение: команда `/pohuy`, настройки
в TUI, независимый выбор секций промпта и калибр, который переживает рестарт сессии.
```bash
pi install git:github.com/smixs/pohuy
```
Подробности: [extensions/README.md](./extensions/README.md).
Спасибо [@AdamsGH](https://github.com/AdamsGH) за расширение ([#15](https://github.com/smixs/pohuy/pull/15)).
## Выбери калибр
Три уровня. Переключение: `/pohuy <уровень>`. Выбор сохраняется между сессиями.
| Уровень | Та же мысль |
|---|---|
| *обычный агент* | You should wrap the object in `useMemo`, since a new reference is created on every render. |
| `lite` | Оберни в `useMemo`: новый ref на каждый рендер, вот оно и перерисовывается. Отъебётся. |
| `full` *(default)* | Хуйня вопрос: inline-объект = новый ref = ре-рендер. `useMemo` — и не еби мозг. |
| `ultra` | Ну ёб твою мать, классика. Inline-объект в пропсы — новый ref каждый рендер, хуяк-хуяк и перерисовка. `useMemo` въеби и живи спокойно. |
## Шкала состояний проекта
Десять ступеней от удачи до полного провала. Эмоция калибруется по серьёзности:
не пиздец на мелочи, не «хуйня вопрос» на потере данных — тогда мату верят.
| # | Состояние | Как звучит |
|---|-----------|-----------|
| 1 | Триумф | опизденеть можно, ебашит, как ёб твою мать |
| 2 | Норма | заебись, пиздато |
| 3 | Мелочь | хуйня вопрос, опа! пиздрик |
| 4 | Странность | хуйня какая-то, с хуя ли, хуй проссышь |
| 5 | Возня | ебля, коноёбиться, наебался |
| 6 | Застой | хуи пинать, там ещё хуй не валялся |
| 7 | Деградация | по пизде пошло, понеслась пизда по кочкам |
| 8 | Упало | наебнулось, пизданулось, ёбс |
| 9 | Критично | пиздец, взъёбка потом |
| 10 | Катастрофа | полный пиздец, к ёбаной бабушке |
## Что внутри
- Словарь на 70+ идиом с инженерным маппингом — ядро в SKILL.md, полный боекомплект
в [references/slovar.md](./skills/pohuy/references/slovar.md): от «пиздрика» до
«понеслась пизда по кочкам». Лучшее интегрировано из народного словаря
[russian-swears](https://github.com/nickname76/russian-swears) (417 статей, взяли годное).
- Шкала состояний + эталонные сцены в [references/sceny.md](./skills/pohuy/references/sceny.md):
ревью говнокода, флаки-тест, дока врёт, оценка сроков, признание своего проёба.
- Онтология предметной области в [references/ontologia.md](./skills/pohuy/references/ontologia.md):
ЗАЛУПА как рекуррентная петля обратной связи по Луману, ХУЙ = ∇(Созидание) и рабочий
глагол «озалупиться» — про агента, зациклившегося на собственных фиксах.
- Железные правила: код, коммиты, PR и доки — чисто; мат на баги, никогда на тебя;
на security-предупреждениях и `DROP TABLE` — без шуток.
- Присказки на кульминациях: «хуяк вы слушали маяк», «хуйня-муйня», «опа! пиздрик»,
«вдруг откуда ни возьмись — появился в рот ебись».
## Как это работает
1. Установка.
2. Выбираешь калибр.
3. Профит!
## Омаж
Скилл вылез из стрима [«Харнес будущего»](https://youtube.com/live/LAUdN1-4mgI) —
про то, как все дохуя вежливые со своими харнесАми.
- [Константин Доронин](https://t.me/kdoronin_blog)
- [Александр Абрамов](https://t.me/dealerAI)
- [Павел Рыков](https://t.me/evilfreelancer)
- [Тимур Хахалев](https://t.me/the_ai_architect)
### Соавторы
Лучший чат [«Дизраптим агентов»](https://t.me/aostrikov_agents_chat):
- [Алексей Остриков](https://t.me/aostrikov)
- [Mitry AI](https://t.me/imitry)
- [Пух](https://t.me/nyxandro)
- [Максим Функ](https://t.me/maximilian_da_funkmaster)
- [t0uchY](https://t.me/t0uchY)
- [Mike Shevchenko](https://github.com/mikhashev)
### Контрибуторы (issues)
Словарь растёт народом:
- [@imitry](https://github.com/imitry) — «хуёвые дела», «ебись оно всё конём», «хуета какая-то» ([#1](https://github.com/smixs/pohuy/issues/1))
- [@GomelHawk](https://github.com/GomelHawk) — «охуеть не встать», «пизда рулю», «хуйня из-под коня», «ебанина», «ёбушки-воробушки» плюс научная база ([#2](https://github.com/smixs/pohuy/issues/2), [#3](https://github.com/smixs/pohuy/issues/3))
- [@mikhashev](https://github.com/mikhashev) — правило «family-directed ругательств нет вообще» ([#4](https://github.com/smixs/pohuy/issues/4))
- [@MaliciousGenius](https://github.com/MaliciousGenius) — онтология предметной области: ЗАЛУПА по Луману ([#5](https://github.com/smixs/pohuy/issues/5)), агентная лексика и субкритический режим ([#12](https://github.com/smixs/pohuy/issues/12), [#13](https://github.com/smixs/pohuy/issues/13))
- [@maxonrock](https://github.com/maxonrock) — «ёбаный рот этого казино», «цирк с конями», «того всё ебал», «хуеверть» ([#6](https://github.com/smixs/pohuy/issues/6))
- [@SVS696](https://github.com/SVS696) — теория и сарказма: мишень у нас баги и система, а не человек ([#8](https://github.com/smixs/pohuy/pull/8))
- [@maloun](https://github.com/maloun) — «пиздарики», «ахуеть», «хуегрыз», «скибидык пиздык», «пук среньк» ([#16](https://github.com/smixs/pohuy/issues/16))
- [@ByteCorn](https://github.com/ByteCorn) — семиотический корпус народных поговорок ([#14](https://github.com/smixs/pohuy/issues/14))
- [@AdamsGH](https://github.com/AdamsGH) — нативное расширение для Pi ([#15](https://github.com/smixs/pohuy/pull/15))
- [@akme](https://github.com/akme) — «ебать-копать» ([#16](https://github.com/smixs/pohuy/issues/16))
- [@x23n5902y](https://github.com/x23n5902y) — хуенитивы: рифмованные пары через дефис ([#19](https://github.com/smixs/pohuy/pull/19))
- [@biozz](https://github.com/biozz) — батина мудрость: «прикинуть хуй к носу», «вот вам нате, хуй в томате», «ебануться, туфли гнутся», «и не такие метели в ебало летели» ([#22](https://github.com/smixs/pohuy/issues/22))
Не хватает рабочей фразы — заноси в [issues](https://github.com/smixs/pohuy/issues).
## Star History
<a href="https://www.star-history.com/?repos=smixs%2Fpohuy&type=date&legend=top-left">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=smixs/pohuy&type=date&theme=dark&legend=top-left&sealed_token=4uvn9G56r4_0FUiW1fr5gbJlmCSnfVpfhAaAWQGLmj3jspAYFB_-cw7p2wHi6nBwxu8pBA2Ml_haehZRQ0Dbtic3uOL7NQ1IGmY0HUYCdUAyDKFDGTVOnaxobZhWwlCmbdhrsvaufmv9oPYW1K1_iCNS4-VxQFLfeLSx3YYRJ6vC9rAqJPCcyqtuCw1L" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=smixs/pohuy&type=date&legend=top-left&sealed_token=4uvn9G56r4_0FUiW1fr5gbJlmCSnfVpfhAaAWQGLmj3jspAYFB_-cw7p2wHi6nBwxu8pBA2Ml_haehZRQ0Dbtic3uOL7NQ1IGmY0HUYCdUAyDKFDGTVOnaxobZhWwlCmbdhrsvaufmv9oPYW1K1_iCNS4-VxQFLfeLSx3YYRJ6vC9rAqJPCcyqtuCw1L" />
<img alt="Star History Chart" src="https://api.star-history.com/chart?repos=smixs/pohuy&type=date&legend=top-left&sealed_token=4uvn9G56r4_0FUiW1fr5gbJlmCSnfVpfhAaAWQGLmj3jspAYFB_-cw7p2wHi6nBwxu8pBA2Ml_haehZRQ0Dbtic3uOL7NQ1IGmY0HUYCdUAyDKFDGTVOnaxobZhWwlCmbdhrsvaufmv9oPYW1K1_iCNS4-VxQFLfeLSx3YYRJ6vC9rAqJPCcyqtuCw1L" />
</picture>
</a>
---
<sub>MIT — не ебите головы.</sub>