Правила, которые ассистент получает вовремя
desk — папка с markdown-файлами о том, как ты работаешь. Правило приезжает к ассистенту в момент действия, а скрипты проверяют, что оно исполнено.
Цифры
27 КБ — сессия в личном проекте; в рабочем репозитории с его фактами вход 49–64 КБ. Замеры — по транскриптам рабочих сессий, база от 02.09.2026. Всего 595 коммитов (на графике — по месяцам), 17 правил, 6 хуков, 252 теста на сам desk.
Вехи: что ломалось и чем ответили
| 17.07 | Playbook из семи файлов: git-flow, цикл задачи, отчёты. |
| 11.08 | process/ и contexts/, нити. Отдельное хранилище памяти снято. |
| 31.08 | Линтер и первые хуки. Замер: правила доезжают в 9–14 % случаев. |
| 02.09 | Ярусы подачи: tier, triggers, checks в шапке файла. |
| 03.09 | Workplace становится приложением: в сборе данных не оказалось решений модели. |
| 07.10 | Второй проход разбора независимым агентом. |
| 10.11 | Аудит: старт рабочей сессии 170 → 60 КБ. |
| 11.11 | Петля промаха и бюджет на обслуживание самого desk. |
Зачем
Каждая сессия с ассистентом начинается с нуля: как называть ветки, что писать в отчёт, какой код нельзя трогать без спроса. Длинный файл инструкций помогает наполовину — он читается один раз на старте, и к двадцатому шагу от него мало что остаётся.
В desk правило приезжает к тому действию, которого касается. А там, где ошибка стоит денег или репутации, оно исполняется скриптом, а не памятью модели.
Удобно думать так: ассистент — язык, desk — фреймворк на нём. Язык умеет всё и ничего не помнит; фреймворк даёт структуру, жизненный цикл и самопроверку.
Как работает
- Пишешь правилоОбычный markdown. В шапке три строки — они и есть вся механика:
--- tier: action ← когда: не позже действия triggers: [git, mr] ← на что: git commit, git push, открытие MR checks: [commit-no-attribution, ← чем проверяется: замер по записям сессий commit-format] --- # Git flow - Коммит: <type>(<TICKET>): <description>, subject ≤ 72 символов - Запрещены футеры атрибуции инструментов
- Стартует сессияХук по
git remoteопределяет, где ты работаешь, и подаёт вход: принципы, контекст места, незаконченное с прошлых сессий. - Ассистент делает действиеПеред
git commitв контекст приезжаетgit-flow.md. Коммит с AI-подписью хук отклоняет. Правку платного кода — останавливает до твоего подтверждения. - Соблюдение считаетсяПрофайлер проходит по записям сессий. Правило не держится — переписывается или становится хуком.
Что видно на старте сессии
╭─ 💻 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.mdCursor, Codex, Copilot — в корне репозитория
ln -s ~/desk/desk.md AGENTS.mdWorkplace
~/desk/apps/workplace/bin/workplaceХуки ставятся отдельно — assistants/claude-code/README.md. Дальше читать: desk.md · process/dev-loop.md · process/desk-upkeep.md.
Чего нет
| Бюджет на себя | 62 % сессий за неделю ушло на сам desk при цели 25 %. | болит |
| Голос | Молчит, пока не открыта сессия. Утренний обход по нитям и задачам написан, расписания нет. | начато |
| Вопросы по нитям | «Висит третью неделю — закрыть?» — сам, без напоминания. | хочу |
| Сторож после выката | Метрики и ошибки по задачам, уехавшим в прод. | хочу |
| Второй ассистент | Привязка с хуками под Cursor или Codex. | хочу |
| Установка | Симлинки и хуки руками. Одной команды нет. | хочу |
Вопросы
Чем это отличается от CLAUDE.md или AGENTS.md?
Они остаются входом. Но вход читается один раз и целиком, поэтому его приходится держать коротким. desk — то, что стоит за входом: правила, которые едут по действию, и проверка, что они исполняются.
Это замена Claude Code или Cursor?
Нет, дополнение. Ассистент остаётся тем же; desk — то, что он читает и чем его действия проверяются.
Нужна ли модель, чтобы проверки работали?
Нет. Хуки, линтер и профайлер — обычные скрипты на Python. Модель нужна только для самой работы над задачей.
Что будет при смене работы?
Новая папка в contexts/ с фактами места: трекер, репозитории, стенды. process/ не правится. Честно: делом это ещё не проверено — место работы пока одно.
Сколько это стоит поддерживать?
Пополняют двое: ты руками и ассистент сам, по ходу сессии. Линтер на pre-commit ловит битые ссылки и устаревшее. Но пока дорого — см. «Чего нет».
Следующая сессия начнётся не с нуля
Обычная папка под git. Без облака, без подписок, без нового инструмента.