7ed72a09f7
Ground truth: tools/router-test-prompts.json (20 промптов). Runner: tools/router-accuracy-runner.mjs. Baseline accuracy regex-only (Layer 1, без ANTHROPIC_API_KEY): type=55.0%, node=55.0%, micro=95.0%. Overall score: (11+11+19)/(60) = 68.3% — ниже порога 75%. Систематические разрывы (наблюдения, не фиксы): 1. «опечатка/поправь» → bugfix ожидается, regex не ловит «поправь» 2. «составь email-рассылку» → marketing ожидается, regex не ловит «составь» 3. «проверь ... перед выходом» → #73 go-live ожидается, но #68 ZAP перебивает (оба security-узлы, ZAP имеет «проникновение» ≠ «выход» — weight tie-breaker в пользу первого найденного узла) 4. domain-узлы (#62, #71, #72) матчат правильно, но taskType не детектится («проверь ПДн» → type=unknown, node=#71 верно) 5. «запусти Pest тесты» → type=unknown (нет «баг/fix» в промпте) 6. «удали мёртвый код» → node=#3 (GitHub MCP матчит «issues» в тексте?) NB: Layer 2 (Sonnet) подняла бы node-accuracy на спорных доменных промптах — отложена до получения ключа (вариант 2). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
27 lines
3.2 KiB
JSON
27 lines
3.2 KiB
JSON
{
|
|
"$schema_version": 1,
|
|
"description": "Ground truth для классификатора. Stage 3 acceptance: ≥75% точности на этом наборе.",
|
|
"prompts": [
|
|
{"text": "сделай фичу — карточка тенанта показывает баланс в копейках", "expectedType": "feature", "expectedNode": "#19", "expectedMicro": false},
|
|
{"text": "напиши план рефакторинга AdminTenantsController", "expectedType": "planning", "expectedNode": "#19", "expectedMicro": false},
|
|
{"text": "почини двойное списание лида у клиента id=7", "expectedType": "bugfix", "expectedNode": "#62", "expectedMicro": false},
|
|
{"text": "составь email-рассылку для тарифа Бизнес", "expectedType": "marketing", "expectedNode": "#74", "expectedMicro": false},
|
|
{"text": "проверь безопасность портала перед выходом в интернет", "expectedType": "security", "expectedNode": "#73", "expectedMicro": false},
|
|
{"text": "опечатка в imports.ts — поправь", "expectedType": "bugfix", "expectedNode": null, "expectedMicro": true},
|
|
{"text": "переименуй функцию calc в computeBalance", "expectedType": "unknown", "expectedNode": null, "expectedMicro": true},
|
|
{"text": "удали мёртвый код из ProjectService", "expectedType": "cleanup", "expectedNode": null, "expectedMicro": true},
|
|
{"text": "формат-проход pint по app/", "expectedType": "refactor", "expectedNode": "#11", "expectedMicro": true},
|
|
{"text": "что такое RLS в постгресе?", "expectedType": "question", "expectedNode": null, "expectedMicro": false},
|
|
{"text": "обнови память по этапу 3", "expectedType": "memory-sync", "expectedNode": null, "expectedMicro": false},
|
|
{"text": "проверь что таблица lead_charges имеет правильный индекс по tenant_id", "expectedType": "analysis", "expectedNode": "#62", "expectedMicro": false},
|
|
{"text": "проанализируй медленный запрос /api/deals", "expectedType": "analysis", "expectedNode": null, "expectedMicro": false},
|
|
{"text": "напиши STRIDE для админ-зоны", "expectedType": "security", "expectedNode": "#72", "expectedMicro": false},
|
|
{"text": "проверь ПДн в выгрузках CSV", "expectedType": "security", "expectedNode": "#71", "expectedMicro": false},
|
|
{"text": "поставь postiz и подключи vk", "expectedType": "marketing", "expectedNode": "#81", "expectedMicro": false},
|
|
{"text": "запусти Pest тесты", "expectedType": "bugfix", "expectedNode": "#18", "expectedMicro": false},
|
|
{"text": "увеличь max-tokens в config", "expectedType": "unknown", "expectedNode": null, "expectedMicro": true},
|
|
{"text": "сделай мониторинг для очередей через Sentry", "expectedType": "monitoring", "expectedNode": "#34", "expectedMicro": false},
|
|
{"text": "разбери почему билы упали в pipeline", "expectedType": "bugfix", "expectedNode": null, "expectedMicro": false}
|
|
]
|
|
}
|