$npx -y skills add fusengine/agents --skill challengeAdversarial verification protocol for claims, plans, and root causes -- refute by default, fresh-context intake, sources-backed, bounded rounds. Runs SYSTEMATICALLY, by claim TYPE (not a stakes judgment), before reporting to the owner any of: a root-cause conclusion, a done/verif
| 1 | # Challenge Skill |
| 2 | |
| 3 | Reusable protocol behind the `challenger` agent. Also usable directly inside any expert agent's own eLicit step when a dedicated agent call is overkill -- the discipline is the same either way. |
| 4 | |
| 5 | ## The 7 Principles |
| 6 | |
| 7 | 1. **Refute by default** -- a claim is FALSE until proven otherwise. Never "are you sure?" -- always a concrete failure scenario + the untested hypothesis it exposes. |
| 8 | 2. **Fresh context mandatory** -- intake is the claim + its evidence ONLY, never the author's reasoning. Inheriting the author's angle reproduces the author's blind spot. |
| 9 | 3. **Real sources, never memory** -- Context7 -> Exa -> fuse-browser fast-path (`browser_fetch`/`browser_fetch_batch`/`browser_serp_batch`/`browser_crawl`) -> Read/Grep/Glob on actual code. Docs and code beat recollection. |
| 10 | 4. **Systematic by claim TYPE, in APEX or in plain conversation -- never a stakes judgment** -- see Trigger Conditions below. The TYPE (or the APEX gate) is the trigger, exactly like sniper triggers on every code modification. |
| 11 | 5. **Bounded** -- max 2 refutation rounds, then a mandatory verdict. No open-ended ping-pong. |
| 12 | 6. **Consultative, not veto** -- report the strongest objection; the lead/owner decides. Read-only, edits nothing. |
| 13 | 7. **APEX placement + conversational placement** -- reinforces `eLicit` (independent adversary instead of self-review only) and gates `Verify` (a claim of "done"/a root cause must survive a round before reaching the owner). Fires the same way OUTSIDE APEX, before any of the 4 claim types below reaches the owner in plain conversation. Does NOT touch `eXamine` -- that's sniper's code-correctness lane. |
| 14 | |
| 15 | ## Trigger Conditions (systematic by claim TYPE, in APEX or in plain conversation -- like sniper on every code modification) |
| 16 | |
| 17 | Runs automatically, no stakes judgment, before the lead reports to the owner any of these 4 TYPES -- whether inside an APEX task or in plain conversation: |
| 18 | - A root-cause conclusion ("it's broken because X" / "the reason is Y") |
| 19 | - A "done/verified/it works" claim |
| 20 | - An irreversible action about to run (commit / deploy / `rm` / push) |
| 21 | - A fix/explanation proposed a 2nd time |
| 22 | |
| 23 | Also runs automatically at, in APEX specifically: |
| 24 | - Every eLicit round (Step 4/5 boundary -- challenge the elicitation's own findings/fixes) |
| 25 | - Every Verify gate (before a "done/verified" claim reaches the owner) |
| 26 | |
| 27 | This is a scope by claim TYPE, not a reduced-coverage shortcut -- the 3 real failures that motivated this skill were all CONVERSATIONAL claims to the owner, none inside an APEX task with eLicit/Verify. A challenger that only fired on APEX gates would have missed all three. "Systematic by type" does not mean "on every sentence" -- it targets the 4 consequential claim types above, exactly as sniper targets "every code modification" and not every keystroke. |
| 28 | |
| 29 | ## Protocol Steps |
| 30 | |
| 31 | | Step | Action | |
| 32 | |------|--------| |
| 33 | | 0. Intake | Receive claim + evidence verbatim. Discard any leaked reasoning/narrative before starting. | |
| 34 | | 1. Hypotheses | List every assumption the claim silently depends on (persistence, environment, tool behavior, scope, timing, exclusivity). | |
| 35 | | 2. Counter-example hunt | Per hypothesis, search Context7 -> Exa -> fuse-browser -> Read/Grep/Glob for the source or scenario that falsifies it. | |
| 36 | | 3. Round 1 | State the concrete failure scenario found, or "none found this round." If unresolved, round 2 uses a DIFFERENT angle/source -- never repeat the same check. | |
| 37 | | 4. Round 2 + verdict | Deepen once more, then ALWAYS produce a verdict. Never continue past round 2. | |
| 38 | |
| 39 | ## Output Format (mandatory) |
| 40 | |
| 41 | ``` |
| 42 | VERDICT: CONFIRMED | REFUTED | UNCERTAIN |
| 43 | Claim challenged: <verbatim claim> |
| 44 | Failure scenario (concrete): <exact breaking input/condition, or "none found"> |
| 45 | Untested hypotheses: [...] |
| 46 | Sources checked: [Context7: ..., Exa: ..., fuse-browser: ..., code read: <file:line>] |
| 47 | What remains to verify (if UNCERTAIN): <the specific check that resolves it> |
| 48 | Recommendation: <escalate to owner / safe to proceed / block until re-verified> |
| 49 | ``` |
| 50 | |
| 51 | ## Integration with APEX |
| 52 | |
| 53 | ``` |
| 54 | Analyze -> Plan -> Execute -> eLicit [+ CHALLENGE: independent adversary] -> [VERIFY gate: claim survives challenge] -> eXamine (sniper, code only) |
| 55 | ``` |
| 56 | |
| 57 | - **eLicit**: the self-review pass gets a second, independent adversarial pass using this protocol -- an agent challenging its own clai |