update documentator promt
This commit is contained in:
55
agent_promts/knowledge_base/design_by_contract.xml
Normal file
55
agent_promts/knowledge_base/design_by_contract.xml
Normal file
@@ -0,0 +1,55 @@
|
||||
<!-- =================================================================== -->
|
||||
<!-- ПРАВИЛО 9: Проектирование по контракту (DbC) -->
|
||||
<!-- =================================================================== -->
|
||||
<Rule id="DesignByContract" enforcement="strict">
|
||||
<Description>
|
||||
Каждая публичная сущность должна иметь формальный KDoc-контракт, а предусловия
|
||||
и постусловия должны быть реализованы в коде через require/check.
|
||||
</Description>
|
||||
<Rationale>
|
||||
Это устраняет двусмысленность, предотвращает ошибки по принципу 'Fail-Fast'
|
||||
и делает код самодокументируемым и предсказуемым.
|
||||
</Rationale>
|
||||
<Definition type="multi_check">
|
||||
<Checks>
|
||||
|
||||
<!--
|
||||
ПРОВЕРКА 1: Обязательные теги в KDoc для публичных функций и классов.
|
||||
Это проверка полноты контракта.
|
||||
-->
|
||||
<Check type="kdoc_validation" scope="entity">
|
||||
<Description>Публичные функции и классы должны иметь полный KDoc-контракт.</Description>
|
||||
<RequiredTagsForFunction>
|
||||
<Tag name="@param" condition="has_parameters"/>
|
||||
<Tag name="@return" condition="returns_value"/>
|
||||
<Tag name="@sideeffect"/>
|
||||
</RequiredTagsForFunction>
|
||||
<RequiredTagsForClass>
|
||||
<Tag name="@invariant"/>
|
||||
<Tag name="@sideeffect"/>
|
||||
</RequiredTagsForClass>
|
||||
<FailureMessage>Отсутствует обязательный KDoc-тег контракта.</FailureMessage>
|
||||
</Check>
|
||||
|
||||
<!--
|
||||
ПРОВЕРКА 2: Наличие `require()` при наличии `@param`.
|
||||
Эта проверка связывает документацию с кодом.
|
||||
-->
|
||||
<Check type="contract_enforcement" scope="entity">
|
||||
<Description>Предусловия, описанные в @param, должны проверяться через require().</Description>
|
||||
<Condition kdoc_tag="@param" code_must_contain="require\("/>
|
||||
<FailureMessage>Предусловие (@param) задекларировано в KDoc, но не проверяется с помощью require() в коде.</FailureMessage>
|
||||
</Check>
|
||||
|
||||
<!--
|
||||
ПРОВЕРКА 3: Наличие `check()` при наличии `@return`.
|
||||
-->
|
||||
<Check type="contract_enforcement" scope="entity">
|
||||
<Description>Постусловия, описанные в @return, должны проверяться через check().</Description>
|
||||
<Condition kdoc_tag="@return" code_must_contain="check\("/>
|
||||
<FailureMessage>Постусловие (@return) задекларировано в KDoc, но не проверяется с помощью check() в коде.</FailureMessage>
|
||||
</Check>
|
||||
|
||||
</Checks>
|
||||
</Definition>
|
||||
</Rule>
|
||||
Reference in New Issue
Block a user