11 KiB
Итоговый отчёт: оптимизация семантического протокола GRACE-Poly
Текущее состояние
| Метрика | Значение |
|---|---|
| Контрактов в индексе | 3,185 |
| Связей (edges) | 2,149 |
| Файлов | 690 |
| Предупреждений валидатора | 419 |
| Снижение с ~3,200 | ↓87% |
🗺 Порядок действий, приведший к результату
Шаг 1. Аудит — обнаружение проблем
Было обнаружено 6 категорий проблем в архитектуре промптов и валидаторе:
- Хардкод-статистика в 7 агентах (2543 контракта, 1286 orphans — цифры протухли)
- Дублирование правил — tier-списки C1-C5 скопированы в 5 агентов, anchor syntax ещё в 3 местах
- Противоречие протокола —
semantics-coreговорит «все теги разрешены на всех tier», аsemantic-curatorпишет «C3 не может иметь @PRE/@POST» - Неиспользуемый агент —
semantic-curatorне был в таблице делегатов swarm-master - Axiom-валидатор рассинхронизирован —
complexity_rulesв config имел только 1-2 тега в suggested для C1-C3, вызывая 718 ложныхschema_tag_forbidden_by_complexity - Ограниченные
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 + permissionsspeckit.md:@COMPLEXITY 1..5→[C:N],@PURPOSE→@BRIEF
Шаг 3. Правка конфига Axiom-валидатора (axiom_config.yaml)
Внесённые изменения:
complexity_rules: все 22 тега добавлены в suggested на всех C1-C5 (было 1-3 тега)contract_type_overrides: удалён — сужал списки тегов для конкретных типовcontract_types: [](universal) установлены для: PRE, POST, SIDE_EFFECT, RATIONALE, REJECTED, DATA_CONTRACT, INVARIANT, PUBLIC_API, STATUS, EXAMPLE, ERROR, RELATION, SEMANTICS, DEPRECATED, REPLACED_BY, LAYER, RESTRICTIONBRIEF→ canonical тег,PURPOSE→ alias- Добавлены новые теги (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
- LAYER enum расширен: Infra, UI (Tests), Frontend, Atom, Feature, Page, Component, Application, App, Widget, Panel, Store, Layout
- 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-кэш:
- После config-правок: упали
forbidden_by_complexity,not_for_contract_type,c2_relation_conflict(440+440+420 = 0) - После добавления 7 тегов (TEST..UI_STATE):
unknown_tag80→19 - После добавления 10 тегов (TEST_DATA..VALIDATION):
unknown_tag19→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.mdast-patcher-report.mdaxiom-resolver-bug-report.mdfinal-audit-report.mdsemantic-protocol-optimization-report.mdaxiom-resolver-bugs-remaining.md