fix: excluir interrupções longas da taxa de erro de skills
Sessões com outcome=interrupted e ≥10 eventos são redirects naturais do utilizador, não falhas da skill. O detector contava todas as interrupções como falhas, gerando falsos positivos para skills conversacionais como superpowers:brainstorming. Fix: só contar como falha erros reais (outcome=error) ou interrupções precoces (<10 eventos). Resolve ticket #10407. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -92,7 +92,11 @@ export function detectSkillsHighErrorRate(ctx: DetectCtx): Pattern[] {
|
||||
for (const sk of skills) {
|
||||
const entry = bySkill.get(sk) ?? { total: 0, fail: 0, ids: [] }
|
||||
entry.total++
|
||||
if (r.outcome === 'error' || r.outcome === 'interrupted') {
|
||||
// Interrupções em sessões longas (≥10 eventos) são redirects naturais do utilizador,
|
||||
// não falhas da skill. Só contar erros reais ou interrupções muito precoces.
|
||||
const isRealFailure = r.outcome === 'error' ||
|
||||
(r.outcome === 'interrupted' && (r.event_count ?? 0) < 10)
|
||||
if (isRealFailure) {
|
||||
entry.fail++
|
||||
if (entry.ids.length < 5) entry.ids.push(r.session_id)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user