На этой странице
Первый проект
Сквозной путь: от подключённого агента до первой закрытой задачи, с конкретными командами на каждом шаге.
Эта страница проходится один раз и целиком. К её концу у вас будет проект с деревом задач, одна выполненная задача и след работы, по которому следующий агент — или вы через месяц — восстановит контекст без расспросов.
Всё, что ниже, — реальные команды. Скиллы вызываются как слэш-команды Claude Code:
/имя-скилла, при необходимости с аргументом в той же строке.
Предполагается, что уже сделано:
- MCP подключён —
claude mcp listпоказываетflownix; - скиллы установлены — каталоги скиллов лежат в
~/.claude/skills/, Claude Code перезапущен.
Шаг 1. Заведите проект
Перейдите в каталог с кодом (можно пустой) и вызовите:
/flownix-initЧто произойдёт по шагам:
- Агент ищет рядом файл
.flownix— если его нет, идёт дальше. list_organizations— показывает ваши организации или предлагает создать (create_organization).list_projects— то же с проектами. Новый заводится черезcreate_project, и вы называете ключ проекта: две-три заглавные буквы, из которых потом собираются слаги задач. КлючAFдаётAF-TASK-1, ключSHOP—SHOP-TASK-1.- Записывает
.flownixв текущий каталог.
spec_mode: "off"
org:
id: "62c39018-..."
name: "Mementai"
project:
id: "d13b9da0-..."
name: "Мой продукт"
key: "AF"
spec: |
## Goal
...Дальше все скиллы читают этот файл сами, и вы больше никогда не вводите идентификаторы руками.
Затем агент задаст три вопроса: включить ли строгий режим спецификаций,
собрать ли спеку по существующему коду (/bootstrap-spec), настроить ли
совет агентов. На первом проекте на все три отвечайте «нет» —
вернуться к ним можно в любой момент.
Шаг 2. Опишите замысел
Не задачу — замысел. Раскладка на задачи — работа агента, и делать её за него значит терять его сильную сторону.
/plan-feature Авторизация по магической ссылке: письмо со ссылкой вместо пароля,
срок жизни ссылки 15 минут, одна ссылка — один вход.Что произойдёт по шагам:
- Сначала поиск, потом создание.
rag_queryпо смыслу вашей формулировки иrag_contextпо предметной области. Если похожее уже планировалось, агент найдёт это и предложит расширить существующее, а не завести второе такое же. Пустой ответ он не считает доказательством отсутствия — сверяется сrag_status. - Раскладка сверху вниз через
create_node:feature→plan→task. Эпик заводится только под действительно большой объём: лишний уровень никому не помогает. - Спека отдельным документом —
create_doc_node: каким продукт станет после этой фичи, а не что нужно сделать. Каждая задача связывается с ней черезset_references. - Зависимости —
add_dependency. Читается как предложение: «fromзависит отto», то естьto— блокер и делается первым. - Теги (
add_tag) и, если система размечена компонентами,set_node_components.
На выходе агент называет созданные слаги — примерно так:
AF-FEAT-1 — Авторизация по магической ссылке
AF-PLAN-1 — Реализация одноразовых ссылок
AF-TASK-1 — Модель токена и миграция
AF-TASK-2 — Выдача ссылки и отправка письма (зависит от AF-TASK-1)
AF-TASK-3 — Обмен ссылки на сессию (зависит от AF-TASK-1)
AF-DOC-1 — Спецификация: вход по ссылкеШаг 3. Посмотрите, что получилось
Откройте проект в веб-интерфейсе: дерево слева, граф справа — зависимости и связи видно глазами. Здесь вы правите то, с чем не согласны; это ваша половина работы, и её нельзя делегировать.
Что стоит проверить, пока не начали делать:
- Задачи действительно самостоятельные? Задача, которую нельзя выполнить за один заход, — это план, а не задача.
- Зависимости отражают реальный порядок? Лишняя зависимость останавливает работу на пустом месте.
- Спека описывает результат, а не пересказывает задачи?
Править можно и словами, не выходя из сессии:
AF-TASK-2 слишком крупная — разбей её на две и перенеси зависимостьШаг 4. Выполните первую задачу
/execute-task AF-TASK-1Что произойдёт по шагам:
get_node(slug: "AF-TASK-1")— описание и все комментарии: там решения, принятые раньше.get_dependencies— если блокер не закрыт, агент не начнёт, а скажет об этом.rag_context— окружающий контекст: похожие задачи, принятые решения, соседние модули.update_node_status(status: "in_progress")— на доске видно, чем он занят.- Собственно работа, по ходу —
add_commentс пометками:[progress]что сделано,[decision]почему именно так,[blocker]что мешает. update_node_status(status: "testing")с хэшем коммита и комментарием[done]о том, как проверить.
Задача останавливается в testing, а не в done, намеренно: сделал и проверил — разные
роли. Кто переводит дальше — вы или отдельный проход проверки, — на шаге 6.
Этот след — не отчётность. Тикет здесь работает как память агента: между сессиями агент не помнит ничего, и всё, что не записано в ноду, потеряно. Отсюда правило, на котором держится продукт: решение, не записанное в тикет, не принято.
Шаг 5. Посмотрите, что осталось
Откройте AF-TASK-1 в веб-интерфейсе. Там:
- статус — что реально происходит, а не «в процессе» месяцами;
- комментарии
[progress],[decision],[done]— ход работы и принятые решения; - хэш коммита — связь с кодом;
- прогресс
AF-PLAN-1пересчитался сам по статусам задач внутри.
Следующий агент, взяв AF-TASK-2, прочитает это и не начнёт с нуля.
Шаг 6. Закройте задачу
Задача в testing ждёт проверки. Проверить её можно самому, а можно вторым проходом
агента — тем, который не писал этот код:
/review-work AF-TASK-1Что произойдёт по шагам:
- Агент читает критерии приёмки из описания задачи и комментарии исполнителя.
- Поднимает
rag_queryзаписанные решения по затронутой подсистеме: изменение, противоречащее чьему-то[decision], — это замечание, а не мелочь. - Проходит по критериям поимённо, а не «в целом выглядит нормально».
- Записывает результат комментарием
[review]и переводит задачу: вdone, если критерии выполнены, или обратно вregressionс перечнем того, что не так. - Если работа того стоит — создаёт документ по ней (
create_doc_node) и связывает его с фичей и задачами черезset_references.
Когда AF-TASK-1 уходит в done, прогресс AF-PLAN-1 пересчитывается сам.
Что дальше
- Спланировать фичу — то же, что вы сделали, но подробно.
- Выполнить задачу — статусы, след, когда закрывать.
- Строгий режим — когда документация обязана меняться вместе с кодом.
- У вас уже есть репозиторий — как начать не с нуля.
- Кейсы — как это выглядит в конкретных ситуациях.