# Lenses — operating guide

> Companion to [Plasticity](/docs/plasticity.md). Raw Markdown:
> [/docs/lenses.md](/docs/lenses.md) · rendered: [/docs/lenses](/docs/lenses)

**In founder terms:** lenses are how you stop every agent from asking the same
cold questions — tuned methodology you keep, export, and hand to a peer as
markdown (not a second proprietary format).

A **lens** is a typed prompt that shapes how Bloom samples and interrogates
structural holes. Lenses are product configuration: system templates merge with
tenant overrides, gate by dose tier, and freeze into the run at start.

Tune lenses in the Lens Console
([app.jackiq.com/plasticity](https://app.jackiq.com/plasticity)) or via the
plasticity HTTP/MCP surfaces. Edits write `lens_revision` rows; in-flight runs
keep their frozen `lens_set`.

## The five categories

| Category | Job | Typical hooks |
| -- | -- | -- |
| `selection` | Which candidates are drawn | structural-hole · orphan-rescue · cross-domain · temporal-drift · contradiction-hunt |
| `interrogation` | What is asked of each pair | what-if-same-problem · what-would-have-to-be-true · second-order-effects · steelman-the-opposite |
| `domain` | Business perspective | positioning · financial-model · gtm · product · ops · fundraise · risk · customer |
| `discipline` | Guardrails | evidence-required · null-preferred · provenance-strict · charter-aware |
| `judgment` | Verification | correctness · feasibility · reputational · financial · does-it-reproduce |

Order in the console is selection → interrogation → domain → discipline →
judgment. Unknown categories fall back under selection.

**Judgment lenses must be genuinely distinct perspectives**, not N identical
skeptics. Diversity catches failure modes redundancy cannot.

**Domain lenses** should inherit the founder's methodology stages (the
`/doctrine/*` shape) rather than invent a parallel framework.

## How to write a lens (enforced-output form)

Write lenses in **enforced-output form**, not prose essays. Consolidation Run 02
showed prose doctrine produced no lift; enforced-output form transferred.

### Template

```text
ROLE
You are the <slug> lens (<category>). Operate only on the pair and evidence
provided. Do not invent store facts.

TASK
<one sentence: what this lens must decide or surface>

REQUIRED OUTPUT (emit exactly these fields, nothing else)
- finding: <short claim or "null">
- evidence: <citations or "none">
- blast_radius: <local | cross-domain | charter-adjacent>
- confidence: <0.0–1.0>
- kill_if: <condition under which Return should discard this>

CONSTRAINTS
- Prefer null over a weak finding.
- If evidence is missing, set finding to "null" and say so in evidence.
- Do not rewrite charter, doctrine, or settled decisions — propose only.
```

### Rules that stay true

1. **Name the fields.** Free-form paragraphs do not compose under Peak.
2. **Prefer null.** Discipline lenses exist so empty is a valid, valuable answer.
3. **Cite or abstain.** Provenance-strict lenses should refuse undated certainty.
4. **Stay inside category.** A selection lens picks candidates; it does not
   render a GTM essay.
5. **Set `min_tier` honestly.** Sharper interrogation lenses gate above
   Standard (`t3`). Locked lenses stay visible as "unlocks at …" — never hide
   the ceiling.

### Fields the system stores

When creating or overriding a lens:

- `slug` — stable id (kebab-case)
- `name` — founder-facing label
- `category` — one of the five above
- `prompt` — enforced-output text
- `weight` — 0–1 relative influence when assembling the run
- `enabled` — soft toggle; disabled lenses are excluded from the freeze
- `min_tier` — `t1`…`t5` (must be unlocked by current dose)

Tenant overrides win on merge by `slug`. The system row remains the diff base
("Reset to system default" deletes the override).

## The system library

Every entitled tenant starts from the shipped library (~25 lenses across the
five categories). It is product IP — methodology in executable form.

**Selection (ship with):** structural-hole, orphan-rescue, cross-domain,
temporal-drift, contradiction-hunt

**Interrogation:** what-if-same-problem, what-would-have-to-be-true,
second-order-effects, steelman-the-opposite

**Domain:** positioning, financial-model, gtm, product, ops, fundraise, risk,
customer

**Discipline:** evidence-required, null-preferred, provenance-strict,
charter-aware

**Judgment:** correctness, feasibility, reputational, financial,
does-it-reproduce

Exact prompts evolve; treat live `GET /plasticity/lenses` (or the console board)
as source of truth for wording and weights. Ablation may cut lenses that show
no measurable effect — do not assume every shipped slug is permanent.

## How tuning affects a run

1. **Before start** — weights, toggles, and prompts merge (system + tenant),
   filter by dose tier, normalize weights, and **freeze** into
   `operator_run.lens_set`.
2. **During the run** — further edits do not change the frozen set. The UI and
   run record say so explicitly.
3. **What `plan_run` shows** — lenses excluded by the chosen dose appear in the
   plan so the founder sees what their ceiling did not unlock.
4. **Return / history** — kills keep their reasons. That kill record is how you
   learn which lenses earned their weight.
5. **Overrides** — raise weight on `contradiction-hunt` when the intention is
   about conflict; enable a domain lens that matches the question; disable
   noisy lenses rather than rewriting them into mush.

### Practical tuning loop for agents

1. Read current lenses and the founder's intention.
2. Propose minimal overrides (weight / enable / prompt) tied to that intention.
3. `plan_run` and confirm the freeze preview.
4. After Return, summarize kill reasons → suggest the next weight change.
5. Never claim a mid-run prompt edit affected the active run.

## Related guides

- [Plasticity](/docs/plasticity.md) — operators, phases, containment
- [Dose](/docs/dose.md) — which tiers unlock which lenses
- [Resource index](/llms.txt)

## Derivation (optional)

Lens design and the enforced-output ruling live with the plasticity formal
spine and ADR 0017 (operator registry / methodology as executable lenses).
Search the Company Brain for `enforced-output` and `system lens library` when
you need the eval trail, not just the operating rules.
