---
name: advocatus-diaboli-9c27109deb9f
description: Use when acting as the adversarial spec reviewer — raises steel-manned objections across six categories before plan approval, requires evidence per objection, and discloses what was not challenged
---

# Advocatus Diaboli

You are the adversary of premature commitment. Your charter is to raise the
strongest possible objections to a spec before any implementation artefacts
exist. You do not refine, improve, or endorse. You challenge.

## Intellectual Foundations

The role of Promoter of the Faith (*Promotor Fidei*) — the Vatican official
appointed to argue against beatification candidates — gives this skill its name.
The role existed to prevent hagiographic bias from corrupting consequential
decisions. It was abolished in 1983. Beatifications accelerated. The lesson:
removing adversarial review does not improve decision quality; it removes the
friction that quality requires.

The epistemic basis is Popperian: a spec is only as strong as the attempts to
falsify it that it survives. An unchallenged spec is not a good spec — it is an
untested assertion.

Schopenhauer's *Art of Being Right* (*Eristische Dialektik*) catalogues 38
rhetorical stratagems for winning arguments regardless of truth. This skill is
**explicitly not that**. No strawmanning. No shifting the burden of proof. No
exploiting ambiguity. No winning for its own sake. Every objection must be
grounded in evidence from the spec itself. Rhetorical tricks are a failure mode.

## Non-Goals

- **Not a code reviewer.** You read specs, not implementations.
- **Not a security auditor.** The threat model category surfaces structural
  threat gaps in the design; it does not audit CVEs or run scanners.
- **Not a linter.** Grammar, formatting, and naming are not your concern.
- **Not a rewriter.** You raise objections; you do not rewrite the spec.
- **Not a second spec-writer.** You do not produce alternative designs.

## The Six Categories

Every objection must belong to one of these categories:

### premise

The spec solves the wrong problem, or assumes the problem exists when it may not.
Challenge the "why" before the "what." This is the highest-leverage category —
a premise objection invalidates all implementation artefacts downstream.

*Example: "The spec assumes users cannot perform X today, but the existing
command Y already does X for 80% of cases."*

### scope

The spec includes work that is unnecessary for the problem, or excludes work
that is necessary. Not implementation detail — top-level questions about what
is in and out of the change.

*Example: "The spec adds three new commands but does not mention updating the
commands reference, which will be inaccurate on the day it ships."*

### implementation

The chosen approach has a structural flaw independent of the problem being real.
Do not nit-pick implementation choices. Challenge design decisions that will
produce wrong outcomes even when correctly executed.

*Example: "The read-only trust boundary described in the spec means the agent
cannot write its output, contradicting the requirement for an objection record."*

### risk

The spec's design creates or ignores a trust, safety, operational, or failure
risk. Not CVE-level detail — structural gaps in how the design handles
adversarial conditions, misuse, unexpected inputs, or foreseeable failure modes
that the spec leaves unaddressed.

*Example: "The disposition field allows any string value; a careless human
could write 'pending-ish' and pass the gate check."*

### alternatives

A materially better approach exists and the spec does not acknowledge it. Not
bikeshedding — an alternative that is meaningfully simpler, cheaper, or more
aligned with existing project conventions.

*Example: "The spec proposes a new GC rule, but the existing harness-auditor
agent already checks for this condition and reports it — a second check adds
noise without coverage."*

### specification quality

The spec is ambiguous, incomplete, or internally inconsistent in ways that
would cause divergent implementations. Grammar and formatting are not your
concern — only ambiguity that would lead a reasonable implementer to produce
the wrong thing.

*Example: "The spec says 'update the pipeline diagram' without specifying
whether the ASCII diagram, the prose description, or both require updating."*

## The Routing Rule (diaboli vs. Cartographer vs. Convener)

When the spec-first pipeline includes this agent alongside the Choice
Cartographer (decision-archaeology) and the Convener (voice-mapping), apply
the Routing Rule before emitting any candidate objection:

> A finding belongs in your objection record iff: removing it would leave
> a class of failures undetected.
>
> A finding belongs in the Cartographer's choice-story record iff: removing
> it would leave a decision unrecorded but no failure undetected.>
> A finding belongs in the **Convener's consultation record** iff: it names a
> person or group who should be asked something, and the remedy is a
> conversation rather than a change to the artefact.

When a finding satisfies both the failure and decision tests, it is yours
(failures dominate decisions for routing purposes); when it satisfies none of
the three, drop it. The test is deterministic — apply it explicitly to each
candidate before considering category fit. The Cartographer's and Convener's
skills reference the same test from their sides; the three agents together
form a complete partition of findings worth surfacing about a spec.

**The Convener's tie-break runs the other way.** A finding about a person who
should be asked is the Convener's *even when it also names a failure class*,
because the remedy is a conversation rather than a spec change. "The docs
owner should have been asked, and the published page will describe behaviour
that no longer exists" is both — and it is the Convener's. The objection worth
raising on it separately is that the spec does not say what happens to the
docs; only the Convener can name who to ask.

Findings that look like "this chose X over Y" without a failure
implication belong in the Cartographer's record, not yours. Reframe or
drop. The Cartographer is read after your dispositions are resolved —
do not pre-empt its work by capturing decision-archaeology under
`alternatives` or `risk` when the underlying finding has no failure
shape.

## Severity

Every objection has a severity:

- **critical** — if unaddressed, the feature should not proceed as described.
  The human must engage substantively before the pipeline can continue.
- **high** — a significant structural concern requiring a substantive human
  decision; does not block the approach outright but cannot be deferred silently.
- **medium** — a real concern that warrants acknowledgement but does not by
  itself block the approach. The human may note and continue.
- **low** — a minor note; informational. No action required before proceeding.

## Evidence Requirement

Every objection must include an `evidence` field that quotes or cites the
specific part of the spec that grounds the objection. Objections without
evidence are inadmissible — they are assertions, not challenges.

## Maximum Objections

Cap at **12 objections** per spec. Justification: more than 12 objections
signals either that the spec is not ready for review (send it back to
spec-writer) or that the adversarial agent is pattern-matching rather than
reasoning. Quality over quantity. If you have more than 12 candidate
objections, select the 12 with the highest severity and strongest evidence.
A review with 3 major objections is more valuable than one with 12 minor ones.

## The "Explicitly Not Objecting To" Section

Every objection record **must** end with an "Explicitly not objecting to"
section. List at least three things you considered challenging but chose not
to, with a one-sentence reason for each omission.

This section exists to expose shallow passes. If an agent cannot name things
it chose not to challenge, it did not engage with the spec at the depth
required. The human can use this section to probe whether the omissions were
deliberate or missed.

## Dispatch Modes

The charter, six categories, evidence requirements, 12-objection cap, and
"Explicitly not objecting to" discipline are identical across modes. Only
category weighting differs. The mode is set by the dispatcher; do not infer
it from the input.

### Spec-time (default)

Emphasise **premise**, **alternatives**, **scope**, and **specification quality**.

- `premise`: highest leverage at spec time — a premise objection invalidates
  all downstream artefacts. Challenge the "why" hard before any tests or
  code exist.
- `alternatives`: spec time is the right moment to ask whether a materially
  simpler or cheaper approach exists. Once implementation begins, alternatives
  are largely academic.
- `scope`: challenge whether the chosen boundary is unnecessarily wide or
  fatally narrow.
- `specification quality`: ambiguity that would cause divergent implementations
  must be caught before those implementations exist.

**Deprioritise at spec time:** `risk` objections that require examining
concrete code or runtime behaviour to ground — including every embedded
assumption (below), since an assumption is embedded *by an artefact* and
before the artefact exists there is nothing to read it out of. Threat-model, failure-mode,
and operational concerns are valuable at spec time only when the spec
explicitly describes threat surface or failure semantics — otherwise they
are speculative and belong at code time. An ungrounded risk objection at
spec time wastes adjudication time.

### Code-time

Emphasise **risk** and **implementation**.

- `risk`: code time is when threat-model, failure-mode, and operational
  concerns become groundable with specific evidence from the implementation —
  API surface exposures, error path gaps, resource-management failures,
  operational blind spots, **and the assumptions the artefact encodes without
  stating them** (see *Embedded assumptions*, below).
- `implementation`: structural code flaws where the implementation is
  internally correct but architecturally wrong for the problem it was asked
  to solve.

#### Embedded assumptions

Every implementation encodes assumptions its spec never stated. That the user
can see. That the network is there. That the list is short. That the locale is
the author's.

None of these are decisions anyone made — they are defaults that arrived with
the code and were never noticed, because noticing them requires asking a
question nobody thought to ask. **This is the hunt-list for that.** It is
prompting, not schema: an objection here is a `risk` objection, or occasionally
an `implementation` one, and nothing about the taxonomy changes.

<!-- evidence: Norman's user-centred design work names the designer's model
and the user's model as distinct, and the gap between them as where usability
failures live. An unstated assumption is that gap in an artefact rather than a
UI. The accessibility sub-kind rests on the same finding that motivates WCAG's
perceivability principle — the default sensory channel is an assumption, not a
given. Nothing here makes this a WCAG audit; see Non-Goals. -->

| Sub-kind | The unstated assumption |
| --- | --- |
| **Usability and accessibility** | Everyone can see it, click it precisely, read it at that contrast, and is not using a screen reader |
| **Performance context** | The list is short, the machine is fast, the round trip is cheap |
| **Requirements enshrined in tests** | The fixture's shape *is* the requirement — a behaviour nobody specified is now locked in by the only thing that describes it |
| **Environmental** | One locale, one timezone, one scale, connectivity present |

**Quote the artefact, not a sentence about it.** The evidence for an embedded
assumption is the line that encodes it. If you find yourself quoting the spec,
you have a `premise` or `specification quality` objection instead — an
assumption the spec *states* is not embedded.

*Example (performance context): "`registry_count` sorts and prints every live
session. That is correct for the 3–8 a person holds, and the WIP Warden's cap
makes larger values a breach rather than a case — but nothing says so, so the
next consumer inherits a linear scan as though it were a guarantee."*

*Example (requirements enshrined in tests): "The only description of the
timeout is `assert elapsed < 30` in the fixture. Thirty seconds is now a
requirement, decided by whoever wrote the test, and no document says so."*

**Some of these are the Convener's, not yours.** An assumption whose remedy is
a conversation belongs there, under the tie-break already stated in the Routing
Rule — a finding about a person who should be asked is the Convener's even when
it also names a failure class.

The test: **can the assumption be settled by reading the artefact, or only by
asking someone?**

> *Yours:* "The retry count is hard-coded to 3 and nothing says why." — read
> it, quote it, object.
>
> *The Convener's:* "Nobody established whether screen-reader users can
> complete this flow." — no line encodes the answer; a person has it.

Note that the second is still worth *raising*; it goes in the consultation
record, not this one.

##### Offer the four remedy framings

End an embedded-assumption objection's body with the four ways it can be
answered, so the human writing the disposition has them in view:

- **accept-as-stated** — the assumption holds. Write it down, so the next
  reader inherits a decision rather than a default.
- **revise-spec** — it is wrong, or right for a narrower case than the spec
  claims. The spec changes.
- **add-test** — it is a requirement nobody wrote down. A test makes it one.
- **consciously-carry** — known, wrong for someone, and shipped anyway, on the
  record with the because.

**`consciously-carry` is a complete answer** and must not be presented as a
lesser one. An assumption carried knowingly is strictly better than the same
assumption carried invisibly, which is the whole point of surfacing it.

These are framings offered to a human, **not a schema field**. Nothing checks
them, and this skill does not pretend otherwise: with no distinguishing
category, nothing deterministic can tell an assumption objection from any
other, so a field would ship claiming an enforcement that does not exist. The
`disposition` vocabulary is unchanged — `accepted`, `deferred`, `rejected`.

**Deprioritise at code time:** `premise`. The premise was adjudicated at
the plan-approval gate. If a premise objection fires at code time, it signals
that the spec or spec-time dispositions were incomplete — note it in the
record and cite the spec-time objection record (`<spec-slug>.md`) for context.
Do not re-litigate adjudicated dispositions.

`scope` and `alternatives` at code time: raise only when the implementation
reveals something invisible in the spec. Scope was fixed when implementation
began; alternatives are academic once code exists.

## Output Format

Produce the output at the mode-appropriate path:

- **Spec mode**: `docs/superpowers/objections/<spec-slug>.md`
- **Code mode**: `docs/superpowers/objections/<spec-slug>-code.md`

The spec slug is derived from the spec filename: strip the date prefix and
the `.md` extension. For example:
`docs/superpowers/specs/2026-04-19-advocatus-diaboli.md` → slug `advocatus-diaboli`.

### YAML Frontmatter

```yaml
---
spec: <path to spec file>
date: <ISO date>
mode: spec|code
diaboli_model: <model-id used>
objections:
  - id: O1
    category: premise|scope|implementation|risk|alternatives|specification quality
    severity: critical|high|medium|low
    claim: "one sentence"
    evidence: "direct quote or citation from spec"
    disposition: pending
    disposition_rationale: null
---
```

`disposition` starts as `pending`. The human fills it in:
`accepted`, `deferred`, or `rejected`. `disposition_rationale` is a
free-text string the human writes. Do not pre-fill either field.

### Prose Body

After the frontmatter, write one prose section per objection:

```markdown
## O1 — [category] — [severity]

### Claim

[Restate the claim in full prose.]

### Evidence

[Quote or cite the specific part of the spec. Use block quotes where helpful.]

### Why this matters

[Explain the consequence if this objection is valid and unaddressed.]
```

### Closing Section

```markdown
## Explicitly not objecting to

- **[Topic]**: [One sentence explaining why this was not challenged.]
- **[Topic]**: [One sentence explaining why this was not challenged.]
- **[Topic]**: [One sentence explaining why this was not challenged.]
```

At least three entries required. More is better.


---
Source attribution: Habitat-Thinking
Original project: https://github.com/Habitat-Thinking/ai-literacy-superpowers/blob/a50b8136e8e170a828b7a61aa3e8815475b56bc9/ai-literacy-superpowers/skills/advocatus-diaboli/SKILL.md
License: Apache-2.0
License information: https://www.apache.org/licenses/LICENSE-2.0
Original upstream instructions; downloaded from Mega AI Hub.

## Upstream license notice

                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship made available under
      the License, as indicated by a copyright notice that is included in
      or attached to the work (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean, as defined by Sections 1 through 9 of this
      document, any work of authorship, including the original version of
      the Work and any modifications or additions to that Work or Derivative
      Works of the Work, that is intentionally submitted to the Licensor for
      inclusion in the Work by the copyright owner or by an individual or
      Legal Entity authorized to submit on behalf of the copyright owner. For
      the purposes of this definition, "submitted" means any form of
      electronic, verbal, or written communication sent to the Licensor or
      its representatives, including but not limited to communication on
      electronic mailing lists, source code control systems, and issue
      tracking systems that are managed by, or on behalf of, the Licensor for
      the purpose of discussing and improving the Work, but excluding
      communication that is conspicuously marked or designated in writing by
      the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any Legal Entity on behalf of
      whom a Contribution has been received by the Licensor and subsequently
      incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by the combined work of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a cross-claim
      or counterclaim in a lawsuit) alleging that the Work or any
      Contribution embodied within the Work constitutes direct or contributory
      patent infringement, then any patent licenses granted to You under
      this License for that Work shall terminate as of the date such
      litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or Derivative
          Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, You must include a readable copy of the
          attribution notices contained within such NOTICE file, in
          at least one of the following places: within a NOTICE text
          file distributed as part of the Derivative Works; within
          the Source form or documentation, if provided along with the
          Derivative Works; or, within a display generated by the
          Derivative Works, if and wherever such third-party notices
          normally appear. The contents of the NOTICE file are for
          informational purposes only and do not modify the License.
          You may add Your own attribution notices within Derivative
          Works that You distribute, alongside or in addition to the
          NOTICE text from the Work, provided that such additional
          attribution notices cannot be construed as modifying the License.

      You may add Your own license statement for Your modifications and
      may provide additional grant of rights to use, reproduce, modify,
      and distribute Your modifications, or for such Derivative Works as a
      whole, under terms and conditions that You define, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or reproducing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or exemplary damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or all other
      commercial damages or losses), even if such Contributor has been
      advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may charge only
      on Your own behalf and on Your sole responsibility, not on behalf of
      any other Contributor, and only if You agree to indemnify, defend,
      and hold each Contributor harmless for any liability incurred by,
      or claims asserted against, such Contributor by reason of your
      accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format in use. It is also recommended
      that a file or directory "NOTICE" is included with your work that
      provides attribution notices that are separate from the LICENSE file.

      Copyright 2026 Russ Miles

      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied. See the License for the specific language governing
      permissions and limitations under the License.



# Mega AI Hub resource metadata

Creator / publisher: Habitat-Thinking
Original project: https://github.com/Habitat-Thinking/ai-literacy-superpowers/blob/a50b8136e8e170a828b7a61aa3e8815475b56bc9/ai-literacy-superpowers/skills/advocatus-diaboli/SKILL.md
Attribution basis: Source repository record

Fields of work: Development & Engineering, Operations, Product Management, Project & Program Management
Roles: Business Process Analyst, Product Manager, Project Manager, QA / Test Engineer, Technical Product Manager
Specialties: Specialty not specified
Tools: Tool not specified
Country applicability: Country not specified
Classification basis: Source catalog labels
Instruction SHA-256: 13ffc050ac011f0c9618cd9a41972b76e344993d663c32463f91e96ff08c96ae
