# harden

Пять команд набора compass по очереди: секреты в staged-диффе, версии MCP-серверов, расхождения установки, подпись релиза и запуск недоверенного кода в песочнице.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 21
- Автор: dshakes
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/dshakes/compass/tree/HEAD/claude/skills/harden/SKILL.md
- Обновлён: 2026-10-19
- HTML: https://affpapa.org/nevibecode/skills/harden

## Что делает

Скилл прогоняет пять шагов строго по порядку и останавливается на первой ошибке, пока её не исправят. Шаг 1 — `compass scan --staged` по подготовленному к коммиту диффу: код выхода 1 значит, что в правках лежит секрет. Шаг 2 — `bash scripts/check-mcp.sh`, проверяет, что каждый автоматически ставящийся MCP-сервер закреплён на точной версии и без меток инъекции; при плавающей версии правится `mcp/servers.json`. Шаг 3 — `compass drift`: установленный конфиг в `~/.claude` должен совпадать с исходниками репозитория. Шаг 4 — `compass verify` сверяет keyless-аттестацию SLSA у тарбола последнего релиза и требует `gh`. Шаг 5 — `compass sandbox -- <cmd>` запускает недоверенную команду в песочнице без сети, записи только в cwd и tmp.

Песочнице нужен бэкенд: bwrap, firejail или sandbox-exec. Без него CLI откажется запускать команду вне изоляции, так что сначала ставьте bwrap или firejail. Проверка подписи релиза на старом `gh` может вернуть код 77 — это безопасный пропуск, а не провал.

Скилл закрывает механические проверки. Находки, где нужно суждение человека, он не заменяет: для них в диффе запускают `/security-review`. Сканирование секретов имеет смысл повесить в `.git/hooks/pre-commit`, тогда оно срабатывает на каждом коммите, а не только перед PR.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dshakes/compass --skill harden -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/harden/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/harden/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dshakes/compass --skill harden -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/harden/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dshakes/compass --skill harden -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/harden/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install dshakes/compass harden
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/harden/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dshakes/compass --skill harden -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/dshakes/compass --path claude/skills/harden
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/harden/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add dshakes/compass --skill harden -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/dshakes/compass/tree/HEAD/claude/skills/harden/SKILL.md

## Когда брать
- найти секрет в подготовленных к коммиту правках до пуша
- поймать MCP-сервер с плавающей версией или меткой инъекции
- сверить установленный конфиг агента с исходниками репозитория
- проверить аттестацию SLSA у релизного тарбола
- прогнать скачанный извне код в изоляции без сети

## Примеры запросов агенту
- Прогони шаги скилла harden и покажи, на каком всё встало
- Проверь staged-дифф на секреты через `compass scan --staged`
- Запусти `compass drift` и объясни, почему конфиг разошёлся с репозиторием

## Похожие
- [setup-auditor](https://affpapa.org/nevibecode/skills/setup-auditor.md) — скилл · 469 установок
- [ai-coding-agent-guardrails](https://affpapa.org/nevibecode/skills/ai-coding-agent-guardrails.md) — скилл · 340 установок
- [docker-sandboxes-network-credentials](https://affpapa.org/nevibecode/skills/docker-sandboxes-network-credentials.md) — скилл · 724 установки
- [agents-harden](https://affpapa.org/nevibecode/skills/agents-harden.md) — скилл · 2000 установок
- [simplify-and-harden](https://affpapa.org/nevibecode/skills/simplify-and-harden.md) — скилл · 535 установок
- [simplify-and-harden-ci](https://affpapa.org/nevibecode/skills/simplify-and-harden-ci.md) — скилл · 389 установок

## Другие версии с тем же именем
- [harden · aladicf](https://affpapa.org/nevibecode/skills/aladicf-harden.md) — 539 установок

Из того же набора: [dshakes/compass](https://affpapa.org/nevibecode/by/dshakes/compass.md) — 3 карточки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
