semantic cleanup

This commit is contained in:
2026-05-08 10:07:05 +03:00
parent 505864438e
commit d8df1fff59
90 changed files with 148541 additions and 2251 deletions

View File

@@ -1,296 +1,543 @@
# AXIOM C.O.R.E. Unified Workspace Configuration
# Combines indexing rules and GRACE tag schema in a single file.
#
# Структура тегов разделена по:
# 1. Уровню сложности (min_complexity: 1-5)
# 2. Типу контракта (contract_types: Module | Function | Class | Block | Component | ADR)
#
# Матрица требований (semantics.md Section VI):
# C1 (ATOMIC): только якоря [DEF]...[/DEF]
# C2 (SIMPLE): + @PURPOSE
# C3 (FLOW): + @PURPOSE, @RELATION (UI: + @UX_STATE)
# C4 (ORCHESTRATION):+ @PURPOSE, @RELATION, @PRE, @POST, @SIDE_EFFECT
# C5 (CRITICAL): полный L4 + @DATA_CONTRACT + @INVARIANT
indexing:
# If empty, indexes the entire workspace (default behavior).
# If specified, only these directories are scanned for contracts.
# include:
# - "src/"
# - "tests/"
# Excluded paths/patterns applied on top of include (or full workspace).
# Supports directory names and glob patterns.
include: []
exclude:
# Directories
#- "specs/"
- ".ai/"
- ".git/"
- ".venv/"
- "__pycache__/"
- "node_modules/"
- ".pytest_cache/"
- ".mypy_cache/"
- ".ruff_cache/"
- ".axiom/"
# File patterns
#- "*.md"
- "*.txt"
- "*.log"
- "*.yaml"
- "*.yml"
- "*.json"
- "*.toml"
- "*.ini"
- "*.cfg"
# ============================================================
# GRACE Tag Schema — разделено по сложности и типу контракта
# ============================================================
# contract_types определяет, для каких типов контрактов тег обязателен:
# - Module: заголовок модуля (файл)
# - Function: функции и методы
# - Class: классы
# - Block: логические блоки внутри функций
# - Component: UI-компоненты (Svelte)
# - ADR: архитектурные решения
# ============================================================
- .ai/
- .git/
- .venv/
- __pycache__/
- node_modules/
- .pytest_cache/
- .axiom/
- '*.txt'
- '*.log'
- '*.yaml'
- '*.yml'
- '*.json'
- '*.toml'
source_dirs:
- src
- tests
doc_dirs:
- docs
- specs
complexity_rules:
'1':
required:
- LAYER
- SEMANTICS
forbidden:
- PURPOSE
- RELATION
- PRE
- POST
- SIDE_EFFECT
- DATA_CONTRACT
- INVARIANT
- UX_STATE
'2':
required:
- LAYER
- PURPOSE
- SEMANTICS
forbidden:
- RELATION
- PRE
- POST
- SIDE_EFFECT
- DATA_CONTRACT
- INVARIANT
- UX_STATE
'3':
required:
- LAYER
- PURPOSE
- RELATION
- SEMANTICS
forbidden:
- PRE
- POST
- SIDE_EFFECT
- DATA_CONTRACT
- INVARIANT
'4':
required:
- LAYER
- PURPOSE
- RELATION
- PRE
- POST
- SIDE_EFFECT
- SEMANTICS
forbidden:
- DATA_CONTRACT
- INVARIANT
'5':
required:
- LAYER
- PURPOSE
- RELATION
- PRE
- POST
- SIDE_EFFECT
- DATA_CONTRACT
- INVARIANT
- SEMANTICS
forbidden: []
contract_type_overrides:
ADR:
required:
- PURPOSE
- RELATION
- RATIONALE
- REJECTED
forbidden:
- COMPLEXITY
- C
- PRE
- POST
- SIDE_EFFECT
- DATA_CONTRACT
- INVARIANT
- UX_STATE
Component:
'3':
required:
- PURPOSE
- RELATION
- UX_STATE
forbidden:
- PRE
- POST
- SIDE_EFFECT
- DATA_CONTRACT
- INVARIANT
'4':
required:
- PURPOSE
- RELATION
- UX_STATE
- PRE
- POST
- SIDE_EFFECT
forbidden:
- DATA_CONTRACT
- INVARIANT
'5':
required:
- PURPOSE
- RELATION
- UX_STATE
- PRE
- POST
- SIDE_EFFECT
- DATA_CONTRACT
- INVARIANT
forbidden: []
Tombstone:
required:
- STATUS
forbidden:
- COMPLEXITY
- C
- PRE
- POST
- SIDE_EFFECT
- DATA_CONTRACT
- INVARIANT
- UX_STATE
- PURPOSE
- RELATION
tags:
# ----------------------------------------------------------
# Complexity 2 (SIMPLE) — требуется @PURPOSE
# ----------------------------------------------------------
C:
type: string
multiline: false
description: 'Краткий алиас для COMPLEXITY. Используйте @C: 3 вместо @COMPLEXITY: 3.'
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types: []
protected: false
orthogonal: false
decision_memory: false
alias_for: COMPLEXITY
COMPLEXITY:
type: string
multiline: false
description: Уровень сложности контракта (1-5). Определяет набор обязательных и запрещённых тегов. C1 — простые DTO/утилиты, C2 — требует PURPOSE, C3 — добавляет RELATION, C4 — контрактные гарантии (PRE/POST/SIDE_EFFECT), C5 — критические инварианты и DATA_CONTRACT.
separator: null
is_reference: false
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
allowed_predicates: []
contract_types:
- Module
- Function
- Class
- Component
- Block
protected: false
orthogonal: false
decision_memory: false
alias_for: null
DATA_CONTRACT:
type: string
multiline: false
description: 'DTO-контракт: описание входных и выходных данных (например, Input -> RequestDTO, Output -> ResponseDTO). Обязателен на C5.'
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Module
- Function
- Class
- Component
protected: false
orthogonal: false
decision_memory: false
alias_for: null
INVARIANT:
type: string
multiline: false
description: Инвариант, который должен сохраняться на всём протяжении жизни контракта. Обязателен на C5.
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Module
- Function
- Class
- Component
protected: false
orthogonal: false
decision_memory: false
alias_for: null
LAYER:
type: string
multiline: false
description: 'Архитектурный слой модуля: Domain (бизнес-логика), UI (интерфейс), Infra (инфраструктура), Test (тесты). Обязателен для всех уровней сложности Module.'
separator: null
is_reference: false
enum:
- Domain
- UI
- Infra
- Test
allowed_predicates: []
contract_types:
- Module
protected: false
orthogonal: false
decision_memory: false
alias_for: null
POST:
type: string
multiline: false
description: Гарантия результата контракта. Что гарантированно верно на выходе. Обязателен с C4. Запрещено ослаблять без проверки upstream зависимостей.
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Module
- Function
- Class
- Component
protected: false
orthogonal: false
decision_memory: false
alias_for: null
PRE:
type: string
multiline: false
description: Предусловие выполнения контракта. Критические условия, которые должны быть истинны на входе. Обязателен с C4.
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Module
- Function
- Class
- Component
protected: false
orthogonal: false
decision_memory: false
alias_for: null
PURPOSE:
type: string
multiline: true
description: "Основное предназначение модуля или функции"
min_complexity: 2
description: Назначение контракта. Краткое (1-2 предложения) описание того, что делает данный узел. Обязателен с C2.
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Module
- Function
- Class
- Component
- ADR
# ----------------------------------------------------------
# Complexity 3 (FLOW) — требуется @RELATION
# ----------------------------------------------------------
RELATION:
type: array
separator: "->"
is_reference: true
description: "Граф зависимостей: PREDICATE -> TARGET_ID"
allowed_predicates:
- DEPENDS_ON
- CALLS
- INHERITS
- IMPLEMENTS
- DISPATCHES
- BINDS_TO
- VERIFIES # Добавлено для тестов
# min_complexity: 3 <-- УБРАНО! RELATION может быть в ADR (C1-C5) или Тестах (C1-C2)
contract_types:
- Module
- Function
- Class
- Component
- ADR # Добавлено! ADR обязан линковаться
LAYER:
type: string
enum: ["Domain", "UI", "Infra"]
description: "Архитектурный слой компонента"
contract_types:
- Module
SEMANTICS:
type: array
separator: ","
description: "Ключевые слова для семантического поиска"
contract_types:
- Module
# ----------------------------------------------------------
# Complexity 3 — UX Contracts (Svelte 5+)
# ----------------------------------------------------------
UX_STATE:
type: string
description: "Состояния UI: Idle, Loading, Error, Success"
contract_types:
- Component
UX_FEEDBACK:
type: string
description: "Реакция системы: Toast, Shake, RedBorder"
contract_types:
- Component
UX_RECOVERY:
type: string
description: "Путь восстановления после сбоя: Retry, ClearInput"
contract_types:
- Component
UX_REACTIVITY:
type: string
description: "Явный биндинг через руны: $state, $derived, $effect, $props"
contract_types:
- Component
# ----------------------------------------------------------
# Complexity 4 (ORCHESTRATION) — DbC контракты
# ----------------------------------------------------------
PRE:
type: string
description: "Предусловия (Pre-conditions)"
min_complexity: 4
contract_types:
- Function
- Class
- Module
POST:
type: string
description: "Постусловия (Post-conditions)"
min_complexity: 4
contract_types:
- Function
- Class
- Module
SIDE_EFFECT:
type: string
description: "Побочные эффекты: мутации, I/O, сеть"
min_complexity: 4
contract_types:
- Function
- Class
- Module
# ----------------------------------------------------------
# Complexity 5 (CRITICAL) — полный контракт
# ----------------------------------------------------------
DATA_CONTRACT:
type: string
description: "Ссылка на DTO: Input -> Model, Output -> Model"
min_complexity: 5
contract_types:
- Function
- Class
- Module
INVARIANT:
type: string
description: "Бизнес-инварианты, которые нельзя нарушить"
min_complexity: 5
contract_types:
- Function
- Class
- Module
# ----------------------------------------------------------
# Decision Memory (ортогонально сложности)
# ----------------------------------------------------------
- Module
- Function
- Class
- Component
- Block
- ADR
protected: false
orthogonal: false
decision_memory: false
alias_for: null
RATIONALE:
type: string
multiline: true
description: "Почему выбран этот путь, какое ограничение/цель защищается"
protected: true
description: Обоснование выбранного архитектурного/реализационного пути. Защищённый ортогональный тег. Запрещает повторение отвергнутых альтернатив.
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Module
- Function
- Class
- ADR
- Module
- Function
- Class
- ADR
- Component
- Block
protected: true
orthogonal: true
decision_memory: true
alias_for: null
REJECTED:
type: string
multiline: true
description: "Какой путь запрещен и какой риск делает его недопустимым"
protected: true
description: Явно запрещённый альтернативный путь с указанием риска, бага или технического долга, disqualifying его. Защищённый ортогональный тег.
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Module
- Function
- Class
- ADR
# ----------------------------------------------------------
# Test Contracts (Section X — упрощенные правила)
# ----------------------------------------------------------
- Module
- Function
- Class
- ADR
- Component
- Block
protected: true
orthogonal: true
decision_memory: true
alias_for: null
RELATION:
type: array
multiline: false
description: 'Связь между контрактами в формате PREDICATE -> [TargetId]. Обязателен с C3. Доступные предикаты: DEPENDS_ON, CALLS, INHERITS, IMPLEMENTS, DISPATCHES, BINDS_TO, VERIFIES.'
separator: ->
is_reference: true
enum: []
allowed_predicates:
- DEPENDS_ON
- CALLS
- INHERITS
- IMPLEMENTS
- DISPATCHES
- BINDS_TO
- VERIFIES
contract_types:
- Module
- Function
- Class
- Component
- Block
- ADR
protected: false
orthogonal: false
decision_memory: false
alias_for: null
SEMANTICS:
type: array
multiline: false
description: Набор семантических маркеров модуля (например, indexing, validation, metadata). Ортогональный тег.
separator: ','
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Module
protected: false
orthogonal: true
decision_memory: false
alias_for: null
SIDE_EFFECT:
type: string
multiline: false
description: 'Явное описание внешних эффектов контракта: мутации состояния, запись в БД, I/O, сетевые вызовы. Обязателен с C4.'
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Module
- Function
- Class
- Component
protected: false
orthogonal: false
decision_memory: false
alias_for: null
STATUS:
type: string
multiline: false
description: 'Статус артефакта: DEPRECATED -> REPLACED_BY: [NewId], ACTIVE, EXPERIMENTAL. Ортогональный тег для Tombstone/ADR/Module.'
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Tombstone
- ADR
- Module
protected: false
orthogonal: true
decision_memory: false
alias_for: null
TEST_CONTRACT:
type: string
multiline: true
description: "Тестовый контракт: Input -> Output"
multiline: false
description: Что именно проверяет данный тест. Ортогональный тестовый тег.
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Function
- Block
TEST_SCENARIO:
type: string
multiline: true
description: "Тестовый сценарий: Название -> Ожидание"
contract_types:
- Function
- Block
TEST_FIXTURE:
type: string
multiline: true
description: "Тестовая фикстура: Название -> file:[path] | INLINE_JSON"
contract_types:
- Block
- Function
- Block
protected: false
orthogonal: true
decision_memory: false
alias_for: null
TEST_EDGE:
type: string
multiline: true
description: "Граничный случай: Название -> Сбой"
multiline: false
description: Краевой случай (edge case), покрываемый тестом. Ортогональный тестовый тег.
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Function
- Block
- Function
- Block
protected: false
orthogonal: true
decision_memory: false
alias_for: null
TEST_FIXTURE:
type: string
multiline: false
description: Используемая тестовая фикстура или набор данных. Ортогональный тестовый тег.
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Block
protected: false
orthogonal: true
decision_memory: false
alias_for: null
TEST_INVARIANT:
type: string
multiline: true
description: "Тестовый инвариант: Имя -> VERIFIED_BY: [scenarios]"
multiline: false
description: Инвариант, проверяемый тестом. Ортогональный тестовый тег.
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Module
- Function
# ----------------------------------------------------------
# Metadata / Classification
# ----------------------------------------------------------
TIER:
- Module
- Function
protected: false
orthogonal: true
decision_memory: false
alias_for: null
TEST_SCENARIO:
type: string
enum: ["CRITICAL", "STANDARD", "TRIVIAL"]
description: "Уровень критичности компонента"
multiline: false
description: Конкретный тестовый сценарий (шаги и ожидаемый результат). Ортогональный тестовый тег.
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Module
- Function
- Class
COMPLEXITY:
- Function
- Block
protected: false
orthogonal: true
decision_memory: false
alias_for: null
UX_FEEDBACK:
type: string
enum: ["1", "2", "3", "4", "5"]
description: "Уровень сложности контракта"
multiline: false
description: 'Формат обратной связи пользователю: тосты, инлайн-ошибки, модальные окна. Ортогональный тег для Component.'
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Module
- Function
- Class
- Component
C:
- Component
protected: false
orthogonal: true
decision_memory: false
alias_for: null
UX_REACTIVITY:
type: string
enum: ["1", "2", "3", "4", "5"]
description: "Сокращение для @COMPLEXITY"
multiline: false
description: 'Реактивная модель обновления интерфейса: store-driven render, optimistic updates, debounced inputs. Ортогональный тег для Component.'
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Module
- Function
- Class
- Component
STATUS:
type: string
description: "Статус жизненного цикла узла (например, DEPRECATED -> REPLACED_BY: [ID])"
contract_types:
- Tombstone
- Module
- ADR
- Component
protected: false
orthogonal: true
decision_memory: false
alias_for: null
UX_RECOVERY:
type: string
multiline: false
description: 'Стратегия восстановления при сбоях: retry с экспоненциальной задержкой, fallback-интерфейс, ручной перезапуск. Ортогональный тег для Component.'
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Component
protected: false
orthogonal: true
decision_memory: false
alias_for: null
UX_STATE:
type: string
multiline: false
description: Конечный автомат UX-состояний компонента (например, loading -> ready -> error). Обязателен для Component с C3+.
separator: null
is_reference: false
enum: []
allowed_predicates: []
contract_types:
- Component
protected: false
orthogonal: false
decision_memory: false
alias_for: null
embedding: null
http_api:
http_enabled: true
http_host: 127.0.0.1
http_port: 8420
http_api_key: '123'
doc_mode: null
doc_tag_mapping: null
doc_stripped_output: null
doc_symbol_types: null
tier_thresholds: {}