#!/bin/bash # DSS Immutability Guard - Simplified Version # Protects core principle files from accidental modification echo "🛡️ DSS Immutability Check..." # List of protected files (core principles only) PROTECTED_FILES=( ".knowledge/dss-principles.json" ".knowledge/dss-architecture.json" ".clauderc" ) # Check if any protected files are being modified MODIFIED_PROTECTED=() for file in "${PROTECTED_FILES[@]}"; do if git diff --cached --name-only | grep -q "^${file}$"; then MODIFIED_PROTECTED+=("$file") fi done # If protected files are modified, require confirmation if [ ${#MODIFIED_PROTECTED[@]} -gt 0 ]; then echo "" echo "⚠️ WARNING: You are modifying protected core files:" for file in "${MODIFIED_PROTECTED[@]}"; do echo " - $file" done echo "" echo "These files define DSS core architecture and should rarely change." echo "" echo "To proceed with this commit, set: ALLOW_CORE_CHANGES=true" echo "Example: ALLOW_CORE_CHANGES=true git commit -m 'your message'" echo "" # Check if user has explicitly allowed the change if [ "$ALLOW_CORE_CHANGES" != "true" ]; then echo "❌ Commit blocked. Set ALLOW_CORE_CHANGES=true to proceed." exit 1 fi echo "✅ ALLOW_CORE_CHANGES=true detected. Proceeding with commit." fi echo "✅ Immutability check passed." exit 0