diff --git a/plugins/222a-seo-audit/commands/222a-issue.md b/plugins/222a-seo-audit/commands/222a-issue.md new file mode 100644 index 0000000..3c15e0b --- /dev/null +++ b/plugins/222a-seo-audit/commands/222a-issue.md @@ -0,0 +1,41 @@ +--- +description: Разбор одной проблемы из аудита (URL + рекомендации + evidence) +argument-hint: " [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"`. diff --git a/plugins/222a-seo-audit/commands/222a-status.md b/plugins/222a-seo-audit/commands/222a-status.md new file mode 100644 index 0000000..cb688ce --- /dev/null +++ b/plugins/222a-seo-audit/commands/222a-status.md @@ -0,0 +1,25 @@ +--- +description: Статус последнего или указанного аудита +argument-hint: "[audit_run_id]" +--- + +Пользователь хочет посмотреть статус аудита. Аргумент: `$ARGUMENTS` + +## Шаги + +1. **Определить audit_run_id:** + - Если аргумент задан — используй его. + - Если пустой — вызови `list_audits` и возьми последний (самый свежий) аудит. Если их нет — сообщи «нет аудитов, запустите `/222a-audit `». + +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 `, `/222a-report`, `/222a-progress` + - Если running — предложи перезапустить `/222a-status` через минуту