/** * Fix document organization issues: * 1. Move Executive Brief to research-theory * 2. Migrate tractatus-framework-research to production * 3. Ensure both are viewable as card documents */ const { MongoClient } = require('mongodb'); require('dotenv').config({ path: '/var/www/tractatus/.env' }); const MONGODB_URI = process.env.MONGODB_URI || 'mongodb://localhost:27017'; const DB_NAME = process.env.MONGODB_DB || 'tractatus_prod'; async function run() { const client = new MongoClient(MONGODB_URI); await client.connect(); const db = client.db(DB_NAME); const collection = db.collection('documents'); console.log('═══════════════════════════════════════════════════════════'); console.log(' FIXING DOCUMENT ORGANIZATION'); console.log('═══════════════════════════════════════════════════════════\n'); // 1. Move Executive Brief from getting-started to research-theory console.log('1️⃣ Moving Executive Brief to Research & Theory...'); const execBriefResult = await collection.updateOne( { slug: 'executive-summary-tractatus-inflection-point' }, { $set: { category: 'research-theory', order: 1, // First in research section updated_at: new Date() } } ); if (execBriefResult.modifiedCount > 0) { console.log(' ✅ Executive Brief moved to research-theory (order: 1)'); } else { console.log(' ⚠️ Executive Brief not found or already correct'); } // 2. Check if tractatus-framework-research exists in production console.log('\n2️⃣ Checking for tractatus-framework-research...'); const researchDoc = await collection.findOne({ slug: 'tractatus-framework-research' }); if (!researchDoc) { console.log(' ❌ Document missing from production - needs migration from dev'); console.log(' 📝 Run migration script to copy from dev to prod'); } else { console.log(' ✅ Document exists in production'); console.log(` Category: ${researchDoc.category}`); console.log(` Order: ${researchDoc.order}`); console.log(` Sections: ${researchDoc.sections?.length || 0}`); // Ensure it's in research-theory with correct order await collection.updateOne( { slug: 'tractatus-framework-research' }, { $set: { category: 'research-theory', order: 2, // Second in research section (after Executive Brief) updated_at: new Date() } } ); console.log(' ✅ Updated category and order'); } // 3. Renumber other research-theory documents console.log('\n3️⃣ Renumbering research-theory documents...'); const researchDocs = await collection.find({ category: 'research-theory' }).toArray(); console.log(` Found ${researchDocs.length} research documents`); const orderedSlugs = [ 'executive-summary-tractatus-inflection-point', // 1 'tractatus-framework-research', // 2 'pluralistic-values-research-foundations', // 3 'the-27027-incident-a-case-study-in-pattern-recognition-bias', // 4 'real-world-ai-governance-a-case-study-in-framework-failure-and-recovery', // 5 'llm-integration-feasibility-research-scope', // 6 'research-topic-concurrent-session-architecture', // 7 'research-topic-rule-proliferation-transactional-overhead' // 8 ]; for (let i = 0; i < orderedSlugs.length; i++) { await collection.updateOne( { slug: orderedSlugs[i] }, { $set: { order: i + 1, updated_at: new Date() } } ); } console.log(` ✅ Updated order for ${orderedSlugs.length} documents`); console.log('\n═══════════════════════════════════════════════════════════'); console.log(' SUMMARY'); console.log('═══════════════════════════════════════════════════════════\n'); console.log('✅ Executive Brief moved to research-theory'); console.log('✅ Document ordering updated'); console.log(''); await client.close(); } run().catch(console.error);