tractatus/scripts/update-core-concepts.js
TheFlow 2af47035ac refactor: remove website code and fix critical startup crashes (Phase 8)
CRITICAL FIX: Server would CRASH ON STARTUP (multiple import errors)

REMOVED (2 scripts):
1. scripts/framework-watchdog.js
   - Monitored .claude/session-state.json (OUR Claude Code setup)
   - Monitored .claude/token-checkpoints.json (OUR file structure)
   - Implementers won't have our .claude/ directory

2. scripts/init-db.js
   - Created website collections: blog_posts, media_inquiries, case_submissions
   - Created website collections: resources, moderation_queue, users, citations
   - Created website collections: translations, koha_donations
   - Next steps referenced deleted scripts (npm run seed:admin)

REWRITTEN (2 files):

src/models/index.js (29 lines → 27 lines)
- REMOVED imports: Document, BlogPost, MediaInquiry, CaseSubmission, Resource
- REMOVED imports: ModerationQueue, User (all deleted in Phase 2)
- KEPT imports: AuditLog, DeliberationSession, GovernanceLog, GovernanceRule
- KEPT imports: Precedent, Project, SessionState, VariableValue, VerificationLog
- Result: Only framework models exported

src/server.js (284 lines → 163 lines, 43% reduction)
- REMOVED: Imports to deleted middleware (csrf-protection, response-sanitization)
- REMOVED: Stripe webhook handling (/api/koha/webhook)
- REMOVED: Static file caching (for deleted public/ directory)
- REMOVED: Static file serving (public/ deleted in Phase 6)
- REMOVED: CSRF token endpoint
- REMOVED: Website homepage with "auth, documents, blog, admin" references
- REMOVED: Instruction sync (scripts/sync-instructions-to-db.js reference)
- REMOVED: Hardcoded log path (${process.env.HOME}/var/log/tractatus/...)
- REMOVED: Website-specific security middleware
- KEPT: Security headers, rate limiting, CORS, body parsers
- KEPT: API routes, governance services, MongoDB connections
- RESULT: Clean framework-only server

RESULT: Repository can now start without crashes, all imports resolve

🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-21 22:17:02 +13:00

211 lines
7.3 KiB
JavaScript

/**
* Update Core Concepts Document for Phase 5
* Updates service count, adds MongoDB, API Memory, BlogCuration service
*/
const { MongoClient } = require('mongodb');
const marked = require('marked');
const MONGODB_URI = process.env.MONGODB_URI || 'mongodb://localhost:27017/tractatus_dev';
const DB_NAME = process.env.MONGODB_DB || 'tractatus_dev';
const UPDATES = {
// Update overview section
oldOverview: 'The Tractatus framework consists of five interconnected services that work together to ensure AI operations remain within safe boundaries. Each service addresses a specific aspect of AI safety.',
newOverview: `The Tractatus framework consists of six interconnected services that work together to ensure AI operations remain within safe boundaries. Each service addresses a specific aspect of AI safety.
**Current Status**: Production-ready (Phase 5 complete). All services integrated with MongoDB persistence and optional Anthropic API Memory enhancement.
**Architecture**: Hybrid memory system combining MongoDB (required persistent storage), Anthropic API Memory (optional session enhancement), and filesystem audit trails (debug logging). See the Architectural Overview document for complete technical details.`,
// Add MongoDB persistence section after service 5
mongodbSection: `
## 6. BlogCuration
### Purpose
Validates blog content and social media posts against inst_016-018 governance rules to prevent fabricated statistics, absolute guarantees, and unverified claims.
### The Problem It Solves
Marketing content can inadvertently include:
- Fabricated statistics without sources ("95% of users report...")
- Absolute guarantees ("guaranteed 100% secure")
- Unverified customer claims ("thousands of happy customers")
Without validation, these violations damage credibility and can constitute false advertising.
### How It Works
**Validation Process:**
1. **Rule Loading**: Loads inst_016, inst_017, inst_018 from MongoDB
2. **Content Analysis**: Scans text for violation patterns
3. **Violation Detection**: Identifies specific rule violations
4. **Blocking**: Prevents publication if violations found
5. **Audit Trail**: Logs all validation attempts to MongoDB
**Enforced Rules:**
- **inst_016**: No fabricated statistics without validation evidence
- **inst_017**: No absolute guarantees about capabilities
- **inst_018**: No unverified claims about users/customers
### Example Validation
\`\`\`javascript
const BlogCuration = require('./services/BlogCuration.service');
const blogPost = {
title: "Why Choose Tractatus",
content: "Join thousands of satisfied customers using our framework!"
};
const validation = await BlogCuration.validateContent(blogPost.content);
if (!validation.allowed) {
console.log('Violation:', validation.violations[0]);
// Output: "inst_018: Unverified claim about 'thousands of satisfied customers'"
}
\`\`\`
### Integration
- **MongoDB**: Loads governance rules, stores validation logs
- **BoundaryEnforcer**: Shares inst_016-018 enforcement logic
- **Audit Trail**: All validations logged to \`.memory/audit/decisions-{date}.jsonl\`
---
## MongoDB Persistence Architecture
**Phase 5 Achievement**: All services now persist to MongoDB for production reliability.
### Collections
1. **governanceRules**: 18 active instructions (inst_001 through inst_019)
2. **auditLogs**: Decision audit trail with full context
3. **sessionState**: Current session state and token tracking
4. **verificationLogs**: MetacognitiveVerifier confidence scores and decisions
5. **documents**: Framework documentation (this document)
### Benefits Over Filesystem
- **Fast indexed queries** by rule ID, quadrant, persistence level
- **Atomic updates** (no race conditions)
- **Aggregation for analytics** (violation patterns, usage stats)
- **Built-in replication** and backup
- **Transaction support** for multi-document operations
### API Memory Integration (Optional)
**Anthropic API Memory** provides session continuity but does NOT replace MongoDB:
- **MongoDB**: Required for persistent storage, production systems
- **API Memory**: Optional enhancement for conversation context
- **Architecture**: Hybrid system with graceful degradation
If API Memory is unavailable, all services continue functioning with MongoDB alone.
### Environment Setup
\`\`\`bash
# Required
MONGODB_URI=mongodb://localhost:27017/tractatus_dev
MONGODB_DB=tractatus_dev
# Optional (enables API Memory features)
CLAUDE_API_KEY=your_api_key_here
\`\`\`
See Implementation Guide for complete setup instructions.`,
// Update "How Services Work Together" section
oldWorkTogether: 'These five services form a complete governance framework',
newWorkTogether: 'These six services form a complete governance framework'
};
async function main() {
console.log('=== Updating Core Concepts Document ===\n');
let client;
try {
client = await MongoClient.connect(MONGODB_URI);
const db = client.db(DB_NAME);
const collection = db.collection('documents');
// Fetch current document
const doc = await collection.findOne({ slug: 'core-concepts-of-the-tractatus-framework' });
if (!doc) {
throw new Error('Core Concepts document not found');
}
console.log('Current document loaded');
console.log(`Current length: ${doc.content_markdown.length} characters\n`);
// Apply updates
let updated = doc.content_markdown;
// Update overview
updated = updated.replace(UPDATES.oldOverview, UPDATES.newOverview);
console.log('✓ Updated overview section');
// Add BlogCuration and MongoDB sections before "How the Services Work Together"
const insertionPoint = updated.indexOf('## How the Services Work Together');
if (insertionPoint > -1) {
updated = updated.slice(0, insertionPoint) + UPDATES.mongodbSection + '\n\n' + updated.slice(insertionPoint);
console.log('✓ Added BlogCuration service section');
console.log('✓ Added MongoDB Persistence Architecture section');
} else {
console.log('⚠ Could not find insertion point for BlogCuration section');
}
// Update "How the Services Work Together"
updated = updated.replace('These five services form a complete governance framework', 'These six services form a complete governance framework');
console.log('✓ Updated service count in integration section');
console.log(`\nNew length: ${updated.length} characters`);
console.log(`Change: +${updated.length - doc.content_markdown.length} characters\n`);
// Regenerate HTML
const content_html = marked.parse(updated);
// Update document
const result = await collection.updateOne(
{ slug: 'core-concepts-of-the-tractatus-framework' },
{
$set: {
content_markdown: updated,
content_html: content_html,
'metadata.date_updated': new Date(),
'metadata.version': '1.1'
}
}
);
if (result.modifiedCount > 0) {
console.log('✓ Document updated in MongoDB');
console.log('✓ Version updated to 1.1');
console.log('\n=== Update Complete ===');
} else {
console.log('⚠ No changes made');
}
} catch (error) {
console.error('\n✗ Error:', error.message);
console.error(error.stack);
process.exit(1);
} finally {
if (client) await client.close();
}
}
if (require.main === module) {
main();
}
module.exports = { main };