tractatus/scripts/add-inst-077-closedown-script.js
TheFlow 65784f02f8 feat(blog): integrate Tractatus framework governance into blog publishing
Implements architectural enforcement of governance rules (inst_016/017/018/079)
for all external communications. Publication blocked at API level if violations
detected.

New Features:
- Framework content checker script with pattern matching for prohibited terms
- Admin UI displays framework violations with severity indicators
- Manual "Check Framework" button for pre-publication validation
- API endpoint /api/blog/check-framework for real-time content analysis

Governance Rules Added:
- inst_078: "ff" trigger for manual framework invocation in conversations
- inst_079: Dark patterns prohibition (sovereignty principle)
- inst_080: Open source commitment enforcement (community principle)
- inst_081: Pluralism principle with indigenous framework recognition

Session Management:
- Fix session-init.js infinite loop (removed early return after tests)
- Add session-closedown.js for comprehensive session handoff
- Refactor check-csp-violations.js to prevent parent process exit

Framework Services:
- Enhanced PluralisticDeliberationOrchestrator with audit logging
- Updated all 6 services with consistent initialization patterns
- Added framework invocation scripts for blog content validation

Files: blog.controller.js:1211-1305, blog.routes.js:77-82,
blog-curation.html:61-72, blog-curation.js:320-446

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-25 08:47:31 +13:00

121 lines
5 KiB
JavaScript
Executable file

#!/usr/bin/env node
/**
* Add inst_077 (session closedown script invocation)
* and deprecate inst_024_CONSOLIDATED
*
* This script adds the new instruction to replace manual closedown with automated script
*/
const fs = require('fs');
const path = require('path');
const INSTRUCTION_HISTORY_PATH = path.join(__dirname, '../.claude/instruction-history.json');
function main() {
console.log('Loading instruction history...');
const history = JSON.parse(fs.readFileSync(INSTRUCTION_HISTORY_PATH, 'utf8'));
// Check if inst_077 already exists
const existing = history.instructions.find(i => i.id === 'inst_077');
if (existing) {
console.log('⚠️ inst_077 already exists - updating instead');
}
// Find inst_024_CONSOLIDATED to deprecate
const inst024Consolidated = history.instructions.find(i => i.id === 'inst_024_CONSOLIDATED');
if (!inst024Consolidated) {
console.error('❌ Could not find inst_024_CONSOLIDATED');
process.exit(1);
}
if (!inst024Consolidated.active) {
console.log('✓ inst_024_CONSOLIDATED already deprecated');
} else {
console.log('Deprecating inst_024_CONSOLIDATED...');
inst024Consolidated.active = false;
inst024Consolidated.deprecated_date = new Date().toISOString().split('T')[0];
inst024Consolidated.deprecated_session = '2025-10-24-session-management-automation';
inst024Consolidated.deprecation_reason = 'Replaced by executable script (session-closedown.js) invoked via inst_077. Manual procedure now automated with framework analysis and rule suggestions.';
}
// Create inst_077
const inst077 = {
id: 'inst_077',
text: 'When user requests session closedown (or says "wrap up", "end session", "create handoff", "process session closedown"), execute: `node scripts/session-closedown.js`. Script will handle all closedown phases: (1) Kill background processes, (2) Sync instructions to database, (3) Framework performance analysis, (4) Audit log analysis with rule suggestions, (5) Git status documentation, (6) Handoff document creation, (7) Compaction marker creation. STOP ALL WORK after script completes. Do NOT continue working or respond beyond acknowledging completion. Script output includes next session startup instructions.',
timestamp: new Date().toISOString(),
quadrant: 'OPERATIONAL',
persistence: 'HIGH',
temporal_scope: 'PERMANENT',
verification_required: 'MANDATORY',
explicitness: 0.98,
source: 'framework',
session_id: '2025-10-24-session-management-automation',
parameters: {
trigger_phrases: [
'wrap up',
'end session',
'create handoff',
'process session closedown',
'session closedown'
],
script_path: 'scripts/session-closedown.js',
post_script_action: 'STOP_ALL_WORK',
script_phases: [
'cleanup',
'framework_analysis',
'audit_analysis',
'git_documentation',
'handoff_creation',
'compaction_marker'
],
replaces: 'inst_024_CONSOLIDATED'
},
active: true,
notes: 'Replaces inst_024_CONSOLIDATED (and all inst_024 series) with executable session-closedown.js script. Script provides: automated cleanup, framework performance metrics, audit log analysis, violation pattern detection, rule suggestions (3+ occurrences threshold), git status capture, comprehensive handoff document generation, compaction marker for post-restart detection. Ensures consistency across all session closedowns, reduces manual errors, provides framework intelligence.',
created_date: new Date().toISOString().split('T')[0],
replaces: ['inst_024_CONSOLIDATED', 'inst_024', 'inst_024a', 'inst_024b', 'inst_024c', 'inst_024d', 'inst_024e'],
implementation: 'scripts/session-closedown.js',
related_script: 'scripts/session-init.js (detects compaction marker)',
architecture_doc: 'docs/SESSION_MANAGEMENT_ARCHITECTURE.md'
};
if (existing) {
// Update existing
const index = history.instructions.findIndex(i => i.id === 'inst_077');
history.instructions[index] = inst077;
console.log('✓ Updated inst_077');
} else {
// Add new
history.instructions.push(inst077);
console.log('✓ Added inst_077');
}
// Update metadata
history.metadata = history.metadata || {};
history.metadata.last_updated = new Date().toISOString();
history.metadata.total_instructions = history.instructions.filter(i => i.active).length;
// Save
console.log('Saving instruction history...');
fs.writeFileSync(
INSTRUCTION_HISTORY_PATH,
JSON.stringify(history, null, 2)
);
console.log('');
console.log('✅ SUCCESS');
console.log('');
console.log('Changes:');
console.log(' ✓ inst_077 created/updated (ACTIVE)');
console.log(' ✓ inst_024_CONSOLIDATED deprecated');
console.log('');
console.log('Next steps:');
console.log(' 1. Run: node scripts/sync-instructions-to-db.js --force');
console.log(' 2. Verify sync: Check governance admin UI');
console.log(' 3. Test: User says "process session closedown"');
console.log('');
}
main();