Баг: у code-reviewer/qa-tester/tech-analyst `description:` без кавычек содержал
`: ` (двоеточие-пробел, напр. "verdict: ✅", "Проверяет: HTTP", "план: что") →
YAML парсил это как вложенный mapping → frontmatter невалиден → агент молча НЕ
регистрировался как subagent. Reviewer-окно падало: "Agent type 'code-reviewer'
not found"; qa-окно так же не нашло бы qa-tester.
Фикс: обернул description в кавычки (code-reviewer/qa-tester → "...",
tech-analyst → '...' из-за внутренних "). Проверено pyyaml — теперь парсится.
Плюс: добавил postgres-gendesign в .claude/mcp/qa.json — qa-tester ссылается на
его tools, без сервера в strict-конфиге qa-окна агент не зарегистрируется.
(backend-engineer/deep-code-reviewer не были задеты — у них в description нет ": ".)
Каждое bot-окно грузит ТОЛЬКО нужные роли серверы (не все 7+ в каждом окне).
Выигрыш: не спавнить heavy-серверы зря (docker postgres в frontend/qa), right-size
eager-набор, чистый tool-surface на роль. (Контекст tool-search и так бережёт —
deferred ≈ бесплатно; это про процессы + eager + ясность.)
- .claude/mcp/{analyst,backend,frontend,reviewer,qa}.json — self-contained per-role
конфиги. Секреты НЕ инлайнятся: ${OBSIDIAN_API_KEY}/${GENDESIGN_DB_URI}/
${GLITCHTIP_TOKEN} через env-подстановку (.mcp.json env expansion, подтв. в доках).
Матрица: forgejo+obsidian+context7 eager везде; pg-gendesign eager у backend/reviewer,
deferred у analyst; UI (playwright/a11y/lighthouse/shadcn) только frontend/qa; fetch+
glitchtip у backend; glitchtip у qa.
- start-bot.ps1: извлекает MCP-секреты из ~/.claude.json (единый источник) → export →
запускает `claude --strict-mcp-config --mcp-config .claude/mcp/<role>.json`.
Main/интерактивное окно (без start-bot.ps1) по-прежнему видит полный .mcp.json+user.