Organize docs directory: move 25 files to appropriate locations

- Created docs/00-meta/ for documentation meta files (11 files)
- Created docs/archive/reports/ for reports (5 files)
- Created docs/archive/issues/ for issue tracking (2 files)
- Created docs/bridge/contracts/ for Solidity contracts (3 files)
- Created docs/04-configuration/metamask/ for Metamask configs (3 files)
- Created docs/scripts/ for documentation scripts (2 files)
- Root directory now contains only 3 essential files (89.3% reduction)

All recommended actions from docs directory review complete.
This commit is contained in:
defiQUG
2026-01-06 03:32:20 -08:00
parent 7b9f66a061
commit 8b67fcbda1
89 changed files with 6234 additions and 1 deletions

View File

@@ -0,0 +1,179 @@
#!/bin/bash
# Script to categorize and organize standalone documentation files
DOCS_DIR="/home/intlc/projects/proxmox/docs"
ARCHIVE_DIR="$DOCS_DIR/archive"
# Categories
STATUS_FILES=(
# Status and completion reports
"ALLOWANCE_FIX_STATUS.md"
"ALL_COMPONENTS_DEPLOYMENT_STATUS.md"
"BLOCKSCOUT_COMPLETE_STATUS.md"
"BLOCKSCOUT_FINAL_STATUS.md"
"BLOCKSCOUT_IP_VERIFICATION.md"
"BLOCKSCOUT_MIGRATION_STATUS.md"
"BLOCKSCOUT_SSL_COMPLETE_STATUS.md"
"BLOCKSCOUT_STATUS_AND_VERIFICATION.md"
"CCIP_MONITOR_STATUS.md"
"CHAIN138_COMPLETION_SUMMARY.md"
"CLUSTER_CONNECTION_STATUS.md"
"CODE_COMMAND_WRAPPER_STATUS.md"
"COMPLETE_NEXT_STEPS_STATUS.md"
"COMPLETE_PROJECT_STATUS.md"
"CONTRACT_DEPLOYMENT_PROGRESS.md"
"CONTRACT_DEPLOYMENT_STATUS_AND_NEXT_STEPS.md"
"CONTRACT_VERIFICATION_STATUS.md"
"ETHEREUM_MAINNET_CONFIGURATION_STATUS.md"
"ETHEREUM_MAINNET_CONFIG_STATUS.md"
"ETHEREUM_MAINNET_CONTRACTS_VERIFICATION_STATUS.md"
"ETHEREUM_MAINNET_DEPLOYMENT_STATUS.md"
"ETHERSCAN_VERIFICATION_STATUS.md"
"EXPLORER_STATUS_REVIEW.md"
"LETS_ENCRYPT_SETUP_STATUS.md"
"MIGRATION_STATUS_UPDATE.md"
"NEXT_STEPS_COMPLETION_STATUS.md"
"NEXT_STEPS_STATUS.md"
"ORACLE_PUBLISHER_SERVICE_STATUS.md"
"REMAINING_STEPS.md"
"THIRDWEB_SECRETS_STATUS.md"
"VERIFICATION_FINAL_STATUS.md"
)
COMPLETION_FILES=(
# Completion reports
"ADMIN_VERIFICATION_COMPLETE.md"
"ALI_INFRASTRUCTURE_COMPLETE.md"
"ALLOWANCE_FIX_COMPLETE.md"
"ALL_ALLOWANCES_FIX_COMPLETE.md"
"ALL_ISSUES_FIXED_SUMMARY.md"
"ALL_NEXT_ACTIONS_COMPLETE.md"
"ALL_NEXT_STEPS_COMPLETE.md"
"ALL_NEXT_STEPS_COMPLETE_FINAL.md"
"ALL_NEXT_STEPS_COMPLETE_SUMMARY.md"
"ALL_OPTIONAL_TASKS_COMPLETE.md"
"ALL_RECOMMENDATIONS_COMPLETE.md"
"ALL_REMAINING_ACTIONS_COMPLETE.md"
"ALL_REMAINING_TASKS_COMPLETE.md"
"ALL_STEPS_COMPLETE.md"
"ALL_TASKS_COMPLETE_FINAL.md"
"ALL_TASKS_COMPLETE_SUMMARY.md"
"ALL_TODOS_COMPLETE.md"
"ALL_TODOS_COMPLETE_FINAL.md"
"BLOCKSCOUT_ALL_COMPLETE.md"
"BLOCKSCOUT_ALL_FIXES_COMPLETE.md"
"BLOCKSCOUT_ALL_STEPS_COMPLETE.md"
"BLOCKSCOUT_ALL_TASKS_COMPLETE.md"
"BLOCKSCOUT_CLOUDFLARE_SETUP_COMPLETE.md"
"BLOCKSCOUT_COMPLETE_FINAL.md"
"BLOCKSCOUT_COMPLETE_SETUP_FINAL.md"
"BLOCKSCOUT_COMPLETE_SUCCESS.md"
"BLOCKSCOUT_COMPLETE_SUMMARY.md"
"BLOCKSCOUT_FINAL_COMPLETE.md"
"BLOCKSCOUT_FINAL_SUCCESS.md"
"BLOCKSCOUT_FIX_COMPLETE.md"
"BLOCKSCOUT_FIXED_SUCCESS.md"
"BLOCKSCOUT_IMPLEMENTATION_COMPLETE.md"
"BLOCKSCOUT_METAMASK_FIX_COMPLETE.md"
"BLOCKSCOUT_SSL_SETUP_COMPLETE.md"
"BLOCKSCOUT_STATIC_IP_COMPLETE.md"
"BLOCKSCOUT_WEB_INTERFACE_FIXED.md"
"BRIDGE_CONFIGURATION_COMPLETE.md"
"BRIDGE_MONITORING_EXPLORER_COMPLETE.md"
"BRIDGE_VERIFICATION_FINAL_STATUS.md"
"CCIP_ALL_TASKS_COMPLETE.md"
"CCIP_ALL_TASKS_SUMMARY.md"
"CCIP_MONITOR_FIX_COMPLETE.md"
"CHAIN138_COMPLETE_IMPLEMENTATION.md"
"CHAIN138_REVIEW_COMPLETE.md"
"CLOUDFLARED_UPDATE_COMPLETE.md"
"CLOUDFLARE_CONFIGURATION_COMPLETE.md"
"CLOUDFLARE_EXPLORER_SETUP_COMPLETE.md"
"CLUSTER_NODE_NAMES_FIXED.md"
"COMPLETE_DEPLOYMENT_SUMMARY.md"
"CONTRACT_DEPLOYMENT_COMPLETE_SUMMARY.md"
"CONTRACT_DEPLOYMENT_SUCCESS.md"
"ETHEREUM_MAINNET_ALL_TASKS_COMPLETE.md"
"ETHEREUM_MAINNET_DEPLOYMENT_COMPLETE.md"
"ETHEREUM_MAINNET_DEPLOYMENT_SUCCESS.md"
"ETHEREUM_MAINNET_NEXT_STEPS_COMPLETE.md"
"EXPLORER_COMPLETE_FUNCTIONALITY_REVIEW.md"
"EXPLORER_FEATURES_COMPLETE.md"
"EXPLORER_RESTORATION_COMPLETE.md"
"EXPLORER_RESTORATION_FINAL_STATUS.md"
"EXPLORER_SETUP_COMPLETE.md"
"FINAL_BRIDGE_VERIFICATION_COMPLETE.md"
"FINAL_COMPLETION_STATUS.md"
"FINAL_SETUP_COMPLETE.md"
"FIXES_COMPLETE_SUMMARY.md"
"IP_ADDRESS_REVIEW_COMPLETE.md"
"LETS_ENCRYPT_COMPLETE_SUMMARY.md"
"LETS_ENCRYPT_RPC_2500_COMPLETE.md"
"LETS_ENCRYPT_SETUP_COMPLETE.md"
"LETS_ENCRYPT_SETUP_SUCCESS.md"
"METAMASK_INTEGRATION_COMPLETE.md"
"METAMASK_SUBMODULE_PUSH_COMPLETE.md"
"METAMASK_SUBMODULE_SETUP_COMPLETE.md"
"MIRACLES_IN_MOTION_CLOUDFLARE_COMPLETE.md"
"MIRACLES_IN_MOTION_DEPLOYMENT_COMPLETE.md"
"MIRACLES_IN_MOTION_DEPLOYMENT_FINAL.md"
"MIRACLES_IN_MOTION_DEPLOYMENT_FINAL_STATUS.md"
"MIRACLES_IN_MOTION_TUNNEL_ACTIVE.md"
"NEXT_ACTIONS_COMPLETED.md"
"NEXT_STEPS_COMPLETE.md"
"NGINX_RPC_2500_COMPLETE_SETUP.md"
"NGINX_RPC_2500_SETUP_COMPLETE.md"
"ORACLE_PUBLISHER_CONFIGURATION_COMPLETE.md"
"ORACLE_PUBLISHER_FINAL_FIX_COMPLETE.md"
"ORACLE_PUBLISHER_SERVICE_COMPLETE.md"
"PROXMOX_PVE_PVE2_FIX_COMPLETE.md"
"QUICKSTART_COMPLETE_SUMMARY.md"
"R630_01_THIN1_CONFIGURED.md"
"R630_02_VM_RECOVERY_COMPLETE.md"
"RPC_TROUBLESHOOTING_COMPLETE.md"
"STORAGE_ENABLED_SUMMARY.md"
"STORAGE_FIX_COMPLETE.md"
"STORAGE_MIGRATION_FIX_SUMMARY.md"
"THIRDWEB_BRIDGE_CHAIN138_SUPPORTED.md"
"THIRDWEB_CREDENTIALS_CONFIGURED.md"
"VERIFICATION_COMPLETE_SUMMARY.md"
"VERIFICATION_QUICKSTART_RESULTS.md"
"WETH_UTILITIES_EXPLORER_COMPLETE.md"
)
FIX_FILES=(
# Fix reports
"BLOCKSCOUT_EXPLORER_FIX.md"
"BLOCKSCOUT_FIREWALL_FIX_COMPLETE.md"
"BLOCKSCOUT_FIXES_APPLIED.md"
"BLOCKSCOUT_HEADER_LINKS_FIX.md"
"BLOCKSCOUT_IP_FIX_APPLIED.md"
"BLOCKSCOUT_METAMASK_ETHERS_FIX.md"
"BLOCKSCOUT_RESTART_FIX.md"
"BLOCKSCOUT_WEB_INTERFACE_404_FIX.md"
"CHAIN138_ACCESS_CONTROL_CORRECTED.md"
"ETHERSCAN_BYTECODE_MISMATCH_FIX.md"
"ETHERSCAN_VERIFICATION_BYTECODE_MISMATCH_FIX.md"
"ETHERSCAN_VERIFICATION_CORRECTED.md"
"ETHERSCAN_VERIFICATION_FIXED.md"
"ETHERSCAN_VERIFICATION_FIX_COMPILER_VERSION.md"
"FIXES_APPLIED_SUMMARY.md"
"METAMASK_RPC_CHAIN_ID_ERROR_FIX.md"
"METAMASK_TRANSACTION_DROPPED_FIX.md"
"METAMASK_USD_PRICE_FIX.md"
"METAMASK_WETH9_FIX_INSTRUCTIONS.md"
"MIGRATION_STORAGE_FIX.md"
"NGINX_BESU_CLOUDFLARED_FIX_SUMMARY.md"
"NGINX_PUBLIC_ENDPOINTS_FIX_COMPLETE.md"
"ORACLE_API_KEYS_QUICK_FIX.md"
"ORACLE_PUBLISHER_ALL_FIXES_AND_RECOMMENDATIONS.md"
"ORACLE_PUBLISHER_COMPLETE_FIX_SUMMARY.md"
"ORACLE_PUBLISHER_COMPREHENSIVE_FIX.md"
"ORACLE_PUBLISHER_FINAL_FIX_COMPLETE.md"
"R630_01_THIN1_FIX.md"
"THIRDWEB_BRIDGE_QUICK_FIX.md"
"VERIFICATION_CRITICAL_FIX.md"
"VERIFICATION_FINAL_CORRECTED.md"
)
echo "Organization script created. Ready to categorize files."

163
docs/scripts/organize_files.py Executable file
View File

@@ -0,0 +1,163 @@
#!/usr/bin/env python3
"""
Script to categorize and organize standalone documentation files
"""
import os
import shutil
from pathlib import Path
from collections import defaultdict
DOCS_DIR = Path("/home/intlc/projects/proxmox/docs")
ARCHIVE_DIR = DOCS_DIR / "archive"
# Category patterns
CATEGORIES = {
"status": [
"STATUS", "PROGRESS", "MIGRATION_STATUS", "CONNECTION_STATUS",
"DEPLOYMENT_STATUS", "VERIFICATION_STATUS", "SERVICE_STATUS",
"CONFIG_STATUS", "SETUP_STATUS", "NEXT_STEPS_STATUS"
],
"completion": [
"COMPLETE", "COMPLETED", "COMPLETION", "SUCCESS", "FINAL",
"ALL_TASKS_COMPLETE", "ALL_STEPS_COMPLETE", "ALL_TODOS_COMPLETE",
"FIX_COMPLETE", "SETUP_COMPLETE", "DEPLOYMENT_COMPLETE",
"IMPLEMENTATION_COMPLETE", "REVIEW_COMPLETE", "VERIFICATION_COMPLETE"
],
"fixes": [
"FIX", "FIXED", "FIXES", "RESOLUTION", "RESOLVED", "CORRECTED",
"QUICK_FIX", "FIX_SUMMARY", "FIX_COMPLETE", "FIX_APPLIED"
],
"tests": [
"TEST", "TESTING", "VERIFICATION", "VALIDATION", "CHECKLIST",
"QUICKSTART_RESULTS", "FUNCTIONALITY_TEST", "INTEGRATION_TEST"
],
"configuration": [
"CONFIGURATION", "CONFIG", "SETUP", "INSTALLATION", "GUIDE",
"INSTRUCTIONS", "QUICK_START", "QUICKSTART", "TROUBLESHOOTING"
],
"historical": [
"SUMMARY", "REPORT", "ANALYSIS", "REVIEW", "INVESTIGATION",
"FINDINGS", "RESULTS", "PLAN", "REFERENCE", "INVENTORY"
]
}
# Files to keep in root (active documentation)
KEEP_IN_ROOT = {
"README.md", "MASTER_INDEX.md", "DOCUMENTATION_REVIEW.md",
"CLEANUP_SUMMARY.md", "DOCUMENTATION_UPGRADE_SUMMARY.md"
}
# Files that should move to numbered directories
MOVE_TO_DIRS = {
"BLOCKSCOUT_CONFIGURATION_GUIDE.md": "08-monitoring",
"BLOCKSCOUT_START_INSTRUCTIONS.md": "08-monitoring",
"BLOCKSCOUT_VERIFICATION_GUIDE.md": "08-monitoring",
"TROUBLESHOOTING_GUIDE.md": "09-troubleshooting",
"DEPLOYMENT_RUNBOOK.md": "03-deployment",
"DEPLOYMENT_READINESS_CHECKLIST.md": "03-deployment",
"PRE_START_CHECKLIST.md": "03-deployment",
"PRE_START_AUDIT_PLAN.md": "03-deployment",
"API_DOCUMENTATION.md": "11-references",
"CONTRACT_ADDRESSES_REFERENCE.md": "11-references",
"TOKEN_LIST_AUTHORING_GUIDE.md": "11-references",
"METAMASK_CONFIGURATION.md": "04-configuration",
"METAMASK_TROUBLESHOOTING_GUIDE.md": "09-troubleshooting",
"METAMASK_QUICK_START_GUIDE.md": "01-getting-started",
"CLOUDFLARE_TUNNEL_CONFIGURATION_GUIDE.md": "04-configuration",
"CLOUDFLARE_TUNNEL_INSTALLATION.md": "04-configuration",
"CLOUDFLARE_TUNNEL_ROUTING_ARCHITECTURE.md": "05-network",
"CLOUDFLARE_EXPLORER_CONFIG.md": "04-configuration",
"CLOUDFLARE_EXPLORER_QUICK_SETUP.md": "04-configuration",
"RPC_PUBLIC_ENDPOINT_ROUTING.md": "05-network",
"CENTRAL_NGINX_ROUTING_SETUP.md": "05-network",
"NGINX_SETUP_FINAL_SUMMARY.md": "05-network",
"CHAIN138_QUICK_START.md": "01-getting-started",
"CHAIN138_BESU_CONFIGURATION.md": "06-besu",
"CHAIN138_AUTOMATION_SCRIPTS.md": "03-deployment",
"CHAIN138_JWT_AUTH_REQUIREMENTS.md": "04-configuration",
"CCIP_SECURITY_DOCUMENTATION.md": "07-ccip",
"CCIP_SENDER_CONTRACT_REFERENCE.md": "07-ccip",
"BRIDGE_TESTING_GUIDE.md": "07-ccip",
"COMPREHENSIVE_INFRASTRUCTURE_REVIEW.md": "02-architecture",
"COMPREHENSIVE_RECOMMENDATIONS.md": "10-best-practices",
"PROXMOX_COMPLETE_RECOMMENDATIONS.md": "10-best-practices",
"PROXMOX_COMPREHENSIVE_REVIEW.md": "02-architecture",
"PROXMOX_FINAL_RECOMMENDATIONS.md": "10-best-practices",
"ENABLE_ROOT_SSH_CONTAINER.md": "04-configuration",
"LVM_THIN_PVE_ENABLED.md": "03-deployment",
"STORAGE_MIGRATION_ISSUE.md": "09-troubleshooting",
"MISSING_CONTAINERS_LIST.md": "03-deployment",
}
def categorize_file(filename):
"""Categorize a file based on its name"""
filename_upper = filename.upper()
# Check if should move to numbered directory
if filename in MOVE_TO_DIRS:
return ("move_to_dir", MOVE_TO_DIRS[filename])
# Check category patterns
for category, patterns in CATEGORIES.items():
for pattern in patterns:
if pattern in filename_upper:
return ("archive", category)
# Default to historical
return ("archive", "historical")
def organize_files():
"""Main organization function"""
moved = defaultdict(list)
errors = []
# Get all markdown files in docs root
for file_path in DOCS_DIR.glob("*.md"):
filename = file_path.name
# Skip files to keep in root
if filename in KEEP_IN_ROOT:
continue
try:
category, dest = categorize_file(filename)
if category == "move_to_dir":
dest_path = DOCS_DIR / dest
dest_path.mkdir(exist_ok=True)
shutil.move(str(file_path), str(dest_path / filename))
moved[f"moved_to_{dest}"].append(filename)
elif category == "archive":
dest_path = ARCHIVE_DIR / dest
dest_path.mkdir(exist_ok=True)
shutil.move(str(file_path), str(dest_path / filename))
moved[f"archived_to_{dest}"].append(filename)
except Exception as e:
errors.append(f"{filename}: {str(e)}")
# Print summary
print("=" * 60)
print("FILE ORGANIZATION SUMMARY")
print("=" * 60)
for category, files in moved.items():
print(f"\n{category}: {len(files)} files")
if len(files) <= 10:
for f in files:
print(f" - {f}")
else:
for f in files[:5]:
print(f" - {f}")
print(f" ... and {len(files) - 5} more")
if errors:
print(f"\nERRORS ({len(errors)}):")
for error in errors:
print(f" - {error}")
print(f"\nTotal files organized: {sum(len(files) for files in moved.values())}")
return moved, errors
if __name__ == "__main__":
print("Starting file organization...")
moved, errors = organize_files()
print("\nOrganization complete!")