feat(plugin): команды /222a-status и /222a-issue

This commit is contained in:
Alex 2026-05-22 19:17:57 +02:00
parent abca4c788b
commit 006f3c0082
2 changed files with 66 additions and 0 deletions

View File

@ -0,0 +1,41 @@
---
description: Разбор одной проблемы из аудита (URL + рекомендации + evidence)
argument-hint: "<issue_code> [audit_run_id]"
---
Пользователь хочет разобрать конкретную проблему. Аргументы: `$ARGUMENTS` (первый — issue_code, опциональный второй — audit_run_id).
## Шаги
1. **Распарсить аргументы:**
- Первое слово — `issue_code` (например `seo.duplicate_title`, `tech.internal_broken_link`, `perf.no_compression`).
- Второе слово (если есть) — `audit_run_id`.
- Если `issue_code` пустой — попроси пользователя указать.
- Если `audit_run_id` пустой — возьми последний completed аудит через `list_audits`.
2. **Получить страницы с проблемой:**
- Вызови `get_issue_pages` с `audit_run_id` и `issue_code`.
- Покажи список URL с их статусом (HTTP code, title если есть).
3. **Получить рекомендации:**
- Вызови `get_issue_remediation` с `audit_run_id` и `issue_code`.
- Покажи рекомендации.
4. **Разобрать evidence:**
- В ответах `get_issue_pages` инспектируй `evidence_type` и `evidence[]`:
- GSC CTR issues → `gsc_page_metrics`
- Yandex position drops → `yandex_webmaster_queries`
- Site-level sitemap → `sitemap_discovery`
- duplicate_h1 → `duplicate_h1_groups`
- near_duplicate → `near_duplicate_groups`
- URL issues → `url_samples` / `mixed_case_groups`
- hreflang → `hreflang_*`
- Page-level checks (schema, og, viewport, redirect_chain, perf.*, viewport_bad, js_errors, content.missing_*, tap_targets_small, font_too_small, heading_hierarchy_broken) → per-page `data` с конкретной находкой.
- Покажи пользователю самые важные эвиденсы.
5. **Особый случай `tech.internal_broken_link` vs `tech.target_not_crawled`:**
- Если код `tech.target_not_crawled`НЕ называй это «битыми ссылками». Это страницы, обнаруженные но не закраленные (по `max_pages_cap` или `robots_disallowed`).
- Рекомендация: увеличить `max_pages` (особенно если `top_uncrawled_targets[].incoming_count` высокий — это популярные URL в навигации/футере) или поправить robots.txt.
6. **Сохранить артефакт:**
- Если есть `mcp.write` — вызови `save_audit_artifact` с типом `seo_recommendations` или `developer_tasks` (зависит от природы проблемы), `source="claude-code"`.

View File

@ -0,0 +1,25 @@
---
description: Статус последнего или указанного аудита
argument-hint: "[audit_run_id]"
---
Пользователь хочет посмотреть статус аудита. Аргумент: `$ARGUMENTS`
## Шаги
1. **Определить audit_run_id:**
- Если аргумент задан — используй его.
- Если пустой — вызови `list_audits` и возьми последний (самый свежий) аудит. Если их нет — сообщи «нет аудитов, запустите `/222a-audit <url>`».
2. **Получить статус:**
- Вызови `get_audit_status` с этим `audit_run_id`.
3. **Показать пользователю:**
- `status` (running/completed/failed/cancelled)
- Если running — текущий этап и прогресс (если поле есть в ответе)
- Если completed — дата завершения, краткие метрики (issue counts из `get_audit_context.summary` если нужно — отдельным вызовом)
- Если failed/cancelled — причина
4. **Подсказки:**
- Если completed — предложи `/222a-issue <code>`, `/222a-report`, `/222a-progress`
- Если running — предложи перезапустить `/222a-status` через минуту