397777089e
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
40 lines
2.2 KiB
Markdown
40 lines
2.2 KiB
Markdown
# План: gate-классификация research-tooling MCP (Perplexity Pack)
|
|
|
|
**Дата:** 2026-06-14
|
|
|
|
## Цель
|
|
|
|
Завести три семейства MCP-инструментов research-слоя (`mcp__perplexity__*`,
|
|
`mcp__exa__*`, `mcp__firecrawl__*`) в карту классификации gate-config
|
|
`tools/mcp-tool-classifier.mjs` категорией `read_only`. Сейчас неклассифицированные
|
|
MCP-инструменты получают default-block в гейте `enforce-mcp-classification`, поэтому
|
|
вызовы пака (включая приёмочный live-smoke) блокируются. Постура `read_only`
|
|
зафиксирована решением владельца 2026-06-14 и закрепляется в ADR-019: веб-разведка
|
|
читает внешние источники и не мутирует state проекта; egress-скан исходящих
|
|
аргументов (секреты / base64 / file:// / IP-литерал) остаётся активным на каждый вызов.
|
|
|
|
Изменение по TDD: сначала красный тест на классификацию трёх семейств в
|
|
`tools/mcp-tool-classifier.test.mjs`, затем минимальная аддитивная правка карты
|
|
`DEFAULT_MCP_CLASSIFICATION`, затем зелёный прогон и полная регрессия инструментов.
|
|
|
|
```skills-json
|
|
["test-driven-development"]
|
|
```
|
|
|
|
```steps-json
|
|
[
|
|
{"op":"Edit","object":"tools/mcp-tool-classifier.test.mjs","ref":"D6"},
|
|
{"op":"Bash","object":"npx vitest run --root app --config vitest.config.tools.mjs","ref":"D6"},
|
|
{"op":"Edit","object":"tools/mcp-tool-classifier.mjs","ref":"D6"},
|
|
{"op":"Bash","object":"npx vitest run --root app --config vitest.config.tools.mjs","ref":"D6"},
|
|
{"op":"Bash","object":"npx vitest run --root app --config vitest.config.tools.mjs","ref":"D8"}
|
|
]
|
|
```
|
|
|
|
```verified-context-json
|
|
[
|
|
{"id":"vc1","kind":"EXTRACTED","ref":"tools/mcp-tool-classifier.mjs","anchor":"export const DEFAULT_MCP_CLASSIFICATION = Object.freeze({"},
|
|
{"id":"vc2","kind":"EXTRACTED","ref":"tools/cost-pricing.mjs","anchor":"export const PRICING = Object.freeze("}
|
|
]
|
|
```
|