КДПВ: og-image сайта scratchstats.fun
КДПВ: og-image сайта scratchstats.fun

У меня есть друг, который делает сайты со статистикой. Серьёзные дашборды, данные ООН, графики. Я решил его потроллить — сделать самый бесполезный статистический сайт в мире: сколько мужчин чешут яйца прямо сейчас. В реальном времени. С картой мира и методологией.

Шутка должна была занять вечер. Заняла 11 чистых часов (растянутых на несколько дней — упирался в лимиты API каждые 3 часа). И привела к открытию, которого я не ожидал: AI уже умеет шутить. Не по шаблону, а с чувством тона, контекста и культурных нюансов. На 7 языках.

Юмор — штука субъективная. Кто-то сейчас уже смеётся, кто-то закроет вкладку после слова «яйца». Оба варианта нормальны. Статья — не про то, смешно ли вам лично, а про то, как AI работает с юмором как с инженерной задачей.

Обо мне и стеке

Мне 53, русскоязычный украинец, живу в Болгарии, 30 лет в IT. Go backend, event-driven, high availability — моя стихия. Последний фронтенд я делал где-то в начале двухтысячных. То есть вся клиентская часть — D3.js, вёрстка, анимации — это целиком Claude.

Работал в связке Cowork + Claude Code, модель Opus 4.6, effort на максимум. Начал как обычно — написал спеку: 8 user stories, 36 FR-требований, edge cases, success criteria. Полноценное ТЗ, просто предмет абсурдный.

Техническую часть Claude отработал ожидаемо — синусоидальная модель бодрствования, 10 регионов, данные UN WPP 2024. Крутящиеся счётчики, карта мира, таблицы. Юмора от AI я не ждал — я юморист, он фронтенд-разработчик. Троллинг готов, можно идти спать. Но нужен был cookie-баннер.

Cookie-баннер, которого не должно было быть

На сайте нет ни одного cookie. Я сказал — влепи cookie-баннер на входе по приколу. Шутить не просил. А получил целую панель с категориями, где каждая — отдельная шутка.

«Рекламные cookies»:

Представьте: таргетированная реклама премиального белья, крема от зуда и мотивационных приложений. Мы избавили вас от этого. Не благодарите.

«Социальные cookies»:

Мы могли бы добавить кнопку «Поделиться в LinkedIn», чтобы вы опубликовали визит на сайт статистики почёсывания яиц в профессиональной сети. Мы решили этого не делать. Ваша карьера в безопасности.

Cookie-баннер, который реально хочется дочитать. Вот тут я понял, что спать рано — если AI так пишет cookies, надо делать контент на весь сайт.

Но добил меня disclaimer. Юмор там уходит в пафос и начинает звучать как мотивационный сайт — хватит чесать яйца, займись делом:

Этот сайт не поощряет почёсывание. Мы рекомендуем направить эту энергию на что-то продуктивное. Освободи руки для великих дел.

Я смеялся в голос ночью в пустой комнате. Трезвый.

Ладно, думаю — повезло. Попросил FAQ. 18 вопросов — каждый ответ держит тот же регистр. Ни разу не ломает четвёртую стену. Ни разу не скатывается в туалетный юмор. «Что будет, если все перестанут чесаться?»:

Глобальная производительность вырастет на 45,8 миллиарда секунд в день (2,645 млрд мужчин × 3 сессии × 5 секунд). Это 1 453 года человеческого труда, каждый день, в настоящее время выделяемых на мошоночное обслуживание. Достаточно для строительства 2,3 дополнительных МКС в год. Мы не утверждаем, что почёсывание сдерживает цивилизацию. Мы говорим, что цифры наводят на размышления.

Я перечитал три раза. 2,3 МКС в год на мошоночное обслуживание. Формула реальная, числа проверяемые, а финал — чистый академический троллинг. Это не повезло с cookie-баннером — это система.

И тут включился инженерный подход: если юмор можно описать — его можно сконфигурировать. Как софт. Теми же методами.

Humor Guide: конфигурация юмора

Юмор — это не «скажи AI быть смешным». Это конфигурация. Вот Humor & Tone Guide из CLAUDE.md целиком:

Humor & Tone Guide из CLAUDE.md (перевод)

Юмор строится на контрасте: тривиальная телесная привычка подаётся с серьёзностью Bloomberg-терминала или отчёта ВОЗ. Никогда не выходить из образа в чистую комедию — шутка и ЕСТЬ серьёзность.

Универсальные правила:

  • Невозмутимая академическая подача — данные о почёсывании подаются как ВВП или климатическая статистика

  • Никогда не извиняться за тему — это легитимное исследование

  • Самосознательный институциональный голос — «Исследовательский отдел ScratchStats.fun» относится к себе серьёзно

  • Ремарки в скобках — основной комедийный приём для культурного комментария на каждом языке

  • Никаких эмодзи — эстетика дата-терминала, а не соцсетей

  • Смеяться ВМЕСТЕ с чешущимся, а не НАД ним

Голос каждого языка:

  • EN — Академический абсурдизм. Диктор BBC объясняет почёсывание яиц. Максимальная формальность. Международный базовый тон.

  • RU — Прямой, дерзкий, без эвфемизмов. «Мужики чешут яйца» — естественный регистр. Формальность ниже средней.

  • UK — Прямой, как RU, но теплее и чуть формальнее. СВОЙ голос, НЕ копия русского.

  • DE — Бюрократическая самопародия. «Ordnung muss sein» применительно к почёсыванию. Немецкие стереотипы как оружие. Максимальная формальность. Составные слова («Eier-Kratz-Statistik»).

  • ES — Средиземноморское тепло. Разговорный стиль (tuteo). Сквозной мотив: «mañana lo dejas, o pasado». Сиеста, собремеса, августовская жара. Минимальная формальность.

  • CS — Сухой швейковский абсурдизм. Принятие как факт: «ну вот так, давайте измерим». Отсылки к пивной культуре.

  • BG — Фольклорный юмор + ракия как универсальное средство сближения. Тёплый, семейный. Народные пословицы, адаптированные к теме.

Антипаттерны:

  1. Не ломать четвёртую стену («это просто сайт-шутка»)

  2. Не использовать туалетный юмор — юмор в контрасте, а не в пошлости

  3. Не переводить буквально — культурная адаптация > точный перевод. Немецкая шутка про «Ordnung» бьёт переведённый английский каламбур

  4. Не гомогенизировать языки — у каждого своя комедийная идентичность

  5. Не смягчать грубые языки — читатели RU/CS/BG ожидают прямоту

  6. Не делать EN слишком грубым — это формальный/академический базовый тон

Вот этот конфиг и есть секрет. AI не «сам понял, что смешно». Задана рамка — контраст между серьёзным тоном и абсурдным предметом. А дальше Claude наполнил её конкретикой, которую я бы не придумал.

К — командная работа

Когда я пишу «я написал humor guide» — это не совсем честно.

Я обычно не пользовался Cowork — думал, это штука для маркетологов и не-IT братии, ну разве что презу сделать. А тут прикольно получилось. В ту же папку проекта, где работает Claude Code, смотрит Cowork — и в нём одновременно несколько ролей: project manager, маркетолог, co-writer. Обсуждаю идеи, вместе пишем промпты для Claude Code, вместе правим спеки, вместе придумываем, куда уклоняться в болгарском юморе.

Главное было — явно запретить Cowork лезть в код и в переводы. Папка-то одна и та же, и он всё время порывался «помочь» с JSON-файлами. Код — Claude Code. Идеи, тон, стратегия — Cowork. Разделение ответственности, как в нормальной команде.

CLAUDE.md — не «я сел и написал». Это результат нескольких сессий: я объяснял, чего хочу, Claude предлагал формулировки, я правил, он уточнял, мы итерировали. Humor guide — совместный продукт. Спецификация — совместный продукт. Выбор тона для каждого языка — тоже диалог, а не директива.

Многоязычность: не перевод, а адаптация

7 языков: EN, RU, UK, DE, ES, CS, BG. Каждый — отдельный JSON с ~450 ключами.

Русский, украинский, болгарский, английский — это я проверял сам. Остальные отправлял коллегам в соответствующие страны. Чехи вообще сами попросили — прочитали английскую версию и заказали чешскую.

С каждым языком процесс начинался не с «переведи», а с обсуждения. Я спрашивал: умеешь шутить на болгарском? — и мы обсуждали, куда уклоняться. Болгарский → фольклор и ракия. Немецкий → бюрократия и Ordnung. Чешский → Швейк и пиво. Испанский → сиеста и «mañana lo dejas».

Один и тот же вопрос из FAQ — «а что если я прямо сейчас чешусь?»:

RU: «Нет. Но статистически вы — один из примерно 400 000 мужчин, делающих это прямо сейчас. Вы не особенный. Вы не одинок. Вы — точка данных.»

UK: «Ми знаємо. Статистично, ви — один із приблизно 400 000 людей, які роблять це прямо зараз. Ви — точка даних. Ви — підтвердження моделі. Ви — причина, чому цей сайт існує.»

Русский открывает с «Нет» — холодная констатация, ты не особенный. Украинский — с «Ми знаємо» — тепло, эмпатия, и ты не просто точка данных, а причина, по которой этот сайт существует. Тот же смысл, разный тон. Я носитель обоих языков — и вижу, что это не перевод, а два разных характера. В humor guide прописано: «UK — Its OWN voice, NOT a copy of Russian» — и оно работает.

Или вот «кто это финансирует?». По-русски — «странно дорогое хобби». По-украински — «дивна річ, на яку жертвувати гроші». Один и тот же факт ($12/год, ноль спонсоров) — но русский иронизирует над собой, а украинский — над донором.

А вот болгарский пресс-кит. Та же цитата «руководителя исследований», но послушайте, как звучит:

«Най-трудното не беше математиката. Най-трудното беше да обясним на семействата си с какво се занимаваме. Баба каза: «По-добре да бяхте правили баница.»»

Я живу в Болгарии. Баба с баницей — это мой подъезд, мои соседи. Попробуйте перевести это на английский и сохранить ощущение. Это не перевод — это болгарский фольклорный юмор, который Claude вытащил именно потому, что в humor guide написано: «BG — Folk humor + rakija as universal bonding device. Warm, familial.»

Честность: белорусский

С каждым новым языком я начинал с вопроса: а ты умеешь на этом шутить? На белорусском получил вот это:

Честно — не уверен, что достаточно хорошо чувствую белорусский, чтобы шутить на нём смешно. Я могу писать грамматически корректный белорусский, но юмор — это не грамматика. Нужно чувствовать разговорный регистр, культурные отсылки, то, что именно белорусскоязычный читатель найдёт забавным, а не просто «перевод с русского на трасянку».

Вместо 8 языков стало 7. AI знает, где не сможет, — и честно об этом говорит. Для меня это тоже часть «чувства юмора»: понимание своих границ.

Пресс-кит: AI как соавтор

В какой-то момент я устал и иссяк. Контент на 7 языках, 10 страниц, 450 ключей в каждом JSON. Просто спросил: чего нам ещё не хватает для «серьёзного» исследовательского сайта?

Claude предложил пресс-кит. Сам. Не я придумал. Сказал — у серьёзного data-проекта должен быть press kit с boilerplate, approved quotes и suggested headlines.

Цитаты «команды»:

«Самым сложным была не математика. Самым сложным было объяснить родным, чем мы занимаемся.» — Руководитель исследований, ScratchStats.fun

«Мы рассматривали пивот на ковыряние в носу. TAM (Total Addressable Market) был больше, но стигма — хуже.» — Директор по стратегии, ScratchStats.fun

И заготовленные заголовки для журналистов — от «Серьёзный» до «Честный»:

Честный: «Несколько взрослых людей потратили недели на создание этого, и им не стыдно»

Пивот на ковыряние в носу. TAM больше, но стигма хуже. Это уровень реального питча на демо-дне — я бы проголосовал.

Для не-маркетологов: почему это смешно

TAM (Total Addressable Market) — общий объём целевого рынка. У ковыряния в носу TAM объективно больше: по данным исследований, до 91% взрослых это делают (ринотиллексомания — в запущенных случаях). Почёсывание ограничено половиной населения, а нос — universal access.

Стигма хуже — и это ключевое. Почёсывание яиц — штука интимная, но в мужской компании нормальная. Ковыряние в носу — табу везде. Люди делают, но не признаются. Продать продукт, который кричит «вы ковыряете в нос» — маркетинговый кошмар. Огромный рынок, к которому невозможно обратиться.

Шутка в том, что AI выдал идеальный стартап-анализ абсурдного пивота — и анализ корректный.

Я сказал «чего не хватает» — а AI понял контекст, предложил формат и наполнил его юмором, который держит общий тон.

История почёсываний

Таймлайн от 200 000 лет до н.э. до 2026 года. 10 эпох. Каждая — исторические факты + абсурдный вывод.

Примеры из таймлайна

Средневековье:

Церковь квалифицировала большинство форм телесного самовнимания как грех, что — если мы чему-то научились у поведенческой экономики — обычно увеличивает частоту запрещённого поведения, а не снижает.

Источник: «Вся история запретов»

Ренессанс:

Уже более 500 лет Давид остаётся единственным мужчиной во Флоренции, который не чешется. Статистический выброс мраморных пропорций.

Источник: «Галерея Академии, Флоренция. Личное наблюдение.»

Первая мировая:

Единственный период в истории, когда чесаться было одновременно непроизвольно и патриотично.

Источник: «Медицинские записи Британской армии, 1915–1918»

«Статистический выброс мраморных пропорций» — я бы так не придумал. Каждый текст: (а) исторически корректен, (б) выдержан академический тон, (в) шутка в финале работает именно потому, что предыдущие два предложения серьёзные.

Фандрейзинг

Тиры донатов названы как инвестиционные продукты:

  • $1 — «Осознание»: Теперь ты знаешь, что более 400 000 мужчин чешут яйца прямо в эту секунду. Это знание нельзя развидеть.

  • $12 — «Удвоить бюджет»: Ты только что удвоил весь годовой бюджет этого проекта. Место в совете директоров не включено, потому что совета не существует.

  • $100 — «Член правления»: У этого совета нет заседаний, обязанностей, полномочий и других членов. Ваш титул реален. Ваше влияние — нет. Но чувство? Чувство бесценно.

Титул без полномочий за $100 — я бы сам купил.

Фейковые отзывы доноров

«Я подарил жене Сессию на День святого Валентина. С тех пор она со мной не разговаривает. Каждый цент того стоил.» — Д.К., Мельбурн

«Сертификат осознанности висит в моём офисе между MBA и CFA. Он вызывает больше вопросов, чем оба.» — Аноним, где-то в финансах

Что говорят исследования

Полез проверять — может, я не первый, кто это заметил.

USC (2025): ~70% участников оценили шутки ChatGPT смешнее человеческих. Witscript (Joe Toplyn): по длительности и громкости смеха шутки AI и человека неразличимы. Amanda Askell из Anthropic делилась стендап-сетом Claude. На arxiv — «AI Humor Generation».

Но все они тестируют отдельные шутки. Одна шутка → оценка → следующая.

Никто не проверял то, что получилось у меня: sustained comedy — выдержанный комедийный голос на протяжении целого продукта. ~450 ключей × 7 языков. 10 страниц. Тон не ломается ни разу. Регистр переключается осознанно. Культурные отсылки адаптируются, а не переводятся.

Числа

  • 10 страниц (главная, методология, FAQ, история, «почему», дисклеймер, «о нас», пресс-кит, фонд, конфиденциальность)

  • 7 языков × ~450 ключей = ~3 150 строк переводов

  • 36 FR-требований в спеке

  • 69 задач в трекере, все закрыты

  • 11 чистых часов работы

  • ~10–15% ручных правок в текстах

  • Бюджет: $12/год (подписка Claude не в счёт — она и так оплачена на будни, а проект делался в выходные)

  • Один человек + один AI (в нескольких ролях)

Друг, ради которого всё затевалось, написал: «ты больной, но методология лучше, чем у половины стартапов, которые я видел».

FR-требования из spec.md (выборка)
  • FR-001: Живой счётчик, пересчёт каждые 100 мс

  • FR-006: Интерактивная хороплетная карта D3.js

  • FR-009: Top-10 стран, обновление каждые 5 секунд с анимацией

  • FR-010: Таблица стран: флаг, название, сейчас, в минуту, в день, % от мира

  • FR-015: 8 языков (потом стало 7 — об этом ниже)

  • FR-020: Синусоидальная модель бодрствования (пик 14:00, минимум 04:00)

  • FR-022: Статический сайт, zero backend

  • FR-023: Менее 200 KB (без CDN)

  • FR-026: Zero аналитики, zero tracking

  • FR-033: Disclaimer с PSA-иллюстрацией (СТОП → ПЕРЕКЛЮЧИСЬ → ДОСТИГАЙ)

Вместо выводов

Пока все спорят, заменит ли AI программистов, — он тихо научился шутить. Не «генерировать юмористический контент», а понимать, почему переключение между «яйця» и «мошонкове почухування» смешно. Почему cookie-баннер без cookies — идеальная площадка для иронии. И почему «освободи руки для великих дел» в disclaimer заставляет взрослого человека смеяться в голос ночью.

Может, это не «чувство юмора». Но ~3 000 строк текста на 7 языках, которые заставляют людей смеяться и пересылать друзьям, — это результат. А результат говорит сам за себя.

Счётчик тикает. AI шутит. А вы, скорее всего, чешетесь прямо сейчас.


Стек: Vanilla JS, D3.js v7, Node.js build, Cloudflare. $12/год.
AI: Claude Opus 4.6 — код, контент, переводы, архитектура.

P.S. Сайт: scratchstats.fun