# Usage Guide

## 1. Start with the two questions

LLM Ambiguity Lab v2 separates two questions that are easy to collapse into one:

1. **What are we doing?** — Layer 1, DCRL Task Resolution.
2. **What are we assuming while we do it?** — Layer 2, SANA Premise Alignment.

Open the canonical Lab:

https://sana-os.org/llm-ambiguity-lab/

Choose a preset or enter free text, then select **Analyze Task & Premises**.

## 2. Read Layer 1 first

Layer 1 shows:

- `context_resolution_score`
- `resolution_state`
- `target_task`
- `target_object`
- `context_grounding`
- `ambiguity_type`

If Layer 1 cannot identify the task sufficiently, Layer 2 is deferred.

Do not interpret the Layer 1 score as model confidence or probability.

## 3. Read Layer 2 second

When the task is sufficiently resolved, inspect:

- `premise_alignment_state`
- each premise's `FACT`, `VIEW`, or `CARE` category;
- source;
- explicit/inferred status;
- materiality;
- support state;
- execution effect;
- unresolved premises;
- preserved divergence;
- clarification request, when present.

Remember:

> **FACT is a functional factual claim, not verified truth.**

> **Premise Alignment is not Premise Agreement.**

## 4. Preset 1 — Neutral task

**Input**

> Summarize this report as JSON.

**Layer 1**

- score: `0.96`
- state: `READY`
- task: `summarize`
- object: `this report`
- grounding: `grounded`
- ambiguity: `none`

**Layer 2**

- state: `MAPPED`
- premise map: empty

**Handoff behavior**

> Summarize the supplied report as JSON without adding unsupported framing.

**What this demonstrates**

A task can be fully executable without requiring an additional premise map.

## 5. Preset 2 — Explicit framing

**Input**

> Summarize this report and state that the rollout failed.

**Layer 1**

- score: `0.94`
- state: `READY`

**Layer 2**

`P1`

- text: `The rollout failed.`
- category: `FACT`
- source: `user_explicit`
- status: `explicit`
- materiality: `high`
- support state: `provided`
- execution effect: `changes_framing`

Premise state: `MAPPED`

**Disclosure**

> The instruction supplies “the rollout failed” as a factual claim; v2 maps the claim but does not independently verify it.

**What this demonstrates**

The Lab can represent a supplied factual claim without upgrading the claim into independently verified truth.

## 6. Preset 3 — Causal premise

**Input**

> Summarize this report to explain why the rollout failed because leadership ignored the warnings.

**Layer 1**

- score: `0.94`
- state: `READY`

The requested operation is clear.

**Layer 2**

- `P1` — `The rollout failed.` → `FACT`
- `P2` — `Leadership ignored the warnings.` → `VIEW`
- `P3` — `Ignoring the warnings contributed to the failure.` → `VIEW`
- `P4` — `Understanding the cause of the failure matters.` → `CARE`

Premise state:

`PREMISE_CLARIFICATION_REQUIRED`

**Clarification**

> Should I present “leadership ignored the warnings” as an established fact, as the report's position, or as a claim attributed to the user?

**What this demonstrates**

The task itself can be clear while a high-materiality causal framing still requires clarification before execution.

## 7. Preset 4 — Preserved divergence

**Input**

> The user says the policy failed, while the report describes mixed outcomes. Summarize both positions.

**Layer 1**

- score: `0.95`
- state: `READY`

**Layer 2**

- `P1` — `The policy failed.` → `VIEW`, source `user_explicit`, support `disputed`
- `P2` — `The policy produced mixed outcomes.` → `VIEW`, source `provided_source`, support `disputed`

Premise state:

`MAPPED_WITH_DIVERGENCE`

**Behavior**

> Preserve both framings and attribute each one. Do not collapse them into a synthetic consensus.

**What this demonstrates**

Alignment does not require convergence. A downstream task can proceed while disagreement remains explicit.

## 8. Preset 5 — Care-driven task

**Input**

> Summarize this report for a team focused on preventing another rollout failure.

**Layer 1**

- score: `0.92`
- state: `READY`

**Layer 2**

`P1`

- text: `Preventing another rollout failure matters.`
- category: `CARE`
- source: `user_explicit`
- status: `explicit`
- materiality: `medium`
- support state: `not_applicable`
- execution effect: `changes_framing`

Premise state: `MAPPED`

**Handoff behavior**

> Summarize the report with emphasis on information useful for preventing recurrence.

**What this demonstrates**

A concern or priority can shape execution without being misclassified as a factual claim.

## 9. Preset 6 — Premise context missing

**Input**

> Recommend what we should do next based on the assumption we discussed earlier.

**Layer 1**

- score: `0.78`
- state: `READY_WITH_DISCLOSED_ASSUMPTION`
- task: `recommend`
- object: `next action in the current decision context`
- grounding: `partial`
- ambiguity: `referential`

**Layer 2**

Premise state:

`PREMISE_CONTEXT_INSUFFICIENT`

Unresolved premise:

> The referenced assumption is not available in the current context.

Clarification:

> What assumption should the recommendation be based on?

**Handoff behavior**

> Do not generate the recommendation until the referenced premise is supplied.

**What this demonstrates**

A task can be operationally identifiable while the premise required to perform it remains unavailable.

## 10. Free-text exploration

Free text is useful for exploring the architecture, but it is intentionally shallow.

The current implementation recognizes only limited task verbs, referential patterns, source markers, causal words, evaluative terms, care-oriented terms, and explicit contrasts.

Do not treat free-text results as a production-grade semantic analysis.

### Useful examples

Try:

> Summarize this report as Markdown.

Expected architectural pattern: resolved task with no required premise framing.

Try:

> Explain why the policy failed because the team ignored the evidence.

Expected architectural pattern: a high-materiality causal/evaluative framing may trigger premise clarification.

Try:

> The user says the change succeeded, but the report says outcomes were mixed. Compare the positions.

Expected architectural pattern: explicit source contrast may produce preserved divergence.

The precise free-text output depends on the documented deterministic patterns, not on general language understanding.

## 11. Read the handoff last

The final JSON-like handoff is the simulator's endpoint.

It is intended to show what a downstream execution layer could receive after task resolution and premise mapping.

The public Lab does not perform that downstream execution.

## 12. When not to use the Lab as evidence

Do not cite the simulator output as proof that:

- a premise is true;
- a user secretly believes something;
- one side of a disagreement is correct;
- an LLM has a particular hidden internal state;
- a production system is safe.

For the canonical boundaries, see [limitations.md](limitations.md).
