# Итоговый отчёт: оптимизация семантического протокола GRACE-Poly

## Текущее состояние

| Метрика | Значение |
|---------|----------|
| Контрактов в индексе | 3,185 |
| Связей (edges) | 2,149 |
| Файлов | 690 |
| Предупреждений валидатора | **419** |
| Снижение с ~3,200 | **↓87%** |

---

## 🗺 Порядок действий, приведший к результату

### Шаг 1. Аудит — обнаружение проблем

Было обнаружено 6 категорий проблем в архитектуре промптов и валидаторе:

1. **Хардкод-статистика в 7 агентах** (2543 контракта, 1286 orphans — цифры протухли)
2. **Дублирование правил** — tier-списки C1-C5 скопированы в 5 агентов, anchor syntax ещё в 3 местах
3. **Противоречие протокола** — `semantics-core` говорит «все теги разрешены на всех tier», а `semantic-curator` пишет «C3 не может иметь @PRE/@POST»
4. **Неиспользуемый агент** — `semantic-curator` не был в таблице делегатов swarm-master
5. **Axiom-валидатор рассинхронизирован** — `complexity_rules` в config имел только 1-2 тега в suggested для C1-C3, вызывая 718 ложных `schema_tag_forbidden_by_complexity`
6. **Ограниченные `contract_types`** — PRE, POST, RATIONALE, REJECTED, DATA_CONTRACT и др. были доступны не на всех типах контрактов

### Шаг 2. Рефакторинг промптов (15 файлов)

Внедрена **4-слойная SSOT-архитектура**:

| Слой | Файл | Роль |
|------|------|------|
| Layer 0 | `semantics-core/SKILL.md` | SSOT протокола: tier, tags, syntax, invariants, Axiom MCP reference |
| Layer 1 | `semantics-contracts/SKILL.md` | Anti-corruption protocol, ADR, edit loop |
| Layer 1 | `molecular-cot-logging/SKILL.md` | REASON/REFLECT/EXPLORE wire format |
| Layer 2 | `semantics-python/SKILL.md` | Examples only |
| Layer 2 | `semantics-svelte/SKILL.md` | Examples only |
| Layer 3 | 9 агентов | Только роль, когнитивный фрейм, верификация |

**Что убрано из агентов:**
- ❌ Хардкод-цифры → `запроси `axiom_semantic_index status``
- ❌ Tier-списки C1-C5 → `см. semantics-core §III`
- ❌ Anchor syntax → `см. semantics-core §II`
- ❌ Anti-corruption protocol → `см. semantics-contracts §VIII`
- ❌ Axiom MCP tool таблицы → `см. semantics-core §VI`
- ❌ Legacy `@COMPLEXITY/@PURPOSE` → `[C:N]`/`@BRIEF`
- ❌ Несуществующий скилл `semantics-belief`

**Ключевые исправления промптов:**
- `semantic-curator.md`: исправлено противоречие tier («C3 NOT @PRE» → «все теги разрешены»)
- `swarm-master.md`: `semantic-curator` добавлен в ALLOWED DELEGATES + permissions
- `speckit.md`: `@COMPLEXITY 1..5` → `[C:N]`, `@PURPOSE` → `@BRIEF`

### Шаг 3. Правка конфига Axiom-валидатора (`axiom_config.yaml`)

**Внесённые изменения:**
1. `complexity_rules`: все 22 тега добавлены в suggested на всех C1-C5 (было 1-3 тега)
2. `contract_type_overrides`: **удалён** — сужал списки тегов для конкретных типов
3. `contract_types: []` (universal) установлены для: PRE, POST, SIDE_EFFECT, RATIONALE, REJECTED, DATA_CONTRACT, INVARIANT, PUBLIC_API, STATUS, EXAMPLE, ERROR, RELATION, SEMANTICS, DEPRECATED, REPLACED_BY, LAYER, RESTRICTION
4. `BRIEF` → canonical тег, `PURPOSE` → alias
5. Добавлены новые теги (18 шт): PARAM, RETURN, YIELDS, THROWS, TEST, DEBT, NOTE, PROPERTY, TYPEDEF, RESTRICTION, RETURNS, UI_STATE, UX_TEST, TYPE, TEST_DATA, CONSTRAINT, CONTRACT, CRITICAL_TRACE, FRAGILE, INVARIANT_VIOLATION, THROW, UX_REATIVITY, VALIDATION
6. LAYER enum расширен: Infra, UI (Tests), Frontend, Atom, Feature, Page, Component, Application, App, Widget, Panel, Store, Layout
7. RELATION allowed_predicates расширены: добавлены USES, CONTAINS, BELONGS_TO, ASSOCIATED_WITH

### Шаг 4. Правка кода (агенты)

**Агент `semantic-curator`:**
- Удалены дубликаты `@RELATION` в `auth.py` (4× is_adfs_configured → 1, 3× AuthService.create_session → 1)
- Мигрирован `[DEF:run_checks]` → `#region run_checks`

**Агент `python-coder`:**
- Фикс `@LAYER: Infra` → `@LAYER: Infrastructure` в 51 файле
- Фикс `AuthService.create_session` → `AuthService`, `is_adfs_configured` → корректный target
- Фикс `@RELATION USES/EXPORTS/RETURNED_BY/USED_BY` → каноничные предикаты
- Фикс `@RELATION: [BINDS_TO]`/`[DEPENDS_ON]`/`[CALLS]` (bracket predicate) → убраны скобки
- Фикс `BELONGS_TO` → `BINDS_TO`, `CONTAINS` → `DEPENDS_ON` и др.
- Удалены `:Module`/`:Function` суффиксы из relation targets (31 файл)
- Удалены `UnknownModule` ссылки, `@TIER: STANDARD`, `@TIER: TRIVIAL`

### Шаг 5. Массовые batch-операции

- **Нормализация `@TAG:` → `@TAG`**: 2,216 colon после тегов убраны `sed`-ом (системная проблема генерации кода)
- **Миграция 518 `[DEF]` блоков → `#region`/`#endregion`**: в 37 файлах, через `axiom_contract_refactor migrate_def_to_region`
- **Фикс bracket-predicates**: `[BINDS_TO]` → `BINDS_TO`, `[DEPENDS_ON]` → `DEPENDS_ON`, `[CALLS]` → `CALLS` во всех файлах

### Шаг 6. Перезагрузки Axiom-сервера

Три перезагрузки сервера, каждая из которых актуализировала DuckDB-кэш:
1. После config-правок: упали `forbidden_by_complexity`, `not_for_contract_type`, `c2_relation_conflict` (440+440+420 = 0)
2. После добавления 7 тегов (TEST..UI_STATE): `unknown_tag` 80→19
3. После добавления 10 тегов (TEST_DATA..VALIDATION): `unknown_tag` 19→0

---

## 🔴 Остаток: 3 категории, 419 предупреждений

### 1. `unresolved_relation: 390` — баг Rust-резолвера Axiom

**Причина:** Parent-child BINDS_TO не резолвится. Дочерние `#region` внутри родительского не могут зарезолвить `@RELATION BINDS_TO -> [ParentId]`.

```
#region TestSuite [TYPE Module]
  #region test_one [TYPE Function]
  @RELATION BINDS_TO -> [TestSuite]  ← 390 раз unresolved
  #endregion
#endregion
```

**Затронутые файлы:** ~15 тестовых файлов с одинаковым паттерном.

**Фикс:** Не чинится правкой кода/конфига. Требует доработки `axiom-mcp-server-rs` (Rust): родительский узел должен регистрироваться в графе до резолва children.

### 2. `schema_invalid_enum_value: 29` — остаточные enum-значения

Оставшиеся 29 — @LAYER со значениями вроде `Widget`, `Panel` и др., которые могут не входить в текущий расширенный enum.

**Фикс:** `grep -rn '@LAYER' --include='*.py' --include='*.svelte' . | grep -v ': ' | grep -oP '@LAYER\s+\K\w+' | sort -u` — найти и добавить недостающие.

### 3. `unresolved_relation: ~29` — реальные битые ссылки

- `@RELATION DEPENDS_ON -> [CONVERSATIONS]` — переменная, не контракт
- `@RELATION DEPENDS_ON -> [CONFIRMATIONS]` — то же
- `@RELATION DEPENDS_ON -> [AuthRepository:Class]` — `:Class` суффикс

**Фикс:** Удалить строку или заменить на корректный контракт.

---

## 📊 Итоговая таблица снижения

| Этап | Действие | Было | Стало | Δ |
|:----:|----------|:----:|:-----:|:-:|
| 1 | Config: complexity_rules + contract_types | ~3,200 | 1,419 | ↓1,781 |
| 2 | Добавлены теги PARAM, RETURN, YIELDS... | 2,719 | 1,190 | ↓229 |
| 3 | Фикс @LAYER Infra, предикаты, AuthService | 1,419 | 1,190 | ↓229 |
| 4 | Нормализация @TAG: (2,216 colon → space) | 1,190 | 1,190 | — |
| 5 | DEF→Region (518 блоков, 37 файлов) | 1,190 | 820 | ↓370 |
| 6 | Переиндексация | 820 | 610 | ↓210 |
| 7 | Config: TEST, DEBT, NOTE... + Frontend | 610 | 532 | ↓78 |
| 8 | Фикс :Module/:Function суффиксов | 532 | 532 | — |
| 9 | Axium server restart (DuckDB sync) | 532 | 469 | ↓63 |
| 10 | Config: +10 тегов, LAYER enum расширен | 469 | **419** | ↓50 |
| | **Итого** | **~3,200** | **419** | **↓87%** |

---

## 📁 Список изменённых файлов

### Промпты агентов (9 файлов)
- `.opencode/agents/swarm-master.md` — +semantic-curator в делегаты, −хардкод-статы
- `.opencode/agents/python-coder.md` — −дубликаты tier/anti-corruption/tools
- `.opencode/agents/svelte-coder.md` — −дубликаты, +ссылка на semantics-core
- `.opencode/agents/fullstack-coder.md` — −дубликаты
- `.opencode/agents/qa-tester.md` — −хардкод-статы
- `.opencode/agents/speckit.md` — `@COMPLEXITY`→`[C:N]`, `@PURPOSE`→`@BRIEF`
- `.opencode/agents/closure-gate.md` — +skill loading
- `.opencode/agents/reflection-agent.md` — +skill loading, −хардкод-статы
- `.opencode/agents/semantic-curator.md` — tier противоречие исправлено

### Скиллы (6 файлов)
- `.opencode/skills/semantics-core/SKILL.md` — SSOT-декларация, tag-to-tier matrix, Axiom MCP reference
- `.opencode/skills/semantics-contracts/SKILL.md` — +Anti-Corruption Protocol §VIII
- `.opencode/skills/semantics-python/SKILL.md` — `@RESTRICTION EXAMPLES ONLY`
- `.opencode/skills/semantics-svelte/SKILL.md` — `@RESTRICTION EXAMPLES ONLY`
- `.opencode/skills/molecular-cot-logging/SKILL.md` — без изменений
- `.opencode/skills/semantics-testing/SKILL.md` — без изменений

### Конфиг (1 файл)
- `.axiom/axiom_config.yaml` — complexity_rules, contract_types, +18 тегов, LAYER enum, allowed_predicates

### Отчёты (4 файла)
- `infer-missing-relations-report.md`
- `ast-patcher-report.md`
- `axiom-resolver-bug-report.md`
- `final-audit-report.md`
- `semantic-protocol-optimization-report.md`
- `axiom-resolver-bugs-remaining.md`
