Forge
markdowndeeb25a2
1# ADR 0121: Парадигма Intent-Oriented Programming (IOP) — концептуальный фундамент Cascade IDE
2
3**Статус:** Accepted
4**Дата:** 2026-05-17
5
6## Связанные ADR
7
8| ADR | Роль |
9|-----|------|
10| [0100](0100-project-constitution.md) | Конституция: agent-first, кокпит, общая операционная модель |
11| [0013](0013-command-surface-and-discoverability.md) | Палитра, keyboard-first, discoverability команд |
12| [0051](0051-intent-based-attention-routing-toml.md) | Intent-based routing внимания (TOML) |
13| [0072](0072-chat-topic-cards-intent-melody-keyboard-contract.md) | Intent-first: topic cards, Melody/Chords, `command_id` |
14| [0080](0080-intercom-naming-and-multi-party-channel-model.md) | Intercom — канал сессии и намерений |
15| [0109](0109-declarative-parametric-melody-catalog-toml-and-code-binders.md) | Каталог Intent Melody (декларативный слой интентов) |
16| [0119](0119-chat-slash-commands-intercom-surface.md) | Слэш в Intercom → тот же `command_id`, что палитра/MCP |
17| [0120](0120-primary-work-surface-intercom-or-editor.md) | Якорь Forward: Intercom или редактор — где живёт IOP-цикл |
18| [0174](0174-sedm-software-engineering-decision-making-ux-spine.md) | SEDM — операционная модель под IOP; фазы → UX |
19| [0122](0122-collaborative-iop-environment-and-shared-situational-display.md) | Среда: N станций `(P)(F)(M)` + общий ситуационный экран комнаты |
20| [0019](0019-shared-git-core-ide-and-git-mcp.md) | Паритет git: человек и агент в одном контуре |
21| [0084](0084-agent-edits-editor-source-of-truth-presence-channel.md) | Редактор — source of truth текста; чат — intent/status |
22
23### Вне ADR
24
25| Документ | Роль |
26|----------|------|
27| [iop-manifest-v1.md](../iop-manifest-v1.md) | Краткий манифест IOP для сайта и онбординга |
28| [architecture-policy.md](../architecture-policy.md) | Политика архитектуры, north-star, KB |
29| [MCP-PROTOCOL.md](../MCP-PROTOCOL.md) | Команды IDE/MCP — исполнение интентов |
30| [intent-melody-language-v1.md](../intent-melody-language-v1.md) | Грамматика `c:` (Melody), не слэши чата |
31| [design/north-star-cursor-mcp-cascade-workbench-v1.md](../design/north-star-cursor-mcp-cascade-workbench-v1.md) | Границы «Cursor + MCP + Cascade» |
32
33## Резюме
34
35- Принять **Intent-Oriented Programming (IOP)** — *интенционально-ориентированное программирование* — как **именованную парадигму продукта** Cascade IDE: прежде всего **дисциплина коммуникации** в контуре разработки (**рабочая реализация гипотезы в продукте**), а не замена ООП/ФП.
36- Три столпа IOP в CIDE: **намерение вместо ручного синтаксиса** (intent layer), **двухконтурная верификация** (агент синтезирует — человек утверждает diff), **эпистемический контекст** (канон KB и маршрутизация контекста как нормативный слой для агента).
37- Публичная формулировка для команды и сайта — [iop-manifest-v1.md](../iop-manifest-v1.md); этот ADR — нормативная привязка к существующим решениям и non-goals.
38
39---
40
41## Контекст
42
43В экосистеме agent-first IDE уже есть «intent-first» в отдельных ADR ([0072](0072-chat-topic-cards-intent-melody-keyboard-contract.md), [0055](0055-skia-instrument-composition-pipeline.md) Intent→…→Render), каталог **Intent Melody**, слой **Intercom**, паритет **MCP** и **Roslyn**. Не хватает **единого имени парадигмы**, которое:
44
451. объясняет новичку (в т.ч. на испытательном сроке), *почему* продукт устроен так, а не как «VS + чат»;
462. связывает разрозненные ADR в одну ментальную модель;
473. честно отделяет **гипотезу и рабочую реализацию в продукте** от претензии «единственный стандарт индустрии» или «эталон по спецификации».
48
49Обсуждение с командой (в т.ч. с Атласом) предложило термин **IOP** по аналогии с ООП и ФП. Смысл глубже, чем UI-команды: ИТ в глобальном смысле про **информационный поток** (цели, намерения, процессы, коммуникация, прозрачность); разработка ПО — часть потока, а не весь предмет. Агенты усилили старую истину: без явных намерений и общей картины код и команда расходятся в хаос.
50
51---
52
53## Проблема
54
551. **Поверхностное чтение IOP:** формулировка «базовая единица — интент» звучит как «ещё слэши», хотя речь о **договорённости о цели** в информационном контуре команды.
562. **Когнитивный потолок:** человек не удерживает 100k+ строк монолита как «один текст в голове»; роль человека — архитектура и верификация, не ручной компилятор синтаксиса.
573. **Разрыв контуров:** без общей парадигмы легко дублировать парсинг команд (слэш в чате vs Melody vs MCP) — см. мотивацию [0119](0119-chat-slash-commands-intercom-surface.md).
584. **Слабый контекст агента:** без канона KB и маршрутизации (`route_context`, playbook'и) интенты «плывут»; нужна явная модель **эпистемических ограничений**, а не только промпт.
595. **Маркетинг vs инженерия:** без ADR термин IOP рискует звучать как декларация «революции» без привязки к коду и статусам ADR.
60
61---
62
63## Решение
64
65<a id="adr0121-p1"></a>
66
67### 1. Определение IOP (в scope Cascade IDE)
68
69**Intent-Oriented Programming (IOP)** — способ организации работы в IDE, где:
70
71- **предмет** — согласованный **информационный поток** (цели, процессы, коммуникация, прозрачность), а не только текст программы;
72- **интент** — *именованная договорённость* о намерении или целевом состоянии в этом потоке (не синтаксис и не «ещё один слэш»);
73- **исполнение** (в т.ч. генерация кода) делегируется агенту и инфраструктуре (MCP, сборка, Roslyn, git) под **наблюдаемостью** человека;
74- **корректность** проверяется по **дельте** (diff, диагностики, тесты) и по **нормативному знанию** (KB), а не только по «сгенерировалось ли что-то».
75
76IOP в CIDE — **дисциплина коммуникации** в agent-first IDE (информационный поток сделан явным и проверяемым). **C#, проекты и редактор остаются source of truth** для текста программы ([0084](0084-agent-edits-editor-source-of-truth-presence-channel.md), [0098](0098-semantic-first-document-as-projection.md)).
77
78<a id="adr0121-p2"></a>
79
80### 2. Три столпа IOP в Cascade IDE
81
82| Столп | Смысл | В CIDE (уже есть / в пути) |
83|-------|--------|----------------------------|
84| **1. Поток и явное намерение** | Согласованный информационный поток; интент = договорённость о цели/состоянии | Intercom, topic cards, KB/ADR; Intent Melody, `command_id`, палитра, [0119](0119-chat-slash-commands-intercom-surface.md) слэши → тот же контур, что MCP; [0109](0109-declarative-parametric-melody-catalog-toml-and-code-binders.md) |
85| **2. Двухконтурная верификация** | Агент синтезирует; человек — архитектор и арбитр diff | Forward (редактор) / Intercom ([0120](0120-primary-work-surface-intercom-or-editor.md)); Roslyn MCP, build/test MCP, git MCP; human-in-the-loop на merge |
86| **3. Эпистемический контекст** | Нормативный слой над кодом — канон KB, router, политики | kb-public, agent-notes, дерево `knowledge/` (каталог `domains/` — **путь в репо**, не термин «домен»); [architecture-policy](../architecture-policy.md), [0100](0100-project-constitution.md) |
87
88«Компилятор интента» в метафоре манифеста — **не один бинарник**, а связка: **Intercom + command surface + MCP + агент + верификация в IDE**.
89
90<a id="adr0121-p3"></a>
91
92### 3. Рабочая реализация в продукте
93
94Cascade IDE — **открытая рабочая реализация** предложенной парадигмы IOP (**экземпляр в продукте**, не эталон по внешней спецификации): стек IDE, Roslyn MCP, agent-notes, kb-public, документируемый на [сайте проекта](https://ai-guiders.github.io/cascade-ide/).
95
96Формулировки уровня «весь мир перейдёт на IOP», «единственный в мире компилятор» или **reference implementation** в смысле ISO/W3C **не** являются частью этого ADR — только **рабочая гипотеза парадигмы** для продукта и сообщества AI-Guiders.
97
98<a id="adr0121-p4"></a>
99
100### 4. Терминология (глоссарий v0)
101
102Полный словарь продукта: [cide-glossary-v1.md](../design/cide-glossary-v1.md).
103
104| Термин | Значение в IOP/CIDE |
105|--------|---------------------|
106| **Intent** | Именованная договорённость о цели/целевом состоянии в информационном потоке; в CIDE носители — Intercom, KB, `command_id`, Melody, slash (не «атом = слэш») |
107| **Intent Melody** | Декларативный/параметрический язык привязки интентов к UI и горячим клавишам |
108| **Intercom** | Канал сессии: диалог, topic cards, слэши — лобовая поверхность намерений ([0080](0080-intercom-naming-and-multi-party-channel-model.md)) |
109| **Verification loop** | Синтез → diff/диагностики/тесты → принятие или откат человеком |
110| **Epistemic context** | KB, agent-notes, router/playbook'и, политики — ограничители смысла для агента |
111
112---
113
114## Non-goals
115
116- **Не** сводить IOP к слэш-командам, палитре или Melody — это поверхности, не парадигма.
117- **Не** заменять ООП, ФП или C# в репозитории пользователя «интентами вместо кода».
118- **Не** автономный merge в main без human-in-the-loop (см. [0100](0100-project-constitution.md), git-политики).
119- **Не** IOP без инфраструктуры верификации (Roslyn/build/test/git) — иначе это только чат.
120- **Не** претензия на стандарт ISO/ECMA; IOP здесь — **продуктовая и архитектурная** рамка CIDE.
121- **Не** дублировать тело [0119](0119-chat-slash-commands-intercom-surface.md) / [0109](0109-declarative-parametric-melody-catalog-toml-and-code-binders.md) — только связующий слой.
122- **Не** обещать «переварить любой поток» от пользователей: IOP снижает хаос коммуникации, а не отменяет лимиты внимания человека и команды.
123
124---
125
126## Риски и границы (честно)
127
128| Риск | Ответ IOP/CIDE |
129|------|----------------|
130| **Intercom = бесконечная лента** | Intercom — **центр коммуникации вокруг цели** ([0080](0080-intercom-naming-and-multi-party-channel-model.md), [0120](0120-primary-work-surface-intercom-or-editor.md)), не generic messenger; topic cards, spine, треды ([0072](0072-chat-topic-cards-intent-melody-keyboard-contract.md), [0031](0031-agent-chat-clarification-batches-and-threading.md)) |
131| **«Не вывезем поток от людей»** | Не вывозят и люди без структуры; продукт **не увеличивает** входящий шум, а **именует намерения** и отделяет синтез от верификации |
132| **Агент делает всё подряд** | Human-in-the-loop, diff, non-goals на автономный merge; слэш/MCP — контракт, не хаос сообщений |
133
134---
135
136## Последствия
137
138- **Intercom** в перспективе — **центр коммуникации вокруг цели** (люди + агенты → намерение → реализация), см. [0120](0120-primary-work-surface-intercom-or-editor.md), [0080](0080-intercom-naming-and-multi-party-channel-model.md).
139- **Командная среда** — несколько кокпитов + **общий ситуационный экран** (не лента чата), см. [0122](0122-collaborative-iop-environment-and-shared-situational-display.md).
140- Новые фичи command/chat/MCP описываются как **расширение intent surface** + **parity** + **verification**, с отсылкой к столпам IOP.
141- Сайт документации: блок на [главной](../index.md), [манифест IOP](../iop-manifest-v1.md), EN-версия в `docs/en/`.
142- При **Accepted** — одна строка в [architecture-policy.md](../architecture-policy.md) (цель / позиционирование) и при необходимости глоссарий в [MCP-PROTOCOL.md](../MCP-PROTOCOL.md).
143- Онбординг (испытательный срок, контрибьюторы): сначала манифест + [concept-overview](../en/concept-overview.md) / главная, затем ADR по теме.
144
145---
146
147## Статус реализации (на момент Accepted)
148
149| Столп | Зрелость | Комментарий |
150|-------|----------|-------------|
151| Намерение | Implemented (v1) | Melody, палитра, MCP; [0119](0119-chat-slash-commands-intercom-surface.md) фазы A–B; [0120](0120-primary-work-surface-intercom-or-editor.md) |
152| Верификация | Implemented (контур) | Редактор, Roslyn/build/git MCP; полнота UX — по roadmap |
153| Эпистемический контекст | Implemented (внешний стек) | kb-public, agent-notes-mcp; интеграция в CIDE — по [0118](0118-agent-notes-core-2-toml-and-knowledge-path.md) |
154
155---
156
157## История
158
159| Дата | Изменение |
160|------|-----------|
161| 2026-05-17 | Proposed: парадигма IOP, три столпа, манифест, рабочая реализация CIDE. |
162| 2026-05-17 | Смягчение позиционирования: «reference implementation» → «рабочая реализация в продукте». |
163| 2026-05-17 | IOP: «домены знаний» → канон KB + маршрутизация; `knowledge/domains/` — только путь в репо. |
164| 2026-05-17 | Глубина IOP: информационный поток, коммуникация/прозрачность; интент ≠ слэш. |
165| 2026-05-17 | Якорная формулировка: IOP = **дисциплина коммуникации** («в коммуникации весь ключ»). |
166| 2026-05-17 | Intercom как центр коммуникации вокруг цели; риски потока сообщений. |
167| 2026-05-17 | Ссылка на [0122](0122-collaborative-iop-environment-and-shared-situational-display.md) — среда vs приложение. |
168
View only · write via MCP/CIDE