674 lines
18 KiB
YAML
674 lines
18 KiB
YAML
# #region AnchorConfig [C:3] [TYPE Block] [SEMANTICS config,anchor]
|
||
# @BRIEF Якорный синтаксис — глобальный формат и переопределения по директориям.
|
||
# @RELATION BINDS_TO -> [Std.Semantics.Core]
|
||
#
|
||
# По умолчанию #region/#endregion — новый код пишется в region-формате.
|
||
# Legacy DEF и Doc-формат brace признаются для обратной совместимости.
|
||
anchor:
|
||
format: region
|
||
overrides:
|
||
docs/: brace
|
||
specs/: brace
|
||
syntax: {}
|
||
# #endregion AnchorConfig
|
||
|
||
# #region IndexingConfig [C:2] [TYPE Block] [SEMANTICS config,indexing]
|
||
# @BRIEF Правила обхода файлов — include/exclude паттерны и source/doc директории.
|
||
indexing:
|
||
include: []
|
||
exclude:
|
||
- .ai/
|
||
- .git/
|
||
- .venv/
|
||
- __pycache__/
|
||
- node_modules/
|
||
- .pytest_cache/
|
||
- .axiom/
|
||
- '*.txt'
|
||
- '*.log'
|
||
- '*.yaml'
|
||
- '*.yml'
|
||
- '*.json'
|
||
- '*.toml'
|
||
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]
|
||
# @RELATION DEPENDS_ON -> [TagSchema]
|
||
# @INVARIANT Каждый тэг в required/forbidden списках обязан иметь определение в TagSchema.
|
||
# @RATIONALE Каждый уровень строго контролирует допустимый набор тэгов — это предотвращает verbosity и структурную эрозию (INV_7).
|
||
# LAYER и SEMANTICS — Module-специфичные тэги; не входят в базовую шкалу сложности core.
|
||
# BRIEF указан как alias PURPOSE — явно в forbidden для C1, т.к. C1 запрещает все content-тэги.
|
||
# @REJECTED Свободная валидация без строгих forbidden-списков отвергнута — порождает Slop и размывает Decision Memory.
|
||
# @REJECTED UX_STATE в общих complexity_rules отвергнут — UX_STATE Component-специфичен и управляется через contract_type_overrides.
|
||
complexity_rules:
|
||
'1':
|
||
required: []
|
||
forbidden:
|
||
- BRIEF
|
||
- PURPOSE
|
||
- RELATION
|
||
- PRE
|
||
- POST
|
||
- SIDE_EFFECT
|
||
- DATA_CONTRACT
|
||
- INVARIANT
|
||
- RATIONALE
|
||
- REJECTED
|
||
'2':
|
||
required:
|
||
- PURPOSE
|
||
forbidden:
|
||
- RELATION
|
||
- PRE
|
||
- POST
|
||
- SIDE_EFFECT
|
||
- DATA_CONTRACT
|
||
- INVARIANT
|
||
- RATIONALE
|
||
- REJECTED
|
||
'3':
|
||
required:
|
||
- PURPOSE
|
||
- RELATION
|
||
forbidden:
|
||
- PRE
|
||
- POST
|
||
- SIDE_EFFECT
|
||
- DATA_CONTRACT
|
||
- INVARIANT
|
||
- RATIONALE
|
||
- REJECTED
|
||
'4':
|
||
required:
|
||
- PURPOSE
|
||
- RELATION
|
||
- PRE
|
||
- POST
|
||
- SIDE_EFFECT
|
||
forbidden:
|
||
- DATA_CONTRACT
|
||
- INVARIANT
|
||
- RATIONALE
|
||
- REJECTED
|
||
'5':
|
||
required:
|
||
- PURPOSE
|
||
- RELATION
|
||
- PRE
|
||
- POST
|
||
- SIDE_EFFECT
|
||
- DATA_CONTRACT
|
||
- INVARIANT
|
||
- RATIONALE
|
||
- REJECTED
|
||
forbidden: []
|
||
# #endregion ComplexityRules
|
||
|
||
# #region ContractTypeOverrides [C:3] [TYPE Block] [SEMANTICS config,adr,override]
|
||
# @BRIEF Особые правила валидации для ADR, Component и Tombstone.
|
||
# @RELATION DEPENDS_ON -> [ComplexityRules]
|
||
# @RELATION DEPENDS_ON -> [TagSchema]
|
||
#
|
||
# ADR не имеет COMPLEXITY (это всегда архитектурное решение). Component имеет @UX_STATE вместо @PRE/@POST на C3. Tombstone — минимальный контракт-заглушка.
|
||
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
|
||
- 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
|
||
- LAYER
|
||
- SEMANTICS
|
||
Block:
|
||
'3':
|
||
required:
|
||
- PURPOSE
|
||
- RELATION
|
||
forbidden:
|
||
- PRE
|
||
- POST
|
||
- SIDE_EFFECT
|
||
- DATA_CONTRACT
|
||
- INVARIANT
|
||
- RATIONALE
|
||
- REJECTED
|
||
'4':
|
||
required:
|
||
- PURPOSE
|
||
- RELATION
|
||
- RATIONALE
|
||
- REJECTED
|
||
forbidden:
|
||
- PRE
|
||
- POST
|
||
- SIDE_EFFECT
|
||
- DATA_CONTRACT
|
||
- INVARIANT
|
||
'5':
|
||
required:
|
||
- PURPOSE
|
||
- RELATION
|
||
- RATIONALE
|
||
- REJECTED
|
||
- INVARIANT
|
||
forbidden:
|
||
- PRE
|
||
- POST
|
||
- SIDE_EFFECT
|
||
- DATA_CONTRACT
|
||
# #endregion ContractTypeOverrides
|
||
|
||
# #region TagSchema [C:5] [TYPE Block] [SEMANTICS config,tags,schema]
|
||
# @BRIEF Полная схема GRACE-тэгов: типы, алиасы, enum-ы, предикаты, применимость.
|
||
# @RELATION DEPENDS_ON -> [ComplexityRules]
|
||
# @INVARIANT Каждый тэг, referenced в complexity_rules и contract_type_overrides, имеет определение в tags.
|
||
# @RATIONALE Централизованная схема тэгов — единый источник истины для парсера, валидатора и MCP-тулов. Расширяется через alias_for без изменения канонических имён.
|
||
# @RATIONALE LAYER.enum +Service: semantics-python использует @LAYER Service в canonical C3 Module примере (dashboard_migration).
|
||
# @RATIONALE SEMANTICS/PRE/POST/SIDE_EFFECT/DATA_CONTRACT/INVARIANT +Agent: Core §II декларирует Agent как валидный тип контракта; Fullstack.Coder и другие Agent-контракты используют эти тэги.
|
||
# @REJECTED Разрозненные определения тэгов в коде парсера отвергнуты — делают валидацию неконсистентной и неподдерживаемой.
|
||
tags:
|
||
C:
|
||
type: string
|
||
multiline: false
|
||
description: 'Краткий алиас для COMPLEXITY. @C: 3 ≡ @COMPLEXITY: 3.'
|
||
alias_for: COMPLEXITY
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Module
|
||
- Function
|
||
- Class
|
||
- Component
|
||
- Block
|
||
- Skill
|
||
- Agent
|
||
protected: false
|
||
orthogonal: false
|
||
decision_memory: false
|
||
COMPLEXITY:
|
||
type: string
|
||
multiline: false
|
||
description: Уровень сложности (1-5). C1 — DTO/утилиты, C2 — +PURPOSE, C3 — +RELATION, C4 — контракты (PRE/POST), C5 — инварианты и Decision Memory.
|
||
separator: null
|
||
is_reference: false
|
||
enum:
|
||
- '1'
|
||
- '2'
|
||
- '3'
|
||
- '4'
|
||
- '5'
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Module
|
||
- Function
|
||
- Class
|
||
- Component
|
||
- Block
|
||
- Skill
|
||
- Agent
|
||
protected: false
|
||
orthogonal: false
|
||
decision_memory: false
|
||
alias_for: null
|
||
BRIEF:
|
||
type: string
|
||
multiline: true
|
||
description: 'Doxygen-совместимый алиас для PURPOSE. @BRIEF Краткое описание. Разрешается в канонический PURPOSE при парсинге.'
|
||
alias_for: PURPOSE
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types: []
|
||
protected: false
|
||
orthogonal: false
|
||
decision_memory: false
|
||
PURPOSE:
|
||
type: string
|
||
multiline: true
|
||
description: Назначение контракта. Краткое (1-2 предложения) описание. Каноническое имя. Обязателен с C2. @BRIEF — Doxygen-алиас.
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Module
|
||
- Function
|
||
- Class
|
||
- Component
|
||
- Block
|
||
- ADR
|
||
- Skill
|
||
- Agent
|
||
protected: false
|
||
orthogonal: false
|
||
decision_memory: false
|
||
alias_for: null
|
||
SEMANTICS:
|
||
type: array
|
||
multiline: false
|
||
description: Семантические маркеры (домен, зона ответственности). Ортогональный — допустим на любом C-level для Module, Block, Skill, Agent.
|
||
separator: ','
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Module
|
||
- Block
|
||
- Skill
|
||
- Agent
|
||
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
|
||
- Agent
|
||
protected: false
|
||
orthogonal: false
|
||
decision_memory: false
|
||
alias_for: null
|
||
STATUS:
|
||
type: string
|
||
multiline: false
|
||
description: 'Статус: ACTIVE, DEPRECATED -> REPLACED_BY: [NewId], 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: false
|
||
description: Что проверяет тест. Ортогональный тестовый тэг.
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Function
|
||
- Block
|
||
protected: false
|
||
orthogonal: true
|
||
decision_memory: false
|
||
alias_for: null
|
||
TEST_EDGE:
|
||
type: string
|
||
multiline: false
|
||
description: Краевой случай, покрываемый тестом. Ортогональный.
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- 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: false
|
||
description: Инвариант, проверяемый тестом. Ортогональный.
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Module
|
||
- Function
|
||
protected: false
|
||
orthogonal: true
|
||
decision_memory: false
|
||
alias_for: null
|
||
TEST_SCENARIO:
|
||
type: string
|
||
multiline: false
|
||
description: Тестовый сценарий (шаги + ожидаемый результат). Ортогональный.
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Function
|
||
- Block
|
||
protected: false
|
||
orthogonal: true
|
||
decision_memory: false
|
||
alias_for: null
|
||
UX_FEEDBACK:
|
||
type: string
|
||
multiline: false
|
||
description: 'Формат обратной связи: тосты, инлайн-ошибки, модальные окна. Ортогональный для Component.'
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Component
|
||
protected: false
|
||
orthogonal: true
|
||
decision_memory: false
|
||
alias_for: null
|
||
UX_REACTIVITY:
|
||
type: string
|
||
multiline: false
|
||
description: 'Реактивная модель: store-driven render, optimistic updates, debounced inputs. Ортогональный для Component.'
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- 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
|
||
RELATION:
|
||
type: string
|
||
multiline: false
|
||
description: 'Графовая зависимость: PREDICATE -> [TargetId]. Predicates: DEPENDS_ON, CALLS, INHERITS, IMPLEMENTS, DISPATCHES, BINDS_TO, CALLED_BY, VERIFIES. Обязателен с C3.'
|
||
separator: null
|
||
is_reference: true
|
||
enum: []
|
||
allowed_predicates:
|
||
- DEPENDS_ON
|
||
- CALLS
|
||
- INHERITS
|
||
- IMPLEMENTS
|
||
- DISPATCHES
|
||
- BINDS_TO
|
||
- CALLED_BY
|
||
- VERIFIES
|
||
contract_types:
|
||
- Module
|
||
- Function
|
||
- Class
|
||
- Component
|
||
- Block
|
||
- ADR
|
||
- Skill
|
||
- Agent
|
||
protected: false
|
||
orthogonal: false
|
||
decision_memory: false
|
||
alias_for: null
|
||
PRE:
|
||
type: string
|
||
multiline: true
|
||
description: 'Предусловия выполнения. Должны быть проверены в коде через if/raise (не assert). Обязателен с C4.'
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Module
|
||
- Function
|
||
- Class
|
||
- Component
|
||
- Agent
|
||
protected: false
|
||
orthogonal: false
|
||
decision_memory: false
|
||
alias_for: null
|
||
POST:
|
||
type: string
|
||
multiline: true
|
||
description: 'Гарантии результата. Обязателен с C4. Не может быть ослаблен без проверки upstream @RELATION зависимостей.'
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Module
|
||
- Function
|
||
- Class
|
||
- Component
|
||
- Agent
|
||
protected: false
|
||
orthogonal: false
|
||
decision_memory: false
|
||
alias_for: null
|
||
RATIONALE:
|
||
type: string
|
||
multiline: true
|
||
description: 'Обоснование выбранного решения. C5-only. Часть Decision Memory — расширяет логический скелет архитектуры.'
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Module
|
||
- Function
|
||
- Class
|
||
- Component
|
||
- Block
|
||
- ADR
|
||
- Skill
|
||
- Agent
|
||
protected: false
|
||
orthogonal: false
|
||
decision_memory: true
|
||
alias_for: null
|
||
REJECTED:
|
||
type: string
|
||
multiline: true
|
||
description: 'Отвергнутый альтернативный путь с указанием причины. C5-only. Часть Decision Memory — запрещает воскрешение rejected-пути.'
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Module
|
||
- Function
|
||
- Class
|
||
- Component
|
||
- Block
|
||
- ADR
|
||
- Skill
|
||
- Agent
|
||
protected: false
|
||
orthogonal: false
|
||
decision_memory: true
|
||
alias_for: null
|
||
DATA_CONTRACT:
|
||
type: string
|
||
multiline: false
|
||
description: 'DTO-маппинг: Input -> InputDTO, Output -> OutputDTO. Обязателен с C5.'
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Module
|
||
- Function
|
||
- Class
|
||
- Component
|
||
- Agent
|
||
protected: false
|
||
orthogonal: false
|
||
decision_memory: false
|
||
alias_for: null
|
||
INVARIANT:
|
||
type: string
|
||
multiline: true
|
||
description: 'Инвариант — условие, которое всегда истинно для данного контракта. Обязателен с C5.'
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Module
|
||
- Function
|
||
- Class
|
||
- Component
|
||
- Block
|
||
- Skill
|
||
- Agent
|
||
protected: false
|
||
orthogonal: false
|
||
decision_memory: false
|
||
alias_for: null
|
||
LAYER:
|
||
type: string
|
||
multiline: false
|
||
description: 'Архитектурный слой: Service, UI, Infrastructure, Domain. Ортогональный — Module/Skill/Agent-специфичный.'
|
||
separator: null
|
||
is_reference: false
|
||
enum: []
|
||
allowed_predicates: []
|
||
contract_types:
|
||
- Module
|
||
- Skill
|
||
- Agent
|
||
protected: false
|
||
orthogonal: true
|
||
decision_memory: false
|
||
alias_for: null
|
||
# #endregion TagSchema
|
||
|
||
# #region InfrastructureConfig [C:2] [TYPE Block] [SEMANTICS config,embedding,http]
|
||
# @BRIEF Инфраструктурные настройки: embedding, HTTP API, doc-режим.
|
||
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
|