diff --git a/.opencode/skills/audit/SKILL.md b/.opencode/skills/audit/SKILL.md index 7d3e32e..f16da78 100644 --- a/.opencode/skills/audit/SKILL.md +++ b/.opencode/skills/audit/SKILL.md @@ -114,19 +114,21 @@ Severity: 1. Load `issue` skill via `skill({ name: "issue" })`. 2. Сформируй issue body (8 headings: ## Контекст, ## Задача, ## Контракты, - ## Инварианты, ## Граничные случаи, ## Вне scope, ## Критерии приемки). + ## Инварианты, ## Граничные случаи, ## Влияние на связанные компоненты, + ## Вне scope, ## Критерии приемки). - Контекст: проблема из audit () — : . Путь: . Источник: . Severity: . - Задача: что починить (конкретно, с путями к файлам). - Контракты: конкретные изменения (что должно стать после фикса). - Инварианты: что НЕ ломать при фиксе. - Граничные случаи: edge cases при фиксе. + - Влияние на связанные компоненты: зависящие audit-категории/оракулы/промпты; paired updates; «нет связанных компонентов» для тривиальных фиксов. - Вне scope: что НЕ делаем в этом issue. - Критерии приемки: чек-лист (включая `project-status` проходит эту категорию после фикса). 3. `create-issue({ title: "fix(): ", body, labels: ["tech-debt", "from-audit"] })` tool (НЕ raw `gh issue create` — заблокирован deny). tool валидирует - conventional title + 7 headings + Cyrillic. + conventional title + 8 headings + Cyrillic. 4. Верни: issue URL (или ошибку валидации для оркестратора). Если gh недоступен → верни: "gh unavailable: ". НЕ retry, НЕ fallback. diff --git a/.opencode/skills/bug-discovery/SKILL.md b/.opencode/skills/bug-discovery/SKILL.md index 119abfd..5ddafab 100644 --- a/.opencode/skills/bug-discovery/SKILL.md +++ b/.opencode/skills/bug-discovery/SKILL.md @@ -10,6 +10,6 @@ If a bug is found during work that is outside the scope of the current task: 1. Check `gh issue list` for duplicates. 2. Create a GitHub issue via `create-issue` tool (NOT raw `gh issue create`). 3. Title: `fix(scope): short description` in English. -4. Body: `## Контекст` / `## Задача` / `## Контракты` / `## Инварианты` / `## Граничные случаи` / `## Вне scope` / `## Критерии приемки` (in Russian). +4. Body: `## Контекст` / `## Задача` / `## Контракты` / `## Инварианты` / `## Граничные случаи` / `## Влияние на связанные компоненты` / `## Вне scope` / `## Критерии приемки` (in Russian). 5. Continue the current task. Do NOT fix the bug yourself. 6. Report to orchestrator: "Created issue #N: ...". \ No newline at end of file diff --git a/.opencode/skills/issue/SKILL.md b/.opencode/skills/issue/SKILL.md index d06e234..50d054e 100644 --- a/.opencode/skills/issue/SKILL.md +++ b/.opencode/skills/issue/SKILL.md @@ -36,6 +36,9 @@ Issue должно содержать всё необходимое, чтобы ## Граничные случаи [Что при ошибках: невалидный вход, отказ внешнего сервиса, превышение лимита] +## Влияние на связанные компоненты +[Связанные файлы/оракулы/агенты/промпты/валидаторы; paired updates; «нет связанных компонентов» для тривиальных задач] + ## Вне scope [Что НЕ делаем в этой итерации] @@ -67,8 +70,8 @@ Issue создаёт **subagent** (general type), а не основной аг **Subagent (полная ответственность):** 1. Загрузи навык `issue` 2. Собери контекст — прочитай файлы из intent summary, пойми задачу, оцени объём (правило дробления ниже) -3. Составь self-contained body по шаблону (Контекст → Задача → Контракты → Инварианты → Граничные случаи → Вне scope → Критерии приемки) -4. Запусти `create-issue({ title: "...", body: "...", labels: ["..."] })` tool (НЕ raw `gh issue create` — заблокирован deny; tool валидирует conventional title format и headings `## Контекст`/`## Задача`/`## Контракты`/`## Инварианты`/`## Граничные случаи`/`## Вне scope`/`## Критерии приемки`) +3. Составь self-contained body по шаблону (Контекст → Задача → Контракты → Инварианты → Граничные случаи → Влияние на связанные компоненты → Вне scope → Критерии приемки) +4. Запусти `create-issue({ title: "...", body: "...", labels: ["..."] })` tool (НЕ raw `gh issue create` — заблокирован deny; tool валидирует conventional title format и headings `## Контекст`/`## Задача`/`## Контракты`/`## Инварианты`/`## Граничные случаи`/`## Влияние на связанные компоненты`/`## Вне scope`/`## Критерии приемки`) 5. Верни URL созданного issue основному агенту Main agent НЕ пишет body и НЕ запускает `create-issue` — всё через subagent. Это согласовано с `run-pipeline` skill (Phase 0: "через subagent с `issue` skill") и `AGENTS.md` (Dev Workflow, step 2: "delegate to `task` subagent"). @@ -101,6 +104,10 @@ Main agent НЕ пишет body и НЕ запускает `create-issue` — в - Кеш содержит устаревший формат → invalidate, пересчитать - Конкурентные запросы на одно видео → первый пишет в кеш, последующие берут из кеша +## Влияние на связанные компоненты +- AnalysisController зависит от AnalysisService — без изменений (API сохранён) +- «Нет связанных компонентов» для тривиальных задач + ## Вне scope - ❌ Кеширование субтитров (отдельная задача) - ❌ Инвалидация по времени просмотра видео @@ -132,9 +139,10 @@ create-issue({ title: "type(scope): description", body: "...", labels: ["