Commit graph

5 commits

Author SHA1 Message Date
b7d35cfee0 chore(claude): security hardening — dangerous-commands hook, settings в git, restricted DB, throttle (#2150) 2026-07-02 15:23:11 +00:00
5fa9588935 chore(agents): bot harness tuning — per-role model, forgejo MCP deferral, vault capture, #893 curl hardening
- start-bot.ps1: --model per-role (sonnet; opus только reviewer); CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=60
- .claude/mcp/*.json: forgejo (~90 tools) deferred во всех ролях; postgres-gendesign deferred в backend/reviewer
- auto-analyst.md: knowledge-capture step (status/done → inbox draft → vault-overlord) — закрывает 'волт не обновляется'
- forgejo ops через mcp__forgejo__* вместо сырого curl: auto-code-reviewer/backend/qa workflow + _autonomous_pickup contract
- #893 guard: бан curl→/tmp→python3 (Windows 404+FileNotFoundError); deferred→ToolSearch; stale tool-name cleanup (deep-reviewer phases)
2026-05-31 16:26:17 +03:00
5cfab0b23e fix(bots): подключить postgres-tradein MCP в analyst/backend bot-окна (#857) 2026-05-31 06:44:46 +00:00
lekss361
9b268e6950 fix(claude): quote agent descriptions — battle YAML frontmatter parse break
Баг: у 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 нет ": ".)
2026-05-30 13:56:55 +03:00
lekss361
2df8f78747 chore(bots): per-window MCP isolation via --strict-mcp-config
Каждое 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.
2026-05-30 11:05:24 +03:00