# ljagiello/ctf-skills architecture

> Architecture diagram of the GitHub repository ljagiello/ctf-skills, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ljagiello/ctf-skills
- Repository: https://github.com/ljagiello/ctf-skills

## Overview

ctf-skills is a collection of Agent Skills and technique guides for solving CTF challenges, with example scripts for selected workflows. The user selects a relevant skill, consults its category guidance and techniques, then applies them to a challenge using the listed tools. The graph preserves the README’s major skill categories and notable script capabilities. Source excerpts are limited, so relationships between individual guides and their parent skills are not inferred beyond the documented collection structure.

Main entry points: [`ctf-web/SKILL.md`](https://github.com/ljagiello/ctf-skills/blob/main/ctf-web/SKILL.md) (Web exploitation), [`ctf-pwn/SKILL.md`](https://github.com/ljagiello/ctf-skills/blob/main/ctf-pwn/SKILL.md) (Binary exploitation), [`ctf-web/scripts/async_fuzz.py`](https://github.com/ljagiello/ctf-skills/blob/main/ctf-web/scripts/async_fuzz.py) (Async web fuzzer), [`ctf-pwn/scripts`](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn/scripts) (Payload scripts)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Challenge workflow"]
  node_solve["Challenge solving<br/>[SKILL.md]"]
  node_writeup["Writeups<br/>[SKILL.md]"]
  node_tools(("CTF tools"))
end

subgraph group_exploitation["Exploitation skills"]
  node_web["Web exploitation<br/>[SKILL.md]"]
  node_web_guides["Web techniques"]
  node_web_fuzzer["Async web fuzzer<br/>[async_fuzz.py]"]
  node_pwn["Binary exploitation<br/>[SKILL.md]"]
  node_pwn_guides["Pwn techniques"]
  node_pwn_scripts["Payload scripts"]
end

subgraph group_analysis["Analysis skills"]
  node_reverse["Reverse engineering<br/>[SKILL.md]"]
  node_forensics["Forensics<br/>[SKILL.md]"]
  node_malware["Malware analysis<br/>[SKILL.md]"]
end

subgraph group_crypto_osint["Crypto and intelligence"]
  node_crypto["Cryptography<br/>[SKILL.md]"]
  node_osint["OSINT<br/>[SKILL.md]"]
  node_ai_ml["AI and ML<br/>[SKILL.md]"]
end

subgraph group_other_skills["Other skill areas"]
  node_misc["Misc challenges<br/>[SKILL.md]"]
end

node_user(("CTF solver"))
node_target(("Challenge target"))

node_user -->|"consults"| node_solve
node_user -->|"selects skill"| node_web
node_user -->|"selects skill"| node_pwn
node_user -->|"selects skill"| node_reverse
node_user -->|"selects skill"| node_forensics
node_user -->|"selects skill"| node_malware
node_user -->|"selects skill"| node_crypto
node_user -->|"selects skill"| node_osint
node_user -->|"selects skill"| node_ai_ml
node_user -->|"selects skill"| node_misc
node_user -->|"consults"| node_writeup
node_user -->|"investigates"| node_target
node_web -->|"covers techniques"| node_web_guides
node_web -->|"includes example"| node_web_fuzzer
node_pwn -->|"covers techniques"| node_pwn_guides
node_pwn -->|"includes examples"| node_pwn_scripts
node_web_fuzzer -->|"sends requests"| node_target
node_pwn_scripts -->|"demonstrate exploits"| node_target
node_user -->|"installs as needed"| node_tools

click node_solve "https://github.com/ljagiello/ctf-skills/blob/main/solve-challenge/SKILL.md"
click node_writeup "https://github.com/ljagiello/ctf-skills/blob/main/ctf-writeup/SKILL.md"
click node_web "https://github.com/ljagiello/ctf-skills/blob/main/ctf-web/SKILL.md"
click node_web_guides "https://github.com/ljagiello/ctf-skills/tree/main/ctf-web"
click node_web_fuzzer "https://github.com/ljagiello/ctf-skills/blob/main/ctf-web/scripts/async_fuzz.py"
click node_pwn "https://github.com/ljagiello/ctf-skills/blob/main/ctf-pwn/SKILL.md"
click node_pwn_guides "https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn"
click node_pwn_scripts "https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn/scripts"
click node_reverse "https://github.com/ljagiello/ctf-skills/blob/main/ctf-reverse/SKILL.md"
click node_forensics "https://github.com/ljagiello/ctf-skills/blob/main/ctf-forensics/SKILL.md"
click node_malware "https://github.com/ljagiello/ctf-skills/blob/main/ctf-malware/SKILL.md"
click node_crypto "https://github.com/ljagiello/ctf-skills/blob/main/ctf-crypto/SKILL.md"
click node_osint "https://github.com/ljagiello/ctf-skills/blob/main/ctf-osint/SKILL.md"
click node_ai_ml "https://github.com/ljagiello/ctf-skills/blob/main/ctf-ai-ml/SKILL.md"
click node_misc "https://github.com/ljagiello/ctf-skills/blob/main/ctf-misc/SKILL.md"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_solve,node_writeup,node_tools toneBlue
class node_web,node_web_guides,node_web_fuzzer,node_pwn,node_pwn_guides,node_pwn_scripts toneAmber
class node_reverse,node_forensics,node_malware toneMint
class node_crypto,node_osint,node_ai_ml toneRose
class node_misc,node_user,node_target toneIndigo
```

## Components

### Challenge workflow

- [Challenge solving](https://github.com/ljagiello/ctf-skills/blob/main/solve-challenge/SKILL.md): `solve-challenge/SKILL.md`
- [Writeups](https://github.com/ljagiello/ctf-skills/blob/main/ctf-writeup/SKILL.md): `ctf-writeup/SKILL.md`
- **CTF tools**

### Exploitation skills

- [Web exploitation](https://github.com/ljagiello/ctf-skills/blob/main/ctf-web/SKILL.md): `ctf-web/SKILL.md`
- [Web techniques](https://github.com/ljagiello/ctf-skills/tree/main/ctf-web): `ctf-web`
- [Async web fuzzer](https://github.com/ljagiello/ctf-skills/blob/main/ctf-web/scripts/async_fuzz.py): `ctf-web/scripts/async_fuzz.py`
- [Binary exploitation](https://github.com/ljagiello/ctf-skills/blob/main/ctf-pwn/SKILL.md): `ctf-pwn/SKILL.md`
- [Pwn techniques](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn): `ctf-pwn`
- [Payload scripts](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn/scripts): `ctf-pwn/scripts`

### Analysis skills

- [Reverse engineering](https://github.com/ljagiello/ctf-skills/blob/main/ctf-reverse/SKILL.md): `ctf-reverse/SKILL.md`
- [Forensics](https://github.com/ljagiello/ctf-skills/blob/main/ctf-forensics/SKILL.md): `ctf-forensics/SKILL.md`
- [Malware analysis](https://github.com/ljagiello/ctf-skills/blob/main/ctf-malware/SKILL.md): `ctf-malware/SKILL.md`

### Crypto and intelligence

- [Cryptography](https://github.com/ljagiello/ctf-skills/blob/main/ctf-crypto/SKILL.md): `ctf-crypto/SKILL.md`
- [OSINT](https://github.com/ljagiello/ctf-skills/blob/main/ctf-osint/SKILL.md): `ctf-osint/SKILL.md`
- [AI and ML](https://github.com/ljagiello/ctf-skills/blob/main/ctf-ai-ml/SKILL.md): `ctf-ai-ml/SKILL.md`

### Other skill areas

- [Misc challenges](https://github.com/ljagiello/ctf-skills/blob/main/ctf-misc/SKILL.md): `ctf-misc/SKILL.md`

### Other components

- **CTF solver**
- **Challenge target**

## Connections

- CTF solver → Challenge solving: consults
- CTF solver → Web exploitation: selects skill
- CTF solver → Binary exploitation: selects skill
- CTF solver → Reverse engineering: selects skill
- CTF solver → Forensics: selects skill
- CTF solver → Malware analysis: selects skill
- CTF solver → Cryptography: selects skill
- CTF solver → OSINT: selects skill
- CTF solver → AI and ML: selects skill
- CTF solver → Misc challenges: selects skill
- CTF solver → Writeups: consults
- CTF solver → Challenge target: investigates
- Web exploitation → Web techniques: covers techniques
- Web exploitation → Async web fuzzer: includes example
- Binary exploitation → Pwn techniques: covers techniques
- Binary exploitation → Payload scripts: includes examples
- Async web fuzzer → Challenge target: sends requests
- Payload scripts → Challenge target: demonstrate exploits
- CTF solver → CTF tools: installs as needed
