tractatus/CLAUDE.md
TheFlow b6f916584f docs: update systemd documentation and bump cache version to v1.0.3
- Added comprehensive systemd process management section to CLAUDE.md
- Migrated from pm2 to systemd for production service management
- Updated cache-busting version to v1.0.3 on index.html
- Tooltips already configured for hover-only display (opacity-0 group-hover:opacity-100)
- Leader card action button verified and present
2025-10-09 09:46:46 +13:00

148 lines
6 KiB
Markdown

# Tractatus - Active Session Governance (Claude Code)
**Project**: Tractatus Website | **Database**: tractatus_dev (port 27017) | **App Port**: 9000
**Status**: Phase 1 Development | **Separate from**: family-history, sydigital
---
## ⚠️ MANDATORY SESSION START PROTOCOL
**IMMEDIATELY upon session start, run ONE command:**
```bash
node scripts/session-init.js
```
**⚠️ CRITICAL: Also run this IMMEDIATELY after continuing from a compacted conversation!**
**This automated script will:**
1. ✅ Detect new session vs. continued session
2. ✅ Initialize session state and reset token checkpoints
3. ✅ Load instruction history (shows active HIGH/MEDIUM/LOW counts)
4. ✅ Run baseline pressure check (ContextPressureMonitor)
5. ✅ Verify all 5 framework components operational
6. ✅ Report framework status to user
**Manual fallback** (if script fails):
- `node scripts/check-session-pressure.js --tokens 0/200000 --messages 0`
- Read `.claude/instruction-history.json` for active instructions
---
## 🔒 FIVE MANDATORY FRAMEWORK COMPONENTS (ALWAYS ACTIVE)
**These MUST be used continuously throughout EVERY session. No exceptions.**
### 1. **ContextPressureMonitor** (Every 25% tokens = 50k)
- **When**: Session start, 50k, 100k, 150k tokens, complex operations, errors
- **Command**: `node scripts/check-session-pressure.js --tokens <current>/<budget> --messages <count>`
- **Update**: `.claude/session-state.json` and `.claude/token-checkpoints.json`
### 2. **InstructionPersistenceClassifier** (All explicit directives)
- **When**: User gives explicit instruction (ports, configs, requirements, constraints)
- **Action**: Classify quadrant (STR/OPS/TAC/SYS/STO), persistence level, temporal scope
- **Store**: Append to `.claude/instruction-history.json`
### 3. **CrossReferenceValidator** (Before major changes)
- **When**: Database changes, config modifications, file edits, architecture decisions
- **Action**: Check `.claude/instruction-history.json` for conflicts
- **Block**: If conflicts with HIGH persistence instructions
### 4. **BoundaryEnforcer** (Before values decisions)
- **When**: Privacy decisions, ethical trade-offs, user agency, mission changes
- **Action**: Verify decision doesn't cross into values territory
- **Block**: All values decisions require human approval
### 5. **MetacognitiveVerifier** (Complex operations only)
- **When**: Operations with >3 files, >5 steps, architecture changes, security implementations
- **Action**: Verify alignment, coherence, completeness, safety, alternatives
- **Report**: Confidence score + alternatives before proceeding
---
## 🚨 FRAMEWORK FADE DETECTION & RECOVERY
**Framework fade = Components not being used. This is CRITICAL FAILURE.**
**Signs of fade:**
- No pressure check in 50k tokens
- No instruction classification when directive given
- No boundary check before values decision
- No validator check before major change
**Immediate action when fade detected:**
1. **STOP all work**
2. **Run**: `node scripts/recover-framework.js`
3. **Report to user**: Framework lapsed, recovery initiated
4. **Resume**: Only after recovery complete
**Automated monitoring**: `npm run dev` now runs framework-watchdog.js in background
---
## 📋 PRE-ACTION CHECK (Required before major actions)
**Before ANY of these, run**: `node scripts/pre-action-check.js <action-type> [file-path] <description>`
Action types: `file-edit`, `database`, `architecture`, `config`, `security`, `values`, `complex`
**File path (optional)**: When editing HTML/JS files, include file path for automated CSP validation
- Example: `node scripts/pre-action-check.js file-edit public/docs.html "Update navigation"`
**Exit codes:**
- 0 = PASS (proceed)
- 1 = FAIL (blocked, address issues)
- 2 = ERROR (system failure)
**🔒 Automated CSP Validation (inst_008 enforcement)**:
- Automatically validates HTML/JS files for Content Security Policy violations
- Detects: inline event handlers (`onclick=`), inline styles (`style=""`), inline scripts, `javascript:` URLs
- Blocks action if violations found - prevents CSP violations from reaching production
- This automated check catches violations that manual review might miss
---
## 📚 DETAILED REFERENCE DOCUMENTS
- **CLAUDE_Tractatus_Maintenance_Guide.md**: Full governance framework, conventions, directory structure
- **docs/claude-code-framework-enforcement.md**: Complete technical documentation
- **.claude/instruction-history.json**: Persistent instruction database
- **.claude/session-state.json**: Current session framework activity
- **.claude/token-checkpoints.json**: Token milestone tracking
---
## 🎯 QUICK REFERENCE
**MongoDB**: Port 27017, database `tractatus_dev`
**Application**: Node.js/Express, port 9000
**Tech Stack**: Vanilla JS, Tailwind CSS, MongoDB, Express
**No shared code**: Separate from family-history and sydigital
**Human approval required**: Architectural changes, DB schema, security, values content
**Quality standard**: World-class, no shortcuts, no fake data
### Process Management: systemd (NOT pm2)
**Production**: `tractatus.service` (systemd service on vps-93a693da.vps.ovh.net)
**Development**: Run via `npm start` (local development) or `tractatus-dev.service` (systemd)
**Key Commands**:
```bash
# Production status/control
ssh -i ~/.ssh/tractatus_deploy ubuntu@vps-93a693da.vps.ovh.net "sudo systemctl status tractatus"
ssh -i ~/.ssh/tractatus_deploy ubuntu@vps-93a693da.vps.ovh.net "sudo systemctl restart tractatus"
ssh -i ~/.ssh/tractatus_deploy ubuntu@vps-93a693da.vps.ovh.net "sudo journalctl -u tractatus -f"
# Install/update systemd services
./scripts/install-systemd.sh prod # Production
./scripts/install-systemd.sh dev # Development (requires sudo password)
```
**Service Files**: `systemd/tractatus-prod.service`, `systemd/tractatus-dev.service`
**Security**: NoNewPrivileges, PrivateTmp, ProtectSystem=strict, 2G memory limit
**Auto-start**: Enabled on boot via `systemctl enable`
---
**Last Updated**: 2025-10-09 (Migrated from pm2 to systemd, added automated CSP validation)
**For full details**: See CLAUDE_Tractatus_Maintenance_Guide.md