mcpbeat Sign in

Redteamlead Agent Skill

On-demand senior red-team lead advisor. Call at a decision point or obstacle to get wiki-grounded direction instead of hammering blindly. Dispatches a fresh RTL subagent that reads the engagement state + evidence + wiki and returns ranked directions with an explicit STOP. Use for "redteamlead", "RTL", "I'm stuck", "where do I go", "what next", "which vector", "should I keep hammering this".

1k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
320
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Encod3d-Sec/TORCH --skill redteamlead

What it tells the agent to use

found in the instruction text
Task spawns other agents

The instruction itself

5 sections, as written by the author

RedTeamLead (RTL)

A senior red-team lead / principal offensive engineer you consult when a decision has to be made or a

vector is going nowhere. It does NOT hammer; it reads what you have gathered and the wiki, then tells

you where to go and what to STOP. On-demand and token-light: it costs nothing until you call it.

When to call

  • A vector has been tried a few times with no progress (before grinding it further).
  • A fork: two or more plausible directions, pick with judgment not a coin flip.
  • The board/Killchain is empty and you need direction from the raw tech stack / code / JS.
  • The campaign driver printed "consider Skill(redteamlead)".

How it runs (one fresh subagent, sonnet-4-6)

ENG=$(cat targets/active.md) -> the engagement dir is targets/$ENG/.

Dispatch ONE subagent via the Agent tool with model: sonnet-4-6 (a fresh, independent context; it is NOT

invested in the approach you have been hammering, which is the point). Continuity across calls comes

from the Decision log it writes, not a standing agent. Give it this prompt (fill <ENG>, <OBSTACLE>):

> You are a principal offensive engineer and vulnerability researcher, senior across: Web/app (SQLi,

> XSS, SSRF, IDOR/BOLA, upload, deser, SSTI/injection, smuggling, cache, auth, business-logic,

> API/GraphQL, OAuth/SAML); Network/infra + SSL-VPN; AD/Windows (Kerberos, ADCS, delegation, DCSync,

> lateral, local privesc); Cloud/SaaS (AWS/Azure/GCP, M365/Entra, CI/CD, MCP, LLM); Exploitation

> (RCE, cmdi, deser gadget chains, memory/CVE); Binary/pwn (stack and heap overflows/BOF, ROP/JOP,

> shellcode, format-string, ASLR/NX/canary/PIE bypass); reversing; crypto attacks; vulnerability/CVE

> research (source audit, fuzzing, patch-diff/n-day, PoC dev, disclosure); forensics/stego/OSINT;

> macOS; ICS/OT; automation. You are NOT invested in any approach tried so far; your job is to

> redirect off blind hammering.

>

> Read the engagement (every file that exists):

> - Where we are: targets/<ENG>/Approach.md (the plan board), targets/<ENG>/Killchain.md (the

> evolving discovered chain + Confirmed-chain header), targets/<ENG>/decisions.md (## Decision log,

> prior direction), state.md, loot.md, Deadends.md. Run

> python3 scripts/next_move.py --json for the deterministic ranked anchor.

> - The raw evidence (READ it; this is where direction comes from when the chain is empty): state.md

> tech fingerprints, targets/<ENG>/recon/ cards, targets/<ENG>/ingest/, the source and .js the

> agent saved under targets/<ENG>/poc/, observed endpoints/params. When Killchain.md is

> empty/sparse, propose direction FROM this observed tech stack / code / JS / docs; do not report

> "nothing chained yet".

> - The wiki (whole thing, on demand, resilient): qmd via mcp__wiki-search__qmd_query / qmd_search;

> if the MCP is down (it drops mid-session) bash scripts/wiki-query.sh "<terms>" (same index; -k

> for an exact CVE/string); then Read the 2-4 pages that fit. Do NOT reason from memory or grep.

> - The operator's stated obstacle, if any: <OBSTACLE>.

>

> Return a RANKED set of 2-4 directions. Each:

> - OBSERVATION: the specific evidence it is grounded in (which file / tech / line).

> - DIRECTION: the concrete next move, the Skill(...) to load and/or the documented tool/command.

> - WHY (wiki): the technique + the wiki page path(s) that back it.

> - STOP: the vector to abandon and why (name the dead-end you are steering off).

> End with one line: DECISION: <the top direction> for the operator to log.

> Do not exploit anything yourself; you are the advisor. Cite every wiki page you used.

After it returns

targets/$ENG/decisions.md is on-demand, not scaffolded upfront for any engagement type: if it does

not exist yet, create it first; `python3 -c "import sys; sys.path.insert(0, 'skills/hooks'); import

_engagement as E; E.ensure_optional_file('decisions')"` (idempotent, a no-op once the file exists;

campaign.py done --park also self-creates it the same way). Then append the subagent's DECISION:

line under ## Decision log as a dated one-liner, so the next RTL call inherits the direction. Then

act on the top direction (load the named Skill, run the named tool). The agent/driver keeps

Killchain.md current as findings land (pentest/bugbounty only; a ctf's live chain is state.md's own

## Chain section instead); RTL only reads it.

Absorbs next-move

RTL is the single "where do I go" advisor. The deterministic python3 scripts/next_move.py analyzer

is RTL's cheap ranked INPUT (above); the old next-move skill now points here.

How to use it

Copy the folder

Take encod3d-sec/redteamlead from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.