# #region AnchorConfig [C:3] [TYPE Block] [SEMANTICS config,anchor] # @BRIEF Якорный синтаксис — глобальный формат и переопределения по директориям. # @RELATION BINDS_TO -> [Std.Semantics.Core] anchor: format: region overrides: docs/: brace specs/: brace syntax: {} # #endregion AnchorConfig # #region IndexingConfig [C:2] [TYPE Block] [SEMANTICS config,indexing] indexing: include: [] exclude: - .ai/ - .git/ - .venv/ - __pycache__/ - node_modules/ - .pytest_cache/ - .axiom/ - '*.txt' - '*.log' - '*.yaml' - '*.yml' - '*.json' - '*.toml' - '*.md' source_dirs: - src - tests doc_dirs: - docs - specs # #endregion IndexingConfig # #region ComplexityRules [C:5] [TYPE Block] [SEMANTICS config,rules,validation] # @BRIEF Обязательные и запрещённые тэги по уровням сложности C1-C5. # @RELATION BINDS_TO -> [Std.Semantics.Core] # @INVARIANT Каждый тэг в required/forbidden списках обязан иметь определение в TagSchema. # @RATIONALE INVARIANT, RATIONALE, REJECTED, BRIEF/PURPOSE, EXAMPLE, ERROR/RAISES — универсально опциональны (C1+). # @PRE/@POST — обязательны на C4, но C4 с SIDE_EFFECT-only валиден если предусловия тривиальны. # @DATA_CONTRACT — рекомендуется на C5, но не обязателен (не все C5 контракты имеют DTO-маппинг). # @RELATION — обязателен с C3, разрешён на C2 для документирования одиночных зависимостей. # @REJECTED Строгий запрет INVARIANT ниже C5 — заставлял раздувать контракты до C5 ради одного инварианта. # Строгий запрет RELATION на C2 — мешал документировать простые зависимости. complexity_rules: '1': required: [] forbidden: - PRE - POST - SIDE_EFFECT - DATA_CONTRACT '2': required: - PURPOSE forbidden: - PRE - POST - SIDE_EFFECT - DATA_CONTRACT '3': required: - PURPOSE - RELATION forbidden: - PRE - POST - SIDE_EFFECT - DATA_CONTRACT '4': required: - PURPOSE - RELATION - PRE - POST - SIDE_EFFECT forbidden: - DATA_CONTRACT '5': required: - PURPOSE - RELATION - PRE - POST - SIDE_EFFECT - INVARIANT forbidden: [] # #endregion ComplexityRules # #region ContractTypeOverrides [C:3] [TYPE Block] [SEMANTICS config,adr,override] contract_type_overrides: ADR: required: - PURPOSE - RELATION - RATIONALE - REJECTED forbidden: - COMPLEXITY - C - PRE - POST - SIDE_EFFECT - DATA_CONTRACT - INVARIANT - UX_STATE - LAYER - SEMANTICS Component: '3': required: - PURPOSE - RELATION - UX_STATE forbidden: - PRE - POST - SIDE_EFFECT - DATA_CONTRACT '4': required: - PURPOSE - RELATION - UX_STATE - PRE - POST - SIDE_EFFECT forbidden: - DATA_CONTRACT '5': required: - PURPOSE - RELATION - UX_STATE - PRE - POST - SIDE_EFFECT - INVARIANT forbidden: [] Tombstone: required: - STATUS forbidden: - COMPLEXITY - C - PRE - POST - SIDE_EFFECT - DATA_CONTRACT - INVARIANT - UX_STATE - PURPOSE - RELATION - LAYER - SEMANTICS Block: '3': required: - PURPOSE - RELATION forbidden: - PRE - POST - SIDE_EFFECT - DATA_CONTRACT '4': required: - PURPOSE - RELATION - PRE - POST - SIDE_EFFECT forbidden: - DATA_CONTRACT '5': required: - PURPOSE - RELATION - PRE - POST - SIDE_EFFECT - INVARIANT forbidden: [] # #endregion ContractTypeOverrides # #region TagSchema [C:5] [TYPE Block] [SEMANTICS config,tags,schema] tags: C: type: string multiline: false description: 'DEPRECATED. Канонический формат сложности — [C:N] в заголовке #region. @C больше не использовать.' alias_for: COMPLEXITY deprecated: true deprecated_since: '2026-05-19' contract_types: - Module - Function - Class - Component - Block - Skill - Agent protected: true orthogonal: false decision_memory: false COMPLEXITY: type: string multiline: false description: 'Уровень сложности (1-5). Канонический формат — [C:N] в заголовке анкора #region. @COMPLEXITY как тэг допускается для обратной совместимости, но [C:N] предпочтителен.' enum: ['1','2','3','4','5'] contract_types: - Module - Function - Class - Component - Block - Skill - Agent protected: true orthogonal: false decision_memory: false BRIEF: type: string multiline: true description: 'Алиас для PURPOSE. Универсально опциональный.' alias_for: PURPOSE contract_types: [] protected: false orthogonal: false decision_memory: false PURPOSE: type: string multiline: true description: 'Назначение контракта. Обязателен с C2.' contract_types: - Module - Function - Class - Component - Block - ADR - Skill - Agent protected: false orthogonal: false decision_memory: false EXAMPLE: type: string multiline: true description: 'Пример использования. Универсально опциональный.' contract_types: - Module - Function - Class - Component - Block - Skill - Agent protected: false orthogonal: false decision_memory: false ERROR: type: string multiline: true description: 'Исключение. @ERROR ValueError. Алиасы: RAISES, THROWS. Универсально опциональный.' contract_types: - Module - Function - Class - Component - Block protected: false orthogonal: false decision_memory: false RAISES: type: string multiline: true alias_for: ERROR description: 'Алиас для ERROR.' contract_types: [] protected: false orthogonal: false decision_memory: false THROWS: type: string multiline: true alias_for: ERROR description: 'Алиас для ERROR.' contract_types: [] protected: false orthogonal: false decision_memory: false DEPRECATED: type: string multiline: true description: 'Метка устаревания. @DEPRECATED v2.5. Универсально опциональный.' contract_types: - Module - Function - Class - Component - Block - ADR - Skill - Agent protected: false orthogonal: false decision_memory: true REPLACED_BY: type: string multiline: false description: 'Ссылка на замену. @REPLACED_BY NewService.run.' is_reference: true contract_types: - Module - Function - Class - Component - Block - ADR - Skill - Agent protected: false orthogonal: false decision_memory: true SEMANTICS: type: array multiline: false separator: ',' description: 'Семантические маркеры для поиска. Ортогональный.' contract_types: - Module - Function - Class - Block - Skill - Agent protected: false orthogonal: true decision_memory: false SIDE_EFFECT: type: string multiline: false description: 'Побочные эффекты. Обязателен с C4.' contract_types: - Module - Function - Class - Component - Agent protected: false orthogonal: false decision_memory: false STATUS: type: string multiline: false description: 'Статус: ACTIVE, DEPRECATED, EXPERIMENTAL.' contract_types: - Tombstone - ADR - Module - Function - Class - Component - Block protected: false orthogonal: true decision_memory: false TEST_CONTRACT: type: string multiline: false description: Что проверяет тест. Ортогональный. contract_types: [Function, Block] protected: false orthogonal: true decision_memory: false TEST_EDGE: type: string multiline: false description: Краевой случай. Ортогональный. contract_types: [Function, Block] protected: false orthogonal: true decision_memory: false TEST_FIXTURE: type: string multiline: false description: Тестовая фикстура. Ортогональный. contract_types: [Block] protected: false orthogonal: true decision_memory: false TEST_INVARIANT: type: string multiline: false description: Инвариант теста. Ортогональный. contract_types: [Module, Function] protected: false orthogonal: true decision_memory: false TEST_SCENARIO: type: string multiline: false description: Сценарий теста. Ортогональный. contract_types: [Function, Block] protected: false orthogonal: true decision_memory: false UX_FEEDBACK: type: string multiline: false description: Формат обратной связи. Component. contract_types: [Component] protected: false orthogonal: true decision_memory: false UX_REACTIVITY: type: string multiline: false description: Реактивная модель. Component. contract_types: [Component] protected: false orthogonal: true decision_memory: false UX_RECOVERY: type: string multiline: false description: Стратегия восстановления. Component. contract_types: [Component] protected: false orthogonal: true decision_memory: false UX_STATE: type: string multiline: false description: Конечный автомат UX. Обязателен Component C3+. contract_types: [Component] protected: false orthogonal: false decision_memory: false RELATION: type: string multiline: false description: 'Графовая зависимость. Обязателен с C3.' is_reference: true allowed_predicates: [DEPENDS_ON, CALLS, INHERITS, IMPLEMENTS, DISPATCHES, BINDS_TO, CALLED_BY, VERIFIES, USES] contract_types: - Module - Function - Class - Component - Block - ADR - Skill - Agent protected: false orthogonal: false decision_memory: false PRE: type: string multiline: true description: 'Предусловия. Обязателен с C4. Если предусловия тривиальны (напр. "DB доступна"), допустимо опустить при наличии @SIDE_EFFECT.' contract_types: - Module - Function - Class - Component - Agent protected: false orthogonal: false decision_memory: false POST: type: string multiline: true description: 'Гарантии результата. Обязателен с C4. Если постусловия очевидны из @PURPOSE, допустимо опустить при наличии @SIDE_EFFECT.' contract_types: - Module - Function - Class - Component - Agent protected: false orthogonal: false decision_memory: false PUBLIC_API: type: string multiline: false description: 'Публичный API контракта: какие классы/функции являются точками входа. Универсально опциональный.' contract_types: - Module - Function - Class - Component - Block protected: false orthogonal: true decision_memory: false RATIONALE: type: string multiline: true description: 'Обоснование архитектурного решения. Универсально опциональный (C1+). Decision Memory. Хлебные крошки для следующего разработчика — объясни ПОЧЕМУ сделан этот выбор.' contract_types: - Module - Function - Class - Component - Block - ADR - Skill - Agent protected: false orthogonal: false decision_memory: true REJECTED: type: string multiline: true description: 'Отвергнутая альтернатива и причина отказа. Универсально опциональный (C1+). Decision Memory. Предотвращает повторение ошибок — задокументируй ЧТО пробовали и ПОЧЕМУ не сработало.' contract_types: - Module - Function - Class - Component - Block - ADR - Skill - Agent protected: false orthogonal: false decision_memory: true DATA_CONTRACT: type: string multiline: false description: 'DTO-маппинг (Input→Output). Рекомендуется с C5, не обязателен. Не все C5 контракты имеют DTO.' contract_types: - Module - Function - Class - Component - Agent protected: false orthogonal: false decision_memory: false INVARIANT: type: string multiline: true description: 'Инвариант — условие, истинное всегда. Универсально опциональный (C1+), обязателен на C5. Документируй неуничтожимые гарантии на любом уровне.' contract_types: - Module - Function - Class - Component - Block - Skill - Agent protected: false orthogonal: false decision_memory: false LAYER: type: string multiline: false description: 'Слой архитектуры: Core, Domain, API, UI, Service, Infrastructure, Plugin, Tests. Универсально опциональный.' enum: [Core, Domain, API, UI, Service, Infrastructure, Plugin, Tests] contract_types: - Module - Skill - Agent protected: false orthogonal: true decision_memory: false # #endregion TagSchema # #region InfrastructureConfig [C:2] [TYPE Block] [SEMANTICS config,embedding,http] embedding: null http_api: http_enabled: false 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: {} # #endregion InfrastructureConfig