Files
ss-tools/summary-report.md
2026-05-26 09:30:41 +03:00

179 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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