MCPInstall

unisecurityguard-academic-whistleblower-archive

Archive and documentation platform for academic employment transparency and whistleblowing in Chinese higher education institutions

Installs
1.1K
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/reason-machines/security-skills --skill unisecurityguard-academic-whistleblower-archive
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads unisecurityguard-academic-whistleblower-archive automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

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_NAME

Initialize 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 main

Core 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 main

Example 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 institution

Example 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 locally

Example 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]
  1. 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 locations
    

Common 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 main

Issue: 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.md

Issue: 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.git

Issue: 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.py

RSS 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.

FAQ

What does the unisecurityguard-academic-whistleblower-archive skill do?

Archive and documentation platform for academic employment transparency and whistleblowing in Chinese higher education institutions

How do I install unisecurityguard-academic-whistleblower-archive?

Run npx skills add https://github.com/reason-machines/security-skills --skill unisecurityguard-academic-whistleblower-archive in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/unisecurityguard-academic-whistleblower-archive/ (personal) or .claude/skills/unisecurityguard-academic-whistleblower-archive/ (project).

Which AI agents can use unisecurityguard-academic-whistleblower-archive?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is unisecurityguard-academic-whistleblower-archive safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains unisecurityguard-academic-whistleblower-archive?

It is published by reason-machines in reason-machines/security-skills. It has 1,080 recorded installs.

More from reason-machines/security-skills

View all →

anthropic-cybersecurity-skills

reason-machines/security-skills

Use 754 structured cybersecurity skills mapped to MITRE ATT&CK, NIST CSF, ATLAS, D3FEND, and NIST AI RMF for AI-driven security operations

AI & Agents1.7K installs

pentest-ai-agents

reason-machines/security-skills

Claude Code subagents for offensive security research, penetration testing planning, recon analysis, exploit research, detection engineering, and security reporting

Security1.4K installs

pentest-agents-bug-bounty-framework

reason-machines/security-skills

Autonomous bug bounty agent framework with 50 agents, hunt loops, exploit chains, MCP servers for platform integration and writeup search

openosint-ai-osint-framework

reason-machines/security-skills

AI-powered OSINT agent with interactive REPL, MCP server, and CLI for email/username/domain/IP/phone investigation using 11 integrated tools

Backend & APIs1.2K installs

vibe-security-skill

reason-machines/security-skills

Agent skill that audits vibe-coded apps for common security vulnerabilities introduced by AI coding assistants

Security1.1K installs

openclaw-security-hardening

reason-machines/security-skills

Deploy and manage security hardening for high-privilege autonomous AI agents (OpenClaw) using zero-trust architecture and automated defense matrices

Security1.1K installs

Popular education & science skills

View category →

teach

mattpocock/skills

Teach the user a new skill or concept, within this workspace.

Education & Science874K installs

scaffold-exercises

mattpocock/skills

Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.

Education & Science488.2K installs

paper-context-resolver

lllllllama/rigorpilot-skills

Rigor Paper Context helper for README-first deep learning repo reproduction. Use only when the README and repository files leave a narrow reproduction-critical gap and the task is to resolve a specific paper detail such as dataset split, preprocessing, evaluation protocol, checkpoint mapping, or runtime assumption from primary paper sources while recording conflicts. Do not use for general paper summary, repo scanning, environment setup, command execution, title-only paper lookup, or replacing README guidance by default.

Education & Science478.3K installs

caveman-learn

juliusbrussee/caveman

Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned. Use when asked to lower an agent's token cost, what caveman has saved, to trim a heavy CLAUDE.md, or to offload re-pasted context into cavemem.

Education & Science107.9K installs

gsap-plugins

greensock/gsap-skills

Official GSAP skill for GSAP plugins — registration, ScrollToPlugin, ScrollSmoother, Flip, Draggable, Inertia, Observer, SplitText, ScrambleText, SVG and physics plugins, CustomEase, EasePack, CustomWiggle, CustomBounce, GSDevTools. Use when the user asks about a GSAP plugin, scroll-to, flip animations, draggable, SVG drawing, or plugin registration.

Education & Science67.9K installs

teach-impeccable

pbakaus/impeccable

DEPRECATED: Use /impeccable teach instead. This command has been folded into the impeccable skill.