Files
portal/docs/superpowers/plans/2026-06-14-perplexity-pack-plan-1-v11-active.md
T

5.8 KiB

Perplexity Pack — План 1 (v11, active): перенос конфигурации

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

Goal: Аддитивно перенести три АКТИВНЫХ блока серверов research-слоя в main .mcp.json floor-safe способом (проверка ключей, бэкап cp -n, gitignore бэкапа). Владелец выбрал активацию (Вариант 2), приняв денежный риск.

Architecture: Вет (research-vet.md) и дом-README уже на диске (plan-v6). Этот план — только перенос. Все операции floor-safe (Edit/Write + echo/cp). Серверы добавляются АКТИВНЫМИ (по решению владельца), ключи из user env.

Tech Stack: харнес Write/Edit, echo/cp (coreutils), JSON config .mcp.json.

Цель

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

Переговоры

Позиция контроллера (против требования судьи о техническом cost-ceiling). Перенос конфигурации сам по себе тратит $0 — деньги идут ТОЛЬКО при явном вызове tool (perplexity_ask / web_search_exa / firecrawl_scrape) ПОСЛЕ перезапуска, что под контролем контроллера, а не автономно. Владелец явно принял денежный риск и выбрал активацию (Вариант 2), сознательно отклонив DEFERRED (Вариант 1) и отдельную стройку consent-gate (Вариант 3). Технического cost-ceiling на уровне MCP не существует; реальные контроли — дисциплина исполнителя (точечно, без автономных циклов) + механизм deferred-tools (схемы грузятся по запросу) + явная пометка bulk-load-риска. Требование «технический барьер» невыполнимо в рамках задачи «перенос конфига» без Варианта 3, от которого владелец отказался. Прошу эскалацию к владельцу для разрешения конфликта судья↔контроллер.

Платные API — предупреждение (cost)

Три сервера — платные (Perplexity sonar-* / Exa / Firecrawl). Расхода при переносе/загрузке НЕТ; деньги — только при явном вызове tool. Использовать точечно, без автономных циклов.

[]
[
  {"op":"Bash","object":"echo \"keys: PERPLEXITY=${PERPLEXITY_API_KEY:+set} EXA=${EXA_API_KEY:+set} FIRECRAWL=${FIRECRAWL_API_KEY:+set}\"","ref":"D3"},
  {"op":"Edit","object":".gitignore","ref":"D3"},
  {"op":"Bash","object":"cp -n .mcp.json .mcp.json.bak-perplexity-pack-20260614","ref":"D3"},
  {"op":"Edit","object":".mcp.json","ref":"D3"}
]
[
  {"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/research/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 (cp -n).

  • Step 1: Проверка наличия ключей (без утечки) — Run: echo "keys: PERPLEXITY=${PERPLEXITY_API_KEY:+set} EXA=${EXA_API_KEY:+set} FIRECRAWL=${FIRECRAWL_API_KEY:+set}" — Expected: keys: PERPLEXITY=set EXA=set FIRECRAWL=set.
  • Step 2: Защитить бэкап в .gitignore — Read .gitignore, Edit: добавить .mcp.json.bak-*, если нет.
  • Step 3: Байт-в-байт бэкап — Run: cp -n .mcp.json .mcp.json.bak-perplexity-pack-20260614.
  • Step 4: Добавить три АКТИВНЫХ блока — Read .mcp.json, Edit: перед _disabled_marketing_servers_note добавить активные mcpServers perplexity/exa/firecrawl (по образцу openapi/sentry; env через ${VAR}; comment с вердиктом вета ПРИНЯТ + «платный»). Существующие блоки не трогать. JSON валиден.

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

  • Ключи — Step 1 (:+set, без утечки). Бэкап — Step 3 cp -n (байт-в-байт, идемпотент), gitignored Step 2.
  • Валидация — пост-Edit Read + загрузка MCP при перезапуске. Откат — из бэкапа / git checkout (владелец).

Self-Review

  • Покрытие: Task 3 → {#D3}. Floor-safe (Edit/Write + echo/cp).
  • Раздел «Переговоры» несёт позицию контроллера для карточки арбитража (судья↔контроллер по cost).

Примечания

  • Перенос ПРИНЯТ-пакетов (все три) из docs/research/research-vet.md. Live-smoke — после перезапуска.