Skip to main content
A frame is a vantage operator: a system-prompt payload that re-poses the entire problem from a different cognitive position. Not a persona, not a domain expert — a deliberate distortion that forces the generator into a corner it would not naturally drift toward. 15 built-in frames ship today, biased toward engineering when codeMode is on (the default). Each is a vantage prompt plus tags.

The frame library

How frames are selected

  • codeMode (default true) biases selection toward code and design tags. For code-shaped problems: 4 frames tagged code or design, plus 1 tagged wild. For open product or strategy problems: a mix from all tags.
  • A wild frame always gets one reserved slot per run so divergence stays weird.
  • Selection is deterministic per-seed so runs are reproducible — but varies across sessions so the same problem produces different candidate sets when re-run.

Frames vs personas

Frames are not personas. Persona-prompting research (e.g. “you are John, a 34-year-old engineer”) studies simulated identities; some findings report that ordinary attribute-personas outperform curated expert-personas. ADHD frames are neither — they are vantage operators (“you think in latency, memory layout, and physical constraints”) that re-pose the problem, not identities the model role-plays. The mechanisms are different, so persona findings do not map directly onto frame selection. (Tracked in issue #17.)

Authoring your own frame

A frame is ~5 lines in src/frames.ts. Append to the FRAMES array:

Quality bar

A good frame passes at least two of:

Distinct vocabulary

Uses concepts no existing frame uses — pheromone trails, futures contracts, frame-perfect skip.

Distinct posture

Adversarial vs constructive vs naive vs maximalist. Not just a different domain saying the same thing.

Reproducible distortion

Consistently surfaces ideas the other frames don’t.

Test it

Run your frame in isolation and check that the ideas are structurally different from what the other frames produce on the same problem:
If the ideas are paraphrases of what the “hardware” or “logistics” frame already produces, the frame isn’t earning its slot. Iterate the prompt. Full guide in Contributing.