- Added Agent Lightning research section to researcher.html with Demo 2 results - Created comprehensive /integrations/agent-lightning.html page - Added Agent Lightning link in homepage hero section - Updated Discord invite links (Tractatus + semantipy) across all pages - Added feedback.js script to all key pages for live demonstration Phase 2 of Master Plan complete: Discord setup → Website completion 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1610 lines
49 KiB
Markdown
1610 lines
49 KiB
Markdown
# Multi-Project Governance System - Implementation Plan v2.0
|
|
|
|
**Project:** Tractatus Agentic Governance Framework
|
|
**Scope:** AI-Powered Rule Management + Multi-Project Infrastructure
|
|
**Standard:** World-class design and implementation
|
|
**Target:** Potential commercial product for Claude Code users
|
|
**Status:** ✅ Validated via Family-History Integration (Nov 2025)
|
|
|
|
---
|
|
|
|
## 🎯 Executive Summary
|
|
|
|
Transform Tractatus from a single-project governance framework into a **multi-project, AI-powered governance platform** that:
|
|
|
|
1. **Replaces fragile CLAUDE.md** with validated, optimized governance rules
|
|
2. **Enables multi-project management** across portfolio with variable substitution
|
|
3. **Provides AI-assisted rule optimization** for clarity and effectiveness
|
|
4. **Offers project templates** for instant deployment to new projects
|
|
5. **Validates rules in real-time** using the 6 core Tractatus services
|
|
6. **Enforces governance automatically** via PreToolUse hooks
|
|
7. **Modernizes deployment** with unified, secure scripts
|
|
|
|
**Commercial Potential:** Solo developers to enterprise teams managing multiple AI-assisted projects
|
|
|
|
### ✅ Real-World Validation
|
|
|
|
**November 2025:** Successfully integrated Tractatus Framework into **Family-History** project, a multi-tenant SaaS platform. This integration validated the approach and uncovered critical insights:
|
|
|
|
- ✅ Hook system works brilliantly (automatic governance enforcement)
|
|
- ✅ Multi-tenant architecture requires GovernanceAuditLog (tenant-aware, not filtered)
|
|
- ✅ AsyncLocalStorage provides elegant tenant context
|
|
- ✅ Deployment modernization delivers massive value (134 scripts → 1)
|
|
- ✅ Framework services adapt cleanly across projects
|
|
- ✅ Time estimates validated (most phases accurate within 20%)
|
|
|
|
**Key Insight:** The hook system is the killer feature, not an afterthought. It should be Phase 0.
|
|
|
|
---
|
|
|
|
## 📚 Lessons from Real-World Integration
|
|
|
|
### Family-History Integration (Nov 1-2, 2025)
|
|
|
|
**Project Context:**
|
|
- Multi-tenant SaaS (family genealogy platform)
|
|
- Node.js + Express + MongoDB (port 27027)
|
|
- Production: OVHCloud VPS
|
|
- 31 governance rules, 6 framework services
|
|
- 134 ad-hoc deployment scripts
|
|
|
|
**Integration Timeline:**
|
|
- **Phase 1**: Framework installation & adaptation (3 hours)
|
|
- **Phase 2**: Multi-tenant enhancements (2 hours)
|
|
- **Phase 3**: Hook system import (1 hour)
|
|
- **Phase 4**: Deployment modernization (2 hours)
|
|
- **Total**: ~8 hours for full integration
|
|
|
|
### What Worked Brilliantly ✅
|
|
|
|
#### 1. **Hook System (framework-audit-hook.js)**
|
|
- **Impact**: Automatic governance enforcement on Edit/Write operations
|
|
- **Integration**: 1 hour to adapt, configure in `.claude/settings.local.json`
|
|
- **Value**: Eliminates manual governance, provides real-time feedback
|
|
- **Learning**: This should be Phase 0, not buried in implementation
|
|
|
|
**Code Example:**
|
|
```json
|
|
{
|
|
"hooks": {
|
|
"PreToolUse": [
|
|
{
|
|
"matcher": "Edit|Write",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": ".claude/hooks/framework-audit-hook.js",
|
|
"timeout": 10
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
#### 2. **GovernanceAuditLog Architecture**
|
|
- **Discovery**: Need separate audit logs for governance vs user actions
|
|
- **Implementation**: Platform-wide, tenant-aware (not tenant-filtered)
|
|
- **Pattern**:
|
|
```javascript
|
|
// User actions (tenant-filtered)
|
|
AuditLog → audit_logs collection (per-tenant)
|
|
|
|
// Governance decisions (platform-wide, tenant-aware)
|
|
GovernanceAuditLog → governance_audit_logs collection (all tenants)
|
|
```
|
|
- **Learning**: Multi-tenant projects need both logs with different isolation models
|
|
|
|
#### 3. **AsyncLocalStorage Tenant Context**
|
|
- **Challenge**: Framework services needed tenant awareness without tight coupling
|
|
- **Solution**: `getCurrentTenant()` from AsyncLocalStorage
|
|
- **Implementation**: Updated all 6 services in ~2 hours
|
|
- **Learning**: Clean, elegant pattern for multi-tenant governance
|
|
|
|
**Code Example:**
|
|
```javascript
|
|
// In framework service
|
|
const { getCurrentTenant } = require('../utils/tenantContext');
|
|
|
|
_auditDecision(result, action, context) {
|
|
const tenantId = getCurrentTenant(); // null if no tenant context
|
|
|
|
GovernanceAuditLog.logDecision({
|
|
tenantId, // Recorded for context, not for filtering
|
|
service: 'BoundaryEnforcer',
|
|
decision: { allowed: result.allowed, ... },
|
|
// ... rest of audit data
|
|
});
|
|
}
|
|
```
|
|
|
|
#### 4. **Deployment Modernization**
|
|
- **Problem**: 134 ad-hoc deployment scripts, inconsistent, no security checks
|
|
- **Solution**: One unified `deploy.sh` with security checks, cache busting, dry-run
|
|
- **Impact**: Massive improvement in deployment reliability and developer experience
|
|
- **Learning**: This is a major value-add, should be highlighted in plan
|
|
|
|
**Features Implemented:**
|
|
```bash
|
|
# Security checks
|
|
- Multi-tenant safety (no hardcoded tenant IDs)
|
|
- localStorage violations (blocks deployment)
|
|
- Local testing verification
|
|
- Uncommitted changes warning
|
|
|
|
# Capabilities
|
|
- Dry-run preview
|
|
- Automatic cache busting (DEPLOYMENT_VERSION)
|
|
- Smart restart detection
|
|
- Health checks
|
|
- Compiled HTML cleanup
|
|
```
|
|
|
|
#### 5. **Framework Adaptation Pattern**
|
|
- **MemoryProxy**: Made optional (not needed in family-history)
|
|
- **MongoDB Port**: Easy to change (27017 → 27027)
|
|
- **Models**: Optional (SessionState, VerificationLog)
|
|
- **Learning**: Framework is adaptable, not rigid
|
|
|
|
**Adaptation Checklist:**
|
|
```javascript
|
|
// 1. Update MongoDB connection
|
|
mongoose.connect('mongodb://localhost:27027/family_history')
|
|
|
|
// 2. Make MemoryProxy optional
|
|
this.memoryProxy = null; // Instead of getMemoryProxy()
|
|
|
|
// 3. Add tenant context
|
|
const { getCurrentTenant } = require('../utils/tenantContext');
|
|
|
|
// 4. Use GovernanceAuditLog
|
|
const GovernanceAuditLog = require('../models/GovernanceAuditLog');
|
|
```
|
|
|
|
### What Needs Improvement 🔄
|
|
|
|
#### 1. **Phase Sequencing**
|
|
- **Issue**: Hook system not mentioned until deep in plan
|
|
- **Fix**: Make it Phase 0 (prerequisite)
|
|
- **Reason**: Hooks provide immediate value, demonstrate framework power
|
|
|
|
#### 2. **Multi-Tenant Clarity**
|
|
- **Issue**: Plan doesn't distinguish tenant-filtered vs tenant-aware
|
|
- **Fix**: Clear architectural diagrams showing both patterns
|
|
- **Reason**: Critical distinction for multi-tenant projects
|
|
|
|
#### 3. **Deployment Emphasis**
|
|
- **Issue**: Deployment not in original plan at all
|
|
- **Fix**: Add as separate phase with high priority
|
|
- **Reason**: Replacing 134 scripts is a major win, sells the value
|
|
|
|
#### 4. **Time Estimates**
|
|
- **Issue**: Some estimates were accurate, others optimistic
|
|
- **Fix**: Update based on family-history actual times
|
|
- **Accuracy**: Most phases within 20%, some tasks faster than expected
|
|
|
|
### Validated Time Estimates
|
|
|
|
| Task | Planned | Actual | Delta |
|
|
|------|---------|--------|-------|
|
|
| Framework installation | 2-3 hours | 3 hours | On target |
|
|
| Multi-tenant adaptation | 3-4 hours | 2 hours | Faster |
|
|
| Hook system import | Not planned | 1 hour | New |
|
|
| Deployment modernization | Not planned | 2 hours | New |
|
|
| GovernanceAuditLog model | Not planned | 1 hour | New |
|
|
| **Total Integration** | N/A | **8 hours** | **Baseline** |
|
|
|
|
### Integration Success Metrics
|
|
|
|
**Framework Services:**
|
|
- ✅ All 6 services ACTIVE
|
|
- ✅ 31 governance rules loaded
|
|
- ✅ Zero runtime errors
|
|
- ✅ Hook system configured
|
|
- ✅ GovernanceAuditLog operational
|
|
|
|
**Deployment:**
|
|
- ✅ Unified script created
|
|
- ✅ Security checks implemented
|
|
- ✅ Dry-run tested successfully
|
|
- ✅ Cache busting working
|
|
- ✅ Backward compatible
|
|
|
|
**Documentation:**
|
|
- ✅ Comprehensive session handoff created
|
|
- ✅ All files documented with line numbers
|
|
- ✅ Architecture diagrams updated
|
|
- ✅ Next steps clearly defined
|
|
|
|
---
|
|
|
|
## 📐 Updated System Architecture
|
|
|
|
### Three-Tier Governance System
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ TIER 0: HOOK ENFORCEMENT LAYER (NEW) │
|
|
│ • PreToolUse hooks intercept Edit/Write/Bash │
|
|
│ • Automatic governance enforcement │
|
|
│ • Real-time feedback via systemMessage │
|
|
│ • Logs to GovernanceAuditLog │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
↓ enforces
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ TIER 1: UNIVERSAL RULES │
|
|
│ • Apply to ALL projects │
|
|
│ • Contain variables: ${DB_PORT}, ${PROJECT_NAME} │
|
|
│ • Example: "Database MUST use ${DB_TYPE}" │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
↓ inherited by
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ TIER 2: PROJECT-INHERITED RULES │
|
|
│ • Universal rules with project variables applied │
|
|
│ • Tractatus: ${DB_TYPE} → MongoDB │
|
|
│ • Family-History: ${DB_TYPE} → MongoDB, ${DB_PORT} → 27027 │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
+ combined with
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ TIER 3: PROJECT-SPECIFIC RULES │
|
|
│ • Unique to one project │
|
|
│ • Example: "TenantStorage MUST be used (no localStorage)" │
|
|
│ • Family-History: Multi-tenant security rules │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
### Multi-Tenant Audit Architecture (Validated Pattern)
|
|
|
|
```
|
|
┌──────────────────────────────────────────────────────────────┐
|
|
│ USER ACTIONS (Tenant-Filtered) │
|
|
│ │
|
|
│ User Action → AuditLog Model → audit_logs collection │
|
|
│ │
|
|
│ • tenantFilter plugin applied │
|
|
│ • Each tenant sees only their data │
|
|
│ • Example: User uploads photo, user edits profile │
|
|
└──────────────────────────────────────────────────────────────┘
|
|
|
|
┌──────────────────────────────────────────────────────────────┐
|
|
│ GOVERNANCE DECISIONS (Platform-Wide, Tenant-Aware) │
|
|
│ │
|
|
│ Framework → GovernanceAuditLog → governance_audit_logs │
|
|
│ │
|
|
│ • NO tenant filtering (platform-wide) │
|
|
│ • Records tenantId for context │
|
|
│ • Visible to platform admins │
|
|
│ • Example: BoundaryEnforcer blocks Edit, pressure warning │
|
|
└──────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
**Why This Matters:**
|
|
- **User AuditLog**: Legal compliance, per-tenant data isolation
|
|
- **GovernanceAuditLog**: Framework analytics, cross-tenant patterns, security monitoring
|
|
|
|
### Tenant Context Flow (Validated)
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ Request Lifecycle │
|
|
│ │
|
|
│ 1. HTTP Request │
|
|
│ 2. tenantContextMiddleware │
|
|
│ ↓ sets │
|
|
│ 3. AsyncLocalStorage.run(tenant, ...) │
|
|
│ ↓ available to │
|
|
│ 4. Framework Services │
|
|
│ ↓ call │
|
|
│ 5. getCurrentTenant() │
|
|
│ ↓ returns │
|
|
│ 6. tenantId (or null) │
|
|
│ ↓ logged in │
|
|
│ 7. GovernanceAuditLog │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
### Core Components (Updated)
|
|
|
|
```
|
|
Frontend (Vanilla JS + Tailwind)
|
|
├── Rule Manager Dashboard
|
|
├── Rule Editor with AI Assistant
|
|
├── Project Manager Dashboard
|
|
├── CLAUDE.md Migration Wizard
|
|
├── Project Configuration Editor
|
|
└── Deployment Manager (NEW)
|
|
|
|
Backend (Node.js + Express)
|
|
├── Rule Management API
|
|
├── Project Management API
|
|
├── Deployment API (NEW)
|
|
├── AI Services
|
|
│ ├── RuleOptimizer.service.js
|
|
│ ├── ClaudeMdAnalyzer.service.js
|
|
│ ├── RuleSuggestionEngine.service.js
|
|
│ └── RuleInterpolator.service.js
|
|
├── Validation Engine
|
|
│ └── RuleValidator.service.js (integrates 6 core services)
|
|
├── Template System
|
|
└── Hook System (NEW - Phase 0)
|
|
└── framework-audit-hook.js (adapted per project)
|
|
|
|
Database (MongoDB)
|
|
├── governanceRules (enhanced with scope, variables)
|
|
├── projects
|
|
├── projectRules (overrides)
|
|
├── templates
|
|
├── sessions (concurrent session support)
|
|
├── sessionState
|
|
├── tokenCheckpoints
|
|
└── governanceAuditLogs (NEW - platform-wide audit trail)
|
|
|
|
Deployment System (NEW)
|
|
├── Unified deploy.sh script
|
|
├── .rsyncignore security exclusions
|
|
├── Cache busting (DEPLOYMENT_VERSION)
|
|
└── Security checks (localStorage, multi-tenant, credentials)
|
|
```
|
|
|
|
---
|
|
|
|
## 🗂️ Enhanced Database Schemas
|
|
|
|
### NEW: `governanceAuditLogs` Collection
|
|
|
|
**Purpose:** Platform-wide governance decision tracking (tenant-aware, not filtered)
|
|
|
|
```javascript
|
|
{
|
|
_id: ObjectId("..."),
|
|
sessionId: "claude-code-abc-123",
|
|
|
|
// Framework service
|
|
service: "BoundaryEnforcer", // Enum: 6 services
|
|
action: "boundary_enforcement",
|
|
timestamp: ISODate("2025-11-02T10:30:00Z"),
|
|
|
|
// Tenant context (for awareness, NOT filtering)
|
|
tenantId: ObjectId("..."), // Optional - null for platform-wide
|
|
|
|
// Decision details
|
|
decision: {
|
|
allowed: Boolean,
|
|
blocked: Boolean,
|
|
requiresHuman: Boolean,
|
|
confidence: Number, // 0.0 - 1.0
|
|
level: String // CRITICAL | WARNING | INFO
|
|
},
|
|
|
|
// Context
|
|
context: {
|
|
sessionId: String,
|
|
trigger: String, // "hook" | "manual" | "scheduled"
|
|
tool: String, // "Edit" | "Write" | "Bash"
|
|
actionDescription: String
|
|
},
|
|
|
|
// Metadata
|
|
metadata: Map, // Service-specific data
|
|
boundaries: [String], // Tractatus boundaries violated
|
|
rulesChecked: [String],
|
|
rulesViolated: [String],
|
|
|
|
// User context
|
|
userId: ObjectId("..."),
|
|
|
|
// Multi-service coordination
|
|
servicesInvolved: [String],
|
|
frameworkBacked: Boolean,
|
|
|
|
// Indexes
|
|
indexes: [
|
|
{ sessionId: 1, timestamp: -1 },
|
|
{ service: 1, timestamp: -1 },
|
|
{ tenantId: 1, timestamp: -1 }, // For tenant-aware queries
|
|
{ timestamp: 1, expireAfterSeconds: 31536000 } // 1 year TTL
|
|
]
|
|
}
|
|
```
|
|
|
|
**Static Methods:**
|
|
```javascript
|
|
// Log a governance decision
|
|
GovernanceAuditLog.logDecision(data)
|
|
|
|
// Get session decisions
|
|
GovernanceAuditLog.getSessionDecisions(sessionId, limit)
|
|
|
|
// Get service decisions
|
|
GovernanceAuditLog.getServiceDecisions(service, { limit, since, tenantId })
|
|
|
|
// Get decisions requiring human judgment
|
|
GovernanceAuditLog.getHumanRequiredDecisions({ limit, since, tenantId, resolved })
|
|
```
|
|
|
|
**Action Types (Constants):**
|
|
```javascript
|
|
GovernanceAuditLog.ACTIONS = {
|
|
// BoundaryEnforcer
|
|
BOUNDARY_ENFORCEMENT: 'boundary.enforcement',
|
|
BOUNDARY_VIOLATION: 'boundary.violation',
|
|
HUMAN_REQUIRED: 'boundary.human_required',
|
|
|
|
// CrossReferenceValidator
|
|
VALIDATION_CHECK: 'validation.check',
|
|
VALIDATION_CONFLICT: 'validation.conflict',
|
|
VALIDATION_PASS: 'validation.pass',
|
|
|
|
// MetacognitiveVerifier
|
|
REASONING_VERIFICATION: 'reasoning.verification',
|
|
REASONING_ISSUE: 'reasoning.issue',
|
|
|
|
// ContextPressureMonitor
|
|
PRESSURE_ANALYSIS: 'pressure.analysis',
|
|
PRESSURE_WARNING: 'pressure.warning',
|
|
PRESSURE_CRITICAL: 'pressure.critical',
|
|
|
|
// InstructionPersistenceClassifier
|
|
INSTRUCTION_CLASSIFY: 'instruction.classify',
|
|
INSTRUCTION_PERSIST: 'instruction.persist',
|
|
|
|
// PluralisticDeliberationOrchestrator
|
|
CONFLICT_ANALYSIS: 'conflict.analysis',
|
|
DELIBERATION_REQUIRED: 'conflict.deliberation_required'
|
|
}
|
|
```
|
|
|
|
### Enhanced `governanceRules` Collection
|
|
|
|
*(Same as v1, with clarification on scope)*
|
|
|
|
**Scope Values:**
|
|
- `UNIVERSAL`: Applies to all projects, contains variables
|
|
- `PROJECT_SPECIFIC`: Unique to one project, no variables (or project-specific values)
|
|
|
|
**Example Universal Rule:**
|
|
```javascript
|
|
{
|
|
id: "univ_001",
|
|
scope: "UNIVERSAL",
|
|
text: "Database connections MUST use ${DB_TYPE} on port ${DB_PORT}",
|
|
variables: ["DB_TYPE", "DB_PORT"],
|
|
applicableProjects: "*",
|
|
// ... rest of fields
|
|
}
|
|
```
|
|
|
|
**Example Project-Specific Rule:**
|
|
```javascript
|
|
{
|
|
id: "fh_sec_001",
|
|
scope: "PROJECT_SPECIFIC",
|
|
text: "TenantStorage MUST be used for client-side storage. localStorage is strictly prohibited.",
|
|
variables: [],
|
|
applicableProjects: ["family-history"],
|
|
// ... rest of fields
|
|
}
|
|
```
|
|
|
|
### `projects`, `projectRules`, `templates`, `sessions`, `sessionState`, `tokenCheckpoints` Collections
|
|
|
|
*(Same as v1 - see original plan for full schemas)*
|
|
|
|
---
|
|
|
|
## 🚀 Revised Implementation Phases
|
|
|
|
**Total Estimated Time:** 50-62 hours (updated with new phases)
|
|
|
|
---
|
|
|
|
## **PHASE 0: Hook System Foundation** ⭐ NEW - HIGH PRIORITY
|
|
|
|
**Goal:** Establish automatic governance enforcement via PreToolUse hooks
|
|
|
|
**Duration:** 2-3 hours
|
|
|
|
**Why Phase 0:** Hooks are the killer feature. They demonstrate immediate value and provide foundation for all other governance work.
|
|
|
|
### 0.1 Import Hook System (1 hour)
|
|
|
|
**Tasks:**
|
|
- [ ] Copy `.claude/hooks/` directory from Tractatus to target project
|
|
- [ ] `framework-audit-hook.js` (main hook - adapt for project)
|
|
- [ ] `all-command-detector.js`
|
|
- [ ] `behavioral-compliance-reminder.js`
|
|
- [ ] `check-token-checkpoint.js`
|
|
- [ ] `trigger-word-checker.js`
|
|
- [ ] Other supporting hooks
|
|
- [ ] Adapt `framework-audit-hook.js` for target project
|
|
- [ ] Update MongoDB connection string
|
|
- [ ] Update database name
|
|
- [ ] Update port if different
|
|
- [ ] Change AuditLog.model → GovernanceAuditLog
|
|
- [ ] Test hook independently: `node .claude/hooks/framework-audit-hook.js < test-input.json`
|
|
|
|
**Adaptation Checklist:**
|
|
```javascript
|
|
// framework-audit-hook.js changes
|
|
Line ~146: await mongoose.connect('mongodb://localhost:PORT/DB_NAME')
|
|
Line ~80: const GovernanceAuditLog = require('../../src/models/GovernanceAuditLog')
|
|
```
|
|
|
|
**Files Modified:**
|
|
- `.claude/hooks/framework-audit-hook.js`
|
|
|
|
**Success Criteria:**
|
|
- [ ] Hook executes without errors
|
|
- [ ] Connects to correct MongoDB
|
|
- [ ] Logs to GovernanceAuditLog (if available)
|
|
|
|
---
|
|
|
|
### 0.2 Configure Hook Activation (0.5 hour)
|
|
|
|
**Tasks:**
|
|
- [ ] Update `.claude/settings.local.json`
|
|
- [ ] Add `hooks` section
|
|
- [ ] Configure `SessionStart` hook (optional)
|
|
- [ ] Configure `PreToolUse` hooks for Edit/Write
|
|
- [ ] Test configuration
|
|
- [ ] Restart Claude Code session
|
|
- [ ] Verify hooks load
|
|
- [ ] Check for errors in Claude Code output
|
|
|
|
**Configuration:**
|
|
```json
|
|
{
|
|
"permissions": { ... },
|
|
"hooks": {
|
|
"SessionStart": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "node \"$CLAUDE_PROJECT_DIR\"/scripts/session-init.js"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PreToolUse": [
|
|
{
|
|
"matcher": "Edit|Write",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": ".claude/hooks/framework-audit-hook.js",
|
|
"timeout": 10
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
**Files Modified:**
|
|
- `.claude/settings.local.json`
|
|
|
|
**Success Criteria:**
|
|
- [ ] Hooks configured correctly
|
|
- [ ] SessionStart hook runs (if configured)
|
|
- [ ] PreToolUse hooks trigger on Edit/Write
|
|
|
|
---
|
|
|
|
### 0.3 Create GovernanceAuditLog Model (0.5 hour)
|
|
|
|
**Tasks:**
|
|
- [ ] Create `src/models/GovernanceAuditLog.js`
|
|
- [ ] Define schema (see Enhanced Database Schemas above)
|
|
- [ ] Add indexes
|
|
- [ ] Add static methods
|
|
- [ ] Add action constants
|
|
- [ ] Test model
|
|
- [ ] Create test entry
|
|
- [ ] Query entries
|
|
- [ ] Verify indexes work
|
|
|
|
**Files Created:**
|
|
- `src/models/GovernanceAuditLog.js`
|
|
|
|
**Success Criteria:**
|
|
- [ ] Model creates without errors
|
|
- [ ] Can log governance decisions
|
|
- [ ] Queries work efficiently
|
|
|
|
---
|
|
|
|
### 0.4 Test Hook Integration (0.5 hour)
|
|
|
|
**Tasks:**
|
|
- [ ] Manual testing
|
|
- [ ] Edit a file via Claude Code
|
|
- [ ] Verify hook intercepts
|
|
- [ ] Check for systemMessage feedback
|
|
- [ ] Verify decision logged to GovernanceAuditLog
|
|
- [ ] Test with violations
|
|
- [ ] Try to edit sensitive file
|
|
- [ ] Verify hook blocks (if configured)
|
|
- [ ] Check error handling
|
|
- [ ] Test with allowed operations
|
|
- [ ] Edit normal file
|
|
- [ ] Verify hook allows
|
|
- [ ] Check audit log entry
|
|
|
|
**Validation Queries:**
|
|
```javascript
|
|
// Check governance audit logs
|
|
db.governance_audit_logs.find().sort({timestamp:-1}).limit(10).pretty()
|
|
|
|
// Check for hook decisions
|
|
db.governance_audit_logs.find({ service: 'PreToolUseHook' })
|
|
|
|
// Check for blocks
|
|
db.governance_audit_logs.find({ 'decision.blocked': true })
|
|
```
|
|
|
|
**Success Criteria:**
|
|
- [ ] Hook intercepts Edit/Write operations
|
|
- [ ] Framework services validate actions
|
|
- [ ] Decisions logged correctly
|
|
- [ ] systemMessage provides feedback to Claude
|
|
|
|
---
|
|
|
|
### 0.5 Documentation (0.5 hour)
|
|
|
|
**Tasks:**
|
|
- [ ] Create `docs/HOOK_SYSTEM_GUIDE.md`
|
|
- [ ] What hooks do
|
|
- [ ] How to configure
|
|
- [ ] How to test
|
|
- [ ] Troubleshooting
|
|
- [ ] Update project README
|
|
- [ ] Mention hook system
|
|
- [ ] Link to guide
|
|
|
|
**Files Created:**
|
|
- `docs/HOOK_SYSTEM_GUIDE.md`
|
|
|
|
**Files Modified:**
|
|
- `README.md`
|
|
|
|
**Success Criteria:**
|
|
- [ ] Documentation is clear
|
|
- [ ] Easy to troubleshoot issues
|
|
- [ ] Next developer can understand system
|
|
|
|
---
|
|
|
|
**Phase 0 Summary:**
|
|
|
|
After Phase 0, the project has:
|
|
- ✅ Automatic governance enforcement via hooks
|
|
- ✅ GovernanceAuditLog tracking all decisions
|
|
- ✅ Real-time feedback to Claude Code
|
|
- ✅ Foundation for all other governance work
|
|
|
|
**Estimated Time:** 2-3 hours
|
|
**Actual Time (Family-History):** 1 hour (hook import + config only, GovernanceAuditLog was Phase 2)
|
|
|
|
---
|
|
|
|
## **PHASE 1: Core Rule Manager UI** (8-10 hours)
|
|
|
|
*(Same as v1 - see original plan for full details)*
|
|
|
|
**Goal:** Build foundational rule management interface with CRUD operations
|
|
|
|
### 1.1 Backend - Enhanced Rule Model (1 hour)
|
|
### 1.2 Backend - Rule Management API (2 hours)
|
|
### 1.3 Frontend - Rule Manager Dashboard (3 hours)
|
|
### 1.4 Frontend - Rule Editor Modal (2.5 hours)
|
|
### 1.5 Testing & Polish (1.5 hours)
|
|
|
|
---
|
|
|
|
## **PHASE 2: AI Rule Optimizer & CLAUDE.md Analyzer** (10-12 hours)
|
|
|
|
*(Same as v1 - see original plan)*
|
|
|
|
**Goal:** Add intelligent rule optimization and CLAUDE.md migration
|
|
|
|
### 2.1 Backend - Rule Optimizer Service (3 hours)
|
|
### 2.2 Backend - CLAUDE.md Analyzer Service (3 hours)
|
|
### 2.3 Backend - API Endpoints for Optimization (1 hour)
|
|
### 2.4 Frontend - AI Optimization UI (3 hours)
|
|
### 2.5 Frontend - CLAUDE.md Migration Wizard (2 hours)
|
|
### 2.6 Testing & Validation (1 hour)
|
|
|
|
---
|
|
|
|
## **PHASE 3: Multi-Project Infrastructure** (10-12 hours)
|
|
|
|
*(Same as v1, with minor updates)*
|
|
|
|
**Goal:** Enable management of multiple projects with variable substitution
|
|
|
|
### 3.1 Backend - Project Model & API (3 hours)
|
|
### 3.2 Backend - Rule Interpolator Service (2 hours)
|
|
### 3.3 Backend - Seed Initial Projects (1 hour)
|
|
### 3.4 Frontend - Project Switcher (1 hour)
|
|
### 3.5 Frontend - Project Manager Dashboard (2.5 hours)
|
|
### 3.6 Frontend - Project Configuration Editor (2.5 hours)
|
|
### 3.7 Testing & Integration (1 hour)
|
|
|
|
---
|
|
|
|
## **PHASE 3.5: Concurrent Session Architecture** ✅ PARTIALLY IMPLEMENTED
|
|
|
|
**Goal:** Enable multiple concurrent Claude Code sessions without state contamination
|
|
|
|
**Duration:** 4-6 hours (original estimate)
|
|
**Status:** Partially implemented in Family-History
|
|
|
|
**What Was Implemented:**
|
|
- ✅ GovernanceAuditLog provides session isolation
|
|
- ✅ session-init.js creates session in MongoDB
|
|
- ✅ framework-stats.js reads from MongoDB
|
|
- ✅ Session-specific metrics tracked
|
|
|
|
**What Remains:**
|
|
- ⏳ Full Session, SessionState, TokenCheckpoint models
|
|
- ⏳ SessionManager service
|
|
- ⏳ Update all framework services for session awareness
|
|
- ⏳ Concurrent session tests
|
|
|
|
### 3.5.1 Backend - Session Models (1 hour)
|
|
|
|
**Tasks:**
|
|
- [ ] Create `src/models/Session.model.js`
|
|
- [ ] Full schema (see v1 plan)
|
|
- [ ] Static methods
|
|
- [ ] Instance methods
|
|
- [ ] Indexes
|
|
- [ ] Create `src/models/SessionState.model.js`
|
|
- [ ] Active instructions per session
|
|
- [ ] Validations per session
|
|
- [ ] Errors per session
|
|
- [ ] Create `src/models/TokenCheckpoint.model.js`
|
|
- [ ] Checkpoint tracking
|
|
- [ ] Framework fade detection
|
|
|
|
**Files Created:**
|
|
- `src/models/Session.model.js`
|
|
- `src/models/SessionState.model.js`
|
|
- `src/models/TokenCheckpoint.model.js`
|
|
|
|
**Success Criteria:**
|
|
- [ ] Models created with proper schemas
|
|
- [ ] Indexes configured
|
|
- [ ] Can create/query sessions
|
|
|
|
---
|
|
|
|
### 3.5.2 Backend - SessionManager Service (1.5 hours)
|
|
|
|
**Tasks:**
|
|
- [ ] Create `src/services/SessionManager.service.js`
|
|
- [ ] `initializeSession(projectId, purpose)`
|
|
- [ ] `getSessionMetrics(sessionId)`
|
|
- [ ] `updateSessionActivity(sessionId, data)`
|
|
- [ ] `recordPressureCheckpoint(sessionId, tokens, pressure)`
|
|
- [ ] `addInstruction(sessionId, instruction)`
|
|
- [ ] `recordValidation(sessionId, validation)`
|
|
- [ ] `completeSession(sessionId, reason)`
|
|
- [ ] `cleanupOldSessions(daysOld)`
|
|
|
|
**Files Created:**
|
|
- `src/services/SessionManager.service.js`
|
|
|
|
**Success Criteria:**
|
|
- [ ] Can create isolated sessions
|
|
- [ ] Metrics are session-specific
|
|
- [ ] No contamination between sessions
|
|
|
|
---
|
|
|
|
### 3.5.3 Scripts - Update Session Scripts (1 hour)
|
|
|
|
**Tasks:**
|
|
- [ ] Update `scripts/session-init.js`
|
|
- [ ] ✅ Already creates session in MongoDB (family-history)
|
|
- [ ] Add SessionState initialization
|
|
- [ ] Add TokenCheckpoint initialization
|
|
- [ ] Update `scripts/check-session-pressure.js`
|
|
- [ ] Read from MongoDB (not file)
|
|
- [ ] Calculate session-specific pressure
|
|
- [ ] Create `scripts/list-active-sessions.js`
|
|
- [ ] Query MongoDB for active sessions
|
|
- [ ] Display session details
|
|
|
|
**Files Modified:**
|
|
- `scripts/session-init.js`
|
|
- `scripts/check-session-pressure.js`
|
|
|
|
**Files Created:**
|
|
- `scripts/list-active-sessions.js`
|
|
|
|
**Success Criteria:**
|
|
- [ ] Session initialization uses database
|
|
- [ ] Pressure checks use isolated metrics
|
|
- [ ] Can list all active sessions
|
|
|
|
---
|
|
|
|
### 3.5.4 Framework Integration (1 hour)
|
|
|
|
**Tasks:**
|
|
- [ ] Update `src/services/ContextPressureMonitor.service.js`
|
|
- [ ] ✅ Already accepts sessionId (family-history)
|
|
- [ ] Load metrics from MongoDB
|
|
- [ ] Update metrics to MongoDB
|
|
- [ ] Update other services for session awareness
|
|
- [ ] InstructionPersistenceClassifier
|
|
- [ ] MetacognitiveVerifier
|
|
- [ ] CrossReferenceValidator
|
|
|
|
**Files Modified:**
|
|
- All framework services
|
|
|
|
**Success Criteria:**
|
|
- [ ] All services session-aware
|
|
- [ ] Shared state uses file locking
|
|
- [ ] Isolated state uses MongoDB
|
|
|
|
---
|
|
|
|
### 3.5.5 Testing (0.5 hour)
|
|
|
|
**Tasks:**
|
|
- [ ] Create `tests/integration/concurrent-sessions.test.js`
|
|
- [ ] Test isolated metrics
|
|
- [ ] Test independent pressure calculations
|
|
- [ ] Test shared instruction history
|
|
- [ ] Test concurrent execution
|
|
|
|
**Success Criteria:**
|
|
- [ ] All concurrency tests pass
|
|
- [ ] No metric contamination
|
|
- [ ] Sessions can run simultaneously
|
|
|
|
---
|
|
|
|
**Phase 3.5 Summary:**
|
|
|
|
After Phase 3.5:
|
|
- ✅ Multiple Claude Code sessions can run concurrently
|
|
- ✅ Each session has isolated metrics
|
|
- ✅ Shared instruction history accessible to all
|
|
- ✅ No database conflicts
|
|
|
|
**Estimated Time:** 4-6 hours
|
|
**Partial Implementation (Family-History):** ~1 hour (session-init.js + GovernanceAuditLog)
|
|
|
|
---
|
|
|
|
## **PHASE 4: Rule Validation Engine & Testing** (8-10 hours)
|
|
|
|
*(Same as v1)*
|
|
|
|
**Goal:** Real-time rule validation using Tractatus framework services
|
|
|
|
### 4.1 Backend - Rule Validator Service (4 hours)
|
|
### 4.2 Backend - Validation API Endpoints (1 hour)
|
|
### 4.3 Frontend - Rule Validation UI (3 hours)
|
|
### 4.4 Integration Tests for Validator (2 hours)
|
|
### 4.5 Testing & Polish (1 hour)
|
|
|
|
---
|
|
|
|
## **PHASE 5: Project Templates & Cloning** (6-8 hours)
|
|
|
|
*(Same as v1)*
|
|
|
|
**Goal:** Rapid project creation via templates and cloning
|
|
|
|
### 5.1 Backend - Template Model & Service (2 hours)
|
|
### 5.2 Backend - Template & Cloning API (1 hour)
|
|
### 5.3 Backend - Seed Templates (1 hour)
|
|
### 5.4 Frontend - New Project Wizard (2.5 hours)
|
|
### 5.5 Frontend - Template Library Page (1 hour)
|
|
### 5.6 Testing & Validation (0.5 hour)
|
|
|
|
---
|
|
|
|
## **PHASE 6: Deployment Modernization** ⭐ NEW - HIGH VALUE
|
|
|
|
**Goal:** Replace ad-hoc deployment scripts with unified, secure system
|
|
|
|
**Duration:** 3-4 hours
|
|
|
|
**Why High Priority:** Replaces potentially hundreds of scripts with one intelligent script. Provides immediate, tangible value.
|
|
|
|
**Family-History Impact:** Replaced 134 scripts with 1 unified script
|
|
|
|
### 6.1 Analyze Existing Deployment (0.5 hour)
|
|
|
|
**Tasks:**
|
|
- [ ] Inventory existing deployment scripts
|
|
- [ ] Count total scripts
|
|
- [ ] Identify patterns
|
|
- [ ] Find inconsistencies
|
|
- [ ] Note security issues
|
|
- [ ] Document current deployment flow
|
|
- [ ] What gets deployed
|
|
- [ ] Where it goes
|
|
- [ ] How cache busting works (if any)
|
|
- [ ] Service restart process
|
|
|
|
**Analysis Questions:**
|
|
- How many deployment scripts exist?
|
|
- Are they consistent or ad-hoc?
|
|
- Is there cache busting?
|
|
- Are there security checks?
|
|
- What's the error handling?
|
|
|
|
**Success Criteria:**
|
|
- [ ] Understand current state
|
|
- [ ] Identify pain points
|
|
- [ ] Know what to preserve/improve
|
|
|
|
---
|
|
|
|
### 6.2 Create Unified Deployment Script (1.5 hours)
|
|
|
|
**Tasks:**
|
|
- [ ] Create `scripts/deploy.sh`
|
|
- [ ] Parse arguments (files or --frontend-only)
|
|
- [ ] 6-step deployment process:
|
|
1. Pre-deployment checks
|
|
2. Cache version update
|
|
3. Git status review
|
|
4. Deployment confirmation
|
|
5. Deploy to production
|
|
6. Post-deployment (restart/health check)
|
|
- [ ] Security checks
|
|
- [ ] Multi-tenant safety (if applicable)
|
|
- [ ] localStorage violations (if applicable)
|
|
- [ ] Local testing verification
|
|
- [ ] Uncommitted changes warning
|
|
- [ ] Features
|
|
- [ ] Dry-run mode (`--dry-run`)
|
|
- [ ] Automatic cache busting
|
|
- [ ] Smart restart detection
|
|
- [ ] Health checks
|
|
- [ ] Template cleanup (if applicable)
|
|
|
|
**Script Structure:**
|
|
```bash
|
|
#!/bin/bash
|
|
set -e
|
|
|
|
# Configuration
|
|
REMOTE_USER="ubuntu"
|
|
REMOTE_HOST="example.com"
|
|
REMOTE_PATH="/var/www/app"
|
|
TIMESTAMP=$(date +%s)
|
|
|
|
# Parse flags
|
|
FILES_TO_DEPLOY=()
|
|
DRY_RUN=false
|
|
RESTART_SERVICE=false
|
|
|
|
# [1/6] PRE-DEPLOYMENT CHECKS
|
|
# - Project root verification
|
|
# - Security checks (project-specific)
|
|
# - Local server running
|
|
# - Uncommitted changes
|
|
|
|
# [2/6] CACHE VERSION UPDATE
|
|
# - Update service worker version
|
|
# - Generate DEPLOYMENT_VERSION timestamp
|
|
|
|
# [3/6] GIT STATUS
|
|
# - Show recent commits
|
|
# - Show uncommitted changes
|
|
# - Confirm to proceed
|
|
|
|
# [4/6] DEPLOYMENT CONFIRMATION
|
|
# - Show files to deploy
|
|
# - Show destination
|
|
# - Confirm to proceed
|
|
|
|
# [5/6] DEPLOY TO PRODUCTION
|
|
# - Deploy service worker first
|
|
# - Deploy requested files (or frontend)
|
|
# - Update DEPLOYMENT_VERSION on server
|
|
|
|
# [6/6] POST-DEPLOYMENT
|
|
# - Restart service if needed
|
|
# - Health check
|
|
# - Success message
|
|
```
|
|
|
|
**Family-History Example:**
|
|
```bash
|
|
# Deploy specific files
|
|
./scripts/deploy.sh public/js/gallery-modern.js
|
|
|
|
# Deploy multiple files with restart
|
|
./scripts/deploy.sh src/controllers/chatController.js public/js/chat.js --restart
|
|
|
|
# Dry-run preview
|
|
./scripts/deploy.sh public/js/file.js --dry-run
|
|
|
|
# Deploy frontend only
|
|
./scripts/deploy.sh --frontend-only
|
|
```
|
|
|
|
**Files Created:**
|
|
- `scripts/deploy.sh`
|
|
|
|
**Success Criteria:**
|
|
- [ ] Script handles all deployment scenarios
|
|
- [ ] Security checks prevent bad deployments
|
|
- [ ] Cache busting works
|
|
- [ ] Dry-run shows accurate preview
|
|
- [ ] Health checks verify success
|
|
|
|
---
|
|
|
|
### 6.3 Create Security Exclusions (0.5 hour)
|
|
|
|
**Tasks:**
|
|
- [ ] Create `.rsyncignore` for full deployment
|
|
- [ ] Sensitive configuration (.env, .env.*)
|
|
- [ ] Credentials (*.key, *.pem, credentials.json)
|
|
- [ ] Governance files (CLAUDE.md, .claude/, docs/)
|
|
- [ ] Development tools (.vscode/, node_modules/)
|
|
- [ ] Logs (*.log, logs/)
|
|
- [ ] Testing (test/, *.test.js)
|
|
- [ ] OS files (.DS_Store, Thumbs.db)
|
|
- [ ] Document exclusions
|
|
- [ ] Why each pattern is excluded
|
|
- [ ] Reference to governance rules
|
|
|
|
**Example `.rsyncignore`:**
|
|
```
|
|
# Sensitive configuration
|
|
.env
|
|
.env.*
|
|
!.env.production
|
|
|
|
# Credentials
|
|
*.key
|
|
*.pem
|
|
credentials.json
|
|
secrets.json
|
|
|
|
# Governance files (inst_XXX reference)
|
|
CLAUDE.md
|
|
.claude/
|
|
TRACTATUS_INTEGRATION_PLAN.md
|
|
|
|
# Development tools
|
|
.vscode/
|
|
.idea/
|
|
node_modules/
|
|
|
|
# Testing
|
|
test/
|
|
tests/
|
|
*.test.js
|
|
coverage/
|
|
|
|
# Logs
|
|
*.log
|
|
logs/
|
|
|
|
# OS files
|
|
.DS_Store
|
|
Thumbs.db
|
|
```
|
|
|
|
**Files Created:**
|
|
- `.rsyncignore`
|
|
|
|
**Success Criteria:**
|
|
- [ ] Sensitive files excluded
|
|
- [ ] Deployment is secure
|
|
- [ ] No accidental credential leaks
|
|
|
|
---
|
|
|
|
### 6.4 Test Deployment Script (0.5 hour)
|
|
|
|
**Tasks:**
|
|
- [ ] Test with dry-run
|
|
- [ ] Deploy single file
|
|
- [ ] Deploy multiple files
|
|
- [ ] Deploy frontend only
|
|
- [ ] Verify preview is accurate
|
|
- [ ] Test security checks
|
|
- [ ] Trigger localStorage violation (if applicable)
|
|
- [ ] Try without local testing
|
|
- [ ] Deploy with uncommitted changes
|
|
- [ ] Test actual deployment
|
|
- [ ] Deploy to staging (if available)
|
|
- [ ] Verify files transferred
|
|
- [ ] Verify cache bust works
|
|
- [ ] Verify restart works
|
|
- [ ] Check health endpoint
|
|
|
|
**Test Checklist:**
|
|
- [ ] Dry-run shows correct files
|
|
- [ ] Security checks block bad deployments
|
|
- [ ] Cache busting generates new version
|
|
- [ ] Service restarts when needed
|
|
- [ ] Health check verifies success
|
|
- [ ] Error handling is clear
|
|
|
|
**Success Criteria:**
|
|
- [ ] Script works in all scenarios
|
|
- [ ] No bugs in deployment flow
|
|
- [ ] Clear feedback at each step
|
|
|
|
---
|
|
|
|
### 6.5 Documentation & Migration (0.5 hour)
|
|
|
|
**Tasks:**
|
|
- [ ] Create `docs/DEPLOYMENT_GUIDE.md`
|
|
- [ ] How to use new script
|
|
- [ ] Examples for common scenarios
|
|
- [ ] Troubleshooting
|
|
- [ ] Comparison with old scripts
|
|
- [ ] Update project README
|
|
- [ ] Deployment section
|
|
- [ ] Link to guide
|
|
- [ ] Deprecation plan for old scripts
|
|
- [ ] Move to `scripts/deprecated/`
|
|
- [ ] Add README explaining deprecation
|
|
- [ ] Keep for reference
|
|
|
|
**Deprecation README Example:**
|
|
```markdown
|
|
# Deprecated Deployment Scripts
|
|
|
|
These scripts have been replaced by `scripts/deploy.sh`.
|
|
|
|
## Migration Guide
|
|
|
|
Old: `./scripts/deploy-dashboard-fix.sh`
|
|
New: `./scripts/deploy.sh public/js/dashboard.js`
|
|
|
|
Old: `./scripts/deploy-api-emergency.sh`
|
|
New: `./scripts/deploy.sh src/controllers/*.js --restart`
|
|
|
|
See `docs/DEPLOYMENT_GUIDE.md` for full documentation.
|
|
```
|
|
|
|
**Files Created:**
|
|
- `docs/DEPLOYMENT_GUIDE.md`
|
|
- `scripts/deprecated/README.md`
|
|
|
|
**Files Modified:**
|
|
- `README.md`
|
|
|
|
**Success Criteria:**
|
|
- [ ] Documentation is comprehensive
|
|
- [ ] Easy to migrate from old scripts
|
|
- [ ] Deprecation plan is clear
|
|
|
|
---
|
|
|
|
**Phase 6 Summary:**
|
|
|
|
After Phase 6:
|
|
- ✅ Unified deployment script replaces all ad-hoc scripts
|
|
- ✅ Security checks prevent bad deployments
|
|
- ✅ Cache busting forces browser refresh
|
|
- ✅ Dry-run capability
|
|
- ✅ Health checks verify success
|
|
- ✅ Clear documentation
|
|
|
|
**Estimated Time:** 3-4 hours
|
|
**Actual Time (Family-History):** 2 hours
|
|
|
|
**Value Delivered:**
|
|
- Replaced 134 scripts with 1 (if similar to family-history)
|
|
- Consistent deployment process
|
|
- Security enforcement
|
|
- Developer experience improvement
|
|
|
|
---
|
|
|
|
## **PHASE 7: Polish, Documentation & Production** (4-6 hours)
|
|
|
|
*(Updated from v1 "Phase 6")*
|
|
|
|
**Goal:** Production-ready system with comprehensive documentation
|
|
|
|
### 7.1 UI/UX Polish (2 hours)
|
|
### 7.2 Documentation (2 hours)
|
|
### 7.3 Security Audit (1 hour)
|
|
### 7.4 Performance Optimization (0.5 hour)
|
|
### 7.5 Production Deployment (0.5 hour)
|
|
|
|
---
|
|
|
|
## 📋 Integration Patterns (NEW Section)
|
|
|
|
### Pattern 1: Framework Service Adaptation
|
|
|
|
**When:** Integrating Tractatus services into new project
|
|
|
|
**Steps:**
|
|
1. Copy service files to `src/services/`
|
|
2. Update MongoDB connection string
|
|
3. Make MemoryProxy optional (if not needed)
|
|
4. Add tenant context (if multi-tenant)
|
|
5. Update logger path
|
|
6. Test service initialization
|
|
|
|
**Code Template:**
|
|
```javascript
|
|
// At top of service file
|
|
const logger = require('../utils/logger');
|
|
const { getCurrentTenant } = require('../utils/tenantContext'); // If multi-tenant
|
|
const GovernanceAuditLog = require('../models/GovernanceAuditLog');
|
|
|
|
// In initialize() method
|
|
async initialize(sessionId) {
|
|
this.sessionId = sessionId;
|
|
|
|
// Optional: Make MemoryProxy optional
|
|
this.memoryProxy = null; // Or getMemoryProxy() if available
|
|
|
|
// Connect to MongoDB with project-specific port/database
|
|
await mongoose.connect('mongodb://localhost:PORT/DATABASE_NAME');
|
|
}
|
|
|
|
// In audit method
|
|
_auditDecision(result, action, context = {}) {
|
|
const tenantId = getCurrentTenant(); // null if not multi-tenant
|
|
|
|
GovernanceAuditLog.logDecision({
|
|
tenantId,
|
|
service: 'ServiceName',
|
|
// ... rest of audit data
|
|
});
|
|
}
|
|
```
|
|
|
|
**Time Estimate:** 2-3 hours for all 6 services
|
|
|
|
---
|
|
|
|
### Pattern 2: Hook System Setup
|
|
|
|
**When:** Adding automatic governance enforcement
|
|
|
|
**Steps:**
|
|
1. Copy `.claude/hooks/` directory
|
|
2. Adapt `framework-audit-hook.js` for project
|
|
3. Create GovernanceAuditLog model (if not exists)
|
|
4. Configure `.claude/settings.local.json`
|
|
5. Test hook activation
|
|
|
|
**Configuration Template:**
|
|
```json
|
|
{
|
|
"hooks": {
|
|
"PreToolUse": [
|
|
{
|
|
"matcher": "Edit|Write",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": ".claude/hooks/framework-audit-hook.js",
|
|
"timeout": 10
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
**Time Estimate:** 1 hour
|
|
|
|
---
|
|
|
|
### Pattern 3: Multi-Tenant Governance
|
|
|
|
**When:** Project has multi-tenant architecture
|
|
|
|
**Components:**
|
|
1. **AsyncLocalStorage** for tenant context
|
|
2. **GovernanceAuditLog** (tenant-aware, not filtered)
|
|
3. **AuditLog** (tenant-filtered)
|
|
4. **Framework services** call `getCurrentTenant()`
|
|
|
|
**Architecture:**
|
|
```
|
|
Request → tenantContextMiddleware → AsyncLocalStorage
|
|
↓
|
|
Framework Services
|
|
↓
|
|
getCurrentTenant()
|
|
↓
|
|
GovernanceAuditLog (records tenantId for context)
|
|
```
|
|
|
|
**Time Estimate:** 2-3 hours
|
|
|
|
---
|
|
|
|
### Pattern 4: Deployment Modernization
|
|
|
|
**When:** Project has many ad-hoc deployment scripts
|
|
|
|
**Steps:**
|
|
1. Analyze existing scripts (count, patterns)
|
|
2. Create unified `deploy.sh` script
|
|
3. Add security checks (project-specific)
|
|
4. Create `.rsyncignore` for exclusions
|
|
5. Test with dry-run
|
|
6. Deprecate old scripts
|
|
|
|
**Features to Include:**
|
|
- Dry-run mode
|
|
- Cache busting (timestamp-based)
|
|
- Security checks (localStorage, credentials, etc.)
|
|
- Smart restart detection
|
|
- Health checks
|
|
|
|
**Time Estimate:** 3-4 hours
|
|
|
|
---
|
|
|
|
### Pattern 5: Session Management
|
|
|
|
**When:** Supporting concurrent Claude Code sessions
|
|
|
|
**Components:**
|
|
1. **Session model** (unique ID, metrics, status)
|
|
2. **SessionState model** (active instructions, validations)
|
|
3. **TokenCheckpoint model** (pressure tracking)
|
|
4. **SessionManager service** (CRUD operations)
|
|
5. **Updated framework services** (session-aware)
|
|
|
|
**Key Insight:** GovernanceAuditLog provides session isolation automatically (via sessionId field)
|
|
|
|
**Time Estimate:** 4-6 hours (or 1 hour for basic version)
|
|
|
|
---
|
|
|
|
## 📊 Updated Summary
|
|
|
|
### Total Estimated Time: 50-62 hours
|
|
|
|
| Phase | Estimated Time | Status | Key Deliverables |
|
|
|-------|----------------|--------|------------------|
|
|
| Phase 0: Hook System | 2-3 hours | ✅ Validated | Automatic governance enforcement |
|
|
| Phase 1: Core Rule Manager | 8-10 hours | ⏳ Planned | Rule CRUD, dashboard, editor |
|
|
| Phase 2: AI Optimizer | 10-12 hours | ⏳ Planned | Rule optimization, CLAUDE.md migration |
|
|
| Phase 3: Multi-Project | 10-12 hours | ⏳ Planned | Project management, variable interpolation |
|
|
| Phase 3.5: Concurrent Sessions | 4-6 hours | 🔄 Partial | Database-backed session state |
|
|
| Phase 4: Validation Engine | 8-10 hours | ⏳ Planned | Real-time rule validation |
|
|
| Phase 5: Templates & Cloning | 6-8 hours | ⏳ Planned | Project templates, cloning |
|
|
| Phase 6: Deployment | 3-4 hours | ✅ Validated | Unified deployment script |
|
|
| Phase 7: Polish & Production | 4-6 hours | ⏳ Planned | Documentation, security, deployment |
|
|
|
|
### Milestones (Updated)
|
|
|
|
**Milestone 0** (After Phase 0): ✅ Hook system operational - VALIDATED
|
|
**Milestone 1** (After Phase 1): Basic rule management working
|
|
**Milestone 2** (After Phase 2): AI-powered optimization and CLAUDE.md migration
|
|
**Milestone 3** (After Phase 3): Multi-project system operational
|
|
**Milestone 3.5** (After Phase 3.5): 🔄 Concurrent session support (partially validated)
|
|
**Milestone 4** (After Phase 4): Validation engine integrated
|
|
**Milestone 5** (After Phase 5): Template system complete
|
|
**Milestone 6** (After Phase 6): ✅ Deployment modernized - VALIDATED
|
|
**Milestone 7** (After Phase 7): **Production-ready, world-class system**
|
|
|
|
---
|
|
|
|
## 🎯 Updated Success Criteria
|
|
|
|
**Product is ready when:**
|
|
|
|
- [x] Hook system enforces governance automatically (✅ Validated)
|
|
- [x] GovernanceAuditLog tracks all decisions (✅ Validated)
|
|
- [x] Deployment modernized with security checks (✅ Validated)
|
|
- [ ] All rules managed via UI
|
|
- [ ] CLAUDE.md successfully migrated to rules
|
|
- [ ] Can manage multiple projects (Tractatus + others)
|
|
- [ ] Rules validated against framework in real-time
|
|
- [ ] Can create projects from templates in <2 minutes
|
|
- [ ] AI optimizer improves rule clarity measurably
|
|
- [ ] Documentation is comprehensive
|
|
- [ ] No security vulnerabilities
|
|
- [ ] Deployed to production and stable
|
|
|
|
**Commercialization Ready When:**
|
|
|
|
- [ ] System is polished and professional
|
|
- [ ] Documentation suitable for external users
|
|
- [ ] Multi-tenant support (user authentication/authorization)
|
|
- [ ] Pricing/billing system (if SaaS)
|
|
- [ ] Marketing materials prepared
|
|
- [ ] Support system in place
|
|
- [ ] Integration guides for common stacks
|
|
- [ ] Video tutorials/demos
|
|
- [ ] Customer testimonials/case studies
|
|
|
|
---
|
|
|
|
## 🔍 Validation Evidence
|
|
|
|
### Family-History Integration (Nov 1-2, 2025)
|
|
|
|
**Validated Phases:**
|
|
- ✅ Phase 0: Hook System (1 hour actual)
|
|
- ✅ Phase 6: Deployment Modernization (2 hours actual)
|
|
- 🔄 Phase 3.5: Concurrent Sessions (1 hour partial)
|
|
|
|
**Validated Patterns:**
|
|
- ✅ Framework Service Adaptation (2 hours for 6 services)
|
|
- ✅ Multi-Tenant Governance (GovernanceAuditLog + AsyncLocalStorage)
|
|
- ✅ Hook System Setup (framework-audit-hook.js)
|
|
- ✅ Deployment Modernization (unified deploy.sh)
|
|
|
|
**Evidence:**
|
|
- Session handoff: `docs/session-handoffs/session-handoff-2025-11-02-tractatus-framework-deployment.md`
|
|
- GovernanceAuditLog model: `src/models/GovernanceAuditLog.js` (261 lines)
|
|
- Deployment script: `scripts/deploy.sh` (400 lines)
|
|
- Hook system: `.claude/hooks/framework-audit-hook.js` (adapted)
|
|
- All 6 framework services updated with tenant context
|
|
|
|
**Metrics:**
|
|
- Integration time: ~8 hours total
|
|
- Scripts replaced: 134 → 1
|
|
- Governance rules: 31 active
|
|
- Framework services: 6 active
|
|
- Zero runtime errors
|
|
|
|
---
|
|
|
|
## 🚦 Next Steps
|
|
|
|
### Immediate Actions (Priority Order)
|
|
|
|
1. **✅ Document Family-History Integration** (COMPLETE)
|
|
- Session handoff created
|
|
- Lessons learned documented
|
|
- Integration patterns validated
|
|
|
|
2. **Review This Updated Plan**
|
|
- Confirm Phase 0 priority
|
|
- Validate Phase 6 inclusion
|
|
- Approve architectural updates
|
|
|
|
3. **Choose Next Phase**
|
|
- **Option A**: Begin Phase 1 (Core Rule Manager UI)
|
|
- **Option B**: Complete Phase 3.5 (Concurrent Sessions)
|
|
- **Option C**: Begin Phase 2 (AI Optimizer) for CLAUDE.md migration
|
|
|
|
4. **Set Up Project Tracking**
|
|
- Create task board
|
|
- Break down chosen phase
|
|
- Estimate timeline
|
|
|
|
### Recommended Sequence
|
|
|
|
Based on value delivered and validation:
|
|
|
|
1. **Phase 0** - Hook System (if not yet integrated) ⭐ **Highest ROI**
|
|
2. **Phase 6** - Deployment Modernization (if many scripts exist) ⭐ **Quick Win**
|
|
3. **Phase 1** - Core Rule Manager UI (foundation for everything)
|
|
4. **Phase 2** - AI Optimizer (CLAUDE.md migration is valuable)
|
|
5. **Phase 3** - Multi-Project Infrastructure
|
|
6. **Phase 3.5** - Concurrent Sessions (finish what was started)
|
|
7. **Phase 4** - Validation Engine
|
|
8. **Phase 5** - Templates & Cloning
|
|
9. **Phase 7** - Polish & Production
|
|
|
|
### Questions to Resolve
|
|
|
|
1. **Calendar Review Date**: When is the Tractatus calendar review?
|
|
2. **Multi-Project Priority**: How many projects will use this system?
|
|
3. **Commercial Timeline**: When do you want to commercialize?
|
|
4. **Phase Selection**: Which phase should we start with?
|
|
5. **Time Commitment**: How many hours/week can you dedicate?
|
|
|
|
---
|
|
|
|
## 📚 References
|
|
|
|
### Internal Documentation
|
|
- Family-History Session Handoff: `family-history/docs/session-handoffs/session-handoff-2025-11-02-tractatus-framework-deployment.md`
|
|
- Concurrent Session Architecture: `tractatus/docs/research/concurrent-session-architecture-limitations.md`
|
|
- Original Implementation Plan v1: `tractatus/docs/MULTI_PROJECT_GOVERNANCE_IMPLEMENTATION_PLAN.md`
|
|
|
|
### Models & Services
|
|
- GovernanceAuditLog: `src/models/GovernanceAuditLog.js`
|
|
- All 6 Framework Services: `src/services/*Enforcer|*Validator|*Verifier|*Monitor|*Classifier|*Orchestrator*.service.js`
|
|
- SessionManager (planned): `src/services/SessionManager.service.js`
|
|
|
|
### Scripts & Tools
|
|
- Hook System: `.claude/hooks/framework-audit-hook.js`
|
|
- Session Init: `scripts/session-init.js`
|
|
- Framework Stats: `scripts/framework-stats.js`
|
|
- Deployment: `scripts/deploy.sh` (family-history example)
|
|
|
|
### External References
|
|
- AsyncLocalStorage: https://nodejs.org/api/async_context.html
|
|
- MongoDB Indexes: https://docs.mongodb.com/manual/indexes/
|
|
- PreToolUse Hooks: Claude Code documentation
|
|
|
|
---
|
|
|
|
## 🎓 Appendix: Architectural Decisions
|
|
|
|
### Why GovernanceAuditLog is Separate from AuditLog
|
|
|
|
**Problem:** Multi-tenant projects need both user action auditing (tenant-isolated) and governance decision auditing (platform-wide).
|
|
|
|
**Solution:**
|
|
- **AuditLog**: Tenant-filtered, stores user actions within a tenant
|
|
- **GovernanceAuditLog**: Platform-wide, tenant-aware, stores framework decisions
|
|
|
|
**Rationale:**
|
|
1. **Legal Compliance**: User audit logs must be tenant-isolated for privacy
|
|
2. **Security Analytics**: Governance logs must be platform-wide to detect patterns
|
|
3. **Performance**: Separate collections prevent tenant-filter overhead on governance queries
|
|
4. **Clarity**: Clear separation of concerns
|
|
|
|
**Alternative Considered:** Single audit log with optional tenant filter
|
|
**Rejected Because:** Mixing governance and user actions is semantically incorrect
|
|
|
|
---
|
|
|
|
### Why Hooks are Phase 0
|
|
|
|
**Original Plan:** Hooks not mentioned until implementation details
|
|
|
|
**Problem:** Hooks are the most valuable feature, demonstrate immediate ROI
|
|
|
|
**Solution:** Promote to Phase 0 (foundation)
|
|
|
|
**Rationale:**
|
|
1. **Immediate Value**: Automatic governance enforcement from day 1
|
|
2. **Demonstrates Power**: Shows framework value quickly
|
|
3. **Foundation**: Other features build on hook-enforced governance
|
|
4. **Sales**: Best feature for commercialization pitch
|
|
|
|
**Evidence:** Family-History integration put hooks first, validated approach
|
|
|
|
---
|
|
|
|
### Why Deployment Modernization is a Phase
|
|
|
|
**Original Plan:** No deployment phase
|
|
|
|
**Problem:** Ad-hoc deployment scripts are pain point, modernization delivers value
|
|
|
|
**Solution:** Add Phase 6 (Deployment Modernization)
|
|
|
|
**Rationale:**
|
|
1. **Pain Point**: Projects often have 50-100+ ad-hoc scripts
|
|
2. **Security**: Unified script can enforce security checks
|
|
3. **Consistency**: One script ensures repeatable deployments
|
|
4. **Developer Experience**: Massive improvement in usability
|
|
|
|
**Evidence:** Family-History had 134 scripts, replaced with 1, huge win
|
|
|
|
---
|
|
|
|
**Version:** 2.0
|
|
**Last Updated:** November 2, 2025
|
|
**Status:** Ready for Implementation
|
|
**Validated:** Family-History Integration (Nov 2025)
|
|
|
|
---
|
|
|
|
Ready to build the future of AI-powered governance? 🚀
|