semantics

This commit is contained in:
2026-05-26 09:30:41 +03:00
parent 1e7bcecaea
commit 9ffa8af1dc
623 changed files with 28045 additions and 26557 deletions

178
summary-report.md Normal file
View File

@@ -0,0 +1,178 @@
# Итоговый отчёт: оптимизация семантического протокола 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`