36 lines
988 B
JavaScript
36 lines
988 B
JavaScript
|
|
const fs = require('fs');
|
||
|
|
const path = require('path');
|
||
|
|
|
||
|
|
// Innovation: Self-Correction Analyzer
|
||
|
|
// Analyze past failures to suggest better future mutations
|
||
|
|
// Pattern: Meta-learning
|
||
|
|
|
||
|
|
function analyzeFailures() {
|
||
|
|
const memoryPath = path.join(process.cwd(), 'MEMORY.md');
|
||
|
|
if (!fs.existsSync(memoryPath)) return { status: 'skipped', reason: 'no_memory' };
|
||
|
|
|
||
|
|
const content = fs.readFileSync(memoryPath, 'utf8');
|
||
|
|
const failureRegex = /\|\s*\*\*F\d+\*\*\s*\|\s*Fix\s*\|\s*(.*?)\s*\|\s*\*\*(.*?)\*\*\s*\((.*?)\)\s*\|/g;
|
||
|
|
|
||
|
|
const failures = [];
|
||
|
|
let match;
|
||
|
|
while ((match = failureRegex.exec(content)) !== null) {
|
||
|
|
failures.push({
|
||
|
|
summary: match[1].trim(),
|
||
|
|
detail: match[2].trim()
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
return {
|
||
|
|
status: 'success',
|
||
|
|
count: failures.length,
|
||
|
|
failures: failures.slice(0, 3) // Return top 3 for prompt context
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
if (require.main === module) {
|
||
|
|
console.log(JSON.stringify(analyzeFailures(), null, 2));
|
||
|
|
}
|
||
|
|
|
||
|
|
module.exports = { analyzeFailures };
|