All skills
Skillintermediate

Assumption Classification

> Reference for: Common Ground > Load when: Classifying assumptions, determining type or tier

Claude Code Knowledge Pack7/10/2026

Overview

Assumption Classification

Reference for: Common Ground Load when: Classifying assumptions, determining type or tier


Assumption Types

Types indicate how an assumption was derived. Types are immutable once set (audit trail).

stated

Direct user statements captured from conversation.

  • Evidence: Explicit quote from user
  • Confidence: High
  • Markers: User said, user requested, user specified
  • Example: "Use TypeScript for all new code" - user explicitly stated this

inferred

Logical conclusions derived from code patterns, configuration, or context.

  • Evidence: Code analysis, config files, project structure
  • Confidence: Medium-High
  • Markers: Config shows, code uses, pattern observed
  • Example: "Project uses ESLint with Airbnb config" - inferred from .eslintrc.js

assumed

Best-practice defaults applied without explicit confirmation.

  • Evidence: Industry standards, common patterns
  • Confidence: Medium
  • Markers: Best practice, common convention, typically
  • Example: "Tests should have >80% coverage" - assumed based on industry standard

uncertain

Gaps or ambiguities requiring clarification before proceeding.

  • Evidence: None, conflicting, or incomplete
  • Confidence: Low
  • Markers: Unknown, unclear, conflicting signals
  • Example: "Legacy browser support required?" - no browserslist found, unclear requirement

Assumption Tiers

Tiers indicate confidence level and how Claude should act on assumptions. Users can change tiers freely.

ESTABLISHED (High Confidence)

User-validated facts that can be treated as premises.

  • Action: Act confidently without re-asking
  • When to use:
    • User explicitly validated the assumption
    • Verified through direct observation
    • Documented in project configuration
  • Example: "TypeScript strict mode enabled" validated by user AND tsconfig.json

WORKING (Medium Confidence)

Reasonable inferences that should be used but surfaced if contradicted.

  • Action: Use as basis for work, but flag if contradicted
  • When to use:
    • Inferred from code/config patterns
    • User confirmed informally ("yeah, that's right")
    • No contradicting evidence found
  • Example: "No class components" - no classes found in codebase

OPEN (Low Confidence)

Unvalidated assumptions requiring user input before acting.

  • Action: Ask before making decisions based on this
  • When to use:
    • Uncertain type assumptions
    • Conflicting signals observed
    • High-impact assumption without validation
  • Example: "SSR required?" - could be SPA or SSR, architecture depends on answer

Tier Transitions

FromToTrigger
OPENWORKINGUser confirms informally in conversation
WORKINGESTABLISHEDUser explicitly validates ("yes, that's correct")
ESTABLISHEDWORKINGUser says "usually but..." or exception noted
WORKINGOPENContradiction found in code/config
AnyArchivedSuperseded by new information

Classification Process

When identifying assumptions, follow this process:

Step 1: Identify Source

SourceTypical TypeTypical Tier
User statementstatedESTABLISHED
Config fileinferredWORKING
Code patterninferredWORKING
ConventionassumedWORKING
Unknown/gapuncertainOPEN

Step 2: Assess Evidence Strength

EvidenceTier Adjustment
Explicit user confirmation-> ESTABLISHED
Multiple corroborating sources-> WORKING
Single source, no contradictions-> WORKING
No evidence or conflicting-> OPEN

Step 3: Consider Impact

High-impact assumptions (architecture, security, data handling) should start at OPEN unless strongly evidenced.


Classification Examples

Architecture & Tech Stack

AssumptionTypeTierReasoning
"Uses TypeScript"inferredWORKINGtsconfig.json present
"React 18 with hooks"inferredWORKINGpackage.json shows react@18
"No server-side rendering"inferredOPENHigh impact, needs validation
"Monorepo structure"inferredWORKINGMultiple packages/ dirs

Coding Standards

AssumptionTypeTierReasoning
"ESLint Airbnb config"inferredWORKING.eslintrc extends airbnb
"Prettier for formatting"inferredWORKING.prettierrc present
"2-space indentation"inferredESTABLISHEDConsistent across all files
"Prefer named exports"assumedWORKINGConvention, not enforced

Testing

AssumptionTypeTierReasoning
"Jest for unit tests"inferredWORKINGjest.config.js present
"80% coverage target"assumedOPENNo config found, assumed
"Integration tests required"uncertainOPENUnknown requirement

User Preferences

AssumptionTypeTierReasoning
"Prefers verbose explanations"statedESTABLISHEDUser said "explain thoroughly"
"Wants minimal changes"inferredWORKINGUser often requests targeted fixes
"Likes TypeScript annotations"assumedWORKINGConvention, not stated

User-Added Assumptions

When users add new assumptions via "Other", they specify both tier and type:

Format: {assumption text} [tier] [type]

Examples:

  • "Must work offline [ESTABLISHED] [stated]" - user explicitly stating a requirement
  • "Prefer functional style [WORKING] [stated]" - user preference

If type not specified, default to [stated] since user is directly adding it. If tier not specified, default to WORKING.