L1DDER — Методология разработки
Философия: Агент занимается механикой исполнения и самопроверкой. Человек занимается намерением, приоритетами и приёмкой качества. Главный инвариант: Роадмап (
docs/roadmap.md) — единственный источник истины. Мы ничего не делаем в обход Роадмапа (кроме/l1-hotfixдля срочного бага,/l1-choreдля правок самого проекта и/l1-fast— строго по вызову человека для небольшой фичи продукта, когда позиция1 (CURRENT)пуста).
L1DDER описывает замкнутый цикл Spec-driven разработки с AI-агентами: от онбординга (/l1-onboard) и сырой идеи в Банке Идей (/l1-idea) до проработанной спеки в Бэклоге (/l1-feature), планирования в Роадмапе (/l1-planning), пошаговой реализации в спринтах (/l1-task) и обязательной ревизии здоровья проекта (Doctor Checklist) в конце каждого спринта.
1. Карта артефактов и потоков L1DDER
2. Базовый фундамент проекта (docs/concept/)
Заполняется один раз на старте проекта (через /l1-onboard) и обязательно поддерживается в актуальном состоянии в конце каждого спринта (в рамках гигиенической задачи Doctor Checklist):
| Документ | Шаблон | Обязательность | Условие |
|---|---|---|---|
idea.md | idea-template.md | Обязательно | Всегда (верхнеуровневая суть проекта) |
vision.md | vision-template.md | Обязательно | Всегда (техническое видение, роли, стек) |
architecture.md | architecture-template.md | Обязательно | При наличии ≥2 компонентов / слоёв |
data-model.md | data-model-template.md | Обязательно | При наличии БД, локального стора или схем конфигов |
integrations.md | integrations-template.md | Обязательно | При наличии внешних сервисов / SDK |
api-contracts.md | api-contracts-template.md | Опционально | При наличии API / межмодульных контрактов |
ADR в adrs/ | adr-template.md | По необходимости | При значимом архитектурном решении |
3. Рабочие потоки L1DDER
Поток 0: Онбординг проекта (/l1-onboard)
Единая точка старта после npx l1dder init. Проходит шесть этапов, по одному файлу, и на каждом ждёт «ок»:
- Определяет режим (
from-scratchдля нового проекта илиexisting-codeдля существующего репозитория) и первый незавершённый этап. В режимеexisting-codeпервоисточник фактов — код. - Прорабатывает концепт:
docs/concept/idea.md→vision.md→architecture.md(при необходимостиintegrations.mdиapi-contracts.md) →data-model.md. На каждом этапе раунды до 7 вопросов с рекомендациями и вопрос «Идём дальше или ещё раунд?». - Выводит из архитектуры стек:
l1dder/rules/30-tech-stack.mdc,40-skills-router.mdc,Makefile, затемnpx l1dder sync. - Создаёт
docs/ideas.md,docs/backlog.md,docs/roadmap.mdиdocs/README.md.
Поток 1: Флоу «Идея» (/l1-idea → docs/ideas.md)
Когда появляется любая продуктовая или техническая задумка:
- Вызывается скилл
/l1-idea. - Агент проверяет
docs/ideas.mdна пересечения и помогает развить идею: задаёт уточняющие вопросы по дереву решений (grilling:❓ Q1 ➡️ Рекомендация), предлагает варианты с опорой на факты и отсекает лишнее по принципуponytail. - После согласования («ок») идея добавляется в Банк Идей (
docs/ideas.md):- Присваивается уникальный код
IDEA-NNN. - Задаётся приоритет (
P0/P1/P2/P3). - Устанавливается статус
📋 нереализована.
- Присваивается уникальный код
Статусная модель идеи (IDEA-NNN):
📋 нереализована— лежит в банке идей, ждёт проработки.🚧 реализация— по идее создана фича (FEAT-NNN) и/или идут работы в спринтах.✅ реализована— все связанные с идеей фичи полностью реализованы.❌ отклонена— идея отвергнута (с фиксацией причины).
Шаблон: ideas-template.md
Поток 2: Флоу «Фича» (/l1-feature → docs/specs/ + docs/backlog.md)
Превращает идею из Банка Идей в проработанную спецификацию и декомпозированную запись в Бэклоге:
- Вызывается скилл
/l1-feature(на вход подаётсяIDEA-NNNиз очереди проработки Роадмапа или выбранная пользователем; если идеи ещё не было вdocs/ideas.md— она автоматически создаётся). - Агент совместно с пользователем создаёт спецификацию в
docs/specs/FEAT-NNN-<slug>/:requirements.md— User Stories + Acceptance Criteria (GIVEN/WHEN/THEN), границы scope.design.md— архитектура фичи, глубокие модули (Deep Modules), согласованные публичные швы тестирования (Pre-agreed Test Seams), схемы данных/конфигов.tasks.md— груминг фичи на кандидаты спринтов и атомарных задач (FEAT-NNN.01 .. FEAT-NNN.99), где последней задачей каждого спринта обязательно закладываетсяFEAT-NNN.99: Гигиена спринта и Doctor Checklist.
- После согласования («ок»):
- Фича записывается в Бэклог и Таск-трекер (
docs/backlog.md) с кодомFEAT-NNN, обязательной ссылкой наIDEA-NNN, ссылкой на спеку, приоритетом, статусом📋 в бэклогеи списком кандидатов спринтов/задач. - Статус идеи
IDEA-NNNвdocs/ideas.mdпереводится в🚧 реализация.
- Фича записывается в Бэклог и Таск-трекер (
Статусная модель фичи (FEAT-NNN):
📝 проработка— спека в работе.📋 в бэклоге— спека утверждена, нарезана на кандидаты спринтов, ждёт планирования в Роадмап.🗓 запланирована— поставлена в очередьdocs/roadmap.mdи привязана кSPRINT-NN.🚧 реализация— спринт фичи в активной разработке.✅ реализована— все спринты фичи (включаяDoctor Checklist) закрыты.❌ отклонена— отменена.
Шаблоны: spec-template.md, backlog-template.md
Поток 3: Флоу «Планирование» (/l1-planning → docs/roadmap.md)
Роадмап (docs/roadmap.md) — единый источник истины проекта.
- Вызывается скилл
/l1-planning. - Агент анализирует
docs/ideas.md,docs/backlog.mdи текущийdocs/roadmap.mdи предлагает план:- Очередь реализации (Delivery Queue): в какой последовательности запускаем спринты (
SPRINT-NN) по готовым фичам (FEAT-NNN). - Очередь проработки (Discovery Queue): в какой последовательности прорабатываем идеи (
IDEA-NNN) в новые спеки через/l1-feature.
- Очередь реализации (Delivery Queue): в какой последовательности запускаем спринты (
- После согласования («ок»):
- Обновляется
docs/roadmap.md. - В
docs/backlog.mdкандидаты спринтов получают номераSPRINT-NNиTASK-NN.01 .. TASK-NN.99, а статус фич переводится в🗓 запланирована. - Для ближайшего спринта создаётся
docs/sprints/SPRINT-NN-<slug>/README.md(с обязательной финальной задачейTASK-NN.99).
- Обновляется
- Отклонение текущего спринта: если от активного спринта на
1 (CURRENT)решили отказаться,/l1-planningпоказывает его коммиты и незакоммиченные правки (⛔ СТОП), а после «ок» откатывает код черезgit revertбез переписывания истории, оставляет документы спринта и задач записью со статусом❌ отклоненаи освобождает1 (CURRENT).
Железное правило (Roadmap Gate):
Никакая задача не берётся в разработку, если она не стоит текущей в
docs/roadmap.md. Чтобы поменять план — сначала вызываем/l1-planning, меняемdocs/roadmap.md, затем вызываем/l1-task.
Шаблон: roadmap-template.md
Поток 4: Флоу «Задача и Гигиена спринта» (/l1-task)
Выполняет задачи текущего активного спринта из docs/roadmap.md.
Стандартная задача (TASK-NN.01 .. TASK-NN.K)
Проходит 4 фазы с правилом двух согласований:
- Plan: создание
plan.md(паспорт ID, цель, фильтрponytail, шаги, DoD, артефакты, scope, прочитанные скиллы из40-skills-router.mdc).- ⛔ СТОП №1 — показ плана и ожидание «ок».
- Implement: работа строго в
Scopeпо циклуEdit → Sanitize → Verify. - Self-check: выполнение всех проверок DoD агентом +
ponytail-review.- ⛔ СТОП №2 — показ отчёта DoD + 2-строчного футера
Ponytail skipped / Riskи ожидание «ок».
- ⛔ СТОП №2 — показ отчёта DoD + 2-строчного футера
- Confirm & Record: создание
summary.md, синхронизация статусов вsprint README.md,tasks.md,docs/backlog.mdиdocs/roadmap.md.
Обязательная финальная задача каждого спринта: Гигиена и Doctor Checklist (TASK-NN.99)
Каждый спринт строго завершается задачей TASK-NN.99 (tasks/TASK-NN.99-doctor/) по шаблону doctor-checklist-template.md:
- Code & Repo Doctor: прогон
make ci+ двухосевойcode-review(StandardsvsSpec) + аудитponytail-audit+ сборshortcut:черезponytail-debt. - Максимальный E2E-прогон агентом: автотесты
make test-e2e+ живой прогон всех пользовательских сценариев спринта агентом (в браузере/CLI/API в зависимости от типа продукта). - Обязательное обновление долгосрочной документации (Living Docs Sync +
retro):- актуализация
docs/concept/*(vision.md,architecture.md,data-model.md,integrations.md,api-contracts.md); - актуализация спеки
docs/specs/FEAT-NNN-<slug>/под фактическую реализацию; - актуализация правил
l1dder/rules/*.mdc(с синхронизацией черезnpx l1dder sync) и ADR (docs/adrs/).
- актуализация
- Приёмочное тестирование человеком (Human UAT):
- Агент готовит пошаговый сценарий ручного тестирования для человека и ждёт на ⛔ СТОП №2.
- После ручной проверки и «ок» от человека спринт закрывается (
✅ реализована), а статусы каскадно обновляются вdocs/backlog.md,docs/roadmap.mdиdocs/ideas.md.
Поток 5: Исключение — Флоу «Хотфикс» (/l1-hotfix)
Для срочных багов, требующих немедленного исправления в обход очереди Роадмапа:
- Вызывается скилл
/l1-hotfix. - Агент проходит
RED Reproduction Gate(diagnosing-bugs— воспроизводит баг падающим тестом/командой) и предлагает краткий план фикса в чате (1 точка согласования «ок»). - Выполняет минимальное исправление (
ponytail), убеждается в переходе теста вGREEN+make ciи фиксирует записьHOTFIX-NNN(со связью наFEAT-NNN/TASK-NN.MM) в разделе «Журнал Хотфиксов» внутриdocs/backlog.md.
Поток 6: Исключение — Правка самого проекта (/l1-chore)
Для правок самого проекта, а не того, что видят его пользователи: правила работы с git (имена веток и коммитов, проверки перед пушем), автопроверки в CI, обновление библиотек, Makefile, скрипты сборки, тесты, правила для ИИ-агента. Идея, спека и спринт не нужны:
- Вызывается скилл
/l1-chore(или пользователь просит сделать chore-правку словами). - Агент проверяет границу: если правка меняет продукт, он не трогает файлы и предлагает
/l1-taskили/l1-hotfix. Иначе вычисляетCHORE-NNN, предлагает варианты с рекомендацией и ждёт одно «ок». - Делает минимальную правку, покрывает тестами нетривиальную логику, прогоняет
make ciи добавляет строкуCHORE-NNNв раздел «Журнал служебных правок» внутриdocs/backlog.md(создаёт раздел, если его нет).
Поток 7: Исключение — Быстрый режим для небольшой фичи (/l1-fast)
Для небольшой фичи продукта (до трёх задач в одном спринте, без новой модели данных, внешней интеграции, ADR и ломающих изменений), когда позиция 1 (CURRENT) в docs/roadmap.md пуста. Вызывает строго только человек — для агента запускать /l1-fast по своей инициативе запрещено.
- Если
1 (CURRENT)занята обычным спринтом — строгий отказ без правки файлов: закончить спринт через/l1-taskили отклонить его через/l1-planning. - Агент уточняет развилки (
grilling), проверяет четыре признака масштаба, предлагает решение и ждёт⛔ СТОП №1(«ок»). - Сразу после первого «ок» бронирует
IDEA-NNN,FEAT-NNN,SPRINT-NNна1 (CURRENT)вdocs/roadmap.mdс пометкойрежим: /l1-fast, пишет код по срезам TDD, коммитя каждую готовую задачу, и выполняет все проверки обычного пути иTASK-NN.99(make ci,ponytail-review, двухосевойcode-review,ponytail-audit,ponytail-debt, E2E, синхронизацию доки иretro) до⛔ СТОП №2(ручной приёмки человеком). - После второго «ок» заполняет всю цепочку реестров (
docs/ideas.md,docs/backlog.md,docs/specs/FEAT-NNN-<slug>/,docs/sprints/SPRINT-NN-<slug>/,TASK-NN.MMиTASK-NN.99) со строкой| **Режим** | \/l1-fast` |в паспорте каждого документа, переноситSPRINT-NNв «Завершённые спринты» и прогоняетmake ciиdoctor`.
Поток 8: Мета-контур — Эволюция и Догфудинг самой методологии (/l1-evo → l1dder/evolution/)
Сама методология L1DDER развивается по принципу 100% догфудинга (подчиняется собственным правилам двух согласований, фильтру ponytail, опросу grilling, глубоким модулям codebase-design и двухосевому ревью code-review):
- Правила эволюции:
l1dder/evolution/METHODOLOGY-RULES.md(разделениеCore vs Stack, неприкосновенность цепочки ID, матрица полной синхронизацииSingle Change = Full Sync). - Журнал изменений и решений:
l1dder/evolution/WORKLOG-CHANGELOG.md. - Слепок для передачи контекста между сессиями и проектами:
l1dder/evolution/HANDOFF.md.
4. Полная структура docs/ в проекте на L1DDER
docs/
├── README.md # навигатор по всей документации продукта
│
├── concept/ # долгосрочный фундамент (обновляется в конце каждого спринта)
│ ├── idea.md # верхнеуровневая суть продукта
│ ├── vision.md # техническое видение, роли, стек
│ ├── architecture.md # диаграммы, ответственность слоёв/компонентов
│ ├── data-model.md # схема данных / конфигов / состояния
│ ├── integrations.md # внешние сервисы, SDK, риски
│ └── api-contracts.md # контракты API / модулей (если применимо)
│
├── adrs/ # архитектурные решения (ADR)
│ └── ADR-0001-<slug>.md
│
├── ideas.md # 💡 БАНК ИДЕЙ (IDEA-NNN: статусы и приоритеты) — /l1-idea
├── backlog.md # 📋 БЭКЛОГ И ТАСК-ТРЕКЕР (FEAT-NNN, SPRINT-NN, TASK-NN.M, HOTFIX-NNN, CHORE-NNN) — /l1-feature
├── roadmap.md # 🔒 РОАДМАП (Источник истины: Delivery Queue + Discovery Queue) — /l1-planning
│
├── specs/ # функциональные спецификации фич — /l1-feature
│ └── FEAT-001-<slug>/
│ ├── requirements.md # user stories + acceptance criteria (GIVEN/WHEN/THEN)
│ ├── design.md # архитектура фичи, публичные швы (Seams), схемы
│ └── tasks.md # груминг на спринты и задачи (+ обязательный Doctor Checklist)
│
└── sprints/ # спринты и задачи реализации — /l1-planning, /l1-task
└── SPRINT-01-<name>/
├── README.md # цель, DoD спринта, список задач, итог
└── tasks/
├── TASK-01.01-<task>/
│ ├── plan.md # до: паспорт ID, цель, шаги, DoD, артефакты, scope
│ └── summary.md # после: что сделано, решения, чек-лист синхронизации ID
└── TASK-01.99-doctor/ # обязательная финальная гигиеническая задача спринта
├── plan.md # по шаблону doctor-checklist-template.md
└── summary.md # отчёт E2E, обновлённой доки и итогов Human UAT