You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .claude/skills/add-answer/SKILL.md
+20-1Lines changed: 20 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,6 +56,7 @@ description: "Генерация или улучшение ответа на в
56
56
Пайплайн выполняется строго по фазам. Сначала полностью финализируется русский вариант (ответ + метаданные), и только потом он дословно переносится на украинский и английский.
57
57
58
58
```
59
+
ФАЗА 0: Проверка пересечений → сверить тему с каталогом вопросов; при критическом дубле — стоп и запрос решения
59
60
ФАЗА 1: RU-ответ (.md) → создать/улучшить эталонный ответ
60
61
ФАЗА 2: RU-метаданные → tags, category, level, structure
61
62
ФАЗА 3: UKR и ENG → дословный перевод .md + метаданных на основе финального RU
@@ -64,6 +65,24 @@ description: "Генерация или улучшение ответа на в
64
65
65
66
---
66
67
68
+
### ФАЗА 0 — Проверка пересечений тем (overlap check)
69
+
70
+
Прогоняется **до** генерации/улучшения ответа. Цель — не дать двум вопросам превратиться в дубликаты друг друга. База вопросов — плотный граф связанных тем, поэтому частичные касания нормальны; ловим только **критические** дубли.
71
+
72
+
**Держи проверку дешёвой: сравнивай метаданные, а не тексты ответов.** Тема каждого вопроса исчерпывающе описана полями `name` + `tags` + `category` + `structure` в `src/assets/content/rus/questions.ts`. Этого достаточно, чтобы поймать смысловой дубль. **Не читай для этого `.md`-файлы других вопросов** — это лишние сотни тысяч токенов без пользы.
73
+
74
+
1.**Собери компактный каталог** из `rus/questions.ts`: для каждого вопроса — `id`, `name`, `tags`, `category` и пункты `structure[].name`. Достаточно одного прохода по файлу (например, `grep -nE "id:|name:|tags:|category:" src/assets/content/rus/questions.ts` + беглый просмотр `structure` соседей по теме). Целевой вопрос из каталога исключи.
75
+
2.**Сравни целевую тему с каталогом** по смыслу (не по точному совпадению строк): та же концепция под другим названием, тот же набор `tags`, пункты `structure`, которые пересказывают ядро другого вопроса.
76
+
3.**Классифицируй каждое совпадение:**
77
+
-**Критическое** — стержневая концепция совпадает с другим вопросом, ИЛИ ≳ половины пунктов `structure` целевого вопроса дублируют ядро другого. Два ответа будут в основном пересказывать друг друга.
78
+
-**Соседнее (норма)** — общие теги/категория, но угол вопроса другой (например, «замыкания» vs «цепочка областей видимости»). Это ожидаемо, блокировать не нужно.
79
+
4.**Если есть критические пересечения — СТОП.** Не генерируй ответ. Покажи пользователю компактный отчёт и **дождись решения**:
80
+
- какие вопросы пересекаются (`id` + `name`);
81
+
- что именно дублируется (конкретные пункты `structure` / концепция);
82
+
- рекомендация с вариантами: **слить** вопросы в один; **сузить** охват текущего так, чтобы он дополнял, а не повторял (и явно разделить, какой вопрос владеет какой под-темой); либо **оставить оба с кросс-ссылкой** «см. также», сознательно не переобъясняя общую часть во вторичном.
83
+
- Дальше действуй по выбору пользователя.
84
+
5.**Если только соседние пересечения** — не останавливайся. Зафиксируй их и упомяни одной строкой в отчёте ФАЗЫ 4 (при уместности предложи кросс-ссылку), затем продолжай ФАЗУ 1.
85
+
67
86
### ФАЗА 1 — Русскоязычный ответ (эталон)
68
87
69
88
1.**Поиск вопроса**: Найди указанный вопрос (по ID или названию) в `src/assets/content/rus/questions.ts`.
@@ -120,7 +139,7 @@ description: "Генерация или улучшение ответа на в
120
139
121
140
### ФАЗА 4 — Отчёт
122
141
123
-
Кратко сообщи пользователю итог по каждому языку: создан новый файл ответа или улучшен существующий; какие метаданные (`tags` / `category` / `level` / `structure`) были изменены и почему. Одним компактным блоком, без воды.
142
+
Кратко сообщи пользователю итог по каждому языку: создан новый файл ответа или улучшен существующий; какие метаданные (`tags` / `category` / `level` / `structure`) были изменены и почему. Одним компактным блоком, без воды. Если в ФАЗЕ 0 нашлись **соседние** пересечения — добавь строку с их `id` и, при уместности, предложением кросс-ссылки.
0 commit comments