# paranoid

Заставляет агента писать и ревьюить код так, будто завтра его будут пентестить. Пригодится там, где код трогает аутентификацию, пользовательский ввод или секреты.

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

## Что делает

Скилл задаёт три шага. Сначала агент вслух называет границу доверия: кто может вызвать этот код и что он контролирует. Потом применяет безопасное умолчание для каждого класса риска — проверка владельца записи по id от клиента, параметризация вместо склейки строк в SQL, подпись вебхука до чтения тела, allow-list полей вместо разворачивания всего тела запроса в запись. В конце короткий проход «как это сломать»: чужой id, вызов без логина, ввод на 10 МБ, `../`, `<script>`, `file://`.

Внутри — таблица из десяти классов риска со ссылками на файлы `references/auth-access.md`, `references/injection.md`, `references/apis-webhooks.md`, `references/secrets-config.md`. Эти файлы агент открывает только когда нужна глубина, а не грузит заранее. Есть список того, что скилл отказывается писать: проверка прав только на фронтенде, `dangerouslySetInnerHTML` с пользовательскими данными, SQL из шаблонных строк, `eval` и `exec` со вводом пользователя, правило базы `if true`, отключённая проверка TLS.

Размер паранойи привязан к последствиям. Форме, которая читает публичные данные, хватит одного предложения, а загрузке файла с вызовом `ffmpeg` нужно больше внимания. Перед коммитом предлагается прогнать чек-лист `checklists/pre-commit.md` из семи вопросов. Скилл работает с вашим собственным кодом и вашим приложением на localhost: сканировать чужие хосты, обходить детект или собирать малварь он не станет.

## Требования
- Работает с: Supabase

## Установка

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

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

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

### Codex

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

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

### Cursor

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

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install kulchankas/paranoid paranoid
```

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

### Gemini CLI

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

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

### Windsurf (Devin Desktop)

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

### OpenCode

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

### Claude.ai

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

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

## Когда брать
- поймать IDOR до того, как чужой id вернёт чужую запись
- закрыть SQL-инъекцию в запросе, собранном из строк
- включить deny-by-default в правилах Supabase или Firebase
- проверить подпись вебхука перед разбором тела
- вычистить секреты из кода, который уезжает в браузер

## Примеры запросов агенту
- Добавь эндпоинт для удаления поста, но сначала назови границу доверия и проверь владельца
- Проверь этот обработчик загрузки файла на SSRF и path traversal
- Прогони adversarial-проход по `api/webhooks/stripe.ts`: что будет при чужом id и без логина?

## Похожие
- [injection-checking](https://affpapa.org/nevibecode/skills/injection-checking.md) — скилл · 3700 установок
- [cc-skill-security-review](https://affpapa.org/nevibecode/skills/sickn33-cc-skill-security-review.md) — скилл · 2100 установок
- [exploiting-api-injection-vulnerabilities](https://affpapa.org/nevibecode/skills/exploiting-api-injection-vulnerabilities.md) — скилл · 311 установок
- [secure-code-review](https://affpapa.org/nevibecode/skills/zebbern-secure-code-review.md) — скилл · ★ 4679
- [pluggy-doctor](https://affpapa.org/nevibecode/skills/pluggy-doctor.md) — скилл · 394 установки
- [supabase-server](https://affpapa.org/nevibecode/skills/supabase-server.md) — скилл · 9700 установок

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