diff --git a/AGENTS.md b/AGENTS.md index b177cb3..5709590 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,108 +1,123 @@ -# AGENTS.md - -## Описание проекта: LazyBear MCP - -### Назначение -.NET 10 сервер Model Context Protocol (MCP) для интеграции торговых AI-инструментов. - -### Структура проекта -``` -LazyBearWorks/ -├── LazyBear.MCP/ -│ ├── Program.cs # Главный файл с хостингом MCP сервера -│ ├── Pages/ # Razor Pages (UI) -│ ├── Services/ -│ │ └── TradingTools.cs # Реализация инструментов MCP -│ ├── appsettings.json # Конфигурация -│ └── LazyBear.MCP.csproj # Проектный файл -├── AGENTS.md # Этот файл, правила для агентов -└── README.md # Документация для пользователей -``` - -### Основные концепты - -**Хостинг (Hosting):** -- ASP.NET Core веб-приложение (.NET 10.0) -- HTTP transport для удалённой MCP коммуникации -- Авто-обнаружение `[McpServerToolType]` и `[McpServerResourceType]` - -**Технологический стек:** -- **Runtime:** .NET 10.0 -- **Framework:** ASP.NET Core -- **SDK:** ModelContextProtocol.AspNetCore 1.2.0 -- **AI:** Microsoft.Extensions.AI - -**Особенности MCP:** -- **Инструменты (Tools):** Статические классы с атрибутами `[McpServerTool]` -- **Ресурсы (Resources):** Шаблоны ресурсов с атрибутами `[McpServerResource]` -- **Промпты (Prompts):** Параметризованные промпты (в разработке) - -### Запуск - -**Запустить сервер:** -```bash -dotnet run --project LazyBear.MCP -``` - -**Собрать проект:** -```bash -dotnet build -``` - -### Пакеты -- `ModelContextProtocol` - основной SDK -- `ModelContextProtocol.AspNetCore` - интеграция с ASP.NET Core -- `Microsoft.Extensions.AI` - абстракции AI +# AGENTS.md — LazyBear MCP +STACK: .NET 10 | ASP.NET Core | ModelContextProtocol.AspNetCore 1.2.0 +STRUCTURE: LazyBear.MCP/{Program.cs, Services/Kubernetes/{K8sConfigTools,K8sDeploymentTools,K8sNetworkTools,K8sPodsTools}, appsettings.json} --- -## Memory Log (MUST) +## [A] КОД — ALWAYS -PREFIX: `lazybear/` - -| entityType | scope | key example | -|----------------|--------------------------|-------------------------------| -| `architecture` | структура, хостинг, SDK | `lazybear/arch/mcp-transport` | -| `mcp_tool` | инструменты MCP | `lazybear/tool/get-price` | -| `decision` | решения, ADR | `lazybear/decision/transport` | -| `bug` | ошибки, баги | `lazybear/bug/auth-fail` | -| `config` | конфигурация | `lazybear/config/appsettings` | -| `task_log` | прогресс задач | `lazybear/task/refactor-tools`| - -REF: [AGENT.common.md](AGENT.common.md) → Memory Log +PRE_EDIT: read_file → keep_style → min_diff → no_secrets_in_code +PRE_COMMIT: dotnet build OK | MCP protocol intact | lang=ru (comments/docs/commits) +PRIORITY: user > this_file > code_style --- -## Правила для машин (MACHINE-FIRST) +## [B] КОММУНИКАЦИЯ — ALWAYS -### Обязательные правила (MUST) - -**Перед модификацией:** -1. Прочитать существующий код -2. Сохранять текущий стиль и паттерны -3. Минимизировать изменения -4. Не добавлять секреты в код - -**Перед коммитом:** -1. Сборка `dotnet build` должна проходить локально -2. Изменения не должны ломать MCP протокол -3. Код в Git только после проверки сборки -4. Комментарии, документация и коммиты — только на русском +DO: act_first → confirm_if_needed | short_and_precise | sequential_questions +DONT: end_with_question_only | print_secret_values | commit_.env.local +SECRETS: use .env.local if exists; else state_once + ref .env.example +LINKS: internal=relative_path spaces→%20 | external=markdown_label (not bare URL) +RULES_EDIT: minimal + non_duplicative --- -## Модель выполнения (MUST) +## [C] MEMORY LOG — ALWAYS -**Приоритеты инструкции:** -1. Инструкции пользователя -2. AGENTS.md (этот файл) -3. Упомянутые общие правила -4. Существующий стиль кода -5. Лучшие практики +PREFIX: lazybear/ +KEY: lazybear// (ex: lazybear/bug/auth-fail) +TYPES: architecture | mcp_tool | decision | bug | config | task_log +ONE_TYPE_PER_ENTITY: true -**Переиспользуемые правила:** -- [AGENT.common.md](AGENT.common.md) - общие правила -- [AGENT.interaction.md](AGENT.interaction.md) - правила взаимодействия +ON session_start → read_graph OR search_nodes() +ON significant_change → create_entities OR add_observations -### Поддержание правил (MUST) -- см. [AGENT.common.md](AGENT.common.md) → Rules Maintenance +--- + +## [D] INTERACTION — только при вопросе пользователю + +### Формат + +``` +<инструкция ≤15 слов> + +1) <вариант ≤5 слов> +2) <вариант> +``` + +RULES: первый_символ=инструкция | max_options=7 | blank_line_before_options +FORBIDDEN: текст до/после блока | метки ("Выберите:") | пояснения | статусы + +### Ввод + +VALID: + N → single select + N,N → multi (no spaces) + abort|cancel → FLOW_CANCEL + → pass_to_system as-is + +INVALID → reject+repeat: "вариант 2" | "1, 3" | "" | любая фраза вместо числа + +### Поток + +ONE_Q_PER_STEP: true +NO_SKIP: true +NO_STATE_BETWEEN_SESSIONS: true + +CONFIRMATION (обязательный финальный шаг): +``` +Итог: +- <поле>: <значение> + +1) Подтвердить +2) Начать заново +3) Изменить шаг +``` + +COMPACT_MODE: `key=N key=N` → apply valid fields, skip their steps → go to CONFIRMATION + +### После валидного ввода + +EXECUTE: silent +NEXT_OUTPUT: result XOR next_question_block + +``` +✗ "Перехожу на ветку, затем подготовлю версию..." +✓ [молча] → результат или следующий вопрос +``` + +### Валидация + +MATCH: exact_only | no_autocorrect | no_implicit_defaults + +RETRY: + 1 → error + repeat + 2 → error + emphasize format (1 / 2 / 1,3) + 3 → minimal hint + 4 → STEP_ABORT + +ABORT: + invalid×4 → STEP_ABORT (emit code only, no text) + abort|cancel → FLOW_CANCEL (emit code only, no text) + +### Запрещённые шаблоны + +``` +✗ "Если хочешь, могу сделать коммит" +✗ "Дай знать если продолжить" +``` + +RULE: action available → always show choice block: +``` +Выполнить коммит и push? + +1) Да +2) Нет +``` + +OPTIONS: exhaustive | no "Другое" | freetext implicit (не предлагать как вариант) + +### Приоритеты + +PRIORITY: safety(absolute) > determinism > structure > format > convenience +DETERMINISM: same_input→same_output | option_order=fixed | option_text=never_rephrase