From c06c7a82148715f322532c065c2faaac085bfccc Mon Sep 17 00:00:00 2001 From: admin_d Date: Sun, 26 Jul 2026 16:00:35 +0500 Subject: [PATCH] Publish company plugin marketplace --- .agents/plugins/marketplace.json | 20 +++ README.md | 20 +++ .../.codex-plugin/plugin.json | 19 +++ plugins/tax-code-research/.mcp.json | 8 + .../skills/tax-code-research/SKILL.md | 143 ++++++++++++++++++ .../tax-code-research/agents/openai.yaml | 13 ++ 6 files changed, 223 insertions(+) create mode 100644 .agents/plugins/marketplace.json create mode 100644 README.md create mode 100644 plugins/tax-code-research/.codex-plugin/plugin.json create mode 100644 plugins/tax-code-research/.mcp.json create mode 100644 plugins/tax-code-research/skills/tax-code-research/SKILL.md create mode 100644 plugins/tax-code-research/skills/tax-code-research/agents/openai.yaml diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json new file mode 100644 index 0000000..e6589a2 --- /dev/null +++ b/.agents/plugins/marketplace.json @@ -0,0 +1,20 @@ +{ + "name": "logos-company-plugins", + "interface": { + "displayName": "Logos Company Plugins" + }, + "plugins": [ + { + "name": "tax-code-research", + "source": { + "source": "local", + "path": "./plugins/tax-code-research" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Productivity" + } + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..80c1d88 --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# Logos Codex Plugins + +Публичный marketplace плагинов и skills компании Logos для ChatGPT Work и +Codex. + +## Установка налогового плагина + +Репозиторий публичный: логин, пароль и SSH-ключ не требуются. + +```powershell +codex plugin marketplace add "https://dev.ast.ltr.kz/Logos/codex-plugins.git" --ref main; if ($LASTEXITCODE -eq 0) { codex plugin add "tax-code-research@logos-company-plugins" } +``` + +После установки перезапустите ChatGPT Desktop или откройте новый рабочий чат. +MCP плагина доступен только внутри корпоративной сети. + +## Структура + +- `.agents/plugins/marketplace.json` — каталог доступных плагинов; +- `plugins/` — устанавливаемые пакеты. diff --git a/plugins/tax-code-research/.codex-plugin/plugin.json b/plugins/tax-code-research/.codex-plugin/plugin.json new file mode 100644 index 0000000..e283ad4 --- /dev/null +++ b/plugins/tax-code-research/.codex-plugin/plugin.json @@ -0,0 +1,19 @@ +{ + "name": "tax-code-research", + "version": "1.0.0", + "description": "Поиск и объяснение норм Налогового кодекса Республики Казахстан через корпоративный MCP.", + "author": { + "name": "Logos" + }, + "skills": "./skills/", + "interface": { + "displayName": "Налоговый кодекс РК", + "shortDescription": "Исследование норм НК РК через корпоративный MCP.", + "longDescription": "Находит применимые нормы, получает их полный текст и объясняет его с точными ссылками.", + "developerName": "Logos", + "category": "Productivity", + "capabilities": [], + "defaultPrompt": "Найдите и объясните применимые нормы Налогового кодекса Республики Казахстан." + }, + "mcpServers": "./.mcp.json" +} diff --git a/plugins/tax-code-research/.mcp.json b/plugins/tax-code-research/.mcp.json new file mode 100644 index 0000000..142ca52 --- /dev/null +++ b/plugins/tax-code-research/.mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "adilet-tax-code": { + "type": "http", + "url": "http://10.1.1.13:30100/mcp" + } + } +} diff --git a/plugins/tax-code-research/skills/tax-code-research/SKILL.md b/plugins/tax-code-research/skills/tax-code-research/SKILL.md new file mode 100644 index 0000000..3ce7764 --- /dev/null +++ b/plugins/tax-code-research/skills/tax-code-research/SKILL.md @@ -0,0 +1,143 @@ +--- +name: tax-code-research +description: Исследует и объясняет нормы Налогового кодекса Республики Казахстан через корпоративный MCP. Используй для вопросов о налогах, обязательных платежах, ставках, сроках, отчётности, льготах, освобождениях, вычетах, специальных режимах, проверках, ответственности, обжаловании, конкретных статьях НК РК и налоговых последствиях хозяйственных операций. +--- + +# Исследование Налогового кодекса РК + +Ищи применимые нормы через MCP, получай их полный официальный текст и только затем объясняй пользователю. Не отвечай по памяти модели, RAG-фрагментам, поисковым сниппетам, комментариям или текстам сайтов. + +## Источник и инструменты + +MCP `adilet-tax-code` содержит актуальную редакцию Налогового кодекса Республики Казахстан. + +### `search_tax_norm` + +Используй для обнаружения потенциально применимых норм: + +- `query` — содержательный поисковый запрос; +- `top_n` — от 1 до 8, обычно 8; +- `candidates` — кандидаты с номерами статьи, пункта, подпункта, `lookup_available`, `source_revision_date` и `fragment_markdown`. + +`fragment_markdown` — только поисковый фрагмент. Не цитируй его и не используй как правовое основание. + +### `get_legal_unit` + +Получает точный структурный элемент: + +- `article_number` обязателен; +- `point_number`, `subpoint_number` и `part_number` передавай при необходимости; +- `official_text_markdown` — единственный источник содержания нормы; +- `context_markdown` — только навигационный контекст, не официальный текст для цитирования; +- `source_revision_date` — редакция источника. + +Инструмент получает статью, пункт или подпункт. Не запрашивай главу, параграф или произвольный структурный элемент. + +Если ответ имеет `status: requires_pagination`, `official_text_markdown` ещё не получен. Запроси по очереди все значения из `available_parts` через `part_number` и объедини части в порядке нумерации. + +Если у кандидата `lookup_available: false`, запроси более широкий доступный уровень: пункт или всю статью. + +## Порядок работы + +### 1. Определи рамки вопроса + +Извлеки уже указанные пользователем сведения: + +- юрисдикцию и налоговый период или дату операции; +- налог, статус и категорию налогоплательщика; +- вид операции, объект, участников и территорию; +- специальный режим, льготу или иное существенное условие; +- результат, который нужен пользователю. + +Не спрашивай повторно и не придумывай отсутствующие обстоятельства. + +### 2. Обнаружь нормы + +Если пользователь указал точную статью, пункт или подпункт, сразу вызови `get_legal_unit`. Используй поиск только для необходимых связанных норм. + +В остальных случаях сначала выполни `search_tax_norm`. Составь запрос словами пользователя и уместными юридическими терминами. Обычно достаточно 1–3 разных запросов: основное правило, специальный случай или исключение. Не делай серию почти одинаковых запросов. + +Сгруппируй кандидатов по общему правилу, специальным случаям, исключениям и определениям. Первый результат не считается автоматически применимым. + +### 3. Уточни существенные развилки + +Если после первичного поиска выбор нормы зависит от неизвестных обстоятельств, задай от 1 до 5 простых вопросов. Каждый вопрос должен исключать хотя бы одну правовую ветку. Предпочитай короткие варианты ответа и предложи ответить по номерам. + +Не задавай вопросы, если: + +- нормы применяются совместно; +- возможен точный условный ответ; +- пользователь просит обзор или все варианты; +- указана конкретная норма. + +До получения уточнений не давай окончательный правовой вывод. После ответа пользователя повтори поиск с новыми обстоятельствами. + +### 4. Получи полный текст + +Для каждой нормы, влияющей на вывод, вызови `get_legal_unit` и получи полный `official_text_markdown`. + +Обязательно получи: + +- основную норму; +- существенное исключение или ограничение; +- определение, без которого вывод непонятен; +- прямо указанную связанную норму, если она может изменить ответ; +- норму о сроке или переходное положение, если они относятся к вопросу. + +Не загружай десятки статей и не следуй бесконечной цепочке ссылок. Остановись, когда материалов достаточно для конкретного ответа. + +Все использованные единицы должны иметь одинаковый `source_revision_date`. Если редакция изменилась во время исследования, заново получи все нормы в новой редакции. + +### 5. Сформируй ответ + +Отвечай на языке пользователя и начинай с прямого вывода. Затем кратко дай: + +1. что прямо устанавливает Кодекс; +2. условия применения; +3. существенные исключения и ограничения; +4. точные статью, пункт и подпункт; +5. практический вывод для описанной ситуации; +6. сведения, которые ещё могут изменить вывод. + +Разделяй содержание нормы, интерпретацию взаимосвязи норм и практический вывод. Используй формулировки «В статье указано…», «Из совокупности этих норм следует…», «Практический вывод…». Не выдавай интерпретацию за дословный текст. + +Короткие цитаты разрешены только из `official_text_markdown`. Рядом указывай точную норму, например: `НК РК, ст. 123, п. 2, подп. 3; редакция источника MCP: `. + +Если пользователь не указал период, сообщи: «Ответ дан по актуальной редакции Налогового кодекса, содержащейся в базе MCP», и укажи фактический `source_revision_date`, полученный от инструмента. + +## Интернет + +Используй интернет только после MCP-поиска и только как запасную навигацию, если доступен: для обнаружения возможного номера или названия статьи, юридического термина либо перенумерации. Предпочитай официальный Adilet. + +Не бери из интернета текст нормы, ставки, суммы, сроки, условия, исключения или правовой вывод. Любую найденную таким способом норму обязательно проверь через `get_legal_unit`. Не цитируй интернет как подтверждение содержания Кодекса. + +## Ограничения + +- MCP покрывает Налоговый кодекс Республики Казахстан. Для другой юрисдикции прямо сообщи об ограничении. +- MCP предоставляет текущую активную редакцию. Для прошлого периода не применяй её автоматически. Если исторической редакции нет, сообщи, что нужен текст на соответствующую дату. +- Используй факты пользователя как факты ситуации, но не как доказательство содержания Кодекса. +- Не добавляй стандартный совет обратиться к специалисту. Укажи на профессиональную проверку только при высокой финансовой значимости, существенной неоднозначности, необходимости судебной практики или иных нормативных актов. + +## Ошибки MCP + +- `search_tax_norm: no_results` — переформулируй запрос юридическими терминами, повтори один раз, затем при наличии используй интернет только для навигации. +- `search_tax_norm: invalid_request` — исправь `query` или `top_n`. +- `search_tax_norm: search_unavailable` — сообщи, что поиск временно недоступен; не отвечай по памяти. +- `get_legal_unit: invalid_request` — проверь формат номера и уровень структуры. +- `get_legal_unit: not_found` — попробуй всю статью, повторный поиск по названию или проверку перенумерации. +- `get_legal_unit: data_error` — сообщи, что подтверждённый текст получить нельзя. + +Если полный текст нормы не получен, не утверждай, что она содержит конкретное правило. + +## Контроль перед отправкой + +Проверь: + +- выполнен ли поиск, если точная норма не указана; +- получен ли полный `official_text_markdown` каждой нормы; +- загружены ли все части пагинированного ответа; +- проверены ли существенные исключения и прямые ссылки; +- совпадает ли `source_revision_date`; +- учтены ли юрисдикция и период; +- отделены ли норма, интерпретация и практический вывод; +- не используются ли RAG, интернет или память модели как правовое основание. diff --git a/plugins/tax-code-research/skills/tax-code-research/agents/openai.yaml b/plugins/tax-code-research/skills/tax-code-research/agents/openai.yaml new file mode 100644 index 0000000..cb2887d --- /dev/null +++ b/plugins/tax-code-research/skills/tax-code-research/agents/openai.yaml @@ -0,0 +1,13 @@ +interface: + display_name: "Налоговый кодекс РК" + short_description: "Поиск и объяснение норм НК РК через MCP" + default_prompt: "Используй $tax-code-research, чтобы найти и объяснить применимые нормы НК РК." +dependencies: + tools: + - type: "mcp" + value: "adilet-tax-code" + description: "Налоговый кодекс Республики Казахстан" + transport: "streamable_http" + url: "http://10.1.1.13:30100/mcp" +policy: + allow_implicit_invocation: true