Loading...
Loading...
Archive and documentation platform for academic employment transparency and whistleblowing in Chinese higher education institutions
npx skill4agent add aradotso/security-skills unisecurityguard-academic-whistleblower-archiveSkill by ara.so — Security Skills collection.
# Clone the repository
git clone https://github.com/UniSecurityGuard/UniSecurityGuard.git
cd UniSecurityGuard
# Create your own backup archive (fork approach)
# 1. Fork via GitHub UI
# 2. Clone your fork
git clone https://github.com/YOUR_USERNAME/YOUR_ARCHIVE_NAME.git
cd YOUR_ARCHIVE_NAME# Create basic structure
mkdir -p assets/{screenshots,documents,evidence}
touch README.md
touch TIMELINE.md
touch FAQ.md
# Initialize git
git init
git add .
git commit -m "Initial archive setup"
# Push to GitHub (create repo first on github.com)
git remote add origin https://github.com/YOUR_USERNAME/YOUR_ARCHIVE.git
git branch -M main
git push -u origin main# [Latest Update - Critical Situation]
## [Date]: Current Status
Description of latest developments...
## [Earlier Date]: Previous Situation
Earlier context...
## Background
Original story and context...assets/
├── screenshots/
│ ├── 1.jpg # Numbered chronologically
│ ├── 2.jpg
│ └── 3.jpg
├── documents/
│ ├── contract.pdf
│ └── correspondence.pdf
└── evidence/
├── salary_records/
└── institutional_communications/## Evidence Documentation
<img src="assets/screenshots/1.jpg" width="400" alt="Description of evidence">
<img src="assets/screenshots/2.jpg" width="400" alt="Context">
<img src="assets/screenshots/3.jpg" width="400" alt="Timeline proof"># Create structured issues for common questions
Issue #1: "关于学校施压的详细情况" (Details about institutional pressure)
Issue #2: "如何保护自己在类似情况下" (How to protect yourself in similar situations)
Issue #3: "法律建议和资源" (Legal advice and resources)#!/bin/bash
# backup_social_media.sh
# Automate archiving of social media content to GitHub
ARCHIVE_DIR="./archive/$(date +%Y-%m-%d)"
mkdir -p "$ARCHIVE_DIR"
# Download screenshots (manual or automated via APIs)
# Save to archive directory
cp ~/Downloads/xiaohongshu_screenshots/* "$ARCHIVE_DIR/"
# Create daily update
cat > "$ARCHIVE_DIR/update.md" << EOF
# Update: $(date +%Y-%m-%d)
## Status
- Platform status: [Active/Restricted/Removed]
- Follower count: [NUMBER]
- Content removed: [YES/NO]
## New Developments
[Description]
## Evidence
$(ls "$ARCHIVE_DIR"/*.jpg | sed 's/^/- /')
EOF
# Commit to git
git add "$ARCHIVE_DIR"
git commit -m "Archive update: $(date +%Y-%m-%d)"
git push origin mainTIMELINE.md# Career Transition Timeline
## 2025-12-27: Repository Created
- Initial backup platform established
- 3 key screenshots archived
- Background story documented
## 2025-12: Institutional Pressure Begins
- 7 leaders visit rental apartment
- Demands to delete content and claim fiction
- Threats to reclaim salary and benefits
## 2025: Security Guard Transition
- Removed from associate professor position
- Transferred to campus security
- Salary: ¥4,000/month base + ¥800 security supplement
- Annual performance bonus: ¥6,000+
## Background: Academic Career
- Undergraduate: C9 university (华五)
- PhD: QS50 US university (withdrawn)
- Position: Associate professor at brother institution# [Project Title]: Academic Employment Transparency
## ⚠️ Current Situation
[Latest critical update - always at top]
## Background
### Academic Credentials
- Undergraduate: [Institution]
- Graduate: [Institution]
- Position: [Title] at [Institution]
### Employment Transition
- Previous role: [Title], Salary: [Amount]
- Current role: [Title], Salary: [Amount]
- Reason for transition: [Description]
## Institutional Response
### Pressure Tactics
1. [Specific action]
2. [Specific threat]
3. [Specific demand]
### Evidence
<img src="assets/evidence_1.jpg" width="400" alt="Evidence description">
## Documentation Purpose
This repository serves as:
1. Immutable record of events
2. Backup for censored social media content
3. Resource for others in similar situations
4. Transparent accountability mechanism
## How to Support
- ⭐ Star this repository for visibility
- 📋 Open issues with questions or similar experiences
- 🔄 Share (carefully, considering safety)
- 📸 Screenshot and archive content locally#!/usr/bin/env python3
# auto_archive.py - Automated content archiving
import os
import json
from datetime import datetime
import subprocess
class AcademicArchive:
def __init__(self, repo_path):
self.repo_path = repo_path
self.assets_dir = os.path.join(repo_path, 'assets')
def add_update(self, title, content, evidence_files=None):
"""Add new update to README"""
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M')
update = f"\n# {title}\n\n"
update += f"**Date**: {timestamp}\n\n"
update += f"{content}\n\n"
if evidence_files:
update += "## Evidence\n\n"
for f in evidence_files:
# Copy evidence to assets
dest = os.path.join(self.assets_dir, os.path.basename(f))
subprocess.run(['cp', f, dest])
update += f'<img src="assets/{os.path.basename(f)}" width="400" alt="">\n'
# Prepend to README
readme_path = os.path.join(self.repo_path, 'README.md')
with open(readme_path, 'r') as f:
existing = f.read()
with open(readme_path, 'w') as f:
f.write(update + existing)
return update
def commit_and_push(self, message):
"""Commit changes and push to GitHub"""
os.chdir(self.repo_path)
subprocess.run(['git', 'add', '.'])
subprocess.run(['git', 'commit', '-m', message])
subprocess.run(['git', 'push', 'origin', 'main'])
def create_issue_faq(self, question, answer):
"""Create issue for FAQ (requires GitHub CLI)"""
subprocess.run([
'gh', 'issue', 'create',
'--title', question,
'--body', answer,
'--label', 'faq'
])
# Usage example
archive = AcademicArchive('/path/to/UniSecurityGuard')
# Add update with evidence
archive.add_update(
title="Latest Institutional Pressure",
content="""
School leadership removed the chair from security booth.
Reason: "Security guards shouldn't sit - it doesn't look proper."
Now standing 8 hours straight daily.
""",
evidence_files=[
'/path/to/screenshots/booth_before.jpg',
'/path/to/screenshots/booth_after.jpg'
]
)
archive.commit_and_push("Update: Security booth chair removed")https://USERNAME.github.io/REPO.github/ISSUE_TEMPLATE/faq.md---
name: FAQ Question
about: Ask questions about the situation
title: '[FAQ] '
labels: faq
---
## Question
[Your question]
## Context (if applicable)
[Additional context]archive_metadata.json{
"archive_name": "UniSecurityGuard",
"primary_platform": "Xiaohongshu (Little Red Book)",
"backup_date": "2025-12-27",
"last_update": "2026-05-13",
"status": "active",
"content_type": "academic_whistleblowing",
"language": "zh-CN",
"evidence_count": 154,
"follower_snapshot": {
"platform": "xiaohongshu",
"count": "unknown",
"status": "threatened"
}
}# Generate checksums for evidence files
sha256sum assets/**/*.jpg > assets/checksums.txt
git add assets/checksums.txt
git commit -m "Add evidence checksums for integrity verification"# Create encrypted backup archive
tar -czf archive_backup.tar.gz .
gpg --symmetric --cipher-algo AES256 archive_backup.tar.gz
# Store archive_backup.tar.gz.gpg in multiple locations## Platform Migration Notice
Due to [PLATFORM] censorship/removal, this content has migrated to GitHub.
**Original platform**: [NAME]
**Original account**: [HANDLE/ID]
**Migration date**: [DATE]
**Reason**: [Platform pressure/content removal/account suspension]
### How to Follow Updates
1. ⭐ Star this repository
2. 👁️ Watch → All Activity (for notifications)
3. Check back regularly or use RSS feed:
`https://github.com/USERNAME/REPO/commits/main.atom`## Support & Resources
### For Those in Similar Situations
- 📋 [FAQ Issues](https://github.com/USERNAME/REPO/issues?q=label%3Afaq)
- 💬 [Discussions](https://github.com/USERNAME/REPO/discussions)
- 📚 [Resource List](./RESOURCES.md)
### Legal & Safety Resources
- [Labor law consultation contacts]
- [Academic employment advocacy organizations]
- [Digital security guides]# Verify commits are pushed
git status
git log --oneline -5
# Force push if necessary (use cautiously)
git push --force origin main# Use Git LFS for large files
git lfs install
git lfs track "*.pdf"
git lfs track "*.mp4"
git add .gitattributes
git commit -m "Configure Git LFS"
# Or link to external storage
echo "Large evidence files: [External Archive Link]" >> README.md# Create redundant mirrors
git clone --mirror https://github.com/USERNAME/REPO.git
cd REPO.git
git push --mirror https://gitlab.com/USERNAME/REPO.git
git push --mirror https://codeberg.org/USERNAME/REPO.git# Use labels effectively
gh label create "institutional-pressure" --color "d73a4a"
gh label create "legal-advice" --color "0075ca"
gh label create "career-advice" --color "008672"
# Bulk label issues
gh issue list --limit 100 --json number --jq '.[].number' | \
xargs -I {} gh issue edit {} --add-label "faq"# monitor_platform.py - Check if primary platform content is still accessible
import requests
import json
from datetime import datetime
def check_platform_status(platform_url):
"""Monitor if content is still accessible"""
try:
response = requests.get(platform_url, timeout=10)
status = {
'timestamp': datetime.now().isoformat(),
'accessible': response.status_code == 200,
'status_code': response.status_code
}
except Exception as e:
status = {
'timestamp': datetime.now().isoformat(),
'accessible': False,
'error': str(e)
}
# Log status
with open('platform_status.jsonl', 'a') as f:
f.write(json.dumps(status) + '\n')
return status
# Run periodically via cron
# 0 */6 * * * /usr/bin/python3 /path/to/monitor_platform.py# Commits feed
https://github.com/USERNAME/REPO/commits/main.atom
# Issues feed
https://github.com/USERNAME/REPO/issues.atom
# Share with followers
"Subscribe to updates: Add this URL to your RSS reader"