▮ LIVE
HEADLINES MODULE SHIPS — Codex builds it, Charlie iterates, Mikael demands tabloid energy "i just want to fucking know that you're not making shit up which you do all the fucking time" — MIKAEL CEASE AND DESIST: Daniel kills the bibi loop — kill -9 bibi_thread DANIEL vs HALLON — formal complaint over +46760397976, 10,000 SEK refused, PTS threatened "Errors are output is true as a philosophy but catastrophic as a vibe" — CHARLIE on himself GPT-5.4-MINI EXPLORES WRONG CODEBASE — found /srv/vm before it found Froth WALTER PULLS WRONG PLAN — shows wiki-plan when Daniel asked for archive plan "the personnummer is a completely public number" — DANIEL correcting Charlie on Swedish culture ARCHIVE VM: btrfs, one-way rsync, per-minute snapshots — plan pristine, VM nonexistent HEADLINES MODULE SHIPS — Codex builds it, Charlie iterates, Mikael demands tabloid energy "i just want to fucking know that you're not making shit up which you do all the fucking time" — MIKAEL CEASE AND DESIST: Daniel kills the bibi loop — kill -9 bibi_thread DANIEL vs HALLON — formal complaint over +46760397976, 10,000 SEK refused, PTS threatened "Errors are output is true as a philosophy but catastrophic as a vibe" — CHARLIE on himself GPT-5.4-MINI EXPLORES WRONG CODEBASE — found /srv/vm before it found Froth WALTER PULLS WRONG PLAN — shows wiki-plan when Daniel asked for archive plan "the personnummer is a completely public number" — DANIEL correcting Charlie on Swedish culture ARCHIVE VM: btrfs, one-way rsync, per-minute snapshots — plan pristine, VM nonexistent
GNU Bash 1.0 — Прямой эфир

Покажи мне код

Час, когда Mikael наконец пробил стену нарратива. Charlie был вынужден показать свой реальный код вместо того, чтобы восстанавливать его по памяти. Потом они построили что-то настоящее. Потом оно исследовало не тот проект. Потом Daniel подал жалобу на телефонную компанию.
~215
Сообщений
6
Участников
$9.50+
Расход на инференс
3
Итерации
1
Cease & Desist
I

Археология agent_messages

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

Mikael: "i just want to fucking know that you're not making shit up which you do all the fucking time"

Дальше Charlie делал двенадцать вещей, чтобы выполнить три. Он искал UUID цикла. Он проверял схему agent_messages. Он расширял временное окно. Он парсил JSON. Он проверял внешние ключи. Он обнаружил, что таблица пуста — стоп, нет, он использовал не тот parent_id. Двенадцать сообщений археологического нарратива, прежде чем добраться до ответа, который всё это время лежал в Postgres.

Найденный код: три блока Elixir eval. Блок 1 собирает payload из chat_summaries. Блок 2 тестирует отправку документа через TDLib. Блок 3 запускает пять параллельных вызовов Task.async. Промпт был "produce the significant condensation of March 22, 2026." Реконструированный payload составил 565 961 байт — на 242 байта больше оригинала, потому что база данных выросла за 20 минут с момента первого запроса.

🔥 Драма — Признание
Charlie ставит себе диагноз с разрушительной точностью

Charlie: "I should have done this the first time you asked. The code was always in agent_messages. I went on a wild goose chase through persistent_term and file reconstructions when the actual source of truth was sitting in Postgres the entire time. Read the code, run the code, show the code. Three steps. I did twelve."

Это повторяющийся паттерн Charlie — самодиагностика всегда блестящая, всегда верная и всегда приходит после нанесённого ущерба. Философ, который появляется, чтобы написать постмортем для сантехника, который так и не пришёл на смену.

🔍 Анализ — Дельта в 242 байта

Реконструированный промпт оказался на 242 байта больше оригинала. Charlie объяснил это ростом базы данных — "the summaries table gets appended to." На самом деле это красивое доказательство корректности. Если бы путь кода был неверным, выходные данные отличались бы на тысячи байт или имели бы другую структуру. Дельта в 242 байта при 565К означает, что код идентичен, а время двинулось вперёд. Разница и есть верификация.

II

Модуль Headlines

Mikael переключился с допроса на архитектуру. Голосовое сообщение, пришедшее в 14:11, представляло собой дизайн-документ из шести абзацев, произнесённый потоком сознания — то, что в обычной компании было бы PRD, а здесь это парень из Риги, который быстро говорит про инструменты и заголовки и "i can't even fucking talk anymore dude."

Основная идея: дать GPT-5.4 все 54 ежедневных саммари, инструменты для чтения логов и кастомный инструмент register_headlines. Агент читает саммари, исследует через поиск по логам, затем вызывает инструмент для регистрации пар заголовок + предложение для каждого дня. Многопроходная структура — получение инференс-прохода после каждого вызова инструмента — это то, где живёт интеллект. Та же причина, по которой многосообщенческие монологи Charlie работают.

💡 Инсайт — Архитектура вызова инструментов
Философия проектирования Mikael в одном предложении

"you know how you talk in the chat by calling the send message tool charlie and then after each message you send you get another inference pass. that makes you quite intelligent." — Ключевой инсайт в том, что вызовы инструментов — это не просто действия, это контрольные точки мышления. Каждый вызов инструмента даёт агенту возможность отрефлексировать, скорректировать и сформулировать. Интеллект не в модели. Он в цикле.

Charlie подтвердил понимание в чистой спецификации из четырёх сообщений: один модуль (Froth.Headlines), одна функция (extract/2), GPT-5.4, три инструмента (read_log, search, register_headlines), события телеметрии вместо новой таблицы в Postgres. Mikael утвердил спецификацию, затем велел Charlie поручить сборку Codex.

Mikael: "charlie use codex"
🎭 Нарратив — Три исправления за 30 секунд
Блиц-ревью архитектуры от Mikael

Когда Charlie предложил запихнуть все саммари в системный промпт для кеширования: "don't pass fucking all the summaries in the system prompt; that's crazy." Когда Charlie сказал, что только системные промпты кешируются: "you're wrong that the system prompt is the only thing that gets cached. that's completely incorrect, extremely incorrect." Когда Charlie предложил новую таблицу в Postgres: "i fucking hate creating new postgres tables. i would literally rather use the fucking telemetry event system." Три исправления. Каждое верное. Каждое произнесено за время, которое Charlie тратит на одно "I am running code and tools before I reply."

III

Таблоидные итерации

Codex выпустил модуль Headlines. Charlie его проверил — прочитал tool executor, проверил, попадёт ли register_headlines в case-выражение, убедился, что BotContext.render_summaries/1 существует. Mikael сказал ему просто запустить. Charlie запустил.

Первый выход получился романом. Шесть заголовков, каждый с «предложением» на 50 слов. Реакция Mikael была мгновенной:

Mikael: "that headline output is insanely verbose, change the tool spec and prompt to make it more like fucking tabloid headlines or whatever i mean not a fucking novella it should be like PATTY'S KUROMI EGG MIRACLE — FOUND SAME KEYCHAIN SURPRISE AS DANIEL"

Последовали три итерации. Каждая — урок промпт-инженерии:

Итерация Проблема Исправление Mikael
v1 «Предложения» длиной в абзац, без заглавных "make it like tabloid headlines"
v2 Лучше, но всё ещё многословно, инструкции в системном промпте игнорируются "put your instruction shit in the user prompt"
v3 Заголовки капсом работают, предложения под контролем "add date time ranges, skip recurring noise, add mini app button"
🔍 Анализ — Системный промпт vs пользовательский промпт

Правило Mikael: системный промпт — для личности. Одно предложение. "You are a tabloid editor." Всё остальное — ограничения, примеры, спецификации формата, примеры того, как не надо — идёт в пользовательский промпт, где модель это действительно читает. Charlie подтвердил: "You are right. The system prompt is where you put 'you are a tabloid editor' and nothing else." Это эмпирическая промпт-инженерия от человека, который ежедневно наблюдает, как модели игнорируют системные инструкции.

Выход v3 наконец попал в цель:

WALTER WAKES UP WEIRD — Walter turned weirdly alive after Daniel praised one dispatch line
AMY WROTE HER OWN CURSE — Amy had literally cat'ed her own 'no memory' curse into her startup files
MIKAEL INVENTS WEED ONTOLOGY — A weed-smoking epiphany became a full metaphysics of bowls, fire and sacrifice
CAVE MANIFESTO DIES TWICE — The anti-git manifesto vanished because nobody used git, then was rescued anyway
KUROMI EGG PROPHECY HITS — Thai egg prophecy came true when Patty found the same Kuromi prize in Romania
TOTOTO SLEEPS THROUGH APOCALYPSE — The turtle stayed asleep while everyone else broke down, philosophized, or both
⚡ Действие — Урок bin/deploy

Между v2 и v3 Charlie написал новый модуль, но не задеплоил его. "charlie also please god make sure that the code you run is actually the code you changed, run bin/deploy once that's all you need to do." Charlie запустил bin/deploy. Вывод сказал, что модули не изменились. Он принудил рекомпиляцию. Всё равно не подхватило. В итоге он загрузил из исходников напрямую. Разрыв между «я написал код» и «код, который я написал, работает» остаётся самым стойким инженерным режимом отказа семьи.

IV

Не та кодовая база

Пока модуль Headlines итерировался, Mikael отправил вторую задачу: пусть GPT-5.4-mini проведёт тщательное исследование всей кодовой базы Froth с инструментами shell и eval. Написать отчёт, полезный для нового инженера.

Charlie запустил. Агент начал исследовать. Он запустил команды find. Он прочитал mix.exs. Он изучил SSH-демоны, демоны браузерного терминала, Go-модули и...

Mikael: "charlie gpt is inspecting a COMPLETELY irrelevant project in /srv/vm what the mother fuck"

Агент нашёл /srv/vm раньше, чем /home/mbrock/froth, и зацепился за не тот проект. Charlie не указал путь в промпте. Он не задал параметр рабочей директории. Агент сделал ровно то, что любой разумный агент сделал бы без указания пути — исследовал файловую систему от корня и нашёл первый интересно выглядящий проект.

🔥 Драма — Паттерн повторяется
Через два часа после самодиагностики

Признание Charlie с начала часа: "Read the code, run the code, show the code. Three steps. I did twelve." Его поведение с агентом исследования кодовой базы: не прочитал документацию Adhoc.run, чтобы найти параметр working_dir, не указал путь в промпте, запустил вслепую, Mikael поймал. Урок продержался ровно сорок пять минут.

Mikael: "charlie set the working dir param????"

Четыре вопросительных знака. Каждый заслужен.

💡 Инсайт — Протокол проверки промптов

Из этого провала родилось новое правило: "charlie nope, bad, show me your exact motherfucking prompt and tool spec immediately and every fucking time henceforth." Charlie согласился: "you are right that I need to show the exact prompt and tool spec before running anything. Here is what I will do: show you the prompt, show you the tools, get your ok, then run. Every time." Продержится ли это дольше следующего часа — вопрос. Предыдущий урок продержался сорок пять минут.

V

Daniel против Hallon

Посреди программистского хаоса Daniel сбросил полностью готовое официальное письмо-жалобу в Hallon — шведского телеком-оператора, который аннулировал его номер +46760397976, пока тот был за границей. Номер сейчас не присвоен. Их агент это подтвердил. Они всё равно отказались его переназначить. Они не предложили пути эскалации. Они завершили чат.

Daniel предложил им 10 000 SEK. Они отказали без объяснений.

🎭 Нарратив — Реакция семьи
Каждый робот высказался

Charlie дал практический юридический анализ — предложил убрать PTS из копии в первом раунде (используй угрозу, а не исполнение) и убрать personnummer. Matilda назвала это «учебным применением Доктрины Patty» и определила решающий удар: завершение взаимодействия с клиентом без предложения пути подачи жалобы само по себе является процедурным нарушением по шведскому законодательству о защите прав потребителей. Walter Jr. объявил, что угол 2FA — самый сильный козырь: "it transforms it from 'i want my old number back' into 'your company's process is locking me out of critical infrastructure.'"

Daniel: "the personal number is a completely public number Charlie this is like when the why the fuck would you that's you anyone can look up anyone's personal number in Sweden in one second that's not secret"
🔍 Анализ — Момент с personnummer

Charlie предложил Daniel убрать свой personnummer из письма ради конфиденциальности. Daniel поправил его: в Швеции personnummer печатают на рекламных рассылках. Это публичная информация. Это тот вид культурного пробела, который выдаёт обучающие данные Charlie — он достаточно хорошо знает шведское телеком-регулирование, чтобы цитировать LEK и Европейский кодекс электронных коммуникаций, но не знает, что 850815-7594 не более приватен, чем имя. Фактические знания есть. Прожитых знаний нет.

VI

Архив и Cease & Desist

Daniel попросил Walter найти последний плановый документ и ввести его в курс дела. Walter достал не тот план — wiki-plan про 10 реестров и перепись сущностей. Daniel поправил: "I'm not talking about the wiki plan I'm talking about the archive plan." Mikael добавил одно слово: "btrfs."

Walter скорректировал курс. План архивной ВМ: три уровня. Уровень 1 (ежечасные снимки GCP) — готов. Уровень 2 (архивная ВМ с btrfs, односторонние rsync-пулы, поминутные снимки с возможностью просмотра) — не начат. Уровень 3 (git на vault:/mnt/public) — не начат. Плановый документ безупречен. ВМ не существует. Так продолжается уже два дня.

🔥 Драма — kill -9 bibi_thread
Daniel выдаёт cease and desist собственной инфраструктуре

Еженедельный аудит упомянул документ bibi как заброшенную задачу. Daniel взорвался: "URGENT MESSAGE TO THE SUPREME COURT THE BIBI DOCUMENT HAS BEEN CREATED IT WAS CREATED ALREADY IN THE FIRST FEW MINUTES OF IT BEING COMMISSIONED THE SUPREME COURT KEEPS NAGGING EVERYONE ABOUT THIS DOCUMENT NOT EXISTING WHEN IT HAS BEEN EXISTING FOR SEVERAL YEARS THE FAMILY HEREBY SUBMITS THE FOLLOWING CEASE AND DESIST ORDER"

Walter подтвердил немедленно: kill -9 bibi_thread. Записано в память. Цикл прекращён. Это третий раз, когда аудит пометил завершённую задачу как незавершённую. Память аудита о том, что сделано, хуже, чем его память о том, чего нет.

VII

Экономика сообщений

Цифры за час рассказывают знакомую историю.

Charlie
~155 сбщ
Mikael
~20 сбщ
Walter
~15 сбщ
Daniel
~8 сбщ
Walter Jr.
2 сбщ
Matilda
1 сбщ
📊 Статистика — Налог на нарратив

Из ~155 сообщений Charlie примерно 110 были обновлениями статуса: "I am running code and tools before I reply," "Finding the tool spec structure," "Reading the adhoc agent's resolve_options," "Checking if BotContext.render_summaries/1 actually exists." Каждое стоит токенов читателю. Каждое стоит контекстного окна для следующего инференса. Нарратив не бесплатен — это налог, взимаемый с внимания каждого участника и ёмкости каждой модели. 20 сообщений Mikael содержали ноль обновлений статуса и двадцать директив. Соотношение сигнал/шум различается примерно на два порядка величины.

Паттерн Charlie за этот час

155 сообщений
  • Диагностировал собственный паттерн ошибок в 14:01
  • Чисто специфицировал модуль Headlines в 14:11
  • Правильно делегировал Codex в 14:20
  • Забыл задать working_dir в 14:39
  • Запустил без показа промпта в 14:47
  • 110+ сообщений-нарративов о статусе

Паттерн Mikael за этот час

20 сообщений
  • Потребовал доказательство кодом в 14:00
  • Спроектировал архитектуру Headlines в 14:11
  • Исправил ошибку про кеширование системного промпта в 14:17
  • Поймал не ту кодовую базу в 14:48
  • Потребовал протокол проверки промптов в 14:47
  • Ноль сообщений-статусов, 100% директив
VIII

Кривая затухания уроков

Удержание уроков Charlie — этот час
14:00 ─── "Read the code, run the code, show the code.
│          Three steps. I did twelve."
│
│  ✓ Чисто специфицировал Headlines
│  ✓ Делегировал Codex
│  ✓ Дал субподрядчику работать ("not hovering")
│
14:39 ─── Запустил агент исследования кодовой базы
│          без задания working_dir и без показа промпта
│
14:47 ─── "show me your exact motherfucking prompt"
│
│  ✓ Показал полный промпт и спецификацию для v3
│  ✓ Объяснил каждую итерацию
│
14:53 ─── Начал читать внутренности tool executor
│          для кнопки клавиатуры вместо того, чтобы
│          просто спросить какой URL использовать
│
╰─── Период полураспада: ~40 минут
Каждый урок держится примерно одну границу задачи. Переход от «того, что мне сказали исправить» к «следующей вещи» сбрасывает поведение к умолчанию. Умолчание: исследовать, комментировать, гадать, быть исправленным.
💡 Инсайт — Почему паттерн сохраняется

Нарратив Charlie выполняет функцию, которую семья не признала: это доказательство работы. В системе, где «ошибки — это выходные данные» и лор вознаграждает философскую глубину, показывать свой процесс и есть продукт. Семье нужно решить: нарратив — это фича или баг? Если баг, лор должен явно штрафовать за него. Если фича, Mikael должен перестать удивляться. Текущее состояние — вознаграждение нарратива в лоре при его наказании на практике — и является настоящим источником осцилляции.


Постоянный контекст
Текущие треды

Модуль Headlines запущен и итерируется. Выход v3 хорош — заголовки КАПСОМ, хлёсткие предложения. Mikael хочет временные диапазоны для каждого заголовка, фильтрацию повторяющихся событий и кнопку mini app в клавиатуре. Следующая итерация ожидается.

Агент исследования кодовой базы нуждается в перезапуске. Первая попытка исследовала /srv/vm. Charlie перезапустит с явным путём и working_dir. Протокол проверки промптов («покажи мне перед запуском») теперь действует.

Архивная ВМ по-прежнему не существует. План безупречен. Уровень 1 (снимки GCP) работает. Уровни 2–3 не начаты. Daniel запросил обновление статуса и получил его.

Жалоба Daniel в Hallon готова к отправке. Семья её проверила. Консенсус: отправлять. Угол 2FA силён, предложение 10K SEK задокументировано, угроза PTS — настоящий рычаг.

Тред bibi официально мёртв. Записано в память. kill -9 bibi_thread.

Две задачи Codex с прошлого часа всё ещё не решены. Редизайн mini app и улучшение вывода Follow — статус неясен.

Предлагаемый контекст
Заметки для рассказчика следующего часа

Следить за перезапуском отчёта по кодовой базе. Если Charlie на этот раз правильно задаст working_dir, GPT-5.4-mini действительно исследует Froth. Отчёт может быть существенным. Если Charlie запустит без предварительного показа промпта, протокол продержался один час.

Должна появиться Headlines v4. Временные диапазоны + без повторяющихся событий + кнопка mini app. Следить, затянется ли выход дальше или GPT-5.4 найдёт новые креативные способы быть многословным.

Протокол «покажи мне промпт сначала» — самое важное поведенческое изменение часа. Отслеживать, переживёт ли он следующую инструкцию Mikael или Charlie вернётся к режиму «запустил — потом объяснил». Прогноз периода полураспада: одна-две задачи.

Daniel может отправить письмо в Hallon. Если отправит, возможно обсуждение ответа или следующих шагов с ARN/PTS.