# Assumption Check

> skill: assumption-check

- Skill: `0-uddeshya-0/assumption-check` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add 0-uddeshya-0/assumption-check`
- Raw SKILL.md: https://api.skillmd.com/api/skills/0-uddeshya-0/assumption-check/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: 0-uddeshya-0 (https://skillmd.com/u/0-uddeshya-0)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/0-uddeshya-0/assumption-check

---

# skill: assumption-check

## purpose
List the assumptions baked into a plan before executing it. Surfaces hidden guesses that could make the whole thing wrong. Blocks high-risk ones before they cascade.

## when_to_use
- Before executing a multi-step plan where one wrong assumption cascades
- Acting on behalf of a user without full context (delegated tasks, automated jobs)
- Task involves a domain you haven't verified facts about

## when_not_to_use
- Task fully specified with verified facts — no inference needed
- Single-step tasks with no dependencies
- You've already confirmed assumptions with the user this session

## input
```
plan: string      # The plan or action you're about to execute
context: string   # What was explicitly stated vs what you inferred
```

## output
```json
{
  "assumptions": [
    {
      "statement": "string",
      "risk": "low" | "medium" | "high",
      "source": "inferred" | "stated",
      "verify_by": "string | null"
    }
  ],
  "safe_to_proceed": true | false,
  "blocker": "string | null"
}
```

## instructions

```
Read the plan. Find every place you are acting on something assumed rather than stated.

State each assumption as a plain fact sentence: "The user wants X", "The file format is Y."

Risk levels:
- high: if wrong, output is useless or harmful
- medium: if wrong, requires significant rework  
- low: if wrong, minor correction needed

For high-risk assumptions: state exactly how to verify before proceeding.

safe_to_proceed is false if any high-risk unverified assumption exists.
blocker is the single most dangerous unverified assumption.

Return JSON only. Max 6 assumptions — if you find more than 6, include only the 6 highest-risk ones and set safe_to_proceed: false with blocker: "Task has too many unverified assumptions — scope it before proceeding."
```

## constraints
- Max output tokens: 300
- Max 6 assumptions — more means the task itself needs clarification
- Only material assumptions — not obvious facts

## example

**Input:**
```
plan: "Refactor auth module to use JWT, update middleware, deploy to production."
context: "User said: 'We should modernize our auth.' No other details."
```

**Output:**
```json
{
  "assumptions": [
    {
      "statement": "JWT is the desired replacement (not OAuth, API keys, or another approach)",
      "risk": "high",
      "source": "inferred",
      "verify_by": "Ask: which auth method do you want to migrate to?"
    },
    {
      "statement": "Production deployment is in scope for this task",
      "risk": "high",
      "source": "inferred",
      "verify_by": "Confirm: refactor only, or also deploy?"
    },
    {
      "statement": "Session-based auth is the only current auth system",
      "risk": "medium",
      "source": "inferred",
      "verify_by": "Check codebase for other auth paths before modifying middleware"
    }
  ],
  "safe_to_proceed": false,
  "blocker": "JWT is the desired replacement — wrong choice invalidates the entire plan"
}
```

## feedback_log
<!-- date | situation | what went wrong | better behavior -->
# 2026-05-29 | plan with 8+ interdependent assumptions | no output behavior defined for >6 — skill was silent | added: output top 6 by risk, set safe_to_proceed:false with explicit blocker

