pt-workflow

pt-workflow is a skill for Claude Code, Codex from Encod3d-Sec/TORCH. It costs 120 tokens per session (1,576 once invoked), scanned A, original, MIT.

A step-by-step driver for authorised penetration tests, which are planned security checks of systems you have permission to examine. It tracks the engagement and tells the operator the next action.

In plain words
What is it for?
Use it to start or resume a penetration test, build a testing board from reconnaissance, record results, and work through findings one at a time.
Why use it?
It removes the need to decide manually which approved test to run next and helps keep work within the agreed scope and safety rules.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/encod3d-sec/torch/pt-workflow
Any agent
npx skills add Encod3d-Sec/TORCH --skill pt-workflow
Clone the repo
git clone --depth 1 https://github.com/Encod3d-Sec/TORCH

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for pt-workflow

README.md
[![agentmods](https://agentmods.dev/badge/skills/encod3d-sec/torch/pt-workflow.svg)](https://agentmods.dev/skills/encod3d-sec/torch/pt-workflow)
Your own site
<a href="https://agentmods.dev/skills/encod3d-sec/torch/pt-workflow"><img src="https://agentmods.dev/badge/skills/encod3d-sec/torch/pt-workflow.svg" alt="Measured on agentmods" height="20"></a>
Per session 120 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,576 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00120 $0.01576
Opus 5 $0.00060 $0.00788
Sonnet 5 $0.00024 $0.00315
Haiku 4.5 $0.00012 $0.00158

Measured 5d ago against content hash 67d454fa4b61, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

pt-workflow scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/workflow/pt-workflow/SKILL.md · 89 lines

How it starts

The opening of the file, as written. The whole thing — 89 lines — stays where its author put it; the contents beside it link to each section on GitHub.

pt-workflow

The driver is the plan. Run one command, do exactly what it prints, record the result, repeat. The gates are enforced by scripts/campaign.py; follow its output literally.

The loop

python3 scripts/campaign.py next
python3 scripts/campaign.py note <row> --arsenal <slug>
python3 scripts/campaign.py done <row> --poc <img> --kind req   # | --dead R | --park Q | --find F

Start / resume

  1. python3 scripts/campaign.py init --type pt - validates scope.md + envelope, repairs type/schema. An empty scope.md must be filled from the client SoW first (CIDRs, domains, RoE, lockout policy). The lockout policy and any destructive-op limits live in scope.md, not here.
  2. Passes 1-3 feed state.md - rustscan/nmap/nxc/LDAP/kerbrute/BloodHound per the recon defaults, which yield to scope.md's allowed tooling. Read service output end to end.
  3. python3 scripts/campaign.py board - writes the 4a rows (plus 4b lateral/privesc/DCSync for the pentest approach). Refuses on empty state.
  4. Enter the loop, depth-first, one open row at a time.
  5. When a shell/session lands on a host (reverse shell via vm-scan.sh --win shell, or meterpreter via --win msf), record it: python3 scripts/campaign.py foothold <host> --win shell (or ride it on the closing find with done ... --win). The driver flips that host's state.md row to access=foothold, routes its 4b lateral/privesc rows through vm-rsh --win <win> (persistent session + operator visibility), and prints tmux attach -t <eng> for takeover.

Gates

Same as the shared driver: G1 arsenal-first, G2 skill-first, G3 typed evidence, G8 tool-first. AD attacks route through Skill(hunt-ad); local privesc through Skill(hunt-windows) / Skill(hunt-macos); the driver names which per row.

Autonomy

No approvals. Out-of-envelope work parks to decisions.md; the loop never blocks. A spray is gated by the lockout policy in scope.md (the envelope), never attempted blind. Destructive AD operations (Zerologon and similar) park unless the envelope authorises them.

Read the full file on GitHub · 89 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 89 lines · 120 tokens per session scan A 67d454fa4b61

Subscribe to this mod's changes

pt-workflow is a skill published in the GitHub repository Encod3d-Sec/TORCH (284 stars, last pushed 3d ago), licensed MIT. It adds 120 tokens to every session and 1,576 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.

obra/superpowers · 37 tokens

auto-perf-optimize

Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis.

microsoft/vscode · 62 tokens

chat-perf

Run chat perf benchmarks and memory leak checks against the local dev build or any published VS Code version. Use when investigating chat rendering regressions, validating perf-sensitive changes to chat UI, or checking for memory leaks in the chat response pipeline.

microsoft/vscode · 51 tokens

chat-pet-sprite-creation

Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.

microsoft/vscode · 53 tokens

cpu-profile-analysis

Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…

microsoft/vscode · 71 tokens