tractatus/docs/markdown/implementation-guide-v1.1.md
TheFlow 4de439a325 docs: update framework to 6 services with PluralisticDeliberationOrchestrator
- Updated all core documentation (introduction, core-concepts, implementation guides)
- Added comprehensive PluralisticDeliberationOrchestrator sections
- Fixed implementation-guide-v1.1.md (BlogCuration → PluralisticDeliberationOrchestrator)
- Updated UI pages (index, researcher, leader) to reflect 6 services
- Enhanced cache busting with unified version script
- FAQ already includes comprehensive value pluralism coverage (Q18-22)

Framework now correctly documents all 6 mandatory services:
1. InstructionPersistenceClassifier
2. CrossReferenceValidator
3. BoundaryEnforcer
4. ContextPressureMonitor
5. MetacognitiveVerifier
6. PluralisticDeliberationOrchestrator (added October 2025)

🤖 Generated with Claude Code
2025-10-12 19:55:44 +13:00

546 lines
13 KiB
Markdown

# Tractatus Framework Implementation Guide
**Version**: 1.1
**Last Updated**: 2025-10-11
**Status**: Production-Ready (Phase 5 Complete)
---
## Overview
This guide covers production deployment of the Tractatus Agentic Governance Framework with MongoDB persistence and optional API Memory integration.
**Architecture**: Hybrid memory system
- **MongoDB** (required): Persistent storage for governance rules, audit logs
- **Anthropic API Memory** (optional): Session continuity enhancement
- **Filesystem** (debug): Audit trail for development
See the **Architectural Overview** document for complete system architecture and research status.
---
## Prerequisites
### Required
- **Node.js**: v18+ LTS
- **MongoDB**: v7.0+
- **npm** or **yarn**: Latest stable
- **Git**: For cloning repository
### Optional
- **Anthropic API Key**: For API Memory features
- **systemd**: For production process management (Linux)
---
## Installation
### 1. Clone Repository
```bash
git clone https://github.com/AgenticGovernance/tractatus.git
cd tractatus
```
### 2. Install Dependencies
```bash
npm install
```
**Key Dependencies**:
- `mongodb`: v8.x (MongoDB driver)
- `mongoose`: v8.x (ODM for models)
- `express`: v4.x (Web framework)
- `marked`: v14.x (Markdown processing)
- `@anthropic-ai/sdk`: v0.65+ (API Memory - optional)
### 3. MongoDB Setup
**Option A: Local Development**
```bash
# Install MongoDB (Ubuntu/Debian)
sudo apt-get install mongodb-org
# Start MongoDB
sudo systemctl start mongod
sudo systemctl enable mongod
# Create database
mongosh
> use tractatus_dev
> db.createCollection('governanceRules')
> db.createCollection('auditLogs')
> db.createCollection('documents')
> exit
```
**Option B: MongoDB Atlas (Cloud)**
1. Create free cluster at https://mongodb.com/atlas
2. Add IP whitelist: `0.0.0.0/0` (development) or specific IPs (production)
3. Create database user with read/write permissions
4. Get connection string: `mongodb+srv://user:pass@cluster.mongodb.net/tractatus`
### 4. Environment Configuration
Create `.env` file in project root:
```bash
# Required
MONGODB_URI=mongodb://localhost:27017/tractatus_dev
MONGODB_DB=tractatus_dev
NODE_ENV=development
PORT=9000
# Optional - API Memory Features
CLAUDE_API_KEY=your_anthropic_api_key_here
# Optional - JWT for admin features
JWT_SECRET=your_random_secret_here_minimum_32_characters
```
**Security Notes**:
- Never commit `.env` to version control
- Use strong JWT secrets in production (32+ characters)
- Restrict MongoDB access by IP in production
---
## Framework Initialization
### Service Architecture
The framework consists of 6 core services:
1. **InstructionPersistenceClassifier**: Classify and persist user instructions
2. **CrossReferenceValidator**: Validate actions against stored instructions
3. **BoundaryEnforcer**: Block values decisions requiring human approval
4. **ContextPressureMonitor**: Monitor session quality degradation
5. **MetacognitiveVerifier**: Confidence-based action verification
6. **PluralisticDeliberationOrchestrator**: Facilitate multi-stakeholder deliberation for values conflicts
All services integrate with **MemoryProxy** for MongoDB access.
**Note**: BlogCuration is an application-level service, separate from the 6 core governance framework services.
### Basic Initialization
```javascript
const InstructionPersistenceClassifier = require('./src/services/InstructionPersistenceClassifier.service');
const CrossReferenceValidator = require('./src/services/CrossReferenceValidator.service');
const BoundaryEnforcer = require('./src/services/BoundaryEnforcer.service');
const ContextPressureMonitor = require('./src/services/ContextPressureMonitor.service');
const MetacognitiveVerifier = require('./src/services/MetacognitiveVerifier.service');
const PluralisticDeliberationOrchestrator = require('./src/services/PluralisticDeliberationOrchestrator.service');
// Initialize all services (loads governance rules from MongoDB)
async function initializeFramework() {
await InstructionPersistenceClassifier.initialize();
await CrossReferenceValidator.initialize();
await BoundaryEnforcer.initialize();
await ContextPressureMonitor.initialize();
await MetacognitiveVerifier.initialize();
await PluralisticDeliberationOrchestrator.initialize();
console.log('✓ Tractatus Framework initialized (6 services)');
}
// Call during application startup
initializeFramework();
```
### Service Usage Examples
#### 1. Classify User Instructions
```javascript
const classification = InstructionPersistenceClassifier.classify({
text: "Always use MongoDB port 27017 for this project",
context: {
conversation_tokens: 5000,
conversation_length: 20
}
});
console.log(classification);
// {
// quadrant: 'SYSTEM',
// persistence: 'HIGH',
// temporalScope: 'PERMANENT',
// verificationRequired: 'MANDATORY',
// parameters: { port: 27017, database: 'mongodb' }
// }
```
#### 2. Validate Actions
```javascript
const validation = await CrossReferenceValidator.validate(
"Change MongoDB port to 27018",
{ explicit_instructions: await loadInstructions() }
);
if (validation.status === 'REJECTED') {
console.error('Conflict:', validation.reason);
// "Conflicts with HIGH persistence instruction to use port 27017"
}
```
#### 3. Enforce Content Boundaries
```javascript
const content = "Join thousands of satisfied customers!";
const validation = await BlogCuration.validateContent(content);
if (!validation.allowed) {
console.error('Violation:', validation.violations[0]);
// "inst_018: Unverified claim about 'thousands of satisfied customers'"
}
```
#### 4. Monitor Context Pressure
```javascript
const pressure = ContextPressureMonitor.analyzePressure({
token_usage: 0.75,
conversation_length: 0.80,
task_complexity: 0.60,
error_frequency: 0.10
});
console.log(pressure);
// {
// pressureName: 'ELEVATED',
// overall: 0.5625,
// action: 'REVIEW_BEFORE_COMMIT',
// recommendations: ['Consider creating session handoff']
// }
```
#### 5. Verify Complex Operations
```javascript
const verification = MetacognitiveVerifier.verify(
"Implement user authentication with JWT and bcrypt",
"I will create middleware, hash passwords, and add protected routes",
{ explicit_instructions: await loadInstructions() }
);
console.log(verification);
// {
// confidence: 0.83,
// decision: 'PROCEED',
// level: 'PROCEED',
// reasoning: '...',
// recommendations: [...]
// }
```
---
## Database Schema
### GovernanceRules Collection
```javascript
{
_id: ObjectId,
id: "inst_001", // Unique rule identifier
text: "Use MongoDB port 27017", // Instruction text
quadrant: "SYSTEM", // STRATEGIC/OPERATIONAL/TACTICAL/SYSTEM/STORAGE
persistence: "HIGH", // HIGH/MEDIUM/LOW
category: "technical", // content/security/privacy/technical/process/values
priority: 50, // 0-100
temporalScope: "PERMANENT", // IMMEDIATE/SESSION/PROJECT/PERMANENT
expiresAt: null, // Date or null
active: true, // Boolean
source: "user_instruction", // Origin
stats: {
timesChecked: 42,
timesViolated: 0,
lastChecked: Date
},
createdAt: Date,
updatedAt: Date
}
```
### AuditLogs Collection
```javascript
{
_id: ObjectId,
timestamp: Date,
sessionId: "2025-10-11-001",
action: "boundary_enforcement", // Service action type
rulesChecked: ["inst_016", "inst_017", "inst_018"],
violations: [], // Array of violations (if any)
allowed: true, // Decision outcome
metadata: {
// Service-specific context
}
}
```
### Documents Collection
See **Architectural Overview** for complete schema.
---
## Production Deployment
### 1. Server Setup
**Recommended**: Ubuntu 22.04 LTS or Debian 12
```bash
# Update system
sudo apt update && sudo apt upgrade -y
# Install Node.js 18 LTS
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# Install MongoDB
wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
# Start MongoDB
sudo systemctl start mongod
sudo systemctl enable mongod
```
### 2. Deploy Application
```bash
# Create app user
sudo useradd -m -s /bin/bash tractatus
# Clone and setup
sudo su - tractatus
git clone https://github.com/AgenticGovernance/tractatus.git
cd tractatus
npm install --production
# Configure environment
cp .env.example .env
nano .env # Update with production values
```
### 3. MongoDB Production Configuration
```bash
# Create production database user
mongosh
> use tractatus_prod
> db.createUser({
user: "tractatus_user",
pwd: "SECURE_PASSWORD_HERE",
roles: [
{ role: "readWrite", db: "tractatus_prod" }
]
})
> exit
# Update .env
MONGODB_URI=mongodb://tractatus_user:SECURE_PASSWORD@localhost:27017/tractatus_prod?authSource=tractatus_prod
MONGODB_DB=tractatus_prod
```
### 4. systemd Service
Create `/etc/systemd/system/tractatus.service`:
```ini
[Unit]
Description=Tractatus AI Safety Framework
Documentation=https://agenticgovernance.digital
After=network.target mongod.service
Requires=mongod.service
[Service]
Type=simple
User=tractatus
WorkingDirectory=/home/tractatus/tractatus
ExecStart=/usr/bin/node src/server.js
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=tractatus
# Security
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ReadWritePaths=/home/tractatus/tractatus/.memory
MemoryLimit=2G
# Environment
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
```
**Start service**:
```bash
sudo systemctl daemon-reload
sudo systemctl start tractatus
sudo systemctl enable tractatus
sudo systemctl status tractatus
```
### 5. Nginx Reverse Proxy (Optional)
```nginx
server {
listen 80;
server_name agenticgovernance.digital;
location / {
proxy_pass http://localhost:9000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
```
---
## Monitoring & Maintenance
### View Audit Logs
```bash
# Today's audit trail
cat .memory/audit/decisions-$(date +%Y-%m-%d).jsonl | jq
# Count violations
cat .memory/audit/*.jsonl | jq 'select(.allowed == false)' | wc -l
# View specific service logs
cat .memory/audit/*.jsonl | jq 'select(.action == "boundary_enforcement")'
```
### MongoDB Queries
```javascript
// Connect to MongoDB
mongosh mongodb://localhost:27017/tractatus_prod
// View active rules
db.governanceRules.find({ active: true }).pretty()
// Check rule statistics
db.governanceRules.aggregate([
{ $match: { active: true } },
{ $group: {
_id: "$quadrant",
count: { $sum: 1 },
totalChecks: { $sum: "$stats.timesChecked" }
}
}
])
// Recent audit logs
db.auditLogs.find().sort({ timestamp: -1 }).limit(10).pretty()
```
### Service Health Check
```bash
# Check service status
sudo systemctl status tractatus
# View logs
sudo journalctl -u tractatus -f
# Check MongoDB connection
mongosh --eval "db.adminCommand('ping')"
```
---
## Troubleshooting
### Issue: Services not loading rules
**Symptom**: "Governance rules not initialized" warnings
**Fix**:
```javascript
// Manually initialize
await InstructionPersistenceClassifier.initialize();
await CrossReferenceValidator.initialize();
// etc.
```
### Issue: MongoDB connection failed
**Symptom**: "MongoServerError: Authentication failed"
**Fix**:
1. Verify `MONGODB_URI` in `.env`
2. Check MongoDB user exists: `mongosh``use tractatus_prod``db.getUsers()`
3. Verify MongoDB is running: `sudo systemctl status mongod`
### Issue: API Memory not working
**Symptom**: Session continuity not preserved
**Fix**:
- API Memory is **optional**
- Framework functions without it using MongoDB alone
- To enable: Set `CLAUDE_API_KEY` in `.env`
---
## Migration from Filesystem (Legacy)
If upgrading from filesystem-based instruction storage:
```bash
# Run migration script
node scripts/migrate-to-mongodb.js
# Verify migration
mongosh
> use tractatus_dev
> db.governanceRules.countDocuments()
18 # Should show migrated rules
```
---
## Next Steps
1. **Read Core Concepts**: Understand the 6 services
2. **Review Architectural Overview**: Complete system architecture
3. **Check Glossary**: Key terms and definitions
4. **Explore Case Studies**: Real-world usage examples
---
## Support
- **Documentation**: https://agenticgovernance.digital/docs.html
- **GitHub**: https://github.com/AgenticGovernance/tractatus
- **Issues**: https://github.com/AgenticGovernance/tractatus/issues
---
**Version History**:
- v1.1 (2025-10-11): Complete rewrite for MongoDB architecture
- v1.0 (2025-10-07): Initial version (filesystem-based)