update documentator promt

This commit is contained in:
2025-09-08 16:23:03 +03:00
parent 3b2f9d894e
commit aa69776807
18 changed files with 739 additions and 246 deletions

View File

@@ -0,0 +1,55 @@
<Rule id="GraphRAG" enforcement="strict">
<Description>Код должен содержать явный, машиночитаемый граф знаний в виде семантических якорей [ENTITY] и [RELATION].</Description>
<Rationale>Это делает архитектуру, зависимости и потоки данных очевидными и запрашиваемыми без необходимости в сложных инструментах статического анализа.</Rationale>
<Definition type="multi_check">
<Checks>
<!--
ПРОВЕРКА 1: Блок разметки ([ENTITY]/[RELATION]) должен идти ПЕРЕД KDoc.
Это реализация правила 'Placement'.
-->
<Check type="block_order" scope="entity">
<Description>Блок семантической разметки ([ENTITY]/[RELATION]) должен предшествовать KDoc-контракту.</Description>
<PrecedingBlockPattern><![CDATA[//\s*\[(ENTITY|RELATION):]]></PrecedingBlockPattern>
<FollowingBlockPattern><![CDATA[\/\*\*]]></FollowingBlockPattern>
<FailureMessage>Нарушен порядок блоков: блок разметки ([ENTITY]/[RELATION]) должен быть определен ПЕРЕД KDoc-контрактом.</FailureMessage>
</Check>
<!--
ПРОВЕРКА 2: Тип сущности в [ENTITY] должен быть из разрешенного списка.
-->
<Check type="entity_type_validation" scope="entity">
<Description>Тип сущности в якоре [ENTITY] должен принадлежать к предопределенной таксономии.</Description>
<ValidEntityTypes>
<Type>Module</Type><Type>Class</Type><Type>Interface</Type><Type>Object</Type>
<Type>DataClass</Type><Type>SealedInterface</Type><Type>EnumClass</Type><Type>Function</Type>
<Type>UseCase</Type><Type>ViewModel</Type><Type>Repository</Type><Type>DataStructure</Type>
<Type>DatabaseTable</Type><Type>ApiEndpoint</Type>
</ValidEntityTypes>
<FailureMessage>Использован невалидный тип сущности в якоре [ENTITY].</FailureMessage>
</Check>
<!--
ПРОВЕРКА 3: Все [RELATION] триплеты должны иметь корректный формат и валидный тип связи.
-->
<Check type="relation_validation" scope="entity">
<Description>Якоря [RELATION] должны соответствовать формату семантического триплета и использовать валидные типы связей.</Description>
<TripletPattern><![CDATA[//\s*\[RELATION:\s*'(?P<subject_type>\w+)'\('(?P<subject_name>.*?)'\)\s*->\s*\[(?P<relation_type>\w+)\]\s*->\s*\['(?P<object_type>\w+)'\('(?P<object_name>.*?)'\)\]]]></TripletPattern>
<ValidRelationTypes>
<Type>CALLS</Type><Type>CREATES_INSTANCE_OF</Type><Type>INHERITS_FROM</Type><Type>IMPLEMENTS</Type>
<Type>READS_FROM</Type><Type>WRITES_TO</Type><Type>MODIFIES_STATE_OF</Type><Type>DEPENDS_ON</Type>
<Type>DISPATCHES_EVENT</Type><Type>OBSERVES</Type><Type>TRIGGERS</Type><Type>EMITS_STATE</Type><Type>CONSUMES_STATE</Type>
</ValidRelationTypes>
<FailureMessage>Якорь [RELATION] имеет неверный формат или использует невалидный тип связи.</FailureMessage>
</Check>
<!--
ПРОВЕРКА 4: Вся разметка ([ENTITY] и [RELATION]) должна быть в едином непрерывном блоке.
Это реализация правила 'MarkupBlockCohesion'.
-->
<Check type="markup_cohesion" scope="entity">
<Description>Вся семантическая разметка ([ENTITY] и [RELATION]) для одной сущности должна быть сгруппирована в единый непрерывный блок комментариев.</Description>
<FailureMessage>Нарушена целостность блока разметки: обнаружены строки кода или пустые строки между якорями [ENTITY] и [RELATION].</FailureMessage>
</Check>
</Checks>
</Definition>
</Rule>