{"record":{"id":"9524a49d57291e52","repo":"ruvnet/ruflo","slug":"contradiction-detected-patterns-i-id-vs-pat","errorCode":null,"errorMessage":"Contradiction detected: ${patterns[i].id} vs ${patterns[j].id}","messagePattern":"Contradiction detected: (.+?) vs (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/neural/src/reasoningbank-adapter.ts","lineNumber":415,"sourceCode":"\n      for (let j = i + 1; j < patterns.length; j++) {\n        if (toRemove.has(patterns[j].id)) continue;\n\n        const similarity = this.cosineSimilarity(\n          patterns[i].embedding,\n          patterns[j].embedding\n        );\n\n        const outcome1 = patterns[i].patternData.source.outcome;\n        const outcome2 = patterns[j].patternData.source.outcome;\n\n        if (\n          similarity >= this.config.contradictionThreshold &&\n          outcome1 !== outcome2\n        ) {\n          contradictionsFound++;\n          // Log contradiction for analysis (don't auto-remove)\n          console.warn(`Contradiction detected: ${patterns[i].id} vs ${patterns[j].id}`);\n        }\n      }\n    }\n\n    // Step 3: Prune old, low-confidence patterns\n    const now = Date.now();\n    const maxAge = this.config.pruneAgeDays * 24 * 60 * 60 * 1000;\n\n    for (const pattern of patterns) {\n      if (toRemove.has(pattern.id)) continue;\n\n      const age = now - pattern.createdAt;\n      if (\n        age > maxAge &&\n        pattern.confidence < this.config.minConfidenceKeep &&\n        pattern.usageCount < 3\n      ) {\n        toRemove.add(pattern.id);","sourceCodeStart":397,"sourceCodeEnd":433,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/neural/src/reasoningbank-adapter.ts#L397-L433","documentation":"Log warning during reasoning-bank consolidation: two stored patterns are highly similar (above contradictionThreshold) yet their recorded outcomes differ — a knowledge contradiction flagged for analysis, deliberately not auto-removed.","triggerScenarios":"Thrown at v3/@claude-flow/neural/src/reasoningbank-adapter.ts:415 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Review the two contradicting patterns named in the message and resolve or remove one of them."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}