semantics
This commit is contained in:
@@ -196,7 +196,20 @@ Decision memory is preserved in three linked layers:
|
||||
4. Повторное внедрение пути из upstream `@REJECTED` — это регрессия, пока не обновлен сам контракт или ADR на основе новых доказательств.
|
||||
5. Тихое удаление decision-memory тегов запрещено. Сначала обновляется решение, потом код.
|
||||
|
||||
## X. TEST MARKUP RULES
|
||||
## X. EXTERNAL & SHARED CONTRACTS POLICY
|
||||
Если модуль зависит от внешней библиотеки или глобального/shared DTO, которые не имеют своих `[DEF]` якорей в коде, используются строгие префиксы:
|
||||
|
||||
1. **Внешние библиотеки:** `[EXT:НазваниеЛибы:Модуль]`
|
||||
- Пример: `@RELATION: DEPENDS_ON -> [EXT:FastAPI:Router]`
|
||||
- Префикс `EXT:` однозначно маркирует зависимость от внешнего пакета, не имеющего локальных `[DEF]` якорей.
|
||||
|
||||
2. **Глобальные / Shared DTO:** `[DTO:Name]`
|
||||
- Пример: `@RELATION: DEPENDS_ON -> [DTO:ConnectionContracts]`
|
||||
- Префикс `DTO:` используется, когда источник контракта не имеет явного `[DEF]` в текущей кодовой базе (например, shared-библиотека, генерируемый protobuf, внешний schema-registry).
|
||||
|
||||
3. **Запрет на выдуманные ID.** Используются точные имена классов, модулей и библиотек. Недопустимо указывать абстрактные или сгенерированные идентификаторы вместо реальных имён.
|
||||
|
||||
## XI. TEST MARKUP RULES
|
||||
Для предотвращения перегрузки тестовых файлов семантическим шумом и снижения "orphan count" применяются упрощенные правила:
|
||||
|
||||
1. **Короткие ID:** Тестовые модули ОБЯЗАНЫ иметь короткие семантические ID (например, `AssistantApiTests`), а не полные пути импорта.
|
||||
@@ -206,4 +219,7 @@ Decision memory is preserved in three linked layers:
|
||||
5. **Запрет на цепочки:** Не нужно описывать граф вызовов внутри теста. Достаточно "заземлить" 1-2 главных хелпера на ID модуля через `BINDS_TO`, чтобы файл перестал считаться набором сирот.
|
||||
6. **ADR Regression Checks:** Если модуль ограничен upstream `@REJECTED` или локальным reactive Micro-ADR, тестовый аудит обязан проверять, что запрещенный путь не был молча восстановлен.
|
||||
|
||||
### XI.1 Test External Contract References
|
||||
В тестах допускаются ссылки на `[EXT:...]` и `[DTO:...]` в `@RELATION` и `@DATA_CONTRACT`, если тестируемый модуль действительно зависит от внешних сущностей. Это исключение не отменяет правило: реальные локальные контракты всегда предпочтительнее внешних префиксов.
|
||||
|
||||
# [/DEF:Std:Semantics:Standard]
|
||||
|
||||
Reference in New Issue
Block a user