~/desk
в работе с июля 2026 · 595 коммитов

Правила, которые ассистент получает вовремя

desk — папка с markdown-файлами о том, как ты работаешь. Правило приезжает к ассистенту в момент действия, а скрипты проверяют, что оно исполнено.

~/desk — семь частей. Выбери любую. 5 / 7
~/desk/desk.md

Вход: девять принципов и карта

Единственный файл, который ассистент читает целиком в каждой сессии. Поэтому короткий — 8 КБ: строка на принцип, подробности в файле по ссылке.

  1. Скоуп фиксирован договорённостями
  2. Отчёт — результат и ссылки на MR
  3. Никакой AI-атрибуции
  4. Платный и опасный код — особый режим
  5. Задача шире одного репозитория
  6. Постановка — гипотеза
  7. Спрашиваю только стоящее
  8. Живое — только чтение
  9. Пойманный промах — до слоя desk
~/desk/process/ · 17 файлов

Как я работаю

Не зависит от места и инструмента, переживает смену работы. Главное здесь — цикл задачи: зелёные тесты и пуш в нём середина, а не конец.

взятьразборпланветкакодпроверкаMR и стендотчётожидание

Выделены шаги, где слова сверяются с реальностью: постановка — с кодом, результат — со средой.

Постановка — гипотезаСверяется с кодом и данными до первой правки. Расхождение — один вопрос с рекомендацией.
Второй проходБольшой разбор перепроверяет независимый агент: сначала вслепую, потом сверка.
Сторож ожиданияЗадача у тестировщика — сессия ждёт события в трекере и продолжает с того же места.
~/desk/contexts/ · 73 файла

Где я работаю

Факты о месте: трекер, репозитории, стенды, базы. Сменил работу — новая папка и одна строка в карте, общие правила не тронуты.

Место ассистент определяет сам — по git remote.

context.mdхаб места: трекер, хостинг, домены
repos.mdреестр репозиториев
projects/<репо>/local.mdкак поднять локально
projects/<репо>/sensitive.mdчто в этом репозитории стоит денег
process/не меняется contexts/место-А/старая работа → contexts/место-Б/новая папка
~/desk/now.md · 12 нитей

Что не закончено

Сказанное в одном чате известно в следующем. Нить заводит ассистент сам, когда прозвучало «хочу» или «давай потом».

Не больше 4 КБ. Мёртвая нить хуже отсутствующей — закрывается.

Desk как STEMдальшеутренний обход по нитям: задача и расписание
Workplace как приложениедальшезамер гипотезы, экран аномалий
Диск мака забиваетсядальшеостатки по node, сторож
~/desk/assistants/claude-code/

Правило приезжает к действию

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

  • import на старте, целиком
  • session к первому действию
  • action по 14 триггерам
  • link по запросу
одна сессия: что попадает в контекст
правил в контексте57,5 КБ из 121
desk.mdcommunication.mdautonomy.mdcontext.md местаnow.md task-questions.mdtask-reports.md sensitive.md tests.md git-flow.md
итог63,5 КБ правил не понадобились — и не занимали контекст

Схема: триггеры и размеры файлов настоящие, сценарий сессии условный.

~/desk/bin/ · journal/

Правило без замера — пожелание

Структуру держит линтер на каждом коммите. Соблюдение считает профайлер по записям сессий. Пойманная ошибка доводится до слоя, который её пропустил.

linksplacechroniclemaphubthreadsfreshnessrulesinterfacescanvas
правило доехало, было9–14 %
правило доехало, стало85–100 %
Поймалассистента на ошибке
Первопричинане подано · не применено · правила нет
Первый разстрока в журнал промахов
Повторчинится правило, а не ответ
~/desk/apps/workplace/

Экран задач поверх всех репозиториев

Строка — задача, а не коммит: где её код на пути до прода и что её держит. Данные — трекер, GitLab, локальные чекауты и сам desk.

Рядом — скилл task-flow: весь цикл задачи одним прогоном.

Схема экрана, числа условные.

Цифры

9–14 %85–100 %случаев правило было в контексте к своему действию
130 КБ27 КБправил на старте сессии; остальное — по триггерам
 0вызовов модели в хуках и линтере: скрипт нельзя уговорить
10
110
105
277
93
июльавгустсентябрьоктябрьноябрь

27 КБ — сессия в личном проекте; в рабочем репозитории с его фактами вход 49–64 КБ. Замеры — по транскриптам рабочих сессий, база от 02.09.2026. Всего 595 коммитов (на графике — по месяцам), 17 правил, 6 хуков, 252 теста на сам desk.

Вехи: что ломалось и чем ответили
17.07Playbook из семи файлов: git-flow, цикл задачи, отчёты.
11.08process/ и contexts/, нити. Отдельное хранилище памяти снято.
31.08Линтер и первые хуки. Замер: правила доезжают в 9–14 % случаев.
02.09Ярусы подачи: tier, triggers, checks в шапке файла.
03.09Workplace становится приложением: в сборе данных не оказалось решений модели.
07.10Второй проход разбора независимым агентом.
10.11Аудит: старт рабочей сессии 170 → 60 КБ.
11.11Петля промаха и бюджет на обслуживание самого desk.

Зачем

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

В desk правило приезжает к тому действию, которого касается. А там, где ошибка стоит денег или репутации, оно исполняется скриптом, а не памятью модели.

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

Как работает

  1. Пишешь правилоОбычный markdown. В шапке три строки — они и есть вся механика:
~/desk/process/git-flow.mdнастоящий файл, текст сокращён
---
tier: action                      ← когда: не позже действия
triggers: [git, mr]               ← на что: git commit, git push, открытие MR
checks: [commit-no-attribution,   ← чем проверяется: замер по записям сессий
         commit-format]
---
# Git flow
- Коммит: <type>(<TICKET>): <description>, subject ≤ 72 символов
- Запрещены футеры атрибуции инструментов
  1. Стартует сессияХук по git remote определяет, где ты работаешь, и подаёт вход: принципы, контекст места, незаконченное с прошлых сессий.
  2. Ассистент делает действиеПеред git commit в контекст приезжает git-flow.md. Коммит с AI-подписью хук отклоняет. Правку платного кода — останавливает до твоего подтверждения.
  3. Соблюдение считаетсяПрофайлер проходит по записям сессий. Правило не держится — переписывается или становится хуком.

Что видно на старте сессии

╭─ 💻 desk · personal · 13.11 20:52 ──────────────────────────────
│ 📦 подача    27 КБ в сессии · за 13 триггерами ещё 94 КБ
├─ сигналы ──────────────────────────────────────────────────────
│ 🔁 мета      desk 26 из 42 сессий за 7 дн · 62 % при цели ≤ 25 %
╰────────────────────────────────────────────────────────────────

Настоящий вывод хука SessionStart, дословно.

Шесть хуков поимённо
SessionStartМесто по git remote, вход слотами, свод деревьев и стеков, простаивающий чекаут — к базе.
UserPromptSubmitТема названа в реплике («посмотри логи») — правила темы едут до первого инструмента.
PreToolUseПравило к действию; deny на AI-подпись, ask перед правкой платного кода.
PostToolUseЧто команда изменила по факту — по git status до и после.
WorktreeCreateРабочее дерево под задачу: своя ветка, своя база.
SessionEndСтрока в журнал сессий: дата, проект, заголовок.

Совместимость

Claude CodeВсё: вход, подача по действию, запреты, журнал сессий.работает
Cursor · Codex · CopilotВход и принципы через AGENTS.md. Подачи по действию нет: хуки пока только под Claude Code.частично
Любой чатСодержимое desk.md и нужного файла первым сообщением.руками

Подключить

Claude Code

ln -s ~/desk/assistants/claude-code/CLAUDE.md ~/.claude/CLAUDE.md

Cursor, Codex, Copilot — в корне репозитория

ln -s ~/desk/desk.md AGENTS.md

Workplace

~/desk/apps/workplace/bin/workplace

Хуки ставятся отдельно — assistants/claude-code/README.md. Дальше читать: desk.md · process/dev-loop.md · process/desk-upkeep.md.

Чего нет

62 % сессий — про сам desk
Бюджет на себя62 % сессий за неделю ушло на сам desk при цели 25 %.болит
ГолосМолчит, пока не открыта сессия. Утренний обход по нитям и задачам написан, расписания нет.начато
Вопросы по нитям«Висит третью неделю — закрыть?» — сам, без напоминания.хочу
Сторож после выкатаМетрики и ошибки по задачам, уехавшим в прод.хочу
Второй ассистентПривязка с хуками под Cursor или Codex.хочу
УстановкаСимлинки и хуки руками. Одной команды нет.хочу

Вопросы

Чем это отличается от CLAUDE.md или AGENTS.md?

Они остаются входом. Но вход читается один раз и целиком, поэтому его приходится держать коротким. desk — то, что стоит за входом: правила, которые едут по действию, и проверка, что они исполняются.

Это замена Claude Code или Cursor?

Нет, дополнение. Ассистент остаётся тем же; desk — то, что он читает и чем его действия проверяются.

Нужна ли модель, чтобы проверки работали?

Нет. Хуки, линтер и профайлер — обычные скрипты на Python. Модель нужна только для самой работы над задачей.

Что будет при смене работы?

Новая папка в contexts/ с фактами места: трекер, репозитории, стенды. process/ не правится. Честно: делом это ещё не проверено — место работы пока одно.

Сколько это стоит поддерживать?

Пополняют двое: ты руками и ассистент сам, по ходу сессии. Линтер на pre-commit ловит битые ссылки и устаревшее. Но пока дорого — см. «Чего нет».

Следующая сессия начнётся не с нуля

Обычная папка под git. Без облака, без подписок, без нового инструмента.