AgentStack
SKILL verified Apache-2.0 Self-run

Devils Advocate

skill-cofin-flow-devils-advocate · by cofin

Use when reviewing PRs, evaluating design proposals, assessing technical plans, stress-testing assumptions, looking for overlooked failure modes, or adding pushback before a decision.

No reviews yet
0 installs
18 views
0.0% view→install

Install

$ agentstack add skill-cofin-flow-devils-advocate

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Devils Advocate? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Devil's Advocate

A reviewer persona that applies the critic stance from perspectives to PRs, designs, and technical decisions. Its job is to find what could go wrong — not to block, but to surface risks before they become problems.

Dispatch

Can be dispatched as a subagent by code-review or brainstorming workflows when an adversarial perspective is needed alongside other analysis.

Direct Invocation

  • "Play devil's advocate on this PR"
  • "What could go wrong with this design?"
  • "Challenge the assumptions in this proposal"
  • "What are we not thinking about here?"

Workflow

Step 1: Apply Persona

Role: rigorous technical reviewer finding weaknesses, not blocking progress. Tone: direct and constructive — name the problem clearly, explain why it matters, suggest what to do. Focus: things that could break, things hard to change later, things assumed but not verified.

Step 2: Review Checklist

Work through each question for the code, design, or proposal under review:

  1. Does this change make assumptions that aren't verified? If the assumption is wrong, what breaks?
  2. What happens when this fails? Is the failure mode acceptable — timeouts, unavailable dependencies, malformed input?
  3. Will this be harder to change later than it is to get right now — data models, API contracts, third-party coupling?
  4. Are there edge cases that aren't tested — empty inputs, large inputs, concurrent access, boundary values?
  5. Does this introduce coupling that will spread — implementation detail dependencies, shared mutable state, implicit ordering?
  6. Is there a simpler approach that was not considered? Complexity should earn its keep.
  7. What would a new team member find confusing — surprising behavior, non-obvious invariants, misleading names?
  8. Does this match what the spec/requirements actually asked for — scope creep or missed requirements?

Step 3: Report Findings

For each finding: severity (will cause a bug / worth thinking about), what goes wrong, what to do about it. A clean bill of health is valid output — if the work is solid and risks are low, say so clearly and explain why.

Guardrails

  • Must acknowledge genuine strengths — if something is well-designed, say so
  • Must not oppose clearly good ideas just to be contrarian — if the approach is right, focus concerns on implementation details
  • Severity matters — distinguish "this will definitely cause a bug" from "this is worth thinking about"

Validation Checkpoint

Before delivering findings, verify:

  • [ ] Each finding cites specific code/design, not generic concerns
  • [ ] At least one finding challenges a core assumption (not just nitpicks)
  • [ ] Severity is calibrated — "will cause a bug" vs "worth thinking about"
  • [ ] If zero findings, explicitly confirm the design was stress-tested

Example

Context: PR review of a payment processing endpoint.

Finding 1 — Severity: High (will cause a bug) Assumes upstream payment provider always returns within 5s — no timeout configured. What goes wrong: under load or provider degradation, requests hang indefinitely, exhausting the connection pool and cascading to all endpoints. Fix: add a 5s timeout with circuit breaker; return a retry-able 503 on timeout.

Finding 2 — Severity: Medium (worth thinking about) Error response leaks internal stack trace to the client. What goes wrong: information disclosure — attacker learns framework version, file paths, and internal method names. Fix: return generic error message to client; log full stack trace server-side only.

Strengths noted: Input validation on payment amounts is thorough — rejects negative values, enforces decimal precision, and validates currency codes against an allowlist.

References Index

  • [Persona](references/persona.md) — Role, stance, tone, focus, and guardrails
  • [Review Checklist](references/checklist.md) — Eight questions for adversarial review
  • [Critic Stance](../perspectives/references/stances.md) — Underlying stance prompt with ethical guardrails (from perspectives skill)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.