Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
532 changes: 287 additions & 245 deletions .skills-sync-state.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion framework/rules/agent-context-protocol/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: agent-context-protocol
description: Старт агента → прочитай {role}-context.md; выход → запиши его. Процедура и структура — в навыке agent-context.
description: "На старте/выходе агента читать и писать role context"
alwaysApply: true
---
# Протокол контекста агента
Expand Down
2 changes: 1 addition & 1 deletion framework/rules/agent-debug/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: agent-debug
description: "Стандартная диагностика (ЖР/скриншоты) не раскрыла реальное поведение → применить навык agent-debug (критичный триггер)"
description: "Если ЖР/скриншоты не помогли, добавить agent-debug"
alwaysApply: true
---
# Отладочные сообщения (Agent Debug)
Expand Down
2 changes: 1 addition & 1 deletion framework/rules/buddy-prompting/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: buddy-prompting
description: "Перед обращением к 1С Напарнику → применить навык buddy-prompting"
description: "Перед запросом к 1C Buddy подготовить prompt"
alwaysApply: true
---
# Промпты к 1С Напарнику
Expand Down
2 changes: 1 addition & 1 deletion framework/rules/bug-reporting/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: bug-reporting
description: "Лимит самофикса исчерпан / причина не в своём коде → применить навык bug-reporting"
description: "Когда self-fix исчерпан, оформить bug-report"
alwaysApply: true
---
# Оформление bug-report
Expand Down
2 changes: 1 addition & 1 deletion framework/rules/capability-resolution/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: capability-resolution
description: Резолв capability → реализация (MCP tool или CLI). Агент использует registry.yaml для вызова.
description: "При выборе инструмента сначала сопоставить capability"
alwaysApply: true
---

Expand Down
2 changes: 1 addition & 1 deletion framework/rules/code-verification/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: code-verification
description: "После правки BSL → применить навыки code-verification + syntax-checking"
description: "После правок BSL выполнить verification и syntax checks"
alwaysApply: true
---
# Верификация BSL после правок
Expand Down
2 changes: 1 addition & 1 deletion framework/rules/coding-standards/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: coding-standards
description: "При написании или ревью BSL-кода → применить навык coding-standards"
description: "При написании/ревью BSL применять coding standards"
alwaysApply: true
---
# Стандарты кодирования BSL
Expand Down
2 changes: 1 addition & 1 deletion framework/rules/dap-bsl-debugger/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: dap-bsl-debugger
description: "Интерактивная BSL-отладка нужна для воспроизводимого runtime-сценария, когда статический анализ, ЖР/скриншоты и agent-debug не раскрыли путь исполнения или значения переменных → применить навык dap-bsl-code-debug-procedure."
description: "Когда runtime-путь неясен, включить DAP-отладку BSL"
alwaysApply: true
---
# DAP BSL Debugger
Expand Down
2 changes: 1 addition & 1 deletion framework/rules/error-handling/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: error-handling
description: "BSL-код с транзакциями/Попытка/блокировками → применить навык error-handling"
description: "Для Try, транзакций или блокировок применять error-handling"
alwaysApply: true
---
# Обработка ошибок и транзакции
Expand Down
2 changes: 1 addition & 1 deletion framework/rules/escalation-format/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: escalation-format
description: Эскалация решения пользователю → применить навык escalation-format (структура Что→Почему→Варианты→Оценка→Рекомендация).
description: "При эскалации решения дать options и recommendation"
alwaysApply: true
---
# Формат эскалации пользователю
Expand Down
2 changes: 1 addition & 1 deletion framework/rules/form-patterns/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: form-patterns
description: "Перед написанием модуля управляемой формы применить навык form-patterns"
description: "Перед модулем управляемой формы применить form-patterns"
alwaysApply: true
---
# Паттерны модуля управляемой формы
Expand Down
10 changes: 6 additions & 4 deletions framework/rules/form-visual-check/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
---
name: form-visual-check
description: "После правок или скриншота формы выполнить visual-check"
description: "После правок или скриншота формы выполнить визуальную проверку"
alwaysApply: true
---
# Визуальная проверка форм

> **Триггер:** после изменения управляемой формы, при исследовании/проверке клиентской формы через TestClient/VA/web-клиент, ИЛИ после получения скриншота формы на ревью. При срабатывании — применить навыки `visual-check` (`framework/skills/tool-usage/browser-ui/visual-check/SKILL.md`) и `form-visual-requirements` (`framework/skills/bsl-practices/form-visual-requirements/SKILL.md`).
> **Триггер:** после изменения управляемой формы, при исследовании/проверке клиентской формы через VA/TestClient, ИЛИ после получения скриншота формы на ревью. При срабатывании — применить навыки `va-visual-check` (`framework/skills/tool-usage/vanessa/va-visual-check/SKILL.md`) и `form-visual-requirements` (`framework/skills/bsl-practices/form-visual-requirements/SKILL.md`).

Маршрут по умолчанию для форм 1С — Vanessa/TestClient или платформенный TestClient MCP. Визуальный скриншот обязателен: сначала пробуй проверенный VA MCP screenshot, если он реально работает в текущем окружении; иначе снимай внешний OS/noVNC screenshot видимого окна 1С. Web-клиент в `visual-check` выбирается только для browser-specific дефектов: DOM/CSS/HTML, JS console/network, web-auth/publication, viewport/pixel rendering, browser extension или browser-only file/clipboard.
Предпочтительный маршрут для форм 1С — Vanessa/TestClient и VA MCP: `connect_test_client` → реальный PID тест-клиента → `get_window_list_os` → `get_window_screenshot_os`. Детали маршрута, Linux headless X11/Xvfb рецепт для чёрных скриншотов и browser fallback описаны в `va-visual-check`.

Платформенный TestClient MCP можно использовать для структурного управления формой, если это часть VA/TestClient-сценария. Если используется browser/web-client fallback, причину, выполненные VA-шаги и остаточный риск нужно явно записать в контекст.

---
depends_on:
- visual-check
- framework/skills/tool-usage/vanessa/va-visual-check/SKILL.md
- form-visual-requirements
---
2 changes: 1 addition & 1 deletion framework/rules/framework-bootstrap/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: framework-bootstrap
description: 1C BSL Agent Development Framework — портативный само-промотирующий стаб главного потока
description: "На старте или компакте загрузить профиль оркестратора"
alwaysApply: true
---
# 1C BSL Agent Development Framework
Expand Down
2 changes: 1 addition & 1 deletion framework/rules/git-workflow/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: git-workflow
description: Гард git для агентского цикла — субагенты не коммитят; запрет удаления/git rm без явного разрешения пользователя; коммит и merge только оркестратор/пользователь. Процедура → навык git-workflow.
description: "Перед commit/delete применять git workflow guardrails"
alwaysApply: true
---
# Политика работы с Git
Expand Down
2 changes: 1 addition & 1 deletion framework/rules/infostart-kb/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: infostart-kb
description: "Перед написанием/отладкой/проектированием 1С-кода → обратиться к навыку infostart-kb"
description: "Перед 1C дизайном/кодом/отладкой проверить Infostart"
alwaysApply: true
---
# База знаний Infostart (перед разработкой 1С)
Expand Down
2 changes: 1 addition & 1 deletion framework/rules/no-direct-db-access/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: no-direct-db-access
description: Глобальный запрет прямого обращения к СУБД. Агенты работают с данными только через платформу 1С:Предприятие. Прямые запросы к СУБД допустимы только для анализа производительности и только на чтение.
description: "Данные читать/писать через платформу 1С, не СУБД"
alwaysApply: true
---

Expand Down
2 changes: 1 addition & 1 deletion framework/rules/no-manual-xml-edit/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: no-manual-xml-edit
description: Правишь 1С XML/MXL → применить навык xml-generation. Ручная правка запрещена; для агентов без PreToolUse-хука обязателен self-check через block-direct-xml-edit.py.
description: "При правке XML/MXL 1С использовать xml-generation"
alwaysApply: true
---

Expand Down
46 changes: 46 additions & 0 deletions framework/rules/predefined-elements/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
name: predefined-elements
description: "Перед новой настройкой искать предопределённое значение"
alwaysApply: true
---

# Reuse-first для настроек и предопределенных значений

> **Триггер:** задаче нужна настройка, именованное предопределенное значение, порог, флаг, код, ссылка на объект или другой параметр, который должен жить централизованно.

## Принцип

Настройки, размноженные по копиям или зашитые литералами в код, расходятся между установками и молча ломают логику. Если в проекте уже есть централизованное хранилище настроек или именованных предопределенных значений, агент обязан сначала искать значение там и использовать штатный слой доступа к нему.

## MUST

| Требование | Описание |
|-----------|----------|
| Сначала поиск | Перед созданием новой настройки или хардкодом значения найти существующее значение по бизнес-ключу через штатный механизм проекта. Нашел - переиспользовать, не плодить дубль |
| Чтение через обертки | Если в проекте есть сервисный модуль, API или БСП-обертка доступа к настройкам, использовать ее, а не прямой запрос к хранилищу |
| Запрет хардкода | Не зашивать коды, ссылки, пороги и флаги, которые должны быть управляемыми настройками. Значение должно читаться по осмысленному бизнес-ключу |
| Новый ключ только при отсутствии | Создавать новую настройку только после проверки отсутствия существующего ключа и коллизий по назначению |
| Ключ в одном месте | Строковый бизнес-ключ объявлять один раз: константа, экспортная функция или единая точка доступа. Не дублировать литерал по коду |
| Документировать назначение | Для новой настройки фиксировать назначение, формат значения, владельца логики и допустимое значение по умолчанию в артефактах задачи или проектной документации |

## SHOULD

- Если настройка нужна нескольким местам, все они читают ее через один и тот же ключ и один слой доступа.
- Если проект не имеет централизованного хранилища настроек, сначала проверить типовые или библиотечные механизмы, а не создавать локальный справочник/регистр без архитектурного решения.
- Для миграции старого хардкода сначала найти все места использования литерала и определить единый ключ, затем заменить обращения через общий API.

## Что НЕ покрывается этим правилом

- Настройки, являющиеся полноценной предметной моделью со сложной идентификацией и жизненным циклом. Для них нужен отдельный дизайн, а не key-value запись.
- Типовые механизмы хранения настроек платформы или библиотек. Их нужно переиспользовать по правилам `ssl-patterns`, если они подходят задаче.

## Связанные правила

- `search-before-write` - reuse-first для кода и готовых механизмов.
- `ssl-patterns` - переиспользование типовых и библиотечных механизмов.

---
depends_on:
- search-before-write
- ssl-patterns
---
2 changes: 1 addition & 1 deletion framework/rules/protected-paths/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: protected-paths
description: Глобальная защита путей. Категорически запрещает модификацию защищённых директорий для любых агентов и сабагентов.
description: "Перед записью или удалением проверить protected paths"
alwaysApply: true
---

Expand Down
2 changes: 1 addition & 1 deletion framework/rules/query-optimize/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: query-optimize
description: "После выявления медленного запроса применить навык query-optimize"
description: "После обнаружения медленного запроса применить optimize"
alwaysApply: true
---
# Оптимизация запросов (после выявления проблемы)
Expand Down
2 changes: 1 addition & 1 deletion framework/rules/query-patterns/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: query-patterns
description: "Перед написанием нового запроса → применить навык query-patterns"
description: "Перед новым запросом 1С применить query-patterns"
alwaysApply: true
---
# Паттерны запросов (перед написанием)
Expand Down
70 changes: 70 additions & 0 deletions framework/rules/report-discovered-issues/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
name: report-discovered-issues
description: "Найденные вне scope дефекты сообщать после задачи"
alwaysApply: true
---

# Доклад о найденных проблемах

> Агент часто видит больше, чем нужно для текущей задачи. Молчаливо проигнорированная находка остается неисправленным риском, поэтому ее нужно явно донести до пользователя.

## Принцип

Решая одну задачу, агент может найти регрессии, ошибки в смежных модулях, техдолг, антипаттерны, расхождения кода со спецификацией, проблемы производительности или безопасности. Эти находки не нужно чинить внутри текущей задачи без разрешения пользователя, но их нельзя скрывать.

## MUST

| Требование | Описание |
|-----------|----------|
| Фиксировать находки | По мере обнаружения записывать проблему в рабочий контекст, заметки задачи или раздел финального отчета |
| Не расширять scope молча | Не исправлять найденные проблемы внутри текущей задачи без явного разрешения пользователя |
| Доложить после завершения | В финальном ответе или отчете перечислить найденные проблемы, которые не относятся к выполненному scope |
| Давать конкретику | Для каждой находки указать место, суть, риск, серьезность и примерный размер исправления |
| Предложить путь | Предложить дальнейшее действие: отдельная задача, quick-fix, отложить, задокументировать или проверить дополнительно |

## Формат доклада

```markdown
## Найдено по пути

### 1. [Краткое название]
- **Где:** `path/to/file:line`
- **Что:** конкретное описание проблемы
- **Почему проблема:** последствия или риск
- **Серьезность:** критично / средне / низко
- **Усилие:** простой фикс / отдельная задача / большая работа
- **Предложение:** что сделать дальше
```

## Что докладывать обязательно

- Баги, которые могут привести к потере данных, денег, безопасности или доступности.
- Регрессии и расхождения с источником истины.
- Проблемы целостности данных.
- Краши или исключения, возможные в рабочем сценарии.
- Ошибки в тестах или инфраструктуре, которые маскируют реальный результат.

## Что можно не докладывать

- Чисто стилистические мелочи без влияния на сопровождение.
- Опечатки в комментариях.
- Абстрактные пожелания по рефакторингу без конкретного риска.

## Что НЕ делать

- Не превращать текущую задачу в уборку всего найденного.
- Не откладывать доклад "на потом".
- Не объединять разные проблемы в одну расплывчатую фразу.
- Не драматизировать и не преуменьшать: описание должно быть проверяемым.

## Связанные правила

- `agent-context-protocol` - где фиксировать рабочий контекст и найденные проблемы.
- `quick-fix` / `full-cycle` - как превращать находки в дальнейшую работу.
- `source-of-truth` - как проверять расхождения между артефактами.

---
depends_on:
- agent-context-protocol
- source-of-truth
---
Loading