[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MX2H6TF2VW75PCPGWR2SKZ":3,"skill-same:01M6MX2H6TF2VW75PCPGWR2SKZ":69},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":62},"01M6MX2H6TF2VW75PCPGWR2SKZ","skills-check",null,"Skills Check — smoke-тесты интеграций из project-index.md. Используй для проверки что pcurl-профили и URL всех data-source скиллов ещё живы.","vmkteam\u002Fclaude-plugins","vmkteam","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F55537877?v=4","01M6MWYAFDCD63N1M8MBJA6T0S","01M6MWYAKHK0QCPR0Y7AW5SH0R",7,"MIT","https:\u002F\u002Fgithub.com\u002Fvmkteam\u002Fclaude-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fdeveloper\u002Fskills\u002Fskills-check\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31],"check","skills check","index","data","Bash","smoke","probe","project","false","URL","data-source","true","source","fork","2026-11-10 10:12:30",false,"---\nname: skills-check\ndescription: \"Skills Check — smoke-тесты интеграций из project-index.md. Используй для проверки что pcurl-профили и URL всех data-source скиллов ещё живы.\"\nargument-hint: \"[skill...] [--verbose]\"\ndisable-model-invocation: true\ncontext: fork\nbackground: false\neffort: low\nallowed-tools:\n  - \"Bash(pcurl:*)\"\n  - \"Bash(bash ${CLAUDE_SKILL_DIR}\u002Fprobe.sh:*)\"\n---\n\n# \u002Fskills-check — smoke-тесты интеграций\n\nБыстрая проверка, что внешние системы из `project-index.md` (auto-memory проекта) и `~\u002F.claude\u002Fmemory\u002Finfra-{group}.md` отвечают на канонические запросы data-source скиллов. Нужна, когда URL или API провайдеров могли измениться, токены истечь или профили pcurl разойтись с конвенциями скиллов.\n\n## Использование\n\n```\n\u002Fskills-check                  # все настроенные интеграции\n\u002Fskills-check youtrack gitlab  # только перечисленные\n\u002Fskills-check --verbose        # плюс проверка формы ответа\n```\n\n## Пробы\n\n| Секция | Проба (GET) | Заголовок | check для `--verbose` |\n|--------|-------------|-----------|------------------------|\n| YouTrack | `https:\u002F\u002F{yt_host}\u002Fapi\u002Fadmin\u002Fprojects?fields=id&$top=1` | `-` | `type == \"array\"` |\n| GitLab | `https:\u002F\u002F{gl_host}\u002Fapi\u002Fv4\u002Fprojects\u002F{gl_project_id}?simple=true` | `-` | `.id != null` |\n| Sentry | `https:\u002F\u002F{sentry_host}\u002Fapi\u002F0\u002Forganizations\u002F{org}\u002Fprojects\u002F?per_page=1` | `-` | `type == \"array\"` |\n| Grafana | `https:\u002F\u002F{grafana_host}\u002Fapi\u002Fdatasources` | `-` | `type == \"array\"` |\n| Prometheus (Grafana proxy) | `https:\u002F\u002F{grafana_host}\u002Fapi\u002Fdatasources\u002Fuid\u002F{prom_uid}\u002Fresources\u002Fapi\u002Fv1\u002Flabels` | `-` | `.status == \"success\"` |\n| Loki (Grafana proxy) | `https:\u002F\u002F{grafana_host}\u002Fapi\u002Fdatasources\u002Fuid\u002F{loki_uid}\u002Fresources\u002Flabels` | `-` | `.status == \"success\"` |\n| Kibana \u002F OpenSearch | `https:\u002F\u002F{kibana_host}\u002Fapi\u002Fstatus` | `osd-xsrf: true` | `-` |\n| Nomad | `https:\u002F\u002F{nomad_host}\u002Fv1\u002Fstatus\u002Fleader` | `-` | `-` |\n| API dev\u002Fprod | `https:\u002F\u002F{api_host}\u002F{rpc_endpoint}?smd` | `-` | `.services != null` |\n\ncheck нужен, потому что прокси или SSO могут вернуть HTTP 200 со страницей логина вместо JSON.\n\n## Порядок\n\n1. Прочитай `project-index.md` и infra-файл. Если project-index нет — предложи пользователю запустить `\u002Fonboard` и остановись.\n2. Собери строки `name\u003CTAB>profile\u003CTAB>url\u003CTAB>header\u003CTAB>check` по таблице для настроенных секций (или только перечисленных в аргументах). Секции, которых нет в project-index, в таблицу попадут как `SKIP`.\n3. Передай строки скрипту (с `--verbose`, если он указан) — он сам проверит профили по `pcurl show`, выполнит GET параллельно (до 6 одновременно), в `--verbose` проверит форму ответа выражением check, не выводя тело (в нём может быть PII), и напечатает таблицу:\n   ```bash\n   bash ${CLAUDE_SKILL_DIR}\u002Fprobe.sh [--verbose] \u003C\u003C'EOF'\n   youtrack\t@{yt_profile}\thttps:\u002F\u002F{yt_host}\u002Fapi\u002Fadmin\u002Fprojects?fields=id&$top=1\t-\ttype == \"array\"\n   kibana\t@{kibana_profile}\thttps:\u002F\u002F{kibana_host}\u002Fapi\u002Fstatus\tosd-xsrf: true\t-\n   EOF\n   ```\n4. Выведи таблицу скрипта, добавь SKIP-строки и итог.\n\n## Интерпретация\n\nСкрипт уже подписывает типичные причины: «неожиданный ответ» в `--verbose` — HTTP-код успешный, но ответ не того формата (страница логина прокси, другой API); 401\u002F403 — профиль без доступа или истёкший токен (пользователь обновляет профиль сам через `pcurl add`), 404 — сменился проект, uid или путь API (обновить скилл или project-index), 5xx — проблема провайдера (повторить позже, скилл не чинить), 000 — таймаут, DNS или сеть, `NO-PROFILE` — профиля нет в `pcurl show`.\n\n## Правила\n\n- Только GET: проверка ничего не создаёт и не меняет\n- Вывод — простой текст, без цветов, чтобы его можно было скопировать в CI или тикет\n\n## Когда запускать\n\n- После апгрейда Grafana, GitLab или YouTrack (может измениться API)\n- После смены профилей pcurl или ротации токенов\n- Сразу после `\u002Fonboard`\n- Периодически, например раз в месяц\n","# \u002Fskills-check — smoke-тесты интеграций\n\nБыстрая проверка, что внешние системы из `project-index.md` (auto-memory проекта) и `~\u002F.claude\u002Fmemory\u002Finfra-{group}.md` отвечают на канонические запросы data-source скиллов. Нужна, когда URL или API провайдеров могли измениться, токены истечь или профили pcurl разойтись с конвенциями скиллов.\n\n## Использование\n\n```\n\u002Fskills-check                  # все настроенные интеграции\n\u002Fskills-check youtrack gitlab  # только перечисленные\n\u002Fskills-check --verbose        # плюс проверка формы ответа\n```\n\n## Пробы\n\n| Секция | Проба (GET) | Заголовок | check для `--verbose` |\n|--------|-------------|-----------|------------------------|\n| YouTrack | `https:\u002F\u002F{yt_host}\u002Fapi\u002Fadmin\u002Fprojects?fields=id&$top=1` | `-` | `type == \"array\"` |\n| GitLab | `https:\u002F\u002F{gl_host}\u002Fapi\u002Fv4\u002Fprojects\u002F{gl_project_id}?simple=true` | `-` | `.id != null` |\n| Sentry | `https:\u002F\u002F{sentry_host}\u002Fapi\u002F0\u002Forganizations\u002F{org}\u002Fprojects\u002F?per_page=1` | `-` | `type == \"array\"` |\n| Grafana | `https:\u002F\u002F{grafana_host}\u002Fapi\u002Fdatasources` | `-` | `type == \"array\"` |\n| Prometheus (Grafana proxy) | `https:\u002F\u002F{grafana_host}\u002Fapi\u002Fdatasources\u002Fuid\u002F{prom_uid}\u002Fresources\u002Fapi\u002Fv1\u002Flabels` | `-` | `.status == \"success\"` |\n| Loki (Grafana proxy) | `https:\u002F\u002F{grafana_host}\u002Fapi\u002Fdatasources\u002Fuid\u002F{loki_uid}\u002Fresources\u002Flabels` | `-` | `.status == \"success\"` |\n| Kibana \u002F OpenSearch | `https:\u002F\u002F{kibana_host}\u002Fapi\u002Fstatus` | `osd-xsrf: true` | `-` |\n| Nomad | `https:\u002F\u002F{nomad_host}\u002Fv1\u002Fstatus\u002Fleader` | `-` | `-` |\n| API dev\u002Fprod | `https:\u002F\u002F{api_host}\u002F{rpc_endpoint}?smd` | `-` | `.services != null` |\n\ncheck нужен, потому что прокси или SSO могут вернуть HTTP 200 со страницей логина вместо JSON.\n\n## Порядок\n\n1. Прочитай `project-index.md` и infra-файл. Если project-index нет — предложи пользователю запустить `\u002Fonboard` и остановись.\n2. Собери строки `name\u003CTAB>profile\u003CTAB>url\u003CTAB>header\u003CTAB>check` по таблице для настроенных секций (или только перечисленных в аргументах). Секции, которых нет в project-index, в таблицу попадут как `SKIP`.\n3. Передай строки скрипту (с `--verbose`, если он указан) — он сам проверит профили по `pcurl show`, выполнит GET параллельно (до 6 одновременно), в `--verbose` проверит форму ответа выражением check, не выводя тело (в нём может быть PII), и напечатает таблицу:\n   ```bash\n   bash ${CLAUDE_SKILL_DIR}\u002Fprobe.sh [--verbose] \u003C\u003C'EOF'\n   youtrack\t@{yt_profile}\thttps:\u002F\u002F{yt_host}\u002Fapi\u002Fadmin\u002Fprojects?fields=id&$top=1\t-\ttype == \"array\"\n   kibana\t@{kibana_profile}\thttps:\u002F\u002F{kibana_host}\u002Fapi\u002Fstatus\tosd-xsrf: true\t-\n   EOF\n   ```\n4. Выведи таблицу скрипта, добавь SKIP-строки и итог.\n\n## Интерпретация\n\nСкрипт уже подписывает типичные причины: «неожиданный ответ» в `--verbose` — HTTP-код успешный, но ответ не того формата (страница логина прокси, другой API); 401\u002F403 — профиль без доступа или истёкший токен (пользователь обновляет профиль сам через `pcurl add`), 404 — сменился проект, uid или путь API (обновить скилл или project-index), 5xx — проблема провайдера (повторить позже, скилл не чинить), 000 — таймаут, DNS или сеть, `NO-PROFILE` — профиля нет в `pcurl show`.\n\n## Правила\n\n- Только GET: проверка ничего не создаёт и не меняет\n- Вывод — простой текст, без цветов, чтобы его можно было скопировать в CI или тикет\n\n## Когда запускать\n\n- После апгрейда Grafana, GitLab или YouTrack (может измениться API)\n- После смены профилей pcurl или ротации токенов\n- Сразу после `\u002Fonboard`\n- Периодически, например раз в месяц\n",{"name":5,"effort":37,"context":31,"background":33,"description":7,"allowed-tools":38,"argument-hint":41,"disable-model-invocation":42},"low",[39,40],"Bash(pcurl:*)","Bash(bash ${CLAUDE_SKILL_DIR}\u002Fprobe.sh:*)","[skill...] [--verbose]",true,"master","8f3147ce24a1a470d9aaa02aa775d7797d621d95","plugins\u002Fdeveloper\u002Fskills\u002Fskills-check",1,"https:\u002F\u002Fgithub.com\u002Fvmkteam\u002Fclaude-plugins","https:\u002F\u002Fgithub.com\u002Fvmkteam","2026-11-05 00:26:25",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":42},[52,55,58],{"tool":53,"command":54},"npx","npx skills add vmkteam\u002Fclaude-plugins --skill skills-check",{"tool":56,"command":57},"bunx","bunx skills add vmkteam\u002Fclaude-plugins --skill skills-check",{"tool":59,"command":60},"pnpm","pnpm dlx skills add vmkteam\u002Fclaude-plugins --skill skills-check","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fvmkteam\u002Fclaude-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fdeveloper\u002Fskills\u002Fskills-check\u002FSKILL.md",[63],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"probe.sh","SCRIPT","脚本",3326,"https:\u002F\u002Fgithub.com\u002Fvmkteam\u002Fclaude-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fdeveloper\u002Fskills\u002Fskills-check\u002Fprobe.sh",[70,81,93,108,125,137],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":32},"01M6MX3A8MZJBTMMK6WMY35FYH","zenrpc","Zenrpc — справочник по JSON-RPC 2.0 серверу для Go. Используй при создании и редактировании RPC-сервисов.","https:\u002F\u002Fgithub.com\u002Fvmkteam\u002Fclaude-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fdeveloper\u002Fskills\u002Fzenrpc\u002FSKILL.md",[],[72,77,78,79,80],"go","rpc","json","json-rpc",{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":32},"01M6MX36PEA0NSHCCRF5GGVVTZ","youtrack","YouTrack — задачи через REST API и pcurl. Используй для поиска issues, создания, обновления описаний, смены assignee\u002Fstage\u002Fприоритета, логирования времени и работы с комментариями.","https:\u002F\u002Fgithub.com\u002Fvmkteam\u002Fclaude-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fdeveloper\u002Fskills\u002Fyoutrack\u002FSKILL.md",[],[83,88,89,90,91,92],"issues","REST","api","stage","rest api",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":32},"01M6MX322TD9HQPCYSNTFB4HBA","topsrv","topsrv — метрики, алерты, CVE и HTTP-логи серверов проекта через публичный JSON-RPC API app.topsrv.io. Используй, когда нужна загрузка CPU, памяти или диска хоста, метрики PostgreSQL\u002Fnginx\u002Fangie агента topsrv (`topsrv_*`), какие алерты горят, уязвимые пакеты на серверах или кто (боты, сети, IP) нагружает сайт.","https:\u002F\u002Fgithub.com\u002Fvmkteam\u002Fclaude-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fdeveloper\u002Fskills\u002Ftopsrv\u002FSKILL.md",[],[95,100,90,22,79,101,102,103,104,80,105,106,107,78],"nginx","ip","app","io","CPU","cve","http","postgresql",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":119,"publishedAt":32},"01M6MX2XFXCHNRPPW6WYZ15BXN","testing","Testing — используй всегда, когда пишешь или правишь Go-тесты (*_test.go), в том числе по сценариям Given\u002FWhen\u002FThen из spec: фреймворк как в соседних файлах, префикс TestDB, фабрики pkg\u002Fdb\u002Ftest, реальная БД без моков. Также при настройке TestMain\u002Ftest-short и когда тесты падают в gate, но проходят локально.","https:\u002F\u002Fgithub.com\u002Fvmkteam\u002Fclaude-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fdeveloper\u002Fskills\u002Ftesting\u002FSKILL.md",[114],{"categoryNo":115,"categoryName":116,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[110,120,77,121,122,123,124],"spec","test","short","gate","db",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":32},"01M6MX2P8RFYPV4EXRMVW6KAN7","solve","Solve — полный цикл решения задачи из YouTrack: preflight → анализ → план → реализация → ревью → коммит. Используй при любой YouTrack-задаче (`\u002Fsolve PLF-819`); флаг `--fast` сокращает HITL для тривиальных багфиксов.","https:\u002F\u002Fgithub.com\u002Fvmkteam\u002Fclaude-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fdeveloper\u002Fskills\u002Fsolve\u002FSKILL.md",[],[127,132,133,134,135,136,83],"fast","preflight","task","hitl","id",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":32},"01M6MX2E5FRMD4NGJGS6CWCP1H","sentry","Sentry — мониторинг ошибок (issues, events, releases) через REST API. Используй когда нужно найти ошибку по ключевым словам, разобрать stack trace, проверить что релиз поднялся или сопоставить ошибку с коммитом.","https:\u002F\u002Fgithub.com\u002Fvmkteam\u002Fclaude-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fdeveloper\u002Fskills\u002Fsentry\u002FSKILL.md",[],[139,90,89,88,22,144,92,145,146,147],"releases","events","stack","trace"]