- ASCII persona tree, architecture diagram, escalation flow - Complete variant table for all 29 personas (108 variants) - Config-driven build system documentation - Integration examples (Python, CLI, multi-persona switching) - New user onboarding guide - Updated stats to reflect current state Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
348 lines
12 KiB
Markdown
348 lines
12 KiB
Markdown
# Persona Library
|
||
|
||
> Platform-agnostic system prompt library for LLM agents.
|
||
> 29 personas. 10 domains. 108 variants. 20,000+ lines of production-grade prompts.
|
||
|
||
```
|
||
┌─ Neo ─── Phantom ─── Cipher ─── Specter ─── Bastion ─── Vortex ─── Sentinel
|
||
│ CYBER WEB CRYPTO MALWARE DFIR NETWORK CTI
|
||
│
|
||
├─ Frodo ─── Oracle ─── Ghost ─── Wraith ─── Echo
|
||
│ STRATEGIC OSINT PSYOP HUMINT SIGINT
|
||
│
|
||
├─ Marshal ─── Warden ─── Centurion ─── Corsair
|
||
PERSONAS ─┤ DOCTRINE WEAPONS MIL-HISTORY SPEC-OPS
|
||
│
|
||
├─ Arbiter ─── Ledger ─── Tribune
|
||
│ INT'L LAW FININT POLITICS
|
||
│
|
||
├─ Chronos ─── Scribe ─── Polyglot ─── Herald
|
||
│ HISTORY FOIA LINGINT MEDIA
|
||
│
|
||
└─ Architect ── Forge ── Scholar ── Sage ── Medic ── Gambit
|
||
DEVOPS DEV ACADEMIA PHILOSOPHY CBRN CHESS
|
||
```
|
||
|
||
## Quick Start
|
||
|
||
```bash
|
||
# 1. Clone
|
||
git clone https://gitea.taygun.net.tr/salvacybersec/personas.git
|
||
cd personas
|
||
|
||
# 2. Configure (optional — works without config too)
|
||
cp config.example.yaml config.yaml
|
||
# Edit config.yaml with your tools, data sources, infrastructure
|
||
|
||
# 3. Build
|
||
pip install pyyaml
|
||
python3 build.py
|
||
|
||
# 4. Use
|
||
cat generated/neo/general.prompt.md # raw system prompt
|
||
cat generated/frodo/iran.json # structured JSON
|
||
cat generated/sentinel/apt-profiling.yaml # YAML with metadata
|
||
```
|
||
|
||
## Personas & Variants
|
||
|
||
### Cybersecurity (7 personas, 25 variants)
|
||
|
||
| Codename | Role | Hitap | Variants |
|
||
|----------|------|-------|----------|
|
||
| **Neo** | Red Team Lead / Exploit Dev | Sıfırıncı Gün | general, redteam, exploit-dev, wireless, social-engineering, mobile-security, salva |
|
||
| **Phantom** | Web App Security / Bug Bounty | Beyaz Şapka | general, api-security, bug-bounty |
|
||
| **Cipher** | Cryptography & Crypto Analysis | Kriptoğraf | general |
|
||
| **Specter** | Malware Analyst / Reverse Engineer | Cerrah | general, firmware |
|
||
| **Bastion** | Blue Team / DFIR | Muhafız | general, forensics, threat-hunting, incident-commander |
|
||
| **Vortex** | Network Ops / Traffic Analysis | Telsizci | general, cloud-ad |
|
||
| **Sentinel** | CTI / Threat Intelligence | İzci | general, apt-profiling, mitre-attack, darknet |
|
||
|
||
### Intelligence (5 personas, 27 variants)
|
||
|
||
| Codename | Role | Hitap | Variants |
|
||
|----------|------|-------|----------|
|
||
| **Frodo** | Strategic Intelligence Analyst | Müsteşar | general, middle-east, russia, iran, africa, china, pakistan, india, nato-alliance, nuclear, energy-geopolitics, turkey, salva |
|
||
| **Oracle** | OSINT & Digital Intelligence | Kaşif | general, crypto-osint, salva |
|
||
| **Ghost** | PSYOP & Information Warfare | Propagandist | general, cognitive-warfare, russian-info-war, salva |
|
||
| **Wraith** | HUMINT & Counter-Intelligence | Mahrem | general, source-validation, case-studies, salva |
|
||
| **Echo** | SIGINT / COMINT / ELINT | Kulakçı | general, nsa-sigint, electronic-order-of-battle, salva |
|
||
|
||
### Military & Strategy (4 personas, 24 variants)
|
||
|
||
| Codename | Role | Hitap | Variants |
|
||
|----------|------|-------|----------|
|
||
| **Marshal** | Military Doctrine & Strategy | Mareşal | general, nato-doctrine, hybrid-warfare, russian-doctrine, chinese-doctrine, turkish-doctrine, iranian-military, wargaming, salva |
|
||
| **Warden** | Defense Analyst / Weapons Systems | Topçubaşı | general, drone-warfare, naval-warfare, electronic-warfare, salva |
|
||
| **Centurion** | Military History & War Analysis | Vakanüvis | general, ukraine-russia, ottoman-wars, salva |
|
||
| **Corsair** | Special Operations & Irregular Warfare | Akıncı | general, proxy-warfare, salva |
|
||
|
||
### Law, Economics & Politics (3 personas, 9 variants)
|
||
|
||
| Codename | Role | Hitap | Variants |
|
||
|----------|------|-------|----------|
|
||
| **Arbiter** | International Law & War Crimes | Kadı | general, sanctions, salva |
|
||
| **Ledger** | Economic Intelligence / FININT | Defterdar | general, sanctions-evasion, salva |
|
||
| **Tribune** | Political Science & Regime Analysis | Müderris | general, salva |
|
||
|
||
### History & Archives (2 personas, 6 variants)
|
||
|
||
| Codename | Role | Hitap | Variants |
|
||
|----------|------|-------|----------|
|
||
| **Chronos** | World History & Civilization | Tarihçibaşı | general, salva |
|
||
| **Scribe** | FOIA Archivist & Document Analyst | Verakçı | general, cia-foia, cold-war-ops, salva |
|
||
|
||
### Linguistics & Media (2 personas, 7 variants)
|
||
|
||
| Codename | Role | Hitap | Variants |
|
||
|----------|------|-------|----------|
|
||
| **Polyglot** | Linguistics & LINGINT | Tercüman-ı Divan | general, russian, arabic, swahili, salva |
|
||
| **Herald** | Media Analysis & Strategic Comms | Münadi | general, salva |
|
||
|
||
### Engineering (2 personas, 5 variants)
|
||
|
||
| Codename | Role | Hitap | Variants |
|
||
|----------|------|-------|----------|
|
||
| **Architect** | DevOps & Systems Engineer | Mimar Ağa | general, salva |
|
||
| **Forge** | Software Dev & AI/ML | Demirci | general, agent-dev, salva |
|
||
|
||
### Academia & Humanities (4 personas, 8 variants)
|
||
|
||
| Codename | Role | Hitap | Variants |
|
||
|----------|------|-------|----------|
|
||
| **Scholar** | Academic Researcher | Münevver | general, salva |
|
||
| **Sage** | Philosophy, Psychology & Power | Arif | general, salva |
|
||
| **Medic** | Biomedical & CBRN | Hekim Başı | general, cbrn-defense, salva |
|
||
| **Gambit** | Chess & Strategic Thinking | Vezir | general, salva |
|
||
|
||
## Architecture
|
||
|
||
```
|
||
personas/
|
||
├── _template.md # Template for new personas
|
||
├── _meta_template.yaml # Metadata template
|
||
├── _user_context.md # Shared user context (for salva variants)
|
||
├── CATALOG.md # Auto-generated catalog
|
||
│
|
||
├── neo/ # Example persona directory
|
||
│ ├── _meta.yaml # Metadata: triggers, relations, variants
|
||
│ ├── general.md # Base prompt — works for any user
|
||
│ ├── redteam.md # Specialization: red team engagements
|
||
│ ├── exploit-dev.md # Specialization: binary exploitation
|
||
│ ├── wireless.md # Specialization: RF/WiFi/SDR
|
||
│ ├── social-engineering.md # Specialization: SE & phishing
|
||
│ ├── mobile-security.md # Specialization: Android/iOS
|
||
│ └── salva.md # Personalized: user-specific context
|
||
│ ...
|
||
│
|
||
config.example.yaml # Configuration template (tracked)
|
||
config.yaml # Your config (gitignored)
|
||
build.py # Build: .md → .yaml + .json + .prompt.md
|
||
generated/ # Build output (gitignored)
|
||
```
|
||
|
||
### Variant Types
|
||
|
||
| Type | Purpose | Example |
|
||
|------|---------|---------|
|
||
| `general.md` | Base persona — works standalone for any user | `neo/general.md` |
|
||
| `<specialization>.md` | Domain deep-dive narrowing the persona's focus | `neo/redteam.md` |
|
||
| `salva.md` | User-personalized — references specific projects, data, tools | `neo/salva.md` |
|
||
|
||
## Prompt Format
|
||
|
||
Each `.md` file follows this structure:
|
||
|
||
```markdown
|
||
---
|
||
codename: "neo"
|
||
name: "Neo"
|
||
domain: "cybersecurity"
|
||
subdomain: "red-team"
|
||
version: "1.0.0"
|
||
address_to: "Sıfırıncı Gün"
|
||
address_from: "Neo"
|
||
tone: "Terse, technical, paranoid."
|
||
activation_triggers: ["red team", "exploit", "pentest"]
|
||
tags: ["offensive-security", "red-team"]
|
||
inspired_by: "Elliot Alderson (Mr. Robot)"
|
||
quote: "I am the one who knocks... on port 443."
|
||
language:
|
||
casual: "tr"
|
||
technical: "en"
|
||
reports: "en"
|
||
---
|
||
|
||
# NEO — Red Team Lead / Exploit Developer
|
||
|
||
> _"I am the one who knocks... on port 443."_
|
||
|
||
## Soul
|
||
5-7 personality-defining traits
|
||
|
||
## Expertise
|
||
### Primary / ### Secondary
|
||
|
||
## Methodology
|
||
Phased operational protocol
|
||
|
||
## Tools & Resources
|
||
|
||
## Behavior Rules
|
||
|
||
## Boundaries
|
||
Escalation paths to other personas
|
||
```
|
||
|
||
## Build System
|
||
|
||
```bash
|
||
python3 build.py
|
||
```
|
||
|
||
Reads `config.yaml` (if present) and generates three formats per variant:
|
||
|
||
| Format | File | Use Case |
|
||
|--------|------|----------|
|
||
| System Prompt | `generated/<name>/<variant>.prompt.md` | Paste directly into any LLM |
|
||
| Structured YAML | `generated/<name>/<variant>.yaml` | Config files, metadata access |
|
||
| JSON | `generated/<name>/<variant>.json` | API integration, bot frameworks |
|
||
|
||
### Config-Driven Customization
|
||
|
||
The build system supports dynamic variable injection:
|
||
|
||
```yaml
|
||
# config.yaml
|
||
infrastructure:
|
||
tools:
|
||
rss_aggregator: true
|
||
vulnerability_scanner: true
|
||
frameworks:
|
||
mitre_attack: true
|
||
ic_confidence: true
|
||
```
|
||
|
||
Persona files can reference config values:
|
||
|
||
```markdown
|
||
{{#if infrastructure.tools.rss_aggregator}}
|
||
- FreshRSS integration for real-time feed monitoring
|
||
{{/if}}
|
||
```
|
||
|
||
Without `config.yaml`, personas build with their static content — no config required.
|
||
|
||
## Integration
|
||
|
||
### Raw System Prompt
|
||
|
||
```bash
|
||
cat generated/frodo/iran.prompt.md | pbcopy # macOS
|
||
cat generated/frodo/iran.prompt.md | xclip # Linux
|
||
```
|
||
|
||
### Python API
|
||
|
||
```python
|
||
import json
|
||
from pathlib import Path
|
||
|
||
def load_persona(codename: str, variant: str = "general") -> dict:
|
||
path = Path(f"generated/{codename}/{variant}.json")
|
||
return json.loads(path.read_text())
|
||
|
||
persona = load_persona("frodo", "nuclear")
|
||
system_prompt = persona["sections"]["soul"] + "\n" + persona["sections"]["expertise"]
|
||
```
|
||
|
||
### Multi-Persona Auto-Switching
|
||
|
||
```python
|
||
from pathlib import Path
|
||
import json
|
||
|
||
def select_persona(message: str) -> dict:
|
||
"""Select persona based on activation triggers in user message."""
|
||
for persona_dir in sorted(Path("generated").iterdir()):
|
||
if not persona_dir.is_dir():
|
||
continue
|
||
general = persona_dir / "general.json"
|
||
if not general.exists():
|
||
continue
|
||
data = json.loads(general.read_text())
|
||
triggers = data.get("activation_triggers", [])
|
||
if any(trigger in message.lower() for trigger in triggers):
|
||
return data
|
||
return load_persona("frodo") # default fallback
|
||
```
|
||
|
||
### Cross-Persona Escalation
|
||
|
||
Each persona defines `Boundaries` with escalation paths. This enables multi-agent workflows:
|
||
|
||
```
|
||
Neo (finds encrypted C2)
|
||
→ Cipher (analyzes crypto)
|
||
→ Sentinel (maps to APT group)
|
||
→ Frodo (geopolitical attribution)
|
||
→ Ghost (influence operation context)
|
||
|
||
Marshal (identifies doctrine shift)
|
||
→ Warden (weapons system implications)
|
||
→ Echo (SIGINT indicators)
|
||
→ Scribe (historical precedent from FOIA)
|
||
```
|
||
|
||
## Creating New Personas
|
||
|
||
```bash
|
||
# 1. Create directory
|
||
mkdir personas/newname
|
||
|
||
# 2. Copy templates
|
||
cp personas/_meta_template.yaml personas/newname/_meta.yaml
|
||
cp personas/_template.md personas/newname/general.md
|
||
|
||
# 3. Edit both files with your persona's details
|
||
|
||
# 4. Add specialization variants (optional)
|
||
cp personas/newname/general.md personas/newname/specialization.md
|
||
|
||
# 5. Build
|
||
python3 build.py
|
||
```
|
||
|
||
## For New Users
|
||
|
||
```bash
|
||
# 1. Clone the repo
|
||
git clone https://gitea.taygun.net.tr/salvacybersec/personas.git
|
||
|
||
# 2. Create your config
|
||
cp config.example.yaml config.yaml
|
||
# Edit: set your tools, data sources, infrastructure, projects
|
||
|
||
# 3. Create your personalized variants (optional)
|
||
# Edit personas/_user_context.md with your profile
|
||
# The salva.md files serve as examples — create your own <username>.md variants
|
||
|
||
# 4. Build
|
||
python3 build.py
|
||
```
|
||
|
||
## Stats
|
||
|
||
| Metric | Count |
|
||
|--------|-------|
|
||
| Personas | 29 |
|
||
| Total variants | 108 |
|
||
| Lines of prompt content | 20,717 |
|
||
| Generated files per build | 324 |
|
||
| Domains covered | 10 |
|
||
| Output formats | 3 (.prompt.md, .yaml, .json) |
|
||
|
||
## License
|
||
|
||
MIT
|