From 3b2f9d894e085ddc205a9528e9c178936f080805 Mon Sep 17 00:00:00 2001 From: busya Date: Sun, 7 Sep 2025 22:00:06 +0300 Subject: [PATCH] chore(lint): apply semantic enrichment\n\nFiles modified: 1 --- .../knowledge_base/semantic_linting.md | 76 ----------- .../knowledge_base/semantic_linting.xml | 127 ++++++++++++++++++ .../com/homebox/lens/data/di/ApiModule.kt | 2 +- 3 files changed, 128 insertions(+), 77 deletions(-) delete mode 100644 agent_promts/knowledge_base/semantic_linting.md create mode 100644 agent_promts/knowledge_base/semantic_linting.xml diff --git a/agent_promts/knowledge_base/semantic_linting.md b/agent_promts/knowledge_base/semantic_linting.md deleted file mode 100644 index f1dd131..0000000 --- a/agent_promts/knowledge_base/semantic_linting.md +++ /dev/null @@ -1,76 +0,0 @@ -[SemanticLintingCompliance] -**Tags:** LINTING, SEMANTICS, STRUCTURE, ANCHORS, FILE_HEADER, TAXONOMY - -> Этот принцип определяет строгие правила структурирования кода, которые превращают его из простого текста в машиночитаемый, 'линтуемый' семантический артефакт. Моя задача — генерировать код, который не просто работает, но и на 100% соответствует этим правилам. Это не рекомендации по стилю, а строгие требования к архитектуре файла. - -## Rules - -### FileHeaderIntegrity -Каждый `.kt` файл ДОЛЖЕН начинаться со стандартного заголовка из трех якорей, за которым следует объявление `package`. Порядок строгий и не подлежит изменению. - -**Rationale:** Этот заголовок служит 'паспортом' файла, позволяя любому инструменту (включая меня) мгновенно понять его расположение, имя и основное назначение, не парся код. - -**Example:** -```kotlin -// [PACKAGE] com.example.your.package.name -// [FILE] YourFileName.kt -// [SEMANTICS] ui, viewmodel, state_management -package com.example.your.package.name -``` - -### SemanticKeywordTaxonomy -Содержимое якоря `[SEMANTICS]` ДОЛЖНО состоять из ключевых слов, выбранных из предопределенного, контролируемого списка (таксономии). - -**Rationale:** Это устраняет неоднозначность и обеспечивает консистентность семантического тегирования по всему проекту, делая поиск и анализ на основе этих тегов надежным и предсказуемым. - -#### Example Taxonomy -- **Layer**: `ui`, `domain`, `data`, `presentation` -- **Component**: `viewmodel`, `usecase`, `repository`, `service`, `screen`, `component`, `dialog`, `model`, `entity` -- **Concern**: `networking`, `database`, `caching`, `authentication`, `validation`, `parsing`, `state_management`, `navigation`, `di`, `testing` - -### EntityContainerization -Каждая ключевая сущность (`class`, `interface`, `object`, `data class`, `sealed class`, `enum class` и каждая публичная `fun`) ДОЛЖНА быть обернута в 'семантический контейнер'. Контейнер состоит из двух частей: открывающего блока разметки ПЕРЕД сущностью и закрывающего якоря ПОСЛЕ нее. - -**Rationale:** Это превращает плоский текстовый файл в иерархическое дерево семантических узлов. Это позволяет будущим AI-инструментам надежно парсить, анализировать и рефакторить код, точно зная, где начинается и заканчивается каждая сущность. - -**Structure:** -1. **Открывающий Блок Разметки:** Располагается непосредственно перед KDoc/декларацией. Содержит сначала якорь `[ENTITY]`. -2. **Тело Сущности:** KDoc, сигнатура и тело функции/класса. -3. **Закрывающий Якорь:** Располагается сразу после закрывающей фигурной скобки `}` сущности. Формат: `// [END_ENTITY: Type('Name')]`. - -**Example:** -```kotlin -// [ENTITY: DataClass('Success')] -/** - * @summary Состояние успеха... - */ -data class Success(val labels: List