Inferensys

Prompt

Assumption Inventory Generation Prompt Template

A practical prompt playbook for using Assumption Inventory Generation Prompt Template in production AI workflows.
Operations team reviewing AI workflow automation on laptop, workflow builder visible, casual office setup.
PROMPT PLAYBOOK

When to Use This Prompt

Defines the exact job-to-be-done for the Assumption Inventory Generation prompt, the ideal user, required context, and clear boundaries for when it should not be used.

This prompt is a planning pre-processor for autonomous and semi-autonomous agent systems. Its job is to extract every implicit and explicit assumption from a goal statement and its surrounding context before any execution step is taken. The output is a structured inventory of assumptions, each with a unique ID, category, and initial confidence estimate. Use this prompt when an agent receives a new objective and you need to surface what the system is taking for granted before it builds a plan. The ideal user is an AI engineer or agent architect building a planning module who needs to prevent confident but wrong execution caused by unstated assumptions.

This is not a plan generation prompt. It does not sequence tasks, assign tools, or produce execution steps. It belongs immediately after goal ingestion and before any decomposition or tool selection. If your agent pipeline already has a goal clarification step, insert this prompt between clarification and plan generation. Do not use this prompt when the goal is trivial, fully deterministic, or when the cost of assumption failure is negligible. Do not use it as a substitute for a formal risk assessment or compliance review in regulated domains—those require human-in-the-loop workflows and evidence grounding beyond what this prompt provides.

Before wiring this into production, define what constitutes a valid assumption inventory for your domain. A good output should surface assumptions about tool availability, data freshness, user intent, environmental state, and permission boundaries. If the model produces an inventory with fewer than three assumptions for a non-trivial goal, treat that as a likely failure mode indicating the prompt needs more context or stronger instructions. Pair this prompt with the Assumption-to-Evidence Mapping Prompt Template to trace each assumption to supporting evidence, and with the Pre-Flight Assumption Check Prompt Template to validate assumptions before execution begins.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Assumption Inventory prompt delivers value and where it introduces risk. Use this to decide whether to embed it in your planning pre-processor or skip it.

01

Good Fit: Complex Multi-Step Goals

Use when: the goal requires an agent to execute 5+ steps with tool calls, state changes, or external data dependencies. Why: unstated assumptions about tool availability, data freshness, or step ordering are the primary cause of silent failures. The inventory surfaces these before execution begins.

02

Good Fit: High-Cost or Irreversible Workflows

Use when: a failed plan wastes significant tokens, money, or causes side effects that cannot be rolled back. Guardrail: run the assumption inventory before any plan execution. Flag assumptions with confidence below 0.7 for human review before proceeding.

03

Bad Fit: Single-Step Lookups

Avoid when: the task is a single retrieval, classification, or generation with no branching or tool calls. Why: the inventory adds latency and token cost without reducing risk. A simple confidence score on the output is sufficient.

04

Required Input: Structured Goal and Context

What to watch: the prompt needs a clear goal statement and available context (tool list, data schemas, user constraints). Guardrail: if the goal is vague, run a Goal Clarification prompt first. Garbage assumptions come from garbage goals. Validate that at least a goal and one context source are present before invoking.

05

Operational Risk: Assumption Explosion

What to watch: the model generates 30+ low-value assumptions that dilute the inventory and waste review time. Guardrail: set a hard cap of 15 assumptions in the output schema. Instruct the model to prioritize assumptions that, if wrong, would change the plan. Deduplicate before storage.

06

Operational Risk: Stale Assumption Drift

What to watch: assumptions validated at plan start become false during long-running execution (e.g., file permissions change, API rate limits hit). Guardrail: pair this prompt with an Assumption Drift Monitoring check at each checkpoint. Do not treat the initial inventory as static truth for plans exceeding 10 minutes of wall-clock time.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A single-turn prompt that extracts all implicit and explicit assumptions from a goal statement and context, producing a structured JSON inventory with IDs, categories, and initial confidence estimates.

This prompt is designed as a pre-processing step for agent planning workflows. Before an agent builds an execution plan, it should surface every assumption embedded in the goal and available context. Unstated assumptions are the primary source of confident but wrong execution, so this inventory becomes the foundation for downstream validation, conflict detection, and evidence mapping. The prompt expects a goal statement and optional context, and it returns a structured inventory that other prompts in the Uncertainty Handling and Assumption Tracking group can consume directly.

text
You are an assumption extraction specialist. Your job is to read a goal statement and available context, then produce a complete inventory of every assumption—both explicit and implicit—that would need to hold true for the goal to be achieved successfully.

## INPUT

**Goal Statement:**
[GOAL_STATEMENT]

**Available Context:**
[CONTEXT]

## INSTRUCTIONS

1. Extract every assumption required for the goal to succeed. Include assumptions about:
   - **Factual state:** What is true about the world, system, data, or environment right now.
   - **Stability:** What will remain true throughout execution.
   - **Causal relationships:** What actions will produce what outcomes.
   - **Tool and capability availability:** What tools, APIs, permissions, or access will be available.
   - **User intent and preferences:** What the user actually wants, prioritizes, or considers acceptable.
   - **Constraints and boundaries:** What limits, rules, or policies apply.
   - **Dependencies:** What external systems, people, or processes will behave as expected.
   - **Missing information:** What is not stated but would change the plan if different.

2. For each assumption, assign:
   - A unique **assumption_id** using the format `ASM-XXX` where XXX is a zero-padded number starting at 001.
   - A **category** from the list above.
   - A **confidence** score between 0.0 and 1.0 reflecting how likely the assumption is to be true based on available evidence (1.0 = explicitly confirmed, 0.5 = plausible but unverified, 0.0 = pure guess).
   - A **rationale** explaining why this assumption matters and what evidence supports or contradicts it.
   - A **risk_if_wrong** statement describing what breaks if this assumption is false.

3. Be exhaustive. Prefer over-extraction to under-extraction. Flag assumptions that seem obvious—those are the ones that cause the most damage when wrong.

4. If the context contains contradictions or ambiguous statements, extract competing assumptions and note the conflict.

## OUTPUT SCHEMA

Return a single JSON object with this structure:

```json
{
  "goal_summary": "A one-sentence restatement of the goal as understood.",
  "assumptions": [
    {
      "assumption_id": "ASM-001",
      "category": "factual_state | stability | causal_relationship | tool_capability | user_intent | constraint | dependency | missing_information",
      "statement": "The assumption stated as a clear, falsifiable claim.",
      "confidence": 0.0,
      "rationale": "Why this assumption matters and what evidence supports or contradicts it.",
      "risk_if_wrong": "What breaks in the plan if this assumption is false.",
      "is_explicit": true,
      "source": "Where in the goal or context this assumption originates, or 'implicit' if unstated."
    }
  ],
  "conflicts": [
    {
      "assumption_ids": ["ASM-XXX", "ASM-YYY"],
      "description": "Description of the contradiction between these assumptions."
    }
  ],
  "critical_gaps": [
    "A question that must be answered before execution can proceed safely."
  ]
}

CONSTRAINTS

  • Do not invent facts not present in the goal or context.
  • Do not skip assumptions because they seem obvious.
  • If confidence is below 0.3, mark the assumption as requiring verification before execution.
  • If the goal statement is ambiguous, extract assumptions for each plausible interpretation and note the ambiguity in critical_gaps.
  • Return ONLY valid JSON. No markdown fences, no commentary outside the JSON object.

To adapt this prompt for your system, replace [GOAL_STATEMENT] with the user's objective or task description, and [CONTEXT] with any available supporting information such as tool descriptions, environment state, user preferences, or prior conversation history. If no context is available, pass an empty string or a note like 'No additional context provided.' The output schema is designed to be machine-readable by downstream validation prompts such as the Pre-Flight Assumption Check or Assumption-to-Evidence Mapping templates. For high-risk domains where missed assumptions could cause irreversible damage, add a [RISK_LEVEL] parameter that adjusts the confidence threshold for flagging assumptions as requiring verification, and route low-confidence assumptions to a human reviewer before plan execution begins.

IMPLEMENTATION TABLE

Prompt Variables

Required inputs for the Assumption Inventory Generation prompt. Each placeholder must be populated before the prompt is assembled and sent. Validation checks should run in the application layer before model invocation.

PlaceholderPurposeExampleValidation Notes

[GOAL_STATEMENT]

The user's stated objective or task description to analyze for assumptions

Deploy the new payment service to production by Friday

Required. Must be non-empty string. Reject if only whitespace or under 10 characters. Log warning if over 2000 characters without explicit truncation approval.

[AVAILABLE_CONTEXT]

All known facts, documents, system states, and prior decisions relevant to the goal

Current deployment pipeline status: staging tests passed. Prod access requires CAB approval. Team on-call rotation: Alice, Bob.

Required. Can be empty string if no context exists, but must be explicitly set to empty rather than omitted. Null is not allowed. Validate that context is not stale by checking timestamp metadata.

[TOOL_CATALOG]

List of available tools, APIs, and capabilities the agent can use to execute the goal

deploy_service, check_deployment_status, notify_oncall, request_cab_approval, rollback_service

Required. Must be a valid JSON array of tool names with descriptions. Minimum one tool. Validate each tool exists in the registered tool registry. Reject unknown tool names.

[ASSUMPTION_CATEGORIES]

Taxonomy of assumption types to guide extraction and classification

["environment", "dependency", "permission", "timing", "data_quality", "human_availability"]

Optional. If provided, must be a valid JSON array of strings. If omitted, the prompt uses a default taxonomy. Validate no duplicate categories. Each category should be a lowercase snake_case identifier.

[CONFIDENCE_SCALE]

Defines the confidence scoring range and thresholds for initial estimates

{"range": [0.0, 1.0], "thresholds": {"high": 0.8, "medium": 0.5, "low": 0.2}}

Required. Must be a valid JSON object with range array of two floats and thresholds object. Validate that thresholds are within range and high > medium > low. Reject if thresholds overlap or are inverted.

[OUTPUT_SCHEMA]

Expected structure for the assumption inventory output

{"assumptions": [{"id": "string", "statement": "string", "category": "string", "confidence": "float", "evidence_sources": ["string"], "is_explicit": "boolean"}]}

Required. Must be a valid JSON Schema or example structure. Validate that required fields include id, statement, category, and confidence at minimum. Schema check before prompt assembly.

[MAX_ASSUMPTIONS]

Upper bound on the number of assumptions to extract to prevent unbounded output

50

Optional. If provided, must be a positive integer. Defaults to 30 if omitted. Validate range 5-100. Log warning if the goal complexity suggests more assumptions may exist but were truncated.

[EVIDENCE_REQUIREMENT_LEVEL]

Specifies whether assumptions require explicit evidence citations or can be stated without sources

require_citation

Required. Must be one of: require_citation, prefer_citation, citation_optional. If require_citation, validate that every output assumption has a non-empty evidence_sources array in post-processing.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Assumption Inventory prompt into a planning pre-processor with validation, retries, and logging.

The Assumption Inventory prompt is designed as a pre-processor in an agent planning pipeline. It should execute before any plan generation or task decomposition step. The typical wiring pattern is: receive a user goal and available context → call this prompt to extract assumptions → validate the output against the expected schema → feed the structured assumption inventory into downstream planning prompts. This prompt is stateless and idempotent for the same inputs, so caching the output per (goal_hash, context_hash) is a safe cost optimization when the context hasn't changed.

Schema validation is mandatory before passing the output downstream. The expected output is a JSON object with an assumptions array where each entry must contain assumption_id (string), category (enum: factual, causal, temporal, resource, permission, user_intent, environmental, definitional), statement (string), source (enum: explicit, implicit, inferred), confidence (float 0.0–1.0), and depends_on (array of assumption_id strings). Implement a post-processing validator that rejects malformed outputs, missing required fields, duplicate IDs, self-referential dependencies, and confidence values outside range. On validation failure, retry once with the validation error message appended to the prompt as a correction hint. If the retry also fails, log the failure, surface the partial output with a warning flag, and route to a human review queue rather than silently proceeding with broken assumptions.

Model choice and latency budget matter here. This prompt benefits from models with strong reasoning and structured output discipline. For production, prefer a model that supports strict JSON mode or structured output constraints (e.g., GPT-4o with response_format, Claude 3.5 Sonnet with tool-use-shaped output). Set a timeout of 10–15 seconds for the assumption extraction call. If the goal statement is long or the context is dense, consider chunking the context and running the prompt once per chunk, then merging and deduplicating assumption inventories in a second pass. Log every assumption inventory with the input goal hash, model version, timestamp, and validation status. This audit trail is essential for debugging downstream planning failures—when a plan goes wrong, the first question is always 'what assumptions were we operating under?'

Tool integration and RAG are not required for the core prompt, but a production harness should connect the output to an assumption store or vector database. After validation, write each assumption to a persistent store keyed by session or plan ID. Downstream prompts (Pre-Flight Assumption Check, Assumption Drift Monitoring, Evidence Gap Analysis) query this store. For high-risk domains, add a human-in-the-loop gate: if any assumption has confidence below 0.6 and category is permission or user_intent, pause the pipeline and surface those assumptions for human confirmation before plan generation proceeds. Avoid the temptation to skip this gate—confident but wrong execution almost always traces back to an unverified implicit assumption that the model confidently hallucinated.

IMPLEMENTATION TABLE

Expected Output Contract

Define the exact fields, types, and validation rules for the assumption inventory output. Use this contract to build a parser, validator, or downstream consumer that expects structured assumption records.

Field or ElementType or FormatRequiredValidation Rule

assumption_id

string (slug)

Matches pattern ^ASM-[0-9]{4}$. Must be unique within the inventory.

statement

string

Non-empty, declarative sentence. Must contain a claim that can be true or false. Max 500 characters.

category

enum string

One of: resource_availability, tool_capability, input_validity, environment_stability, user_intent, dependency_completeness, temporal_constraint, policy_compliance, data_quality, external_system_state.

source

string

One of: explicit_user_input, implicit_from_context, inferred_from_plan, system_default, external_document. If external_document, [SOURCE_REF] must be populated.

confidence

number (0.0-1.0)

Float between 0.0 and 1.0 inclusive. 0.0 = pure guess, 1.0 = verified fact. Must be accompanied by [CONFIDENCE_RATIONALE] if below 0.8.

confidence_rationale

string or null

Required when confidence < 0.8. Explains why confidence is not high. Max 300 characters. Null allowed when confidence >= 0.8.

impact_if_wrong

enum string

One of: blocking, plan_invalid, partial_rewrite, minor_adjustment, cosmetic_only. Blocking means execution cannot proceed.

depends_on

array of assumption_id or null

List of assumption_ids this assumption logically depends on. Empty array or null if independent. Must not contain self-reference or circular chains.

PRACTICAL GUARDRAILS

Common Failure Modes

What breaks first when generating assumption inventories and how to guard against it. These failures cause agents to execute confidently on incomplete or contradictory premises.

01

Hidden Domain Assumptions

What to watch: The model imports unstated domain conventions (e.g., 'timezone is UTC', 'currency is USD', 'auth is OAuth2') that are absent from the goal statement and context. These become invisible premises that silently corrupt downstream planning. Guardrail: Include a domain-context preamble in [CONTEXT] that explicitly declares operational defaults. Add an eval check that flags any assumption not traceable to the provided inputs.

02

Confidence Inflation on Vague Inputs

What to watch: When the goal statement is ambiguous, the model assigns medium-to-high confidence to assumptions that fill the gaps, producing a false sense of certainty. This leads to plans that look complete but rest on guesswork. Guardrail: Require the prompt to output a confidence field per assumption with a strict rubric. Add a post-processing rule that flags any assumption with confidence ≥ 0.7 that lacks direct evidence in [CONTEXT].

03

Assumption Explosion in Open-Ended Goals

What to watch: Broad goals like 'improve system reliability' trigger an unbounded set of plausible assumptions across unrelated domains, overwhelming the planner with low-value inventory entries. Guardrail: Constrain the output with a max_assumptions parameter and a category allowlist in [CONSTRAINTS]. Use a relevance filter that discards assumptions with no direct dependency path to the stated goal.

04

Circular Dependency Between Assumptions

What to watch: The model generates assumptions that depend on each other (e.g., 'the API is available' and 'the API auth token is valid'), masking that neither is independently grounded. Downstream dependency mapping breaks. Guardrail: Add an eval step that builds a dependency graph from the output and flags any strongly connected components. Require each assumption to cite at least one piece of external evidence from [CONTEXT].

05

Stale Context Producing Invalidated Assumptions

What to watch: The [CONTEXT] window contains outdated information (e.g., last week's system status, a deprecated API version). The model treats it as current and generates assumptions that are already false at execution time. Guardrail: Include a context_timestamp field in [INPUT] and an eval check that compares it against a freshness threshold. Flag any assumption sourced from context older than the threshold as STALE.

06

Silent Omission of Negative Assumptions

What to watch: The model only lists what it assumes to be true, omitting critical assumptions about what is not true (e.g., 'no rate limits apply', 'no conflicting concurrent operations'). These missing negatives cause plans that fail on unanticipated constraints. Guardrail: Add an explicit instruction to generate a negative_assumptions section. Include an eval check that verifies at least one negative assumption exists for each tool or resource mentioned in the goal.

IMPLEMENTATION TABLE

Evaluation Rubric

Criteria for evaluating the quality and completeness of an assumption inventory before integrating it into a production agent planning pipeline.

CriterionPass StandardFailure SignalTest Method

Completeness of Explicit Assumptions

All stated conditions, constraints, and dependencies from [GOAL_STATEMENT] and [CONTEXT] are extracted as discrete assumptions.

A stated constraint like 'budget is fixed' is missing from the inventory.

Diff the set of extracted assumptions against a human-annotated gold set for the same input.

Implicit Assumption Discovery

At least one non-obvious, unstated assumption is identified per major domain category (e.g., environment, permissions, data freshness).

The inventory only contains verbatim restatements from the input text with no inferred preconditions.

LLM-as-Judge review: check if the inventory includes assumptions not directly quoted from the source.

Assumption Categorization Accuracy

Each assumption is assigned to the correct category from [CATEGORY_TAXONOMY] (e.g., 'Tool Availability', 'Data Schema').

An assumption about API uptime is categorized as 'User Preference'.

Parse the output and validate each category field against the allowed enum. Flag mismatches.

Confidence Score Calibration

Initial confidence scores are assigned on a 0.0-1.0 scale, with high confidence (>0.8) only for assumptions directly supported by [CONTEXT].

An assumption about a third-party service's internal state is assigned a confidence of 0.95 without evidence.

Sample 20 assumptions and check if confidence >0.8 correlates with explicit evidence in the source context.

Assumption ID Uniqueness and Format

Every assumption has a unique, stable ID matching the pattern ASM-[CATEGORY]-[NNN].

Duplicate IDs are found, or IDs use a different format than specified in [OUTPUT_SCHEMA].

Parse the JSON output and assert that all id fields are unique and match the required regex pattern.

Hidden Dependency Coverage

Assumptions that are prerequisites for other assumptions are flagged with a depends_on field referencing the prerequisite ID.

A critical chain like 'tool is available' -> 'tool returns valid JSON' is present but has no depends_on link.

Traverse the depends_on graph; flag any assumption that is referenced but not defined in the inventory.

Output Schema Compliance

The output is valid JSON that strictly conforms to the [OUTPUT_SCHEMA] with all required fields present.

The confidence field is a string instead of a float, or the evidence array is missing.

Run a JSON Schema validator against the model output. Reject on any schema violation.

Source Grounding

Every assumption includes a non-empty source field indicating whether it came from 'explicit_statement', 'inferred', or 'common_knowledge'.

Multiple assumptions have source: null or an empty string.

Parse the output and assert that source is a non-null string from the allowed enum for every assumption object.

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a frontier model (GPT-4o, Claude 3.5 Sonnet). Focus on getting the assumption inventory structure right before adding validation. Run the prompt against 5-10 diverse goal statements and manually review whether the model catches implicit assumptions.

Prompt modifications

  • Remove the [EVIDENCE_SOURCES] placeholder and let the model note "no evidence provided" for each assumption.
  • Simplify the output schema to assumption_id, statement, category, confidence only.
  • Add: If you are unsure whether something is an assumption, include it and mark confidence as LOW.

Watch for

  • Missing implicit assumptions (the model only extracts what's explicitly stated).
  • Overly broad categories that collapse distinct assumptions into one.
  • Confidence scores that are uniformly high without justification.
Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.