2026 Cursor Agent Skills — полное руководство: SKILL.md, матрица Skill vs Rule и удалённый Mac 7×24
Если в каждом новом чате Cursor вы снова вставляете «сначала тесты, потом commit, на production — второе подтверждение», проблема не в модели — у вас нет версионируемого playbook в репозитории, который переживает смену треда и модели. В 2026 Cursor, Claude Code и OpenClaw сходятся на agentskills.io: переиспользуемые процедуры в SKILL.md с lazy-load по релевантности задачи. Ниже — матрица Skill vs Rule, трёхуровневая загрузка, пять шагов создания и инженерный аргумент, почему 7×24 gateway для OpenClaw/Hermes не должен жить на засыпающем MacBook.
1. Три боли: prompt loop, context bloat, нет git
Агенты уже пишут diff, дергают MCP и открывают PR. На растущих командах повторяются одни и те же anti-patterns:
- Prompt loop. Каждый инженер заново формулирует deploy-checklist; смена модели или треда — знание обнуляется.
- Context bloat. Весь runbook в system prompt съедает token budget, который нужен для кода — на больших monorepo это видно по счёту API.
- Нет git для ops-знаний. Устные правила не проходят code review; onboarding = «спроси Васю».
Agent Skill — специализированный playbook, который подгружается в нужный момент: не always-on как Rule, не одноразовый paste как prompt. Для SRE-мышления это ближе к runbook-as-code, чем к «магическому промпту».
Типичный кейс: в треде осталось «не логировать токены в stdout». Через месяц другой разработчик с другой моделью это не увидит. Skill log-redaction-deploy с description вроде «production deploy, prod release, PII в логах» делает поведение воспроизводимым — не замена compliance, но traceability лучше, чем у чата.
Если вы уже используете MCP для GitHub Issues, следующий логичный шаг — skill, который описывает: «сначала прочитай acceptance criteria в issue, потом только трогай код». Без skill агент часто прыгает сразу в diff; с skill — вы получаете повторяемый workflow, который можно A/B-тестировать по метрикам «лишних итераций review».
2. Skill vs Rule: матрица
Rules = рельсы безопасности и стиля. Skills = SOP на сложные операции. Не смешивайте: иначе либо раздуете контекст, либо потеряете always-on guardrails.
| Ось | Rule | Skill |
|---|---|---|
| Когда грузится | Всю сессию | On-demand по задаче |
| Что внутри | naming, no force push, git safety | staging deploy, PR flow, security audit, openclaw doctor layers |
| Token cost | Фиксированный overhead | Только при активации; script stdout вместо полного исходника |
| Аналогия | README для новичка | Runbook release manager |
| MCP | Не оркестрирует API | Задаёт порядок вызова tool chain |
MCP — провод к GitHub/Jira/облаку. Skill — state machine «когда дергать провод». Skill create-pr: git status → branch → push → gh pr create; Rule параллельно бьёт по рукам за --force на main.
3. Дерево каталогов и SKILL.md
В Cursor — .cursor/skills/; для Claude Code / Gemini CLI часто .agents/skills/. Один skill = одна папка + обязательный SKILL.md:
.cursor/skills/deploy-staging/
├── SKILL.md
├── scripts/
│ └── validate.py
├── references/
└── assets/
YAML frontmatter: минимум name (lowercase + hyphen, = имя папки) и description. description = routing key: при старте агент индексирует все name+description и решает, релевантен ли skill. Опции: paths (glob), disable-model-invocation: true (только ручной /skill-name).
Не храните API keys в markdown — только ссылки на CI secrets или Keychain. Длинные OWASP-чеклисты — в references/, не в теле skill. name меняйте редко; тюньте description после каждого false positive в реальной сессии.
Минимальный skeleton frontmatter для staging (тело — numbered steps ниже):
---
name: deploy-staging
description: Когда пользователь упоминает staging deploy, preview release, go-live non-prod.
paths: apps/**, infra/staging/**
---
# Staging deploy
1. Проверить branch и последний CI status.
2. Запустить scripts/validate.py; exit != 0 → stop.
3. deploy.sh staging только после явного confirm пользователя.
4. Progressive load и триггеры
- L1 Discovery. Индекс name+description, минимальный footprint.
- L2 Activation. Полный body
SKILL.md+ пошаговое исполнение. - L3 On demand.
references/по запросу;scripts/отдают stdout/stderr, не весь .py в контекст.
Триггеры: auto (модель), slash (/deploy-staging), @attach (@deploy-staging). В monorepo вложенные .cursor/skills/ ограничивают blast radius — mobile-команда не триггерит backend-deploy skill.
L3 — как lazy import в коде: не тащите 200-строчный checklist, пока пользователь не сказал «deep audit». Экономия токенов на длинных сессиях ощутима.
Slash-команда /deploy-staging полезна, когда auto-routing слишком агрессивен: вы явно просите playbook. @deploy-staging прикрепляет skill как контекст без немедленного исполнения — удобно для «прочитай процедуру и спроси, чего не хватает». Комбинируйте с Rule, запрещающей commit без тестов.
5. Пять шагов до первого skill
- Single responsibility. «staging deploy», не «вся ops».
- Папка + SKILL.md. Cursor 2.4+:
/create-skillдля скелета — всё равно ревьюите diff. - description = trigger spec. «Когда пользователь говорит staging deploy, preview, go-live non-prod» — не «skill про deploy».
- Gather → Act → Verify. Контекст → скрипт → healthcheck/log line как proof.
- Regression. Разные формулировки; сузить
pathsили manual-only на prod.
Legacy .cursorrules → /migrate-to-skills, иначе двойная правда. Day-one playbook: skill pr-smoke на тестовом репо → проверка triggers → перенос в monorepo → CODEOWNERS на .cursor/skills/.
В monorepo с десятками пакетов skill без paths — приглашение к chaos: backend-skill срабатывает на «deploy» в mobile-чате. Сужайте glob до services/billing/** или apps/ios/**. Это дешевле, чем потом объяснять stakeholders, почему агент «сам» тронул prod.
Hermes документирует skill self-evolution: после удачных прогонов агент дописывает playbook — экономия токенов до ~38% на повторяющихся workflow, если baseline skill стабилен. Cursor skills не магия: тот же принцип — версионировать, ревьюить diff в git, не пускать самоэволюцию в prod без human gate.
6. description, edge cases, hygiene
При code review skill-diff смотрите так же придирчиво, как на GitHub Actions workflow: изменилась description — проверьте false positives на staging; добавился scripts/deploy.sh — security review на shell injection и hardcoded paths.
- Progressive disclosure. Core < ~500 строк; схемы в
references/. - Why, not только what. «validate.py перед deploy, иначе половина env vars — сервис в зомби-состоянии» снижает skip шагов.
- Один термин — одно действие. Не смешивайте «деплой» и «релиз» как синонимы в одном skill.
- Failure paths. exit != 0 → rollback? кого пинговать? — иначе агент напишет «успех» на красном CI. Логируйте exit code в skill output для postmortem.
- Secrets. Только через CI/Keychain; skill ссылается на hook, не на plaintext key.
Интеграция с OpenClaw: skill может требовать после openclaw update цепочку openclaw doctor --fix → openclaw gateway status → channels status --probe. Это те же шаги, что в наших gateway runbooks, но auto-routed когда в Telegram пишут «бот умер». Hermes mirror: hermes doctor перед gateway setup.
WSL2 на Windows для gateway — компромисс: часть macOS-native skills не переносится; для Apple-ecosystem delivery (TestFlight, codesign, browser automation) remote Mac часто единственный честный host. VPS Linux оставьте для stateless API bots без GUI.
7. agentskills.io и экосистема 2026
agentskills.io — открытый формат; Cursor Marketplace ставит Rules+Skills+MCP пачкой. Из community: addyosmani/agent-skills, Vercel frontend audit packs, плюс наши ops-playbooks вроде зонда каналов OpenClaw.
Глобально: ~/.cursor/skills/. Per-repo: .cursor/skills/. Для gateway вне IDE (Hermes skills/, OpenClaw plugins) — один git-репозиторий, sync на prod через SFTP/rsync: single source of truth для IDE и daemon.
Формат переносим между агентами — файлы ваши, не lock-in в чужом облаке промптов. Для архитектурного комитета это аргумент против «библиотеки инструкций» без экспорта.
8. PR skill, agent loop, remote Mac
PR skill: фиксированный pipeline git → gh. OpenClaw/Hermes: gateway skills на закрытом MacBook = broken long-poll; конфиг и skills — на macOS 7×24 (см. установка Hermes, launchd OpenClaw).
| Слой | Dev MacBook | SFTPMAC remote Mac |
|---|---|---|
| 7×24 gateway | sleep, travel, NAT flap | launchd, SLA-ish uptime |
| Skill sync | только локально | git + SFTP/rsync, team audit |
| Local inference | RAM/thermal cap | M4/M5 tiers до CapEx |
| Изоляция | личный ноут смешивает контексты | tenant, EU options |
Agent loop 2026: skills в IDE для разработки; fork или subset на gateway-хосте для Telegram/Slack; alert когда openclaw doctor / hermes doctor краснеет. Skill может требовать channels status --probe после plugin update — та же дисциплина, что в runbooks, но auto-routed на «канал мёртв».
TCO: MacBook «бесплатен», пока не считаете ночные инциденты. Аренда remote Mac выглядит дороже в месячном инвойсе, но убирает эскалации «бот не ответил в 3:00» — часто дороже подписки при внешних SLA.
Гибрид IDE + мессенджер: дублируйте бизнес-логику, не весь markdown — лёгкий вариант на Hermes для Telegram, полный в Cursor для dev; общий git с одинаковыми ключевыми словами в description.
Cursor 2.4+ даёт /create-skill и /migrate-to-skills — ускоритель, не замена code review. Формат agentskills.io намеренно простой (YAML + markdown), чтобы security/legal могли читать без парсера.
Опционально: CI-lint skills — длина description, запрет фраз вроде «production deploy без confirm». Отделяет pet project от platform engineering.
После месяца замерьте: manual prompts per release, средняя длина agent session, rollbacks предотвращённые Verify-шагом. Эти метрики убеждают менеджмент быстрее, чем «мы внедрили AI».
На remote Mac sync skills тем же rsync/SFTP pipeline, что и артефакты сборки iOS — один привычный канал для mobile-команд. LaunchAgent переживает обрыв SSH; skill на ноуте — нет, если крышка закрыта в 02:00, пока APAC шлёт сообщения в Telegram-бот.
9. FAQ
Skill vs MCP? MCP = wires; Skill = orchestration. Вместе = tool + procedure в одном предсказуемом контуре.
Skill vs Rule? Rule always-on; Skill on-demand. Не переносите git safety в skills.
Remote Mac vs Linux VPS? Browser skills, Keychain, Apple Silicon inference часто требуют настоящий macOS — VPS ломает половину playbook.
Skill читает secrets? Только если скрипт и env это разрешают — документируйте в internal security register.
Как часто ревьюить? На каждый breaking change pipeline/gateway + квартальный smoke-chat на skill. Дата ревью в CHANGELOG папки skill — артефакт для audit.
Можно ли смешать несколько skills в одном чате? Да, если descriptions не конфликтуют; при пересечении сузьте paths или разделите ответственность. Два fat skills в одной сессии снова раздувают контекст — дробите.
Cursor Marketplace vs свой git? Marketplace — быстрый старт; fork в свой репо обязателен для prod, иначе обновления marketplace сломают ваш pin без review.
Архитектурная шпаргалка: Rules = session invariants; Skills = on-demand procedures; MCP = external capabilities; Remote Mac = availability layer для messaging gateways. Четыре кирпича — одна схема для architecture review.
Практический next step: сегодня /create-skill для одного болезненного workflow (staging deploy или PR). Завтра — rsync .cursor/skills/ на SFTPMAC node и прогон того же workflow через Hermes/Telegram smoke test. Через неделю — CODEOWNERS и CI lint. Так вы не «играете с AI», а строите agent platform.
Итог: процедуры в skills, gateway на стабильном Mac
SKILL.md закрывает prompt loop; с MCP получаете предсказуемый agent stack. Для always-on OpenClaw/Hermes спящий ноутбук — bottleneck, не модель. Нагрузочные прогоны gateway-skills на remote node показывают таймауты и лимиты токенов реалистичнее, чем на MacBook от батареи.
SFTPMAC remote Mac — настоящий macOS, 7×24, SSH/SFTP для sync skills и конфигов: gateway на хосте, управление с рабочей станции. Сегодня: /create-skill, завтра — полный release cycle на remote node, потом rollout на команду без двойного maintenance. См. также runbooks по Hermes и launchd OpenClaw, когда skill уже в git, а daemon всё ещё на ноуте.
Итоговая мысль для гиков: skill — это не «умный промпт», а lazy-loaded state machine поверх MCP. Remote Mac — не upsell, а слой uptime для long-polling и launchd. Без uptime даже идеальный SKILL.md не ответит в Telegram в 3:00. Сначала стабилизируйте хост, потом наращивайте библиотеку skills — порядок, который экономит недели отладки «почему модель тупит», когда падает сеть.