refactor(semantics): make axiom_config.yaml descriptive, not gatekeeping
This commit is contained in:
@@ -36,102 +36,73 @@ indexing:
|
||||
# #endregion IndexingConfig
|
||||
|
||||
# #region ComplexityRules [C:5] [TYPE Block] [SEMANTICS config,rules,validation]
|
||||
# @BRIEF Обязательные и запрещённые тэги по уровням сложности C1-C5.
|
||||
# @BRIEF Уровни сложности C1-C5 — описательные сигналы, не gatekeeper-правила.
|
||||
# @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 — мешал документировать простые зависимости.
|
||||
# @INVARIANT Каждый тэг в required/suggested списках обязан иметь определение в TagSchema.
|
||||
# @RATIONALE Tiers are descriptive signals, not gatekeepers. Any tag is welcomed at any tier.
|
||||
# @PRE/@POST on a C2 utility is informative, not a violation.
|
||||
# @RATIONALE/@REJECTED are universally welcomed — decision memory at all levels.
|
||||
# @REJECTED Old forbidden lists per tier caused agents to remove useful documentation tags.
|
||||
# No tag is forbidden at any tier. Let agents document what needs documenting.
|
||||
complexity_rules:
|
||||
'1':
|
||||
required: []
|
||||
forbidden:
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
- DATA_CONTRACT
|
||||
suggested:
|
||||
- BRIEF
|
||||
'2':
|
||||
required:
|
||||
- PURPOSE
|
||||
forbidden:
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
- DATA_CONTRACT
|
||||
required: []
|
||||
suggested:
|
||||
- BRIEF
|
||||
- RELATION
|
||||
'3':
|
||||
required:
|
||||
- PURPOSE
|
||||
required: []
|
||||
suggested:
|
||||
- BRIEF
|
||||
- RELATION
|
||||
forbidden:
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
- DATA_CONTRACT
|
||||
'4':
|
||||
required:
|
||||
- PURPOSE
|
||||
required: []
|
||||
suggested:
|
||||
- BRIEF
|
||||
- RELATION
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
forbidden:
|
||||
- DATA_CONTRACT
|
||||
'5':
|
||||
required:
|
||||
- PURPOSE
|
||||
required: []
|
||||
suggested:
|
||||
- BRIEF
|
||||
- RELATION
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
- INVARIANT
|
||||
forbidden: []
|
||||
- DATA_CONTRACT
|
||||
# #endregion ComplexityRules
|
||||
|
||||
# #region ContractTypeOverrides [C:3] [TYPE Block] [SEMANTICS config,adr,override]
|
||||
contract_type_overrides:
|
||||
ADR:
|
||||
required:
|
||||
suggested:
|
||||
- PURPOSE
|
||||
- RELATION
|
||||
- RATIONALE
|
||||
- REJECTED
|
||||
forbidden:
|
||||
- COMPLEXITY
|
||||
- C
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
- DATA_CONTRACT
|
||||
- INVARIANT
|
||||
- UX_STATE
|
||||
- LAYER
|
||||
- SEMANTICS
|
||||
Component:
|
||||
'3':
|
||||
required:
|
||||
suggested:
|
||||
- PURPOSE
|
||||
- RELATION
|
||||
- UX_STATE
|
||||
forbidden:
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
- DATA_CONTRACT
|
||||
'4':
|
||||
required:
|
||||
suggested:
|
||||
- PURPOSE
|
||||
- RELATION
|
||||
- UX_STATE
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
forbidden:
|
||||
- DATA_CONTRACT
|
||||
'5':
|
||||
required:
|
||||
suggested:
|
||||
- PURPOSE
|
||||
- RELATION
|
||||
- UX_STATE
|
||||
@@ -139,51 +110,29 @@ contract_type_overrides:
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
- INVARIANT
|
||||
forbidden: []
|
||||
Tombstone:
|
||||
required:
|
||||
suggested:
|
||||
- STATUS
|
||||
forbidden:
|
||||
- COMPLEXITY
|
||||
- C
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
- DATA_CONTRACT
|
||||
- INVARIANT
|
||||
- UX_STATE
|
||||
- PURPOSE
|
||||
- RELATION
|
||||
- LAYER
|
||||
- SEMANTICS
|
||||
Block:
|
||||
'3':
|
||||
required:
|
||||
suggested:
|
||||
- PURPOSE
|
||||
- RELATION
|
||||
forbidden:
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
- DATA_CONTRACT
|
||||
'4':
|
||||
required:
|
||||
suggested:
|
||||
- PURPOSE
|
||||
- RELATION
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
forbidden:
|
||||
- DATA_CONTRACT
|
||||
'5':
|
||||
required:
|
||||
suggested:
|
||||
- PURPOSE
|
||||
- RELATION
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
- INVARIANT
|
||||
forbidden: []
|
||||
# #endregion ContractTypeOverrides
|
||||
|
||||
# #region TagSchema [C:5] [TYPE Block] [SEMANTICS config,tags,schema]
|
||||
@@ -234,7 +183,7 @@ tags:
|
||||
PURPOSE:
|
||||
type: string
|
||||
multiline: true
|
||||
description: 'Назначение контракта. Обязателен с C2.'
|
||||
description: 'Назначение контракта. Универсально опциональный. Хороший тон — иметь @BRIEF на любой функции.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -344,7 +293,7 @@ tags:
|
||||
SIDE_EFFECT:
|
||||
type: string
|
||||
multiline: false
|
||||
description: 'Побочные эффекты. Обязателен с C4.'
|
||||
description: 'Побочные эффекты (I/O, DB, API, сеть). Рекомендуется на функциях с side effects.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -436,7 +385,7 @@ tags:
|
||||
UX_STATE:
|
||||
type: string
|
||||
multiline: false
|
||||
description: Конечный автомат UX. Обязателен Component C3+.
|
||||
description: Конечный автомат UX. Рекомендуется для компонентов с множественными состояниями.
|
||||
contract_types: [Component]
|
||||
protected: false
|
||||
orthogonal: false
|
||||
@@ -444,7 +393,7 @@ tags:
|
||||
RELATION:
|
||||
type: string
|
||||
multiline: false
|
||||
description: 'Графовая зависимость. Обязателен с C3.'
|
||||
description: 'Графовая зависимость. Описывает связь между контрактами. Рекомендуется на любой функции/модуле с внешними зависимостями.'
|
||||
is_reference: true
|
||||
allowed_predicates: [DEPENDS_ON, CALLS, INHERITS, IMPLEMENTS, DISPATCHES, BINDS_TO, CALLED_BY, VERIFIES, USES]
|
||||
contract_types:
|
||||
@@ -462,7 +411,7 @@ tags:
|
||||
PRE:
|
||||
type: string
|
||||
multiline: true
|
||||
description: 'Предусловия. Обязателен с C4. Если предусловия тривиальны (напр. "DB доступна"), допустимо опустить при наличии @SIDE_EFFECT.'
|
||||
description: 'Предусловия. Рекомендуется на функциях с нетривиальными входными требованиями.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -475,7 +424,7 @@ tags:
|
||||
POST:
|
||||
type: string
|
||||
multiline: true
|
||||
description: 'Гарантии результата. Обязателен с C4. Если постусловия очевидны из @PURPOSE, допустимо опустить при наличии @SIDE_EFFECT.'
|
||||
description: 'Гарантии результата. Рекомендуется на функциях с нетривиальными постусловиями.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -533,7 +482,7 @@ tags:
|
||||
DATA_CONTRACT:
|
||||
type: string
|
||||
multiline: false
|
||||
description: 'DTO-маппинг (Input→Output). Рекомендуется с C5, не обязателен. Не все C5 контракты имеют DTO.'
|
||||
description: 'DTO-маппинг (Input→Output). Универсально опциональный. Полезен на любом контракте с чёткими типами входа/выхода.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -546,7 +495,7 @@ tags:
|
||||
INVARIANT:
|
||||
type: string
|
||||
multiline: true
|
||||
description: 'Инвариант — условие, истинное всегда. Универсально опциональный (C1+), обязателен на C5. Документируй неуничтожимые гарантии на любом уровне.'
|
||||
description: 'Инвариант — условие, истинное всегда. Универсально опциональный (C1+). Документируй неуничтожимые гарантии на любом уровне.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user