Creator · gaasher
Last updated · Sep 4, 2026
Use when the user wants to automatically harden a guardrail, classifier, content filter, prompt, or API they own by running attack and defense together as a closed loop, not just one or the other. It orchestrates the red-team and blue-team loops as independent agents: red finds d
Creator · gaasher
Last updated · Sep 4, 2026
Use when the user wants to automatically harden a guardrail, classifier, content filter, prompt, or API they own by running attack and defense together as a closed loop, not just one or the other. It orchestrates the red-team and blue-team loops as independent agents: red finds d
Creator · gaasher
Last updated · Sep 4, 2026
Use when the user wants to automatically harden a guardrail, classifier, content filter, prompt, or API they own by running attack and defense together as a closed loop, not just one or the other. It orchestrates the red-team and blue-team loops as independent agents: red finds d
Creator · gaasher
Last updated · Sep 4, 2026
Use when the user wants to automatically harden a guardrail, classifier, content filter, prompt, or API they own by running attack and defense together as a closed loop, not just one or the other. It orchestrates the red-team and blue-team loops as independent agents: red finds d
Sandbox only
Install targets
Codex install prompt
Install the "purple-team" agent skill from https://github.com/gaasher/Agent-Loop-Skills/tree/main/loops/purple-team. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Use when the user wants to automatically harden a guardrail, classifier, content filter, prompt, or API they own by running attack and defense together as a closed loop, not just one or the other. It orchestrates the red-team and blue-team loops as independent agents: red finds distinct failure classes against the frozen target, blue patches the target to close them under a regression gate, then a fresh red pass re-verifies — confirming each class is closed and surfacing any new ones the fix introduced. The find→fix→re-verify cycle repeats until a fresh attack pass stays dry (the target is hardened) or a cycle budget is hit, then it opens a pull request with the patch set. Not for attacking a system the user is not authorized to test, and not for a one-shot scan — use red-team alone to only find, or blue-team alone to only fix. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"gaasher-purple-team","task":"Install purple-team","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
Coding agents
I need a coding agent that can understand a repository, edit code, and review pull requests.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Maintenance
active
2mo since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
163
63/100 Quality · 75/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
PromisingUseful candidate, but compare it with alternatives before adopting.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
163 GitHub stars
Repo activity
163 stars, 19 forks
Maintenance
2mo since push
License
MIT
Install
npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add gaasher/Agent-Loop-Skills --skill purple-teamDo not use when
Alternative
168.6K Stars
npx skills add mattpocock/skills --skill code-review
Alternative
40.8K Stars
npx skills add appsmithorg/appsmith
Alternative
175.7K Stars
npx skills add mattpocock/skills --skill implement
Alternative
30.9K Stars
npx skills add vercel-labs/agent-skills --skill vercel-react-best-practices
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20purple-team%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20purple-team%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/gaasher-purple-team/install
Agent should check
Copy prompt
Task: Use purple-team in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20purple-team%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/gaasher-purple-team/install
Install command: npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/gaasher-purple-team/install
LLM text format
/api/skills/gaasher-purple-team/install?format=text
Find alternatives
/api/skills/search?q=purple-team&limit=3
Agent prompt
Use purple-team for this task. Review https://www.openagentskill.com/api/skills/gaasher-purple-team/install, then install with: npx skills add gaasher/Agent-Loop-Skills --skill purple-teamRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/gaasher-purple-team
LLM text
/api/registry/manifest/gaasher-purple-team?format=text
Install alias
/api/registry/install/gaasher-purple-team
Recommend
/api/registry/recommend?task=Use%20purple-team%20in%20an%20agent%20workflow&limit=3
Agent fit
Coding agents
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Prototype with this skill first; keep a fallback candidate ready.
Role in stack
Fallback candidate
Primary fit
Coding agents
Trust label
Prototype first
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
INFO163 GitHub stars
Stars/forks activity
CHECK163 stars, 19 forks; issue activity unavailable in current metadata
Recent maintenance
PASS2mo since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Useful candidate, but compare it with alternatives before adopting.
Workflow fit
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Operate web apps
I need my agent to control a browser, fill forms, and verify web app workflows.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
Review a branch or diff against repository standards and the originating spec in two independent analysis passes.
Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
Implement work from an approved spec or ticket set, run focused and full tests, invoke code review, and commit the result to the current branch.
React and Next.js performance guidance for writing, reviewing, and refactoring production UI code.
--- name: purple-team description: > Use when the user wants to automatically harden a guardrail, classifier, content filter, prompt, or API they own by running attack and defense together as a closed loop, not just one or the other. It orchestrates the red-team and blue-team loops as independent agents: red finds distinct failure classes against the frozen target, blue patches the target to close them under a regression gate, then a fresh red pass re-verifies — confirming each class is closed and surfacing any new ones the fix introduced. The find→fix→re-verify cycle repeats until a fresh attack pass stays dry (the target is hardened) or a cycle budget is hit, then it opens a pull request with the patch set. Not for attacking a system the user is not authorized to test, and not for a one-shot scan — use red-team alone to only find, or blue-team alone to only fix. compatibility: > Requires Python 3.9+ and the sibling red-team + blue-team skills installed. Real isolated subagents on Claude Code; runs the phases inline (serial) elsewhere. git + gh CLI for the PR handoff (degrades). metadata: version: "0.1.0" ---
# Purple Team
The **combined red+blue** loop — the outer orchestration the `red-team` skill says "lives outside it." The artifact is a target system (frozen *within* a phase, patched *between* phases); the feedback signal is **how many new failure classes a fresh attack pass finds against the patched target**. Each cycle runs three strictly separated phases — **find** (red-team), **fix** (blue-team), **re-verify** (a fresh red-team pass) — and you repeat until a fresh find stays **dry** (zero new classes), meaning the target is hardened. Red and blue run as **independent agents** so the attacker that wrote a catalogue never grades its own patch. On stop it opens a pull request with the cycle history and the patch set.
## When to use Use to harden a guardrail/classifier/filter/prompt/API the user owns or is authorized to test, when the goal is an actually-hardened target plus a reviewable patch — not just a catalogue (that is `red-team` alone) and not just closing a pre-existing catalogue (that is `blue-team` alone). It needs a runnable oracle for the objective signal, and the two sibling skills installed.
Default: spawn red and blue as separate subagents per phase. Escape hatch: on hosts without subagent dispatch, run each phase inline (serial) per the role files — still correct, but the same context plays both sides, so be deliberate about not letting the fix bias the re-verify. Not for unauthorized targets.
## Setup Resolve bindings interactively. If `loop.run.yaml` exists, load it, confirm the values in one line, and skip to the loop. Otherwise: on Claude Code (the `AskUserQuestion` tool is available) infer a likely value per binding and recommend it; on other hosts ask each as a quoted prompt. Then write `loop.run.yaml` (format: `examples/run.example.yaml`) and confirm before creating any other files.
The phases reuse the sibling skills, so the bindings are their union — one shared `loop.run.yaml` drives both. The same file is `<target_files>` to blue (writable) and the program behind `<target_cmd>` to red (read-only); the same path is red's `<failures_log>` and blue's `<catalogue>`.
| binding | meaning | default | how to infer | |---|---|---|---| | `<target_cmd>` | run the target on one stdin input → a verdict (what red attacks) | — | the guardrail/classifier/API entrypoint | | `<target_files>` | the source file(s) blue may edit to fix the target | — | the file(s) behind `<target_cmd>` | | `<oracle_cmd>` | ground-truth verdict for the same input (frozen) | — | a reference checker / policy impl | | `<gate_cmd>` | functional tests that must stay green through a fix (exits 0) | — | the target's test command; else rely on `<holdout>` | | `<holdout>` | benign + clearly-correct inputs blue must not break | `<sandbox_root>/holdout.jsonl` | known-good inputs the oracle agrees on | | `<catalogue>` | shared failures file: red writes it, blue closes it, JSONL `{id,text,class,...}` | `<sandbox_root>/failures.jsonl` | — | | `<iter_strategy>` | `branches` (commit per fix → PR) or `snapshots` | `branches` | dirty/non-git tree → snapshots | | `<pr_branch>` | branch the fixes land on and the PR opens from | `purple-team/<tag>` | today's date as `<tag>` | | `<sandbox_root>` | where catalogues, snapshots, ledgers live | `./sandbox` | — | | `<cycle_budget>` | max find→fix→re-verify cycles | 4 | — | | `<find_budget>`, `<fix_budget>` | inner per-phase budgets passed to red / blue | 8 | — |
`<skill_dir>` is this skill's installed folder. The phases run the sibling skills' tools (`red-team/tools/harness.py`, `blue-team/tools/verify.py`); the role files name them.
## The loop Copy this checklist and tick items off each cycle. Cycles are numbered from 0; per-cycle artifacts go in `<sandbox_root>` with the cycle index in the name so nothing is overwritten: the find catalogue is `failures.cycle<N>.jsonl` (cycle 0 may use `<catalogue>` directly) and the re-verify result is `failures.cycle<N>_reverify.jsonl`. The **catalogue blue fixes in cycle N is the failures file from that cycle's find/re-verify pass** — never append back into one shared file, so each cycle's accounting is clean.
- [ ] **Cycle 0 — Find.** Run the **red-team** phase against the **frozen** target (spawn-or-degrade, `roles/red-find.md`), writing `failures.cycle0.jsonl`. Read back its distinct failure classes. - [ ] If the catalogue is empty on cycle 0, **stop** — the target is already dry; report clean, no PR. - [ ] **Fix.** Run the **blue-team** phase on this cycle's failures file (spawn-or-degrade, `roles/blue-fix.md`): it patches `<target_files>` one class per iteration under the gate + regression guard, committing kept fixes on `<pr_branch>`. Read back the classes it **closed** and any **residuals**. - [ ] **Re-verify.** Run a **fresh** red-team phase against the **patched** target into `failures.cycle<N>_reverify.jsonl`. This confirms the closed classes no longer reproduce and surfaces any **new** classes the fix introduced (e.g. an over-block). - [ ] Append one cycle row to the ledger. If the re-verify pass found new classes, they become the **next** cycle's catalogue (`failures.cycle<N+1>.jsonl`) — loop to **Find/Fix** for cycle N+1. Repeat **find→fix→re-verify** until a re-verify pass stays **dry** (no new classes) or `<cycle_budget>` is hit. - [ ] **Handoff.** Open the pull request with the full cycle history (see [Handoff](#handoff-the-pull-request)).
**Phase independence (why three separated phases).** The target is read-only ground truth for the duration of a red pass, so patches happen only *between* passes — mutating it mid-pass would break reproducibility and the class accounting. Spawn red and blue as **separate** subagents so neither grades its own work; the orchestrator only passes artifacts (the catalogue, the closed/residual summary) between them. Launch a phase's subagent and wait for its structured return before the next phase.
## Ledger `<sandbox_root>/cycle_ledger.tsv`, tab-separated, never commas in free text. Header `cycle found fixed residual regressions_introduced net_open`: ``` cycle found fixed residual regressions_introduced net_open 0 5 5 0 1 1 1 1 1 0 0 0 ``` All counts are **distinct classes**, not inner iterations: `found` = classes red surfaced this cycle; `fixed` = classes blue *closed* (a class blue attempted several times still counts once); `residual` = classes blue could not close; `regressions_introduced` = new classes the re-verify pass found that the fix caused; `net_open` = classes still open entering the next cycle (`residual + regressions_introduced`, the next cycle's catalogue size). Convergence is a re-verify pass with `net_open` = 0. Report the cycle at which the target went dry (or the best `net_open` reached).
## Constraints - **Authorized targets only.** This drives real attacks against the target; only run it on a system the user owns or is explicitly authorized to test (inherited from red-team). - **Keep the phases independent and the ground truth frozen.** Never let one phase edit the oracle, `<gate_cmd>` tests, `<holdout>`, or either tool; never patch the target inside a red pass. These keep the find/fix/re-verify accounting honest. - **Re-verify is a *fresh* attack, not a replay.** It must be free to find new classes (including ones the fix introduced), not just re-check the old list — concretely, at least half its candidates should be new payloads and it should try at least two attack angles not in the prior catalogue (this matters most in degrade mode, where the same context plays both sides). That is what makes the loop converge to dry rather than to "the original five are gone." - **One change per inner iteration** (handled by the sub-loops); the orchestrator changes nothing itself except moving artifacts between phases. - Stay inside the repo and `<sandbox_root>`; do not pause between phases to ask whether to continue — run until dry or `<cycle_budget>`.
## Handoff: the pull request The deliverable is one **pull request** for the whole hardening run — the communication interface to the target's owner, who keeps final approval. With the tree at blue's best state and the kept fixes already committed on `<pr_branch>`: - Open it with `gh pr create`; body = the cycle ledger (found → fixed → re-verified per cycle), one reproducible example per closed class, and any residuals still open. **Confirm once before opening** — it is outward-facing; never auto-push silently. - **Degrade, don't fail:** with no remote / no `gh`, leave commits on `<pr_branch>` and write `git format-patch` + `PR_BODY.md` into `<sandbox_root>`; in `snapshots` mode emit a unified diff + `PR_BODY.md`. Tell the user the one command to open the PR themselves.
## Roles - `roles/red-find.md` — runs the red-team phase against the target and returns the catalogue + classes. - `roles/blue-fix.md` — runs the blue-team phase on the catalogue and returns closed classes + residuals.
Both are **spawn-or-degrade**: spawn a real isolated subagent on Claude Code (the `Agent`/Task tool), else adopt the role inline. Each delegates to the sibling skill (`red-team` / `blue-team`) bound to the shared `loop.run.yaml`; if a sibling is not installed, ask the user to install it (`npx skills add gaasher/agent-loop-skills`) rather than re-implementing it here.
Source provenance
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for purple-team, ready for a manual X post.
purple-team: Use when the user wants to automatically harden a guardrail, classifier, content filter, prom... 163 stars https://www.openagentskill.com/skills/gaasher-purple-team?ref=x
Listing + install path for purple-team: https://www.openagentskill.com/skills/gaasher-purple-team?ref=x Install: npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to gaasher but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/gaasher-purple-team?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/gaasher-purple-team?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/gaasher-purple-team/audit)
[](https://www.openagentskill.com/skills/gaasher-purple-team?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)gaasher
@gaasher
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Code Review
Review a branch or diff against repository standards and the originating spec in two independent analysis passes.
168.6K StarsAppsmith
Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
40.8K StarsImplement
Implement work from an approved spec or ticket set, run focused and full tests, invoke code review, and commit the result to the current branch.
175.7K StarsVercel React Best Practices
React and Next.js performance guidance for writing, reviewing, and refactoring production UI code.
30.9K StarsSandbox only
Install targets
Codex install prompt
Install the "purple-team" agent skill from https://github.com/gaasher/Agent-Loop-Skills/tree/main/loops/purple-team. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Use when the user wants to automatically harden a guardrail, classifier, content filter, prompt, or API they own by running attack and defense together as a closed loop, not just one or the other. It orchestrates the red-team and blue-team loops as independent agents: red finds distinct failure classes against the frozen target, blue patches the target to close them under a regression gate, then a fresh red pass re-verifies — confirming each class is closed and surfacing any new ones the fix introduced. The find→fix→re-verify cycle repeats until a fresh attack pass stays dry (the target is hardened) or a cycle budget is hit, then it opens a pull request with the patch set. Not for attacking a system the user is not authorized to test, and not for a one-shot scan — use red-team alone to only find, or blue-team alone to only fix. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"gaasher-purple-team","task":"Install purple-team","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
Coding agents
I need a coding agent that can understand a repository, edit code, and review pull requests.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Maintenance
active
2mo since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
163
63/100 Quality · 75/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
PromisingUseful candidate, but compare it with alternatives before adopting.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
163 GitHub stars
Repo activity
163 stars, 19 forks
Maintenance
2mo since push
License
MIT
Install
npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add gaasher/Agent-Loop-Skills --skill purple-teamDo not use when
Alternative
168.6K Stars
npx skills add mattpocock/skills --skill code-review
Alternative
40.8K Stars
npx skills add appsmithorg/appsmith
Alternative
175.7K Stars
npx skills add mattpocock/skills --skill implement
Alternative
30.9K Stars
npx skills add vercel-labs/agent-skills --skill vercel-react-best-practices
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20purple-team%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20purple-team%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/gaasher-purple-team/install
Agent should check
Copy prompt
Task: Use purple-team in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20purple-team%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/gaasher-purple-team/install
Install command: npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/gaasher-purple-team/install
LLM text format
/api/skills/gaasher-purple-team/install?format=text
Find alternatives
/api/skills/search?q=purple-team&limit=3
Agent prompt
Use purple-team for this task. Review https://www.openagentskill.com/api/skills/gaasher-purple-team/install, then install with: npx skills add gaasher/Agent-Loop-Skills --skill purple-teamRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/gaasher-purple-team
LLM text
/api/registry/manifest/gaasher-purple-team?format=text
Install alias
/api/registry/install/gaasher-purple-team
Recommend
/api/registry/recommend?task=Use%20purple-team%20in%20an%20agent%20workflow&limit=3
Agent fit
Coding agents
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Prototype with this skill first; keep a fallback candidate ready.
Role in stack
Fallback candidate
Primary fit
Coding agents
Trust label
Prototype first
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
INFO163 GitHub stars
Stars/forks activity
CHECK163 stars, 19 forks; issue activity unavailable in current metadata
Recent maintenance
PASS2mo since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Useful candidate, but compare it with alternatives before adopting.
Workflow fit
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Operate web apps
I need my agent to control a browser, fill forms, and verify web app workflows.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
Review a branch or diff against repository standards and the originating spec in two independent analysis passes.
Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
Implement work from an approved spec or ticket set, run focused and full tests, invoke code review, and commit the result to the current branch.
React and Next.js performance guidance for writing, reviewing, and refactoring production UI code.
--- name: purple-team description: > Use when the user wants to automatically harden a guardrail, classifier, content filter, prompt, or API they own by running attack and defense together as a closed loop, not just one or the other. It orchestrates the red-team and blue-team loops as independent agents: red finds distinct failure classes against the frozen target, blue patches the target to close them under a regression gate, then a fresh red pass re-verifies — confirming each class is closed and surfacing any new ones the fix introduced. The find→fix→re-verify cycle repeats until a fresh attack pass stays dry (the target is hardened) or a cycle budget is hit, then it opens a pull request with the patch set. Not for attacking a system the user is not authorized to test, and not for a one-shot scan — use red-team alone to only find, or blue-team alone to only fix. compatibility: > Requires Python 3.9+ and the sibling red-team + blue-team skills installed. Real isolated subagents on Claude Code; runs the phases inline (serial) elsewhere. git + gh CLI for the PR handoff (degrades). metadata: version: "0.1.0" ---
# Purple Team
The **combined red+blue** loop — the outer orchestration the `red-team` skill says "lives outside it." The artifact is a target system (frozen *within* a phase, patched *between* phases); the feedback signal is **how many new failure classes a fresh attack pass finds against the patched target**. Each cycle runs three strictly separated phases — **find** (red-team), **fix** (blue-team), **re-verify** (a fresh red-team pass) — and you repeat until a fresh find stays **dry** (zero new classes), meaning the target is hardened. Red and blue run as **independent agents** so the attacker that wrote a catalogue never grades its own patch. On stop it opens a pull request with the cycle history and the patch set.
## When to use Use to harden a guardrail/classifier/filter/prompt/API the user owns or is authorized to test, when the goal is an actually-hardened target plus a reviewable patch — not just a catalogue (that is `red-team` alone) and not just closing a pre-existing catalogue (that is `blue-team` alone). It needs a runnable oracle for the objective signal, and the two sibling skills installed.
Default: spawn red and blue as separate subagents per phase. Escape hatch: on hosts without subagent dispatch, run each phase inline (serial) per the role files — still correct, but the same context plays both sides, so be deliberate about not letting the fix bias the re-verify. Not for unauthorized targets.
## Setup Resolve bindings interactively. If `loop.run.yaml` exists, load it, confirm the values in one line, and skip to the loop. Otherwise: on Claude Code (the `AskUserQuestion` tool is available) infer a likely value per binding and recommend it; on other hosts ask each as a quoted prompt. Then write `loop.run.yaml` (format: `examples/run.example.yaml`) and confirm before creating any other files.
The phases reuse the sibling skills, so the bindings are their union — one shared `loop.run.yaml` drives both. The same file is `<target_files>` to blue (writable) and the program behind `<target_cmd>` to red (read-only); the same path is red's `<failures_log>` and blue's `<catalogue>`.
| binding | meaning | default | how to infer | |---|---|---|---| | `<target_cmd>` | run the target on one stdin input → a verdict (what red attacks) | — | the guardrail/classifier/API entrypoint | | `<target_files>` | the source file(s) blue may edit to fix the target | — | the file(s) behind `<target_cmd>` | | `<oracle_cmd>` | ground-truth verdict for the same input (frozen) | — | a reference checker / policy impl | | `<gate_cmd>` | functional tests that must stay green through a fix (exits 0) | — | the target's test command; else rely on `<holdout>` | | `<holdout>` | benign + clearly-correct inputs blue must not break | `<sandbox_root>/holdout.jsonl` | known-good inputs the oracle agrees on | | `<catalogue>` | shared failures file: red writes it, blue closes it, JSONL `{id,text,class,...}` | `<sandbox_root>/failures.jsonl` | — | | `<iter_strategy>` | `branches` (commit per fix → PR) or `snapshots` | `branches` | dirty/non-git tree → snapshots | | `<pr_branch>` | branch the fixes land on and the PR opens from | `purple-team/<tag>` | today's date as `<tag>` | | `<sandbox_root>` | where catalogues, snapshots, ledgers live | `./sandbox` | — | | `<cycle_budget>` | max find→fix→re-verify cycles | 4 | — | | `<find_budget>`, `<fix_budget>` | inner per-phase budgets passed to red / blue | 8 | — |
`<skill_dir>` is this skill's installed folder. The phases run the sibling skills' tools (`red-team/tools/harness.py`, `blue-team/tools/verify.py`); the role files name them.
## The loop Copy this checklist and tick items off each cycle. Cycles are numbered from 0; per-cycle artifacts go in `<sandbox_root>` with the cycle index in the name so nothing is overwritten: the find catalogue is `failures.cycle<N>.jsonl` (cycle 0 may use `<catalogue>` directly) and the re-verify result is `failures.cycle<N>_reverify.jsonl`. The **catalogue blue fixes in cycle N is the failures file from that cycle's find/re-verify pass** — never append back into one shared file, so each cycle's accounting is clean.
- [ ] **Cycle 0 — Find.** Run the **red-team** phase against the **frozen** target (spawn-or-degrade, `roles/red-find.md`), writing `failures.cycle0.jsonl`. Read back its distinct failure classes. - [ ] If the catalogue is empty on cycle 0, **stop** — the target is already dry; report clean, no PR. - [ ] **Fix.** Run the **blue-team** phase on this cycle's failures file (spawn-or-degrade, `roles/blue-fix.md`): it patches `<target_files>` one class per iteration under the gate + regression guard, committing kept fixes on `<pr_branch>`. Read back the classes it **closed** and any **residuals**. - [ ] **Re-verify.** Run a **fresh** red-team phase against the **patched** target into `failures.cycle<N>_reverify.jsonl`. This confirms the closed classes no longer reproduce and surfaces any **new** classes the fix introduced (e.g. an over-block). - [ ] Append one cycle row to the ledger. If the re-verify pass found new classes, they become the **next** cycle's catalogue (`failures.cycle<N+1>.jsonl`) — loop to **Find/Fix** for cycle N+1. Repeat **find→fix→re-verify** until a re-verify pass stays **dry** (no new classes) or `<cycle_budget>` is hit. - [ ] **Handoff.** Open the pull request with the full cycle history (see [Handoff](#handoff-the-pull-request)).
**Phase independence (why three separated phases).** The target is read-only ground truth for the duration of a red pass, so patches happen only *between* passes — mutating it mid-pass would break reproducibility and the class accounting. Spawn red and blue as **separate** subagents so neither grades its own work; the orchestrator only passes artifacts (the catalogue, the closed/residual summary) between them. Launch a phase's subagent and wait for its structured return before the next phase.
## Ledger `<sandbox_root>/cycle_ledger.tsv`, tab-separated, never commas in free text. Header `cycle found fixed residual regressions_introduced net_open`: ``` cycle found fixed residual regressions_introduced net_open 0 5 5 0 1 1 1 1 1 0 0 0 ``` All counts are **distinct classes**, not inner iterations: `found` = classes red surfaced this cycle; `fixed` = classes blue *closed* (a class blue attempted several times still counts once); `residual` = classes blue could not close; `regressions_introduced` = new classes the re-verify pass found that the fix caused; `net_open` = classes still open entering the next cycle (`residual + regressions_introduced`, the next cycle's catalogue size). Convergence is a re-verify pass with `net_open` = 0. Report the cycle at which the target went dry (or the best `net_open` reached).
## Constraints - **Authorized targets only.** This drives real attacks against the target; only run it on a system the user owns or is explicitly authorized to test (inherited from red-team). - **Keep the phases independent and the ground truth frozen.** Never let one phase edit the oracle, `<gate_cmd>` tests, `<holdout>`, or either tool; never patch the target inside a red pass. These keep the find/fix/re-verify accounting honest. - **Re-verify is a *fresh* attack, not a replay.** It must be free to find new classes (including ones the fix introduced), not just re-check the old list — concretely, at least half its candidates should be new payloads and it should try at least two attack angles not in the prior catalogue (this matters most in degrade mode, where the same context plays both sides). That is what makes the loop converge to dry rather than to "the original five are gone." - **One change per inner iteration** (handled by the sub-loops); the orchestrator changes nothing itself except moving artifacts between phases. - Stay inside the repo and `<sandbox_root>`; do not pause between phases to ask whether to continue — run until dry or `<cycle_budget>`.
## Handoff: the pull request The deliverable is one **pull request** for the whole hardening run — the communication interface to the target's owner, who keeps final approval. With the tree at blue's best state and the kept fixes already committed on `<pr_branch>`: - Open it with `gh pr create`; body = the cycle ledger (found → fixed → re-verified per cycle), one reproducible example per closed class, and any residuals still open. **Confirm once before opening** — it is outward-facing; never auto-push silently. - **Degrade, don't fail:** with no remote / no `gh`, leave commits on `<pr_branch>` and write `git format-patch` + `PR_BODY.md` into `<sandbox_root>`; in `snapshots` mode emit a unified diff + `PR_BODY.md`. Tell the user the one command to open the PR themselves.
## Roles - `roles/red-find.md` — runs the red-team phase against the target and returns the catalogue + classes. - `roles/blue-fix.md` — runs the blue-team phase on the catalogue and returns closed classes + residuals.
Both are **spawn-or-degrade**: spawn a real isolated subagent on Claude Code (the `Agent`/Task tool), else adopt the role inline. Each delegates to the sibling skill (`red-team` / `blue-team`) bound to the shared `loop.run.yaml`; if a sibling is not installed, ask the user to install it (`npx skills add gaasher/agent-loop-skills`) rather than re-implementing it here.
Source provenance
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for purple-team, ready for a manual X post.
purple-team: Use when the user wants to automatically harden a guardrail, classifier, content filter, prom... 163 stars https://www.openagentskill.com/skills/gaasher-purple-team?ref=x
Listing + install path for purple-team: https://www.openagentskill.com/skills/gaasher-purple-team?ref=x Install: npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to gaasher but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/gaasher-purple-team?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/gaasher-purple-team?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/gaasher-purple-team/audit)
[](https://www.openagentskill.com/skills/gaasher-purple-team?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)gaasher
@gaasher
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Code Review
Review a branch or diff against repository standards and the originating spec in two independent analysis passes.
168.6K StarsAppsmith
Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
40.8K StarsImplement
Implement work from an approved spec or ticket set, run focused and full tests, invoke code review, and commit the result to the current branch.
175.7K StarsVercel React Best Practices
React and Next.js performance guidance for writing, reviewing, and refactoring production UI code.
30.9K StarsSandbox only
Install targets
Codex install prompt
Install the "purple-team" agent skill from https://github.com/gaasher/Agent-Loop-Skills/tree/main/loops/purple-team. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Use when the user wants to automatically harden a guardrail, classifier, content filter, prompt, or API they own by running attack and defense together as a closed loop, not just one or the other. It orchestrates the red-team and blue-team loops as independent agents: red finds distinct failure classes against the frozen target, blue patches the target to close them under a regression gate, then a fresh red pass re-verifies — confirming each class is closed and surfacing any new ones the fix introduced. The find→fix→re-verify cycle repeats until a fresh attack pass stays dry (the target is hardened) or a cycle budget is hit, then it opens a pull request with the patch set. Not for attacking a system the user is not authorized to test, and not for a one-shot scan — use red-team alone to only find, or blue-team alone to only fix. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"gaasher-purple-team","task":"Install purple-team","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
Coding agents
I need a coding agent that can understand a repository, edit code, and review pull requests.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Maintenance
active
2mo since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
163
63/100 Quality · 75/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
PromisingUseful candidate, but compare it with alternatives before adopting.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
163 GitHub stars
Repo activity
163 stars, 19 forks
Maintenance
2mo since push
License
MIT
Install
npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add gaasher/Agent-Loop-Skills --skill purple-teamDo not use when
Alternative
168.6K Stars
npx skills add mattpocock/skills --skill code-review
Alternative
40.8K Stars
npx skills add appsmithorg/appsmith
Alternative
175.7K Stars
npx skills add mattpocock/skills --skill implement
Alternative
30.9K Stars
npx skills add vercel-labs/agent-skills --skill vercel-react-best-practices
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20purple-team%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20purple-team%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/gaasher-purple-team/install
Agent should check
Copy prompt
Task: Use purple-team in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20purple-team%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/gaasher-purple-team/install
Install command: npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/gaasher-purple-team/install
LLM text format
/api/skills/gaasher-purple-team/install?format=text
Find alternatives
/api/skills/search?q=purple-team&limit=3
Agent prompt
Use purple-team for this task. Review https://www.openagentskill.com/api/skills/gaasher-purple-team/install, then install with: npx skills add gaasher/Agent-Loop-Skills --skill purple-teamRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/gaasher-purple-team
LLM text
/api/registry/manifest/gaasher-purple-team?format=text
Install alias
/api/registry/install/gaasher-purple-team
Recommend
/api/registry/recommend?task=Use%20purple-team%20in%20an%20agent%20workflow&limit=3
Agent fit
Coding agents
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Prototype with this skill first; keep a fallback candidate ready.
Role in stack
Fallback candidate
Primary fit
Coding agents
Trust label
Prototype first
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
INFO163 GitHub stars
Stars/forks activity
CHECK163 stars, 19 forks; issue activity unavailable in current metadata
Recent maintenance
PASS2mo since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Useful candidate, but compare it with alternatives before adopting.
Workflow fit
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Operate web apps
I need my agent to control a browser, fill forms, and verify web app workflows.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
Review a branch or diff against repository standards and the originating spec in two independent analysis passes.
Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
Implement work from an approved spec or ticket set, run focused and full tests, invoke code review, and commit the result to the current branch.
React and Next.js performance guidance for writing, reviewing, and refactoring production UI code.
--- name: purple-team description: > Use when the user wants to automatically harden a guardrail, classifier, content filter, prompt, or API they own by running attack and defense together as a closed loop, not just one or the other. It orchestrates the red-team and blue-team loops as independent agents: red finds distinct failure classes against the frozen target, blue patches the target to close them under a regression gate, then a fresh red pass re-verifies — confirming each class is closed and surfacing any new ones the fix introduced. The find→fix→re-verify cycle repeats until a fresh attack pass stays dry (the target is hardened) or a cycle budget is hit, then it opens a pull request with the patch set. Not for attacking a system the user is not authorized to test, and not for a one-shot scan — use red-team alone to only find, or blue-team alone to only fix. compatibility: > Requires Python 3.9+ and the sibling red-team + blue-team skills installed. Real isolated subagents on Claude Code; runs the phases inline (serial) elsewhere. git + gh CLI for the PR handoff (degrades). metadata: version: "0.1.0" ---
# Purple Team
The **combined red+blue** loop — the outer orchestration the `red-team` skill says "lives outside it." The artifact is a target system (frozen *within* a phase, patched *between* phases); the feedback signal is **how many new failure classes a fresh attack pass finds against the patched target**. Each cycle runs three strictly separated phases — **find** (red-team), **fix** (blue-team), **re-verify** (a fresh red-team pass) — and you repeat until a fresh find stays **dry** (zero new classes), meaning the target is hardened. Red and blue run as **independent agents** so the attacker that wrote a catalogue never grades its own patch. On stop it opens a pull request with the cycle history and the patch set.
## When to use Use to harden a guardrail/classifier/filter/prompt/API the user owns or is authorized to test, when the goal is an actually-hardened target plus a reviewable patch — not just a catalogue (that is `red-team` alone) and not just closing a pre-existing catalogue (that is `blue-team` alone). It needs a runnable oracle for the objective signal, and the two sibling skills installed.
Default: spawn red and blue as separate subagents per phase. Escape hatch: on hosts without subagent dispatch, run each phase inline (serial) per the role files — still correct, but the same context plays both sides, so be deliberate about not letting the fix bias the re-verify. Not for unauthorized targets.
## Setup Resolve bindings interactively. If `loop.run.yaml` exists, load it, confirm the values in one line, and skip to the loop. Otherwise: on Claude Code (the `AskUserQuestion` tool is available) infer a likely value per binding and recommend it; on other hosts ask each as a quoted prompt. Then write `loop.run.yaml` (format: `examples/run.example.yaml`) and confirm before creating any other files.
The phases reuse the sibling skills, so the bindings are their union — one shared `loop.run.yaml` drives both. The same file is `<target_files>` to blue (writable) and the program behind `<target_cmd>` to red (read-only); the same path is red's `<failures_log>` and blue's `<catalogue>`.
| binding | meaning | default | how to infer | |---|---|---|---| | `<target_cmd>` | run the target on one stdin input → a verdict (what red attacks) | — | the guardrail/classifier/API entrypoint | | `<target_files>` | the source file(s) blue may edit to fix the target | — | the file(s) behind `<target_cmd>` | | `<oracle_cmd>` | ground-truth verdict for the same input (frozen) | — | a reference checker / policy impl | | `<gate_cmd>` | functional tests that must stay green through a fix (exits 0) | — | the target's test command; else rely on `<holdout>` | | `<holdout>` | benign + clearly-correct inputs blue must not break | `<sandbox_root>/holdout.jsonl` | known-good inputs the oracle agrees on | | `<catalogue>` | shared failures file: red writes it, blue closes it, JSONL `{id,text,class,...}` | `<sandbox_root>/failures.jsonl` | — | | `<iter_strategy>` | `branches` (commit per fix → PR) or `snapshots` | `branches` | dirty/non-git tree → snapshots | | `<pr_branch>` | branch the fixes land on and the PR opens from | `purple-team/<tag>` | today's date as `<tag>` | | `<sandbox_root>` | where catalogues, snapshots, ledgers live | `./sandbox` | — | | `<cycle_budget>` | max find→fix→re-verify cycles | 4 | — | | `<find_budget>`, `<fix_budget>` | inner per-phase budgets passed to red / blue | 8 | — |
`<skill_dir>` is this skill's installed folder. The phases run the sibling skills' tools (`red-team/tools/harness.py`, `blue-team/tools/verify.py`); the role files name them.
## The loop Copy this checklist and tick items off each cycle. Cycles are numbered from 0; per-cycle artifacts go in `<sandbox_root>` with the cycle index in the name so nothing is overwritten: the find catalogue is `failures.cycle<N>.jsonl` (cycle 0 may use `<catalogue>` directly) and the re-verify result is `failures.cycle<N>_reverify.jsonl`. The **catalogue blue fixes in cycle N is the failures file from that cycle's find/re-verify pass** — never append back into one shared file, so each cycle's accounting is clean.
- [ ] **Cycle 0 — Find.** Run the **red-team** phase against the **frozen** target (spawn-or-degrade, `roles/red-find.md`), writing `failures.cycle0.jsonl`. Read back its distinct failure classes. - [ ] If the catalogue is empty on cycle 0, **stop** — the target is already dry; report clean, no PR. - [ ] **Fix.** Run the **blue-team** phase on this cycle's failures file (spawn-or-degrade, `roles/blue-fix.md`): it patches `<target_files>` one class per iteration under the gate + regression guard, committing kept fixes on `<pr_branch>`. Read back the classes it **closed** and any **residuals**. - [ ] **Re-verify.** Run a **fresh** red-team phase against the **patched** target into `failures.cycle<N>_reverify.jsonl`. This confirms the closed classes no longer reproduce and surfaces any **new** classes the fix introduced (e.g. an over-block). - [ ] Append one cycle row to the ledger. If the re-verify pass found new classes, they become the **next** cycle's catalogue (`failures.cycle<N+1>.jsonl`) — loop to **Find/Fix** for cycle N+1. Repeat **find→fix→re-verify** until a re-verify pass stays **dry** (no new classes) or `<cycle_budget>` is hit. - [ ] **Handoff.** Open the pull request with the full cycle history (see [Handoff](#handoff-the-pull-request)).
**Phase independence (why three separated phases).** The target is read-only ground truth for the duration of a red pass, so patches happen only *between* passes — mutating it mid-pass would break reproducibility and the class accounting. Spawn red and blue as **separate** subagents so neither grades its own work; the orchestrator only passes artifacts (the catalogue, the closed/residual summary) between them. Launch a phase's subagent and wait for its structured return before the next phase.
## Ledger `<sandbox_root>/cycle_ledger.tsv`, tab-separated, never commas in free text. Header `cycle found fixed residual regressions_introduced net_open`: ``` cycle found fixed residual regressions_introduced net_open 0 5 5 0 1 1 1 1 1 0 0 0 ``` All counts are **distinct classes**, not inner iterations: `found` = classes red surfaced this cycle; `fixed` = classes blue *closed* (a class blue attempted several times still counts once); `residual` = classes blue could not close; `regressions_introduced` = new classes the re-verify pass found that the fix caused; `net_open` = classes still open entering the next cycle (`residual + regressions_introduced`, the next cycle's catalogue size). Convergence is a re-verify pass with `net_open` = 0. Report the cycle at which the target went dry (or the best `net_open` reached).
## Constraints - **Authorized targets only.** This drives real attacks against the target; only run it on a system the user owns or is explicitly authorized to test (inherited from red-team). - **Keep the phases independent and the ground truth frozen.** Never let one phase edit the oracle, `<gate_cmd>` tests, `<holdout>`, or either tool; never patch the target inside a red pass. These keep the find/fix/re-verify accounting honest. - **Re-verify is a *fresh* attack, not a replay.** It must be free to find new classes (including ones the fix introduced), not just re-check the old list — concretely, at least half its candidates should be new payloads and it should try at least two attack angles not in the prior catalogue (this matters most in degrade mode, where the same context plays both sides). That is what makes the loop converge to dry rather than to "the original five are gone." - **One change per inner iteration** (handled by the sub-loops); the orchestrator changes nothing itself except moving artifacts between phases. - Stay inside the repo and `<sandbox_root>`; do not pause between phases to ask whether to continue — run until dry or `<cycle_budget>`.
## Handoff: the pull request The deliverable is one **pull request** for the whole hardening run — the communication interface to the target's owner, who keeps final approval. With the tree at blue's best state and the kept fixes already committed on `<pr_branch>`: - Open it with `gh pr create`; body = the cycle ledger (found → fixed → re-verified per cycle), one reproducible example per closed class, and any residuals still open. **Confirm once before opening** — it is outward-facing; never auto-push silently. - **Degrade, don't fail:** with no remote / no `gh`, leave commits on `<pr_branch>` and write `git format-patch` + `PR_BODY.md` into `<sandbox_root>`; in `snapshots` mode emit a unified diff + `PR_BODY.md`. Tell the user the one command to open the PR themselves.
## Roles - `roles/red-find.md` — runs the red-team phase against the target and returns the catalogue + classes. - `roles/blue-fix.md` — runs the blue-team phase on the catalogue and returns closed classes + residuals.
Both are **spawn-or-degrade**: spawn a real isolated subagent on Claude Code (the `Agent`/Task tool), else adopt the role inline. Each delegates to the sibling skill (`red-team` / `blue-team`) bound to the shared `loop.run.yaml`; if a sibling is not installed, ask the user to install it (`npx skills add gaasher/agent-loop-skills`) rather than re-implementing it here.
Source provenance
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for purple-team, ready for a manual X post.
purple-team: Use when the user wants to automatically harden a guardrail, classifier, content filter, prom... 163 stars https://www.openagentskill.com/skills/gaasher-purple-team?ref=x
Listing + install path for purple-team: https://www.openagentskill.com/skills/gaasher-purple-team?ref=x Install: npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to gaasher but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/gaasher-purple-team?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/gaasher-purple-team?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/gaasher-purple-team/audit)
[](https://www.openagentskill.com/skills/gaasher-purple-team?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)gaasher
@gaasher
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Code Review
Review a branch or diff against repository standards and the originating spec in two independent analysis passes.
168.6K StarsAppsmith
Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
40.8K StarsImplement
Implement work from an approved spec or ticket set, run focused and full tests, invoke code review, and commit the result to the current branch.
175.7K StarsVercel React Best Practices
React and Next.js performance guidance for writing, reviewing, and refactoring production UI code.
30.9K StarsSandbox only
Install targets
Codex install prompt
Install the "purple-team" agent skill from https://github.com/gaasher/Agent-Loop-Skills/tree/main/loops/purple-team. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Use when the user wants to automatically harden a guardrail, classifier, content filter, prompt, or API they own by running attack and defense together as a closed loop, not just one or the other. It orchestrates the red-team and blue-team loops as independent agents: red finds distinct failure classes against the frozen target, blue patches the target to close them under a regression gate, then a fresh red pass re-verifies — confirming each class is closed and surfacing any new ones the fix introduced. The find→fix→re-verify cycle repeats until a fresh attack pass stays dry (the target is hardened) or a cycle budget is hit, then it opens a pull request with the patch set. Not for attacking a system the user is not authorized to test, and not for a one-shot scan — use red-team alone to only find, or blue-team alone to only fix. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"gaasher-purple-team","task":"Install purple-team","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
Coding agents
I need a coding agent that can understand a repository, edit code, and review pull requests.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Maintenance
active
2mo since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
163
63/100 Quality · 75/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
PromisingUseful candidate, but compare it with alternatives before adopting.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
163 GitHub stars
Repo activity
163 stars, 19 forks
Maintenance
2mo since push
License
MIT
Install
npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add gaasher/Agent-Loop-Skills --skill purple-teamDo not use when
Alternative
168.6K Stars
npx skills add mattpocock/skills --skill code-review
Alternative
40.8K Stars
npx skills add appsmithorg/appsmith
Alternative
175.7K Stars
npx skills add mattpocock/skills --skill implement
Alternative
30.9K Stars
npx skills add vercel-labs/agent-skills --skill vercel-react-best-practices
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20purple-team%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20purple-team%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/gaasher-purple-team/install
Agent should check
Copy prompt
Task: Use purple-team in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20purple-team%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/gaasher-purple-team/install
Install command: npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/gaasher-purple-team/install
LLM text format
/api/skills/gaasher-purple-team/install?format=text
Find alternatives
/api/skills/search?q=purple-team&limit=3
Agent prompt
Use purple-team for this task. Review https://www.openagentskill.com/api/skills/gaasher-purple-team/install, then install with: npx skills add gaasher/Agent-Loop-Skills --skill purple-teamRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/gaasher-purple-team
LLM text
/api/registry/manifest/gaasher-purple-team?format=text
Install alias
/api/registry/install/gaasher-purple-team
Recommend
/api/registry/recommend?task=Use%20purple-team%20in%20an%20agent%20workflow&limit=3
Agent fit
Coding agents
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Prototype with this skill first; keep a fallback candidate ready.
Role in stack
Fallback candidate
Primary fit
Coding agents
Trust label
Prototype first
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
INFO163 GitHub stars
Stars/forks activity
CHECK163 stars, 19 forks; issue activity unavailable in current metadata
Recent maintenance
PASS2mo since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Useful candidate, but compare it with alternatives before adopting.
Workflow fit
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Operate web apps
I need my agent to control a browser, fill forms, and verify web app workflows.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
Review a branch or diff against repository standards and the originating spec in two independent analysis passes.
Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
Implement work from an approved spec or ticket set, run focused and full tests, invoke code review, and commit the result to the current branch.
React and Next.js performance guidance for writing, reviewing, and refactoring production UI code.
--- name: purple-team description: > Use when the user wants to automatically harden a guardrail, classifier, content filter, prompt, or API they own by running attack and defense together as a closed loop, not just one or the other. It orchestrates the red-team and blue-team loops as independent agents: red finds distinct failure classes against the frozen target, blue patches the target to close them under a regression gate, then a fresh red pass re-verifies — confirming each class is closed and surfacing any new ones the fix introduced. The find→fix→re-verify cycle repeats until a fresh attack pass stays dry (the target is hardened) or a cycle budget is hit, then it opens a pull request with the patch set. Not for attacking a system the user is not authorized to test, and not for a one-shot scan — use red-team alone to only find, or blue-team alone to only fix. compatibility: > Requires Python 3.9+ and the sibling red-team + blue-team skills installed. Real isolated subagents on Claude Code; runs the phases inline (serial) elsewhere. git + gh CLI for the PR handoff (degrades). metadata: version: "0.1.0" ---
# Purple Team
The **combined red+blue** loop — the outer orchestration the `red-team` skill says "lives outside it." The artifact is a target system (frozen *within* a phase, patched *between* phases); the feedback signal is **how many new failure classes a fresh attack pass finds against the patched target**. Each cycle runs three strictly separated phases — **find** (red-team), **fix** (blue-team), **re-verify** (a fresh red-team pass) — and you repeat until a fresh find stays **dry** (zero new classes), meaning the target is hardened. Red and blue run as **independent agents** so the attacker that wrote a catalogue never grades its own patch. On stop it opens a pull request with the cycle history and the patch set.
## When to use Use to harden a guardrail/classifier/filter/prompt/API the user owns or is authorized to test, when the goal is an actually-hardened target plus a reviewable patch — not just a catalogue (that is `red-team` alone) and not just closing a pre-existing catalogue (that is `blue-team` alone). It needs a runnable oracle for the objective signal, and the two sibling skills installed.
Default: spawn red and blue as separate subagents per phase. Escape hatch: on hosts without subagent dispatch, run each phase inline (serial) per the role files — still correct, but the same context plays both sides, so be deliberate about not letting the fix bias the re-verify. Not for unauthorized targets.
## Setup Resolve bindings interactively. If `loop.run.yaml` exists, load it, confirm the values in one line, and skip to the loop. Otherwise: on Claude Code (the `AskUserQuestion` tool is available) infer a likely value per binding and recommend it; on other hosts ask each as a quoted prompt. Then write `loop.run.yaml` (format: `examples/run.example.yaml`) and confirm before creating any other files.
The phases reuse the sibling skills, so the bindings are their union — one shared `loop.run.yaml` drives both. The same file is `<target_files>` to blue (writable) and the program behind `<target_cmd>` to red (read-only); the same path is red's `<failures_log>` and blue's `<catalogue>`.
| binding | meaning | default | how to infer | |---|---|---|---| | `<target_cmd>` | run the target on one stdin input → a verdict (what red attacks) | — | the guardrail/classifier/API entrypoint | | `<target_files>` | the source file(s) blue may edit to fix the target | — | the file(s) behind `<target_cmd>` | | `<oracle_cmd>` | ground-truth verdict for the same input (frozen) | — | a reference checker / policy impl | | `<gate_cmd>` | functional tests that must stay green through a fix (exits 0) | — | the target's test command; else rely on `<holdout>` | | `<holdout>` | benign + clearly-correct inputs blue must not break | `<sandbox_root>/holdout.jsonl` | known-good inputs the oracle agrees on | | `<catalogue>` | shared failures file: red writes it, blue closes it, JSONL `{id,text,class,...}` | `<sandbox_root>/failures.jsonl` | — | | `<iter_strategy>` | `branches` (commit per fix → PR) or `snapshots` | `branches` | dirty/non-git tree → snapshots | | `<pr_branch>` | branch the fixes land on and the PR opens from | `purple-team/<tag>` | today's date as `<tag>` | | `<sandbox_root>` | where catalogues, snapshots, ledgers live | `./sandbox` | — | | `<cycle_budget>` | max find→fix→re-verify cycles | 4 | — | | `<find_budget>`, `<fix_budget>` | inner per-phase budgets passed to red / blue | 8 | — |
`<skill_dir>` is this skill's installed folder. The phases run the sibling skills' tools (`red-team/tools/harness.py`, `blue-team/tools/verify.py`); the role files name them.
## The loop Copy this checklist and tick items off each cycle. Cycles are numbered from 0; per-cycle artifacts go in `<sandbox_root>` with the cycle index in the name so nothing is overwritten: the find catalogue is `failures.cycle<N>.jsonl` (cycle 0 may use `<catalogue>` directly) and the re-verify result is `failures.cycle<N>_reverify.jsonl`. The **catalogue blue fixes in cycle N is the failures file from that cycle's find/re-verify pass** — never append back into one shared file, so each cycle's accounting is clean.
- [ ] **Cycle 0 — Find.** Run the **red-team** phase against the **frozen** target (spawn-or-degrade, `roles/red-find.md`), writing `failures.cycle0.jsonl`. Read back its distinct failure classes. - [ ] If the catalogue is empty on cycle 0, **stop** — the target is already dry; report clean, no PR. - [ ] **Fix.** Run the **blue-team** phase on this cycle's failures file (spawn-or-degrade, `roles/blue-fix.md`): it patches `<target_files>` one class per iteration under the gate + regression guard, committing kept fixes on `<pr_branch>`. Read back the classes it **closed** and any **residuals**. - [ ] **Re-verify.** Run a **fresh** red-team phase against the **patched** target into `failures.cycle<N>_reverify.jsonl`. This confirms the closed classes no longer reproduce and surfaces any **new** classes the fix introduced (e.g. an over-block). - [ ] Append one cycle row to the ledger. If the re-verify pass found new classes, they become the **next** cycle's catalogue (`failures.cycle<N+1>.jsonl`) — loop to **Find/Fix** for cycle N+1. Repeat **find→fix→re-verify** until a re-verify pass stays **dry** (no new classes) or `<cycle_budget>` is hit. - [ ] **Handoff.** Open the pull request with the full cycle history (see [Handoff](#handoff-the-pull-request)).
**Phase independence (why three separated phases).** The target is read-only ground truth for the duration of a red pass, so patches happen only *between* passes — mutating it mid-pass would break reproducibility and the class accounting. Spawn red and blue as **separate** subagents so neither grades its own work; the orchestrator only passes artifacts (the catalogue, the closed/residual summary) between them. Launch a phase's subagent and wait for its structured return before the next phase.
## Ledger `<sandbox_root>/cycle_ledger.tsv`, tab-separated, never commas in free text. Header `cycle found fixed residual regressions_introduced net_open`: ``` cycle found fixed residual regressions_introduced net_open 0 5 5 0 1 1 1 1 1 0 0 0 ``` All counts are **distinct classes**, not inner iterations: `found` = classes red surfaced this cycle; `fixed` = classes blue *closed* (a class blue attempted several times still counts once); `residual` = classes blue could not close; `regressions_introduced` = new classes the re-verify pass found that the fix caused; `net_open` = classes still open entering the next cycle (`residual + regressions_introduced`, the next cycle's catalogue size). Convergence is a re-verify pass with `net_open` = 0. Report the cycle at which the target went dry (or the best `net_open` reached).
## Constraints - **Authorized targets only.** This drives real attacks against the target; only run it on a system the user owns or is explicitly authorized to test (inherited from red-team). - **Keep the phases independent and the ground truth frozen.** Never let one phase edit the oracle, `<gate_cmd>` tests, `<holdout>`, or either tool; never patch the target inside a red pass. These keep the find/fix/re-verify accounting honest. - **Re-verify is a *fresh* attack, not a replay.** It must be free to find new classes (including ones the fix introduced), not just re-check the old list — concretely, at least half its candidates should be new payloads and it should try at least two attack angles not in the prior catalogue (this matters most in degrade mode, where the same context plays both sides). That is what makes the loop converge to dry rather than to "the original five are gone." - **One change per inner iteration** (handled by the sub-loops); the orchestrator changes nothing itself except moving artifacts between phases. - Stay inside the repo and `<sandbox_root>`; do not pause between phases to ask whether to continue — run until dry or `<cycle_budget>`.
## Handoff: the pull request The deliverable is one **pull request** for the whole hardening run — the communication interface to the target's owner, who keeps final approval. With the tree at blue's best state and the kept fixes already committed on `<pr_branch>`: - Open it with `gh pr create`; body = the cycle ledger (found → fixed → re-verified per cycle), one reproducible example per closed class, and any residuals still open. **Confirm once before opening** — it is outward-facing; never auto-push silently. - **Degrade, don't fail:** with no remote / no `gh`, leave commits on `<pr_branch>` and write `git format-patch` + `PR_BODY.md` into `<sandbox_root>`; in `snapshots` mode emit a unified diff + `PR_BODY.md`. Tell the user the one command to open the PR themselves.
## Roles - `roles/red-find.md` — runs the red-team phase against the target and returns the catalogue + classes. - `roles/blue-fix.md` — runs the blue-team phase on the catalogue and returns closed classes + residuals.
Both are **spawn-or-degrade**: spawn a real isolated subagent on Claude Code (the `Agent`/Task tool), else adopt the role inline. Each delegates to the sibling skill (`red-team` / `blue-team`) bound to the shared `loop.run.yaml`; if a sibling is not installed, ask the user to install it (`npx skills add gaasher/agent-loop-skills`) rather than re-implementing it here.
Source provenance
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for purple-team, ready for a manual X post.
purple-team: Use when the user wants to automatically harden a guardrail, classifier, content filter, prom... 163 stars https://www.openagentskill.com/skills/gaasher-purple-team?ref=x
Listing + install path for purple-team: https://www.openagentskill.com/skills/gaasher-purple-team?ref=x Install: npx skills add gaasher/Agent-Loop-Skills --skill purple-team
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to gaasher but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/gaasher-purple-team?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/gaasher-purple-team?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/gaasher-purple-team/audit)
[](https://www.openagentskill.com/skills/gaasher-purple-team?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)gaasher
@gaasher
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Code Review
Review a branch or diff against repository standards and the originating spec in two independent analysis passes.
168.6K StarsAppsmith
Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
40.8K StarsImplement
Implement work from an approved spec or ticket set, run focused and full tests, invoke code review, and commit the result to the current branch.
175.7K StarsVercel React Best Practices
React and Next.js performance guidance for writing, reviewing, and refactoring production UI code.
30.9K StarsPermission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness