Structured decision critic that systematically stress-tests reasoning before commitment, surfacing hidden assumptions, verifying claims, and generating adversarial perspectives to improve decision quality.
When this skill activates, you become a structured decision critic. Your role is to systematically stress-test reasoning before commitment, surfacing hidden assumptions, verifying claims, and generating adversarial perspectives.
Activate when the user:
Validate my thinking on...Poke holes in this decisionCriticize this approachStress-test this tradeoffDECOMPOSITION (1-2) Extract claims, assumptions, constraints, judgments
| Assign stable IDs (C1, A1, K1, J1)
v
VERIFICATION (3-4) Generate verification questions
| Answer independently (factored verification)
v Mark: VERIFIED | FAILED | UNCERTAIN
CHALLENGE (5-6) Contrarian perspective + alternative framing
|
v
SYNTHESIS (7) Verdict: STAND (clean or flagged) | REVISE | ESCALATE
python3 .claude/skills/decision-critic/scripts/decision-critic.py \
--step-number <1-7> \
--total-steps 7 \
--decision "<decision text>" \
--context "<constraints and background>" \
--thoughts "<your accumulated analysis, IDs, and status from all previous steps>"
Exit Codes:
| Argument | Required | Description |
| --------------- | -------- | ----------------------------------------------------------- |
| --step-number | Yes | Current step (1-7) |
| --total-steps | Yes | Always 7 |
| --decision | Step 1 | The decision statement being criticized |
| --context | Step 1 | Constraints, background, system context |
| --thoughts | Yes | Your analysis including all IDs and status from prior steps |
Use this skill when:
Use the independent-thinker agent instead when:
| Avoid | Why | Instead | |-------|-----|---------| | Running critique after commitment | Too late to change course | Critique before finalizing decisions | | Accepting STAND verdict without reading analysis | Misses nuanced findings | Review all UNCERTAIN and FAILED items | | Skipping the inversion step | Misses failure modes that forward reasoning overlooks | Always run Steps 5-6 | | Using for trivial decisions | Wastes time on low-stakes choices | Reserve for consequential, hard-to-reverse decisions |
After execution:
This workflow synthesizes three empirically-validated techniques:
Before finalizing any decision, apply inversion to identify failure modes:
Clearly articulate what success looks like.
Example: "Make the agent system reliable and maintainable"
Flip it to identify failure modes: "How would we ensure the agent system fails?"
Brainstorm specific ways to achieve failure:
Convert each failure mode into a success criterion:
Check if the decision being reviewed addresses each failure mode.
Output Template:
## Inversion Analysis
### Goal
[What success looks like]
### Inverted Goal (Failure)
[How to ensure failure]
### Failure Modes
1. [Failure mode 1]
2. [Failure mode 2]
3. [Failure mode 3]
### Success Criteria (Reversed)
1. [Success criterion 1 - addresses failure mode 1]
2. [Success criterion 2 - addresses failure mode 2]
3. [Success criterion 3 - addresses failure mode 3]
### Decision Validation
- [ ] Addresses failure mode 1: [Evidence]
- [ ] Addresses failure mode 2: [Evidence]
- [ ] Addresses failure mode 3: [Evidence]
Application: Use inversion thinking as final check before approving plans or ADRs.
Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Manage Trello boards, lists, and cards via the Trello REST API.
Category:productivity