/adversarial-gate
JP's signature red-team pass — "how would I break this?" Argue against your own approach before proceeding. Trigger on any high-stakes decision, architecture choice, or before marking work complete.
$ npx -y skills add jpantsjoha/ai-native-developer-experience --skill adversarial-gate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/adversarial-gate
Context preview
The summary Claude sees to decide when to auto-load this skill.
JP's signature red-team pass — "how would I break this?" Argue against your own approach before proceeding. Trigger on any high-stakes decision, architecture choice, or before marking work complete.
SKILL.md
adversarial-gate.SKILL.mdname: adversarial-gate
description: JP's signature red-team pass — "how would I break this?" Argue against your own approach before proceeding. Trigger on any high-stakes decision, architecture choice, or before marking work complete.
Adversarial Gate
> **Coined by Jaroslav Pantsjoha (#HarnessEngineering).** The Adversarial Gate is the practice of forcing an agent — or a human — to argue against their own design before proceeding. It pre-empts bad reasoning before bad output exists.
The gate has one question: **"How would I break this?"**
Answer it honestly. If you cannot name at least two plausible failure modes, you do not understand the system well enough to ship it.
When to use
- Before finalising any architecture or design decision
- Before a deployment or release
- When an agent is about to take an irreversible action
- When a design looks clean and elegant (danger signal — simple-looking systems hide the hard failure modes)
- When the team is under time pressure and "just shipping it" feels compelling
Procedure
1. **State the proposal clearly** — in one or two sentences, what is the approach being validated? 2. **Run the adversarial pass** — argue against it. Ask:
- What is the single most likely way this fails in production?
- What happens under load / at scale / with bad input?
- What is the blast radius if this fails? Is it recoverable?
- What assumption does this design make that could be wrong?
- What does the monitoring not cover that would let this fail silently?
3. **Name at least two concrete failure modes** — not "something could go wrong" but specific, nameable failures. 4. **Check each failure mode has a mitigation or an accepted risk owner** — unmitigated = not shippable. 5. **Document the outcome** — pass (risks named and owned) or fail (proceed to redesign). Attach to the ADR or PR.
Outputs
- Adversarial Gate verdict: PASS / FAIL
- Named failure modes with mitigations or risk-owner sign-off
- Optional: a short paragraph appended to the ADR or PR description summarising the gate result
Guardrails
- **One argument is not enough.** A single failure mode is the one you were already thinking about. The Adversarial Gate is looking for the one you were not.
- **"We have tests" is not a mitigation.** Tests cover known paths. The gate is looking for unknown paths.
- **Time pressure does not suspend the gate.** Pressure is when you need it most.
- **The gate is not pessimism.** It is the fastest route to confidence — because you have already stress-tested the design yourself.
Anti-rationalization table
| Excuse the agent makes | Counter | |---|---| | "This is a low-risk change" | All production incidents started as low-risk changes. Name the failure mode or accept you cannot assess risk. | | "We can fix it after if something breaks" | Blast radius unknown = not low risk. Run the gate. | | "The tests cover this" | Tests cover happy paths. The gate looks for the paths tests miss. | | "We've done this before" | Prior success is not a guarantee. Conditions change. Run the gate. | | "The deadline is today" | A production incident will cost more time than the gate. Run the gate. | | "I'm confident in this design" | Confidence is the leading indicator of skipped gates. Run it anyway. |
Reference
This pattern converges with “doubt-driven development” in Addy Osmani's [`agent-skills`](https://github.com/addyosmani/agent-skills). The **Adversarial Gate** name and “how would I break this?” framing are JP's #HarnessEngineering contribution. The anti-rationalisation table format was adopted after reviewing that MIT-licensed project; this repository does not claim the table format originated here.
Read more
name: adversarial-gate description: JP's signature red-team pass — "how would I break this?" Argue against your own approach before proceeding. Trigger on any high-stakes decision, architecture choice, or before marking work complete.
Adversarial Gate
> **Coined by Jaroslav Pantsjoha (#HarnessEngineering).** The Adversarial Gate is the practice of forcing an agent — or a human — to argue against their own design before proceeding. It pre-empts bad reasoning before bad output exists.
The gate has one question: **"How would I break this?"**
Answer it honestly. If you cannot name at least two plausible failure modes, you do not understand the system well enough to ship it.
When to use
- Before finalising any architecture or design decision
- Before a deployment or release
- When an agent is about to take an irreversible action
- When a design looks clean and elegant (danger signal — simple-looking systems hide the hard failure modes)
- When the team is under time pressure and "just shipping it" feels compelling
Procedure
1. **State the proposal clearly** — in one or two sentences, what is the approach being validated? 2. **Run the adversarial pass** — argue against it. Ask:
- What is the single most likely way this fails in production?
- What happens under load / at scale / with bad input?
- What is the blast radius if this fails? Is it recoverable?
- What assumption does this design make that could be wrong?
- What does the monitoring not cover that would let this fail silently?
3. **Name at least two concrete failure modes** — not "something could go wrong" but specific, nameable failures. 4. **Check each failure mode has a mitigation or an accepted risk owner** — unmitigated = not shippable. 5. **Document the outcome** — pass (risks named and owned) or fail (proceed to redesign). Attach to the ADR or PR.
Outputs
- Adversarial Gate verdict: PASS / FAIL
- Named failure modes with mitigations or risk-owner sign-off
- Optional: a short paragraph appended to the ADR or PR description summarising the gate result
Guardrails
- **One argument is not enough.** A single failure mode is the one you were already thinking about. The Adversarial Gate is looking for the one you were not.
- **"We have tests" is not a mitigation.** Tests cover known paths. The gate is looking for unknown paths.
- **Time pressure does not suspend the gate.** Pressure is when you need it most.
- **The gate is not pessimism.** It is the fastest route to confidence — because you have already stress-tested the design yourself.
Anti-rationalization table
| Excuse the agent makes | Counter | |---|---| | "This is a low-risk change" | All production incidents started as low-risk changes. Name the failure mode or accept you cannot assess risk. | | "We can fix it after if something breaks" | Blast radius unknown = not low risk. Run the gate. | | "The tests cover this" | Tests cover happy paths. The gate looks for the paths tests miss. | | "We've done this before" | Prior success is not a guarantee. Conditions change. Run the gate. | | "The deadline is today" | A production incident will cost more time than the gate. Run the gate. | | "I'm confident in this design" | Confidence is the leading indicator of skipped gates. Run it anyway. |
Reference
This pattern converges with “doubt-driven development” in Addy Osmani's [`agent-skills`](https://github.com/addyosmani/agent-skills). The **Adversarial Gate** name and “how would I break this?” framing are JP's #HarnessEngineering contribution. The anti-rationalisation table format was adopted after reviewing that MIT-licensed project; this repository does not claim the table format originated here.
A team-project AI harness bootstrap that gives humans and agents a shared operating contract from day one, moving AI leverage from an individual “IC superhero” advantage to a repeatable team capability on an equal playing field.
Other skills on join-the-team.
- /adk-expert
Google ADK (Agent Development Kit) orchestration patterns — boundaries, agent composition, and tool seams. Trigger when designing or reviewing multi-agent systems built on ADK. Authoritative source: adk.dev.
Open skill - /alibaba-expert
Alibaba Cloud expert guardrails — RAM least-privilege, data boundaries, residency (mainland/international split), cost, and official-source validation. Trigger when designing or reviewing any Alibaba Cloud workload, especially agents or LLMs (Model Studio/Bailian, Qwen,
Open skill - /aws-expert
AWS expert guardrails — IAM least-privilege, data boundaries, cost controls, residency, and official-source validation. Trigger when designing or reviewing any AWS workload, especially agents, LLMs (Bedrock), or multi-account systems.
Open skill - /azure-expert
Azure expert guardrails — Entra ID least-privilege, policy-first governance, data boundaries, cost, residency, and official-source validation. Trigger when designing or reviewing any Azure workload, especially agents, LLMs (Foundry/OpenAI), or landing-zone systems.
Open skill - /cost-guardrail
LLM and cloud cost awareness — model tiering, token budgets, right-sizing, and when a cheaper model suffices. Trigger before finalising any architecture that calls LLMs, before scaling a workload, or when a cost estimate is needed.
Open skill - /delivery-orchestrator
Decompose an epic into atomic parallelizable tasks and route each task to the right skill. Use this as a meta-router when you have more than one skill available and need to decide which applies. Trigger at the start of any multi-track epic or when the skill count in your harness
Open skill

