
Unisecurityguard Academic Whistleblower Archive
- 947 installs
- 8 repo stars
- Updated July 16, 2026
- aradotso/security-skills
unisecurityguard-academic-whistleblower-archive is a security skill that helps developers create censorship-resistant GitHub archives preserving whistleblowing content, screenshots, and institutional evidence when primar
About
unisecurityguard-academic-whistleblower-archive is a security skill from ara.so Security Skills for developers documenting academic employment transparency and institutional misconduct in Chinese higher education. The skill walks through building a GitHub-based archive and documentation platform that preserves whistleblowing posts, screenshots, and testimonials when platforms like Xiaohongshu remove primary sources. Its YAML frontmatter lists eight trigger phrases covering archive setup, censored social-media backup, employment-issue documentation, and safe evidence preservation. Reach for it when you need durable, version-controlled evidence outside a single social feed—not for general static-site hosting. The workflow emphasizes repository layout, contributor documentation, and redundancy so removed content stays queryable and attributable for researchers or advocates maintaining public records. Agents invoke the skill when users ask how to archive academic whistleblowing content, back up Red Book posts, or document institutional misconduct with Git commits instead of fragile social threads.
- Creates immutable GitHub-based documentation platforms for sensitive testimony
- Safely archives screenshots, testimonials, and censored social media posts
- Demonstrates how to backup Xiaohongshu / Little Red Book content
- Serves as a transparent, version-controlled whistleblower archive
- Preserves academic employment transparency records against institutional pressure
Unisecurityguard Academic Whistleblower Archive by the numbers
- 947 all-time installs (skills.sh)
- +7 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #391 of 2,209 Security skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/aradotso/security-skills --skill unisecurityguard-academic-whistleblower-archiveAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 947 |
|---|---|
| repo stars | ★ 8 |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 16, 2026 |
| Repository | aradotso/security-skills ↗ |
How do you archive censored academic whistleblowing on GitHub?
Create censorship-resistant GitHub archives that preserve whistleblowing content, screenshots, and institutional evidence when primary social platforms face removal.
Who is it for?
Developers or researchers who must preserve academic misconduct evidence on GitHub when social platforms delete primary posts.
Skip if: Teams needing general blog hosting, live social scraping, or legal advice on whistleblower protections.
When should I use this skill?
The user asks to archive academic whistleblowing content, back up Xiaohongshu posts, or create a censorship-resistant GitHub evidence repository.
What you get
A GitHub archive repository with structured evidence folders, documentation, and preserved screenshots or testimonials.
- GitHub archive repository
- Evidence documentation structure
- Preserved screenshot and testimonial assets
By the numbers
- YAML frontmatter defines eight trigger phrases for archive and backup workflows
Files
UniSecurityGuard Academic Whistleblower Archive
Skill by ara.so — Security Skills collection.
Overview
UniSecurityGuard is a GitHub-based archive platform documenting the experience of a Chinese academic who transitioned from associate professor to security guard. The project serves as a censorship-resistant backup for social media content that faces institutional pressure and platform removal. It demonstrates how to use GitHub as a transparent, immutable documentation platform for whistleblowing and advocacy.
Key Use Case: Preserving evidence of academic employment issues, institutional misconduct, and career transitions when primary platforms (Xiaohongshu/Little Red Book) are threatened with censorship.
Primary Language: Markdown (documentation-focused)
Repository Structure:
- README.md: Main narrative and updates
- assets/: Screenshots and image evidence
- Issues section: Community Q&A and documentation
Installation & Setup
Fork or Clone for Your Own Archive
# 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_NAMEInitialize Your Own Archive
# 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 mainCore Patterns
1. Document Progressive Updates
The project uses the README.md as a chronological narrative with new updates at the top:
# [Latest Update - Critical Situation]
## [Date]: Current Status
Description of latest developments...
## [Earlier Date]: Previous Situation
Earlier context...
## Background
Original story and context...2. Asset Organization
Store evidence systematically:
assets/
├── screenshots/
│ ├── 1.jpg # Numbered chronologically
│ ├── 2.jpg
│ └── 3.jpg
├── documents/
│ ├── contract.pdf
│ └── correspondence.pdf
└── evidence/
├── salary_records/
└── institutional_communications/3. Embed Images in README
## 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">4. Use Issues for FAQ and Community Support
The project uses 154+ issues as a documentation and Q&A system:
# 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)Real-World Implementation Examples
Example 1: Creating a Censorship-Resistant Archive
#!/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 mainExample 2: Structured Timeline Documentation
Create TIMELINE.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 institutionExample 3: README Template for Academic Whistleblowing
# [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 locallyExample 4: Automated Git Backup Script
#!/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")Configuration & Best Practices
Repository Settings
1. Enable GitHub Pages (optional, for web presence):
- Settings → Pages → Source: main branch
- Creates public website at
https://USERNAME.github.io/REPO
2. Issue Templates:
Create .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]3. Archive Metadata:
Create 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"
}
}Safety Considerations
1. Anonymization: Remove or redact:
- Personal identifying information of third parties
- Specific institutional names (if legally required)
- Location details that enable physical tracking
2. Evidence Integrity:
# 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"3. Backup Beyond GitHub:
# 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 locationsCommon Use Cases
Migrating from Censored Platform
## 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`Community Support Hub
## 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]Troubleshooting
Issue: Content Visibility
Problem: Updates not appearing to others
# Verify commits are pushed
git status
git log --oneline -5
# Force push if necessary (use cautiously)
git push --force origin mainIssue: Large Files
Problem: Screenshots/documents exceed GitHub limits (100MB file, 1GB repo)
# 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.mdIssue: Institutional Takedown Requests
GitHub provides: 1. DMCA counter-notice process 2. Transparency reports for takedown requests 3. Archive repositories before potential removal
# 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.gitIssue: Community Management
High issue volume (154+ issues):
# 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"Advanced Patterns
Automated Monitoring
# 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.pyRSS Feed for Followers
GitHub automatically provides RSS feeds:
# 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"This skill enables AI agents to help users create censorship-resistant documentation platforms, archive evidence of institutional misconduct, and maintain transparency when facing content removal pressure.
Related skills
How it compares
Pick this over generic GitHub README skills when the goal is censorship-resistant preservation of academic whistleblowing evidence rather than routine project docs.
FAQ
What does unisecurityguard-academic-whistleblower-archive create?
unisecurityguard-academic-whistleblower-archive guides developers to build a GitHub archive and documentation platform that stores whistleblowing content, screenshots, and institutional evidence outside censored social feeds.
Which platforms does the archive skill address?
unisecurityguard-academic-whistleblower-archive explicitly covers backup of Xiaohongshu (Red Book) content and academic employment transparency records when primary social platforms remove posts.
When should developers invoke this archive skill?
Invoke unisecurityguard-academic-whistleblower-archive when setting up a GitHub-based backup for censored social media, preserving misconduct screenshots, or documenting academic career transparency.
Is Unisecurityguard Academic Whistleblower Archive safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.