v0.8.5+ Web Chronicle & Typography 9 мин 25 сентября 2026, 18:00 — 19:30

Акт VIII: Рождение веб-летописи — выход из тени репозитория и блог перед зеркалом

История стратегического решения: почему Shellit открыл историю разработки миру и создал собственный блог-хронику прямо на сайте. Выход из служебных папок Git, алгоритм Кнута — Пласса, спойлеры с реальными диалогами и адаптивное оглавление.

#web-chronicle #open-source #typography #knuth-plass #mcp-server #vibe-coding
Стенограмма решения: Выход летописи в свет и бунт против «слепой простыни»
25 сентября 2026, 13:12 — 18:40
Развернуть
Архитектор
как лучше сделать, выкладывать прямо из хроники текст, или писать новые файлы под каждую главу?
Antigravity
Делаем отдельные главы под каждый Акт на базе Astro Content Layer, но берем текст напрямую из репозитория. Разворачиваем раздел «Хроника» прямо в шапке сайта.
Архитектор
это слепая простыня. Надо разбавить как то, заголовки выделить, абзацы и тп. /plan
Архитектор
разве выключка не должна быть по ширине?
Antigravity
Подключаю сервер mcp-typography-server автора на базе алгоритма Кнута — Пласса (Justif). Настраиваем text-align: justify с автоматическими дефисами и микротипографикой. Текст больше не плывёт «рваным флагом» и читается как хорошая книга.
Архитектор
стенограммы убрать под спойлеры с начальным закрытым состоянием. Оглавление на десктопе при прокрутке страницы должно съезжать вправо. На мобильном оставаться как есть
Архитектор
ну собственно вноси это в летопись проекта и делай главу на сайте про это ))))))
Контекст акта: Мета-виток развития Shellit. Автор принимает принципиальное решение: не прятать уникальную историю создания проекта в служебных папках репозитория, а поднять собственный открытый блог-летопись прямо на официальном сайте `shellit.top`. А затем превратить сырой лог в образец высокой веб-типографики с помощью собственного MCP-сервера Кнута — Пласса, закрытых спойлеров со стенограммами и динамического оглавления.

Запись 46. Рождение веб-летописи: выход из тени репозитория, алгоритм Кнута — Пласса и блог перед зеркалом

⏱️ Время: 25 сентября 2026, 18:30 — 19:15 (~45 минут)

1. Повод: почему проекту нужен собственный публичный блог на сайте

Когда Shellit дорос до версии v0.8.5, закрыл критические аудиты безопасности и оброс полноценной документацией, мы оглянулись на пройденный путь.

С самого первого дня в репозитории велся уникальный документ — docs/CHRONICLE.md: более 50 подробных записей, свыше 2600 строк чистой инженерной правды. Это не сухой git log и не заученные релиз-ноуты, а живой дневник того, как продукт создается с нуля: вайб-кодинг без знания синтаксиса Dart, архитектурное управление параллельным роем нейросетей, столкновения UI с суровой реальностью сетевых сокетов, ночной состязательный аудит Qwen против Antigravity.

Но возник резонный вопрос: почему эта ценнейшая история должна пылиться в служебной папке docs/ на гитхабе, где её увидят единицы?

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

Так было принято принципиальное решение: у Shellit должен появиться собственный официальный блог-летопись прямо на сайте shellit.top.


2. Концепция: не корпоративный PR, а живая «Хроника» (Chronicle)

Мы сразу отказались от формата безликого корпоративного блога с абстрактными рекламными статьями. У нас уже есть настоящая, драматичная история.

Мы решили: вытаскиваем летопись на свет!

  1. Раздел получил благородное имя «Хроника» (в русской версии) и «Chronicle» (в английской). В этом слове есть вес, история и честность.
  2. Ссылку вынесли на самое видное место — в главную шапку сайта (Navbar) рядом с «Документацией» и «Дорожной картой».
  3. Продумали модульную архитектуру: не сваливать 400 килобайт текста в одну бесконечную страницу, а упаковать историю в эпические Акты (I–VIII) с интерактивным таймлайном, светящейся киберпанк-струной и перекрестными тегами.
  4. Создали регламент для субагента AGENT_6_CHRONICLE_PUBLISHER, который по мере появления новых записей в репозитории автоматически адаптирует их в главы для сайта.

3. Первый блин: бунт против «слепой простыни»

Когда агент собрал первую версию раздела хроники на сайте, я открыл браузер — и у меня потемнело в глазах.

На экране висела бесконечная, монотонная, серая простыня текста на черном фоне. Глазу не за что было зацепиться, не чувствовалось ни ритма, ни той бешеной энергии, с которой мы штурмовали проект.

Последовал немедленный разнос:

«Это слепая простыня. Надо разбавить как-то, заголовки выделить, абзацы и т.д. /plan»
«Разве выключка не должна быть по ширине?»

Так мы шагнули в мета-разработку: создание блога о разработке Shellit потребовало точно такого же перфекционизма, как и сам Shellit.


4. Алгоритм Кнута — Пласса: укрощаем выключку по ширине

Выключка текста по ширине (text-align: justify) в вебе считается дурным тоном, потому что без правильных переносов браузер растягивает пробелы, превращая текст в решето из «белых рек» (rivers of white space).

Но у меня в арсенале был собственный MCP-инструмент — mcp-typography-server, созданный на базе алгоритма Кнута — Пласса (библиотека Justif). Дональд Кнут еще в 1970-х доказал: книжная верстка строится не на растягивании слов, а на математическом расчете точек разрыва строк, мягких переносах (hyphens) и оптимизации штрафов плотности.

Мы внедрили принципы высокой типографики в стили веб-летописи:

  • text-align: justify; text-justify: inter-word;
  • Автоматические языковые переносы hyphens: auto; -webkit-hyphens: auto;
  • Выверенная книжная ширина колонки (max-w-3xl) и комфортный интерлиньяж.
  • Атрибуция сервера типографики в подвале каждой статьи.

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


5. Живые диалоги без фальши: спойлеры и динамическое оглавление

Агент по привычке попытался сочинить «причесанные» диалоги ни о чем. Я жестко остановил эту самодеятельность:

«Только брать реальные диалоги из наших бесед»
«Не надо про выбор названия, это неинтересно, что-то более интересное»
«Стенограммы убрать под спойлеры с начальным закрытым состоянием»

Мы подняли сырые логи transcript.jsonl и достали настоящие, непридуманные цитаты: старт параллельного роя через /grill-me, шок от потери паролей хостов при первом запуске, баталии за независимые вкладки терминала и аудит Zero-Knowledge. Упаковали их в сворачиваемый компонент <DialogueSnippet /> — в свернутом виде он не мешает чтению, а по клику приоткрывает подлинную закулисную кухню проекта.

А для навигации переписали компонент ChapterTOC.astro:

«Оглавление на десктопе при прокрутке страницы должно съезжать вправо. На мобильном оставаться как есть»

Теперь на мобильных устройствах оглавление скромно живет в шапке, а на мониторах при прокрутке плавно скользит вправо в парящий док со scrollspy-подсветкой.


6. Честные метрики: 19 часов до MVP

Заодно ликвидировали еще одну галлюцинацию нейросети: агент написал на сайте, будто проект делался «7 дней».

«Почему 7 дней? Ты откуда взял это число? 19 часов до MVP»

От пустой папки до первого рабочего релиза v0.1.0 с SSH, SFTP, локальным терминалом и шифрованием прошло ровно ~19 часов плотнейшего штурма. Последующие дни ушли на полировку, аудит безопасности и создание экосистемы. В плашке статистики на сайте мы закрепили эту честную цифру.


7. Итог

Решение сделать летопись публичной подарило Shellit собственный первоклассный медиа-ресурс.

На сайте https://shellit.top заработал интерактивный раздел Хроники из 8 Актов, где Акт VIII закольцевал историю — рассказал о том, как рождался сам этот веб-раздел. Полная прозрачность разработки, открытый код, академическая типографика и честный диалог с сообществом.

📖 Типографика статьи выровнена по алгоритму Кнута — Пласса с помощью mcp-typography-server на базе Justif.
Knuth-Plass • TeX Style