Coding-Agent State Protocol

Модель держит контекст. CASP доказывает, что состояние истинно — сверяя его с git.

Новые модели ведут всю вашу дорожную карту часами, а то и днями, не теряя нити. Именно поэтому расхождение состояния значит больше, а не меньше: чем больше агент делает между вашими контрольными точками, тем легче записанному им состоянию незаметно перестать соответствовать git. casp check — это детерминированный шлюз, который блокирует push в тот самый момент — с Claude Code сегодня и с каждой моделью, которая выйдет следующей.

Предполётная проверка + чёрный ящик для сессий кодинга с ИИ
$npm i -g @justethales/casp копировать
Смотреть на GitHub
casp check — валидатор расхождений
01 / Нить, которую вы постоянно теряете

Устаревший файл состояния делает вашего агента уверенно неправым.

Вы возвращаетесь к проекту через неделю — или жонглируете пятью сразу. Агент читает файл состояния, который больше не соответствует реальности, уверенно берётся за работу, которая уже выпущена, и вы сжигаете полдня, откатывая её.

Доски, карточки и таблицы вас не спасут: восстановление контекста делается вручную, и агент ничего из этого прочитать не может. Состояние должно быть машиночитаемым, нативным для git — и доказуемо истинным.

CASP даёт каждому проекту единую нить, которая переживает переход между сессиями — и не может разойтись незаметно.
state.json ● DRIFTED
{
  "phase": "13 — camera streaming",
  "next_prompt": "phases/14-camera.md",
                  // shipped in v13.4
  "last_commit": "a1f3c9",
                  // not in git history
  "migrations": ["0001""0007"],
                  // git stops at 0006
}
02 / Решающее отличие

Все хранят контекст. CASP его проверяет.

Соседнее пространство — Mem0, Letta, Zep, новые «memory»-проекты, нативные для git — всё это хранит то, что произошло. Почти ничто из них не проверяет, что сохранённое состояние всё ещё соответствует реальности git. Эта проверка и есть casp check — и она обязательна перед каждым push.

расхождение next-prompt
обнаружено

Ваш next_prompt указывает на файл, который уже выпущен — или которого не существует. CASP отказывается запускать не ту сессию.

эталон истины из git
обеспечено

last_commit отсутствует в истории, список миграций рассинхронизирован, состояние не закоммичено — сверяется с самим git, а не с догадкой.

push, заблокирован
детерминированно

Никаких размытых оценок похожести. Жёсткий, воспроизводимый шлюз pass/fail, который останавливает push, пока состояние лжёт.

03 / Рядом с вашим существующим стеком

Git, PR и CI не знают, что выпускается следующим.

CASP ничего не заменяет в вашем рабочем процессе. Он закрывает единственный пробел, который не покрывает ничто другое — проверенное настоящее время проекта, в форме, которую ваш агент может прочитать и использовать.

Jira · Linear
Намерение
То, что вы планируете сделать.
Расходится с реальностью, живёт в облаке, ваш агент не может надёжно это прочитать.
CASP
Проверенное настоящее
Где проект стоит прямо сейчас — и точный следующий шаг, доказанный сверкой с git.
Машиночитаемо, в репозитории, детерминированно. Единая нить, на которую опираются агенты.
git · PR · CI
История и проверка
Что изменилось · прошло ли ревью · собирается ли.
Безупречная летопись прошлого — и молчание о том, что будет дальше.
04 / Три файла. Одна нить.

Весь протокол умещается в вашем репозитории.

Никакой базы данных. Никакого сервиса. Никакого векторного хранилища. Три простых файла, которые агент может прочитать на первой же строке любой сессии.

state.json
источник истины

Машиночитаемо, по каждому проекту: текущая фаза, следующая фаза, точный next-prompt для выполнения, выпущенные фазы, применённые миграции, последний коммит, идентификатор последней сессии.

now.md
для людей

«Где я прямо сейчас» на одном экране. Откройте — и вернитесь к нити за пять секунд, без археологии.

roadmap.md
что выпускается следующим

Ближайшие 3 к выпуску плюс табло фаз. Агент всегда знает порядок работы.

Шаблоны — это шлюзы, а не подсказки.  Канонические шаблоны session-prompt, session-log и audit-brief означают, что каждая сессия — человека или агента — производит артефакты одной и той же формы. Структура обеспечивается, а не предлагается.
05 / Создан для больших дорожных карт

Одна упорядоченная нить через сорок фаз — web и mobile.

Настоящий продукт — это не одна функция. Это десятки фаз через API, web-клиент и мобильное приложение, выпускаемые неделями сменяющими друг друга сессиями и агентами. CASP держит единый проверенный порядок поверх всего этого — чтобы любой агент знал, какая фаза следующая, и никогда не выпускал заново уже выпущенную.

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

roadmap.md — табло фаз 13 выпущено 22 всего
10apiДвижок синхронизации в реальном временивыпущено
11mobilePush-уведомлениявыпущено
12mobileКэш offline-firstвыпущено
13webПрава доступа командывыпущено
15apiОплата за местов очереди
16mobileБиометрический входв очереди
/ В продакшене

Не демо. Два живых продукта работают на CASP сегодня.

Каждое число ниже читается прямо из state.json каждого проекта — того же файла, который читает агент, проверенного сверкой с git при последнем push. Никакой маркетинговой арифметики.

LIVE

Клиентский ERP для управления автопарком для транспортной компании в Кот-д'Ивуаре — web + mobile, мультимодульный, мультиролевой: водители, транспорт, соответствие требованиям, касса, гараж, претензии, бухгалтерия.

25+
фаз выпущено
20+
миграций отслеживается
6
сессий за день

Каждый модуль — это проверенная фаза. Агент читает кокпит, запускает следующую фазу из next_prompt и ни разу не выпустил заново уже выпущенный модуль — даже в день из шести сессий.

LIVE

Внутренняя платформа операций и оркестрации запусков для ZeroSuite — многомесячная дорожная карта, над которой работает настоящая команда, с гейтингом в режиме запуска и отслеживаемым бэклогом после запуска.

41
фаз выпущено
17
миграций
3
оператора

Одна проверенная нить через 40+ фаз и трёх человек — плюс 58 пунктов, явно отложенных на после запуска, и ни один не потерян. Это и есть случай «большого многопользовательского проекта», ради которого создавался CASP.

Один протокол, два совершенно разных продукта. Кокпит — единственное, что у них общее.

06 / Состояние, а не память

CASP — это не слой памяти для ИИ.

Инструменты памяти запоминают, кто вы есть. CASP отслеживает, где стоит ваш проект — и доказывает это. Другой артефакт, другая операция, другой сбой, который он предотвращает.

CASP
Слои памяти · Mem0 / Letta / git-нативная "soul"
Что содержит
Состояние выполнения проекта
Факты и предпочтения пользователя
Основная операция
Проверяет сверкой с git
Хранит и вспоминает
При конфликте
Детерминированная сверка с эталоном истины
Размытая догадка по похожести
Когда срабатывает
Синхронный шлюз — блокирует push
Асинхронное / отложенное вспоминание
Покидает вашу машину
Никогда · нулевая телеметрия
По-разному / облако
07 / Командная панель

Пять глаголов. Набираются без усилий.

Один слог, никаких омографов, одинаковы в английском, французском или испанском.

casp initРазворачивает слой непрерывности в любом репозитории.
casp statusСнимок на одном экране: фаза, следующее, что выпущено.
casp checkВалидатор расхождений. Обязателен перед каждым push.
casp nextАвтозапуск следующей сессии из state.next_prompt.
casp new promptСоздаёт session-prompt под шлюзом из канонического шаблона.
casp new logОткрывает session-log в форме, общей для каждой сессии.
08 / В вашем редакторе

Нативные slash-команды для вашего агента.

CASP поставляет slash-команды Claude Code, чтобы состояние жило там, где вы уже работаете.

/casp

Статус только для чтения — агент читает текущую нить, прежде чем написать хоть строку.

/next

Автозапуск следующей сессии прямо из state.next_prompt. Никакого копипаста, никаких догадок.

Совместимо с Claude Code · Cursor · Aider · Continue — всем, что читает файлы.

09 / Для инженерных организаций

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

Один агент, делающий не то, стоит полдня. Сто агентов, делающих это на ста репозиториях, стоят квартал. CASP — это детерминированный страховочный барьер, который вы встраиваете в цикл автоматизации — одной и той же формы в каждом проекте.

Обязательная проверка статуса CI

casp check занимает то же место, что линтер и тесты. Состояние, которое лжёт, нельзя смержить — расхождение блокируется на уровне организации, а не оставляется на дисциплину каждого.

Страховочный барьер для флотов агентов

Автономные агенты множат ошибки. CASP вручает каждому из них одну и ту же проверенную нить для чтения и один и тот же жёсткий шлюз перед push. Автоматизация без налога на двойную работу.

Аудиторский след, бесплатно

Каждый переход состояния — это git-коммит. Полная, сравниваемая через diff и обратимая летопись того, как двигался каждый проект — git log и есть ваш след соответствия требованиям.

Проходит инфобез по своей конструкции

Только локально, нулевая телеметрия, без облака, без аккаунта. Нечего проверять, нечего выкрасть. Аудит безопасности укладывается в одну строку: оно никогда не покидает машину.

.github/workflows/ci.yml
jobs:
  state-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with: { fetch-depth: 0 }   # casp checks against full git history
      - run: npx @justethales/casp check       # ✗ fails the build the moment state drifts

Один протокол, каждый репозиторий. Одна и та же проверенная форма, во всей организации.

10 / Контракт

Принципиален намеренно.

Протокол заслуживает принятия тем, что он предсказуем. Эти правила не гнутся.

P01

Проверять состояние, а не намерение

CASP проверяет, чем ваш репозиторий является, а не что вы собирались сделать. Факты против git, каждый раз.

P02

Шаблоны — это шлюзы

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

P03

check перед каждым push

Валидатор не опционален. Лгущее состояние никогда не достигнет вашего remote.

P04

Ничто не покидает вашу машину

Детерминированно, нативно для git, только локально. Нулевая телеметрия. Без облака, без аккаунта, без счёта.

В продакшене за две минуты

Дайте каждому проекту нить, которую ваш агент не сможет потерять.

Установите, инициализируйте — и ваш агент читает истину на своей первой строке.

  terminal
$ npm i -g @justethales/casp
$ casp init          # scaffold the layer
$ casp status        # where am I right now
$ casp check         # prove the state is true