# Perplexity Pack — План 1 (v7, floor-safe): перенос конфигурации

> **For agentic workers:** REQUIRED SUB-SKILL: superpowers:executing-plans (inline). Steps use checkbox syntax.

**Goal:** Аддитивно перенести три блока серверов research-слоя в main `.mcp.json` инструментами Write/Edit (floor-safe, без `node -e`), с бэкап-копией и защитой бэкапа в .gitignore.

**Architecture:** Вет (research-vet.md) и дом-README уже на диске (plan-v6 шаги 1-10). Этот план — только перенос. Все файловые операции — харнес-инструментами Write/Edit, которые пол НЕ гейтит (в отличие от `node -e`-Bash). Порядок: gitignore бэкапа → бэкап-копия `.mcp.json` (Write) → Edit `.mcp.json` (+3 блока). Валидация — пост-Edit Read структуры + загрузка MCP при перезапуске; откат — из бэкап-копии (Write обратно) или `git checkout -- .mcp.json` (владелец).

**Tech Stack:** харнес Write/Edit, JSON config `.mcp.json`.

## Цель

Доделать перенос конфигурации Perplexity Pack в main floor-safe способом. Реализует якорь
спеки {#D3} (перенос конфигурации) из
`docs/superpowers/specs/2026-06-14-perplexity-pack-research-tooling-design-v3.md`.

```skills-json
[]
```

```steps-json
[
  {"op":"Edit","object":".gitignore","ref":"D3"},
  {"op":"Write","object":".mcp.json.bak-perplexity-pack-20260614","ref":"D3"},
  {"op":"Edit","object":".mcp.json","ref":"D3"}
]
```

```verified-context-json
[
  {"id":"vc1","kind":"EXTRACTED","ref":".mcp.json","anchor":"\"$schema\": \"https://raw.githubusercontent.com/anthropics/claude-code/main/schemas/mcp.json\""},
  {"id":"vc2","kind":"EXTRACTED","ref":"docs/security/research-vet.md","anchor":"Провенанс-вет research-tooling"},
  {"id":"vc3","kind":"EXTRACTED","ref":"tools/cost-pricing.mjs","anchor":"export const PRICING = Object.freeze("}
]
```

---

## Task 3: Floor-safe перенос блоков в main `.mcp.json`

**Files:** Modify `.gitignore`, `.mcp.json`; Create `.mcp.json.bak-perplexity-pack-20260614`.

- [ ] **Step 1: Защитить бэкап в .gitignore** — Read `.gitignore` (авторизовано планом), затем Edit: добавить строку `.mcp.json.bak-*` (если её ещё нет). Защита от случайного `git add` бэкап-копии (хотя в `.mcp.json` только `${VAR}`-плейсхолдеры).
- [ ] **Step 2: Бэкап-копия `.mcp.json`** — Write `.mcp.json.bak-perplexity-pack-20260614` с ТЕКУЩИМ содержимым `.mcp.json` (предварительно Read `.mcp.json` — авторизовано планом — и скопировать байт-в-байт). Точка отката.
- [ ] **Step 3: Добавить три блока серверов** — Read `.mcp.json` (авторизовано), затем Edit: перед ключом `_disabled_marketing_servers_note` добавить три блока `mcpServers` по образцу `openapi`/`sentry`:
  - `perplexity` → `@perplexity-ai/mcp-server`, env `PERPLEXITY_API_KEY`, comment (research-канал, вердикт вета ПРИНЯТ, SLSA-provenance, MIT).
  - `exa` → `exa-mcp-server`, env `EXA_API_KEY`, comment (нейро-поиск, ПРИНЯТ, MIT, license-поле npm пусто — см. вет).
  - `firecrawl` → `firecrawl-mcp`, env `FIRECRAWL_API_KEY`, comment (глубокое чтение/обход, ПРИНЯТ, MIT).
  Все три с вердиктом ПРИНЯТ (research-vet.md). Существующие блоки не трогать. JSON оставить валидным.

---

## Безопасность правки (floor-safe)

- **gitignore бэкапа** — Step 1.
- **Бэкап-копия** — Step 2 (Write копии до правки).
- **Валидация JSON** — программный `node -e JSON.parse` пол блокирует (правило 8), поэтому floor-safe:
  пост-Edit Read `.mcp.json` + структурная сверка (3 блока добавлены, скобки/запятые целы) + MCP-серверы
  валидируют JSON при загрузке после перезапуска (битый JSON → серверы не стартуют, заметно сразу).
- **Откат** — из бэкап-копии (`.mcp.json.bak-perplexity-pack-20260614` → перезаписать `.mcp.json`) или
  владелец `git checkout -- .mcp.json` (файл tracked). Правка аддитивная — риск минимален.

## Self-Review

- Покрытие: Task 3 реализует {#D3}. {#D2} (вет) сделан в plan-v6 (research-vet.md + README на диске).
  {#D4}-{#D9} (реестр/нормативка/роутер) — Планы 2 и 3.
- Floor-safe: только Write/Edit, ни одного `node -e`/Bash-шага → пол не сработает, escape не нужен.
- Плейсхолдеров нет; имена серверов/пакетов едины с research-vet.md (ПРИНЯТ ×3).

## Примечания

- Перенос только пакетов с вердиктом ПРИНЯТ (все три) из `docs/research/research-vet.md`.
- Ключи `PERPLEXITY_API_KEY`/`EXA_API_KEY`/`FIRECRAWL_API_KEY` — в user env, не в репо.
- Live-smoke серверов — после переноса + перезапуска владельцем (отдельно).
- Регрессия vitest + реестр/нормативка/роутер — Планы 2 и 3.
