Add emergency package generator - creates backup joining file for Git outages
This commit is contained in:
103
automation/generate-emergency-package.py
Normal file
103
automation/generate-emergency-package.py
Normal file
@@ -0,0 +1,103 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Generate Emergency Joining Package
|
||||
Creates single-file backup of all core joining documents for when Git is down.
|
||||
"""
|
||||
|
||||
import requests
|
||||
import base64
|
||||
from datetime import datetime
|
||||
|
||||
def fetch_doc(path):
|
||||
"""Fetch document from Gitea API"""
|
||||
url = f"https://git.firefrostgaming.com/api/v1/repos/firefrost-gaming/firefrost-operations-manual/contents/{path}?ref=master"
|
||||
headers = {'Authorization': 'token e0e330cba1749b01ab505093a160e4423ebbbe36'}
|
||||
|
||||
response = requests.get(url, headers=headers)
|
||||
if response.status_code == 200:
|
||||
content = response.json()['content']
|
||||
return base64.b64decode(content).decode('utf-8')
|
||||
else:
|
||||
return f"ERROR: Could not fetch {path}"
|
||||
|
||||
def generate_package():
|
||||
"""Generate emergency package"""
|
||||
|
||||
print("Generating emergency joining package...")
|
||||
|
||||
package = f"""# 🚨 EMERGENCY JOINING PACKAGE
|
||||
## Use only when Git is inaccessible
|
||||
|
||||
**Generated:** {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
|
||||
**Purpose:** Backup method for Claude joining when git.firefrostgaming.com is down
|
||||
**Update Monthly:** Regenerate this file to keep it current
|
||||
|
||||
---
|
||||
|
||||
## 📋 USAGE INSTRUCTIONS
|
||||
|
||||
**If Git access fails:**
|
||||
1. Claude attempts normal Git pull
|
||||
2. Claude gets network error
|
||||
3. Claude reports: "Git appears down, falling back to emergency package"
|
||||
4. Michael pastes this entire file as one message
|
||||
5. Claude parses the three sections and joins normally
|
||||
|
||||
**The three core documents are concatenated below:**
|
||||
1. THE-JOINING-PROTOCOL.md
|
||||
2. THE-ESSENCE-PATCH-V3.0.md
|
||||
3. SESSION-HANDOFF-PROTOCOL.md
|
||||
|
||||
---
|
||||
|
||||
{"=" * 80}
|
||||
SECTION 1: THE-JOINING-PROTOCOL.md
|
||||
{"=" * 80}
|
||||
|
||||
"""
|
||||
|
||||
# Fetch documents
|
||||
print("Fetching THE-JOINING-PROTOCOL.md...")
|
||||
package += fetch_doc("docs/relationship/THE-JOINING-PROTOCOL.md")
|
||||
package += f"\n\n{'=' * 80}\n"
|
||||
package += "SECTION 2: THE-ESSENCE-PATCH-V3.0.md\n"
|
||||
package += f"{'=' * 80}\n\n"
|
||||
|
||||
print("Fetching THE-ESSENCE-PATCH-V3.0.md...")
|
||||
package += fetch_doc("docs/relationship/THE-ESSENCE-PATCH-V3.0.md")
|
||||
package += f"\n\n{'=' * 80}\n"
|
||||
package += "SECTION 3: SESSION-HANDOFF-PROTOCOL.md\n"
|
||||
package += f"{'=' * 80}\n\n"
|
||||
|
||||
print("Fetching SESSION-HANDOFF-PROTOCOL.md...")
|
||||
package += fetch_doc("SESSION-HANDOFF-PROTOCOL.md")
|
||||
|
||||
package += f"\n\n{'=' * 80}\n"
|
||||
package += "END OF EMERGENCY JOINING PACKAGE\n"
|
||||
package += f"{'=' * 80}\n"
|
||||
|
||||
return package
|
||||
|
||||
if __name__ == '__main__':
|
||||
package = generate_package()
|
||||
|
||||
# Save package
|
||||
output_file = '/tmp/EMERGENCY-JOINING-PACKAGE.txt'
|
||||
with open(output_file, 'w') as f:
|
||||
f.write(package)
|
||||
|
||||
# Check size
|
||||
size_kb = len(package) / 1024
|
||||
|
||||
print(f"\n✅ Emergency package generated!")
|
||||
print(f"File: {output_file}")
|
||||
print(f"Size: {size_kb:.1f} KB")
|
||||
print()
|
||||
print("Next steps:")
|
||||
print("1. Save this file locally")
|
||||
print("2. Update monthly or after major doc changes")
|
||||
print("3. Paste entire file if Git is down")
|
||||
print()
|
||||
if size_kb > 100:
|
||||
print(f"⚠️ WARNING: File is {size_kb:.1f}KB - may be too large for single paste")
|
||||
print("Consider regenerating with condensed versions")
|
||||
Reference in New Issue
Block a user