Source profileQuality 71/100

griffinwork40/agent-afk/src/bundled-plugins/awa-bundled/skills/devils-advocate/SKILL.md

devils-advocate

Adversarially critique a proposal by generating alternatives. Dispatches 3 parallel critics (pragmatist, paranoid, architect lenses) — each invents one alternative approach — then a synthesis step ranks all 4 options and recommends the top choice. Use when a plan, fix, scoping, decomposition, or named recommendation will drive decisions and you want structured alternative-generation before committing. Complements /shadow-verify — that skill re-derives factual claims; this one critiques whether t

Source repository stars
45
Declared platforms
0
Static risk flags
0
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

When a proposal — a plan, fix, decomposition, scoping, or named recommendation — will drive user decisions, file edits, or commits, do NOT act on it as-given. Run a devils-advocate critique wave before acting, and use the recommendation as input to the decision.

Best for

  • Use when a plan, fix, scoping, decomposition, or named recommendation will drive decisions and you want structured alternative-generation before committing.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/griffinwork40/agent-afk --skill "src/bundled-plugins/awa-bundled/skills/devils-advocate"
Safe inspection promptEditorial

Inspect the Agent Skill "devils-advocate" from https://github.com/griffinwork40/agent-afk/blob/803066d4f1e0cd57e983658dc670d647fcd893c9/src/bundled-plugins/awa-bundled/skills/devils-advocate/SKILL.md at commit 803066d4f1e0cd57e983658dc670d647fcd893c9. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Sub-agent contract

    When a proposal — a plan, fix, decomposition, scoping, or named recommendation — will drive user decisions, file edits, or commits, do NOT act on it as-given. Run a devils-advocate critique wave before acting, and use the recommendation as input to the decision.

    Extract the proposal (the approach being critiqued) and the goal (what the proposal is trying to accomplish). Both should be plain prose. Do NOT include the original proposer's reasoning or evidence — critics must inven…Dispatch 3 critics in parallel. Default subagenttype: "research-agent" (mechanically locked to Read/Grep/Glob/WebFetch/WebSearch — cannot Edit/Write/commit). Each critic receives ONLY the proposal + goal + ONE lens:pragmatist — cheapest-path. "What is the cheapest approach that solves the goal? Argue why the proposal may be over-engineered."
  2. 02

    Appendix: lens selection (non-binding)

    V1 ships three fixed lenses; domain-specific lens packs (software-perf, research-methodology, business-risk) are V2 work. When the proposal's domain is clear, the synthesis agent may weight dimensions accordingly — but the critic lenses themselves remain fixed.

    V1 ships three fixed lenses; domain-specific lens packs (software-perf, research-methodology, business-risk) are V2 work. When the proposal's domain is clear, the synthesis agent may weight dimensions accordingly — but…

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score71/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars45SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
griffinwork40/agent-afk
Skill path
src/bundled-plugins/awa-bundled/skills/devils-advocate/SKILL.md
Commit
803066d4f1e0cd57e983658dc670d647fcd893c9
License
Apache-2.0
Collected
2026-07-28
Default branch
main
View the original SKILL.md

Sub-agent contract

/contract

When a proposal — a plan, fix, decomposition, scoping, or named recommendation — will drive user decisions, file edits, or commits, do NOT act on it as-given. Run a devils-advocate critique wave before acting, and use the recommendation as input to the decision.

Wave 2 — Parallel critics (3 fixed lenses, independent):

  1. Extract the proposal (the approach being critiqued) and the goal (what the proposal is trying to accomplish). Both should be plain prose. Do NOT include the original proposer's reasoning or evidence — critics must invent alternatives without anchoring on the chosen path.
  2. Dispatch 3 critics in parallel. Default subagent_type: "research-agent" (mechanically locked to Read/Grep/Glob/WebFetch/WebSearch — cannot Edit/Write/commit). Each critic receives ONLY the proposal + goal + ONE lens:
    • pragmatist — cheapest-path. "What is the cheapest approach that solves the goal? Argue why the proposal may be over-engineered."
    • paranoid — safest-path. "What could go wrong with the proposal? Propose a safer alternative with narrower blast radius."
    • architect — right-level. "Is the proposal addressing the right abstraction level? Propose an alternative one level up (systemic fix) or down (targeted fix)."
  3. Each critic returns {lens, alternative, tradeoff, strength} where strength ∈ {weak, medium, strong} reflects the critic's confidence that its alternative beats the original.

Wave 3 — Synthesis (sequential, single agent):

  1. Dispatch one synthesis agent (same research-agent base). Input: original proposal + goal + all 3 critic outputs.
  2. Rank all 4 options (original + 3 alternatives) along: cost (implementation + ongoing), risk (blast radius + reversibility), scope-fit (how cleanly it solves the stated goal, no more), goal-fit (how well it addresses the underlying intent, not just the surface goal).
  3. Recommend ONE top choice with a one-paragraph rationale.
  4. Flag dissent = true when ≥2 critics returned strong alternatives disagreeing with the recommendation — signals the synthesizer is overruling well-argued dissent, so confidence is low. Include a dissent_note summarizing the strongest counter-argument.

Wave 3.5 — Composition-boundary check (fires on convergence): Critics that converge may all have evaluated the proposal in artifact-isolation — none read the boundaries where it composes with siblings. A convergent verdict reached in isolation can be confidently wrong (e.g., critics agree on a UI glyph asserting visual continuity, but none saw that parallel-branch flushes reorder it). When the synthesis recommendation is convergent — recommendation ≠ original with ≥2 critics having returned the same alternative — dispatch ONE context-injection verifier (subagent_type: "research-agent" — Read/Grep/Glob/WebFetch only, no Edit/commit) BEFORE surfacing:

  1. Its job is NOT to re-evaluate the proposal in isolation. It reads the 3 nearest composition boundaries — upstream caller, downstream consumer, and the render/event/state pipeline that interleaves the proposal's target with siblings.
  2. For each boundary: does the recommendation survive when the boundary varies? Check temporal interleaving (can flushes / parallel branches / sibling completions reorder it?), state threading (does it assume a point-of-use state upstream can break?), adjacency assumptions (does it presume render-tree / scrollback / call-graph adjacency that isn't load-bearing under recomposition?).
  3. Returns CONFIRMED only if the recommendation survives all three; otherwise OVERRIDE: <specific boundary condition that breaks it>. (These verdicts are internal to Wave 3.5 — distinct from shadow-verify's verifier verdict vocabulary.)

Until the verifier returns CONFIRMED, the convergent recommendation is a candidate, not a recommendation. On OVERRIDE, fold the named condition into the matrix and re-rank. Cap: if OVERRIDE recurs after 2 re-ranks, escalate the full composition failure to the user rather than cycling further — the matrix cannot resolve a boundary violation on its own.

Scope guard: skip when the proposal is purely local with no composition surface, or is anchored to an external referent that survives independently of the system. Does not fire when dissent = true — that path surfaces the matrix directly; adding a Wave 3.5 gate on already-uncertain output adds friction without signal. Fires once per convergent verdict, not per critic.

Merge + surface:

  • Recommendation = original → the proposal survived critique; proceed with it.
  • Recommendation ≠ original, dissent = false, ≥2 critics returned the same alternative → convergent path: run Wave 3.5, then surface the alternative with rationale (on OVERRIDE, re-rank first) before acting.
  • Recommendation ≠ original, dissent = false, only 1 critic backed the winner → no convergence to guard: surface the alternative with rationale directly (Wave 3.5 does not fire).
  • dissent = true → present the matrix to the user; do not act. Confidence is low.

When to invoke: Any time a proposal, plan, root-cause + fix, decomposition, or named recommendation will drive user decisions, file edits, commits, or external side-effects. Especially useful when the proposal "feels right" — that's when alternative-generation has the highest value.

Skip when:

  • Single-line edits or trivial fixes where alternative space is empty.
  • User explicitly named the chosen approach by name (critiquing a directly-requested action is friction, not signal).
  • An upstream orchestrator already produced comparative output on the same claim-space (/diagnose's hypothesis ranking does not need a second opinion on its hypotheses — though the final fix it produces can still benefit).

Appendix: lens selection (non-binding)

V1 ships three fixed lenses; domain-specific lens packs (software-perf, research-methodology, business-risk) are V2 work. When the proposal's domain is clear, the synthesis agent may weight dimensions accordingly — but the critic lenses themselves remain fixed.

LensTypical alternatives it surfaces
pragmatistnarrower scope, simpler implementation, reuse-over-build
paranoidsmaller blast radius, reversibility, guardrails, staged rollout
architectsystemic fix one level up, targeted fix one level down, different subsystem ownership