---
title: "Patterns: gates, simulation, personas and other shapes (P38+)"
type: community
source_tier: community
tags: [ideas, patterns, simulation, personas, gates]
created: 2026-09-23
updated: 2026-09-23
confidence: medium
sources:
  - raw/x-repos/shitianfang__wakegate.md
  - raw/x/sotak-2100701152824185319.md
  - raw/x/StingCloudLab-2102202720341934217.md
  - raw/x/theappcypher-2101095181382721998.md
  - raw/x/chris_not_busy-2102349211127955925.md
  - raw/x/TheMattBerman-2101439340588974096.md
  - raw/x/SimAudience-2101117203060019431.md
  - raw/x-repos/gaborishka__jevtown.md
  - raw/x-repos/JoelLewis__game-coach.md
  - raw/x-repos/wquguru__dasheng.md
  - raw/x-repos/sutro-sh__jev-align.md
  - raw/x/sep_is_heim-2101603192664740330.md
  - raw/x-repos/kyle-pena-nlp__jevchat.md
  - raw/x-repos/erik-dunteman__ChatJev.md
jev_version: "jev-1.13.0"
summary: "P38-P44: wake gates, branched rollouts, synthetic persona panels, engine-graded tutoring, label-tuned questions, compute knobs and Choice-as-sampler, each with a fit verdict."
---

# Patterns: gates, simulation, personas and other shapes (P38+)

> **TL;DR** Seven shapes from the 2026-09-23 sweep that fit no earlier pattern. Worth copying: wake gates (P38), persona panels as a relative pre-screen (P40), engine-graded tutoring (P41), label-tuned questions (P42). P43 and P44 are `poor`: read them to recognise the shape, not to build it.

## How to read this

Same format and fit scale as [[ideas/patterns-agents]]: `strong` = bounded options, semantic judgment, code owns the rest (still start with an experiment); `workable` = real, caveat named; `poor` = a weakness from [[concepts/jaggedness-jev-1-13]] or [[concepts/system-one]] sits in the middle. Posted numbers are author-reported and unverified. Full index: [[ideas/patterns]].

| ID | Pattern | Primitive | Fit |
|---|---|---|---|
| P38 | Wake and interjection gate | Choice/Noul | strong |
| P39 | Branched rollouts: fork the state, Jev steps each branch | Choice | workable |
| P40 | Synthetic persona panel | Choice/Noul | workable |
| P41 | Engine owns truth, Jev owns the judgment: grading and coaching | Choice/Noul/Score | strong |
| P42 | Tuning questions against your own labels | any | strong |
| P43 | Compute knob inside another model | Choice | poor |
| P44 | Choice probabilities as a text sampler | Choice | poor |

## Gates and triggers

**P38 Wake and interjection gate**
- *Decision* does this event deserve a full LLM turn, or should the assistant speak at all right now
- *State* what the agent said it was waiting for, plus the event (email, webhook, fresh observation) or the recent usage/transcript
- *Ask* `Choice` over `wake | not yet | unrelated`; for assistants a `Noul` "is the user stuck / addressing me?"
- *Code* fail open: user messages, timeouts, errors, missing probabilities and a max-skips counter all wake without asking; sleep intervals, dwell times and numeric targets ("below $300") computed in code
- *Fit* strong for "event vs stated goal" (one bounded judgment in front of an expensive call); workable for "should I speak", since hesitation is timing data (math, weakness #2) and events are attacker-writable (#6)
- *Map* [[patterns/confidence-routing]], [[ideas/patterns-agents]] P36 (a sibling: that one triages findings, this one gates the wakeup)
- *Seen* `shitianfang/wakegate` ([repo](https://github.com/shitianfang/wakegate)): skips only below 0.2 on "wake"; author reports 21/21 on 21 self-written scenarios, p50 253 ms; the first yes/no wording scored 16/21, erring on numeric "not yet" cases, so the three-way `Choice` replaced it; savings unmeasured. Calls go via Vercel AI Gateway `typesafe-ai/jev` (gateway route, not in TypeSafe's docs). [@sotak](https://x.com/sotak/status/2100701152824185319): an in-product Clippy that wakes only when the user seems stuck. [@npaka123](https://x.com/npaka123/status/2101867946448736382) (via [@StingCloudLab](https://x.com/StingCloudLab/status/2102202720341934217)): a voice assistant with no wake word that answers only when context calls for it; StingCloudLab flags always-on listening as an unanswered privacy question

## Simulation and synthetic crowds

**P39 Branched rollouts: fork the state, Jev steps each branch**
- *Decision* the next move or state transition inside one simulated branch
- *State* the branch's snapshot as compact JSON plus the legal moves or the moves an LLM proposed
- *Ask* `Choice` over move ids per step, per branch; many branches in parallel
- *Code* snapshot, fork and discard branches; score survivors with the simulator's own outcome (alive / dead), never with Jev's opinion of the future
- *Fit* workable when you own a real simulator and Jev only picks moves ([[ideas/patterns-data]] P24 plus search); poor when Jev *is* the simulator of the world, e.g. predicting how a patient responds: that is an outcome the text does not contain ([[ideas/patterns]] anti-patterns). Not clinical advice
- *Map* [[patterns/fan-out]], [[ideas/patterns-agents]] P05
- *Seen* [@theappcypher](https://x.com/theappcypher/status/2101095181382721998) ("Mario Never Dies": Jev picks every move; on a death the microsandbox VM forks into 4 timelines and the survivor becomes canon). [@chris_not_busy](https://x.com/chris_not_busy/status/2102349211127955925): Grok 4.7 proposes treatment moves, Jev makes state decisions in under 0.3 s across 20+ futures of a simulated cancer patient (author-reported; no validation shown)

**P40 Synthetic persona panel**
- *Decision* how would this kind of person react to this text: scroll, stop, like, annoyed, buy
- *State* one persona line (age, job, city, interests, temperament, budget) plus the artefact
- *Ask* one `Choice` per persona over reactions, many personas per request; optional `Noul`s about the text itself
- *Code* generate personas deterministically; draw each reaction from the returned probabilities with a fixed seed so reloads agree; waves, spread rules, audience filters and every count in code. Let an LLM write variants and the panel rank them
- *Fit* workable as a **relative** pre-screen (A vs B, which segment is annoyed); poor as a forecast of real reach: @PrajwalTomar_ scored 20% on reach bands vs 76% for a constant guess ([[ideas/field-reports]]). Persona reactions are Jev's guess about a described person, not survey data
- *Map* [[cookbooks/parallel-questions]], [[ideas/patterns-business]] P21 (scores the artefact; this simulates an audience)
- *Seen* [@TheMattBerman](https://x.com/TheMattBerman/status/2101439340588974096): 723 ads × 30 buyer personalities = 21,690 stop-or-scroll decisions for 22 cents. [@SimAudience](https://x.com/SimAudience/status/2101117203060019431): two launch tweets voted on by 4,000+ survey-participant profiles in 12 s. `gaborishka/jevtown` ([repo](https://github.com/gaborishka/jevtown)): 10,000 computed personas, 100 per request, waves of 600/1,500/3,000/rest; author reports 200 personas in one request answer the same as one, six of a person's own past answers lift Jev's guesses about them from 0.49 to 0.72, a check costs about a cent to ten cents. A panel only knows the attributes you model: its audience filter turned "tech founders of early-stage B2B SaaS" into everyone who works in business. Ships an MCP server so an agent writes variants and the town ranks them

## Judgment next to a source of truth

**P41 Engine owns truth, Jev owns the judgment: grading and coaching**
- *Decision* given an objective diff between attempt and truth, what kind of error is it and what coaching move fits
- *State* the reference, the attempt, and the facts a deterministic tool already computed (engine evaluation, word alignment, timestamps)
- *Ask* `Noul` "is this the same word/idea?"; `Choice` over error types or coaching moves; `Score` on an ordered rubric for "did the meaning survive?"
- *Code* the engine or aligner finds the mismatches, so only those reach Jev; totals, pace, weights in code; templates or a small writing model phrase the feedback
- *Fit* strong — Jev never computes the truth or writes the words, only the soft call between. Jev reads text only, so acoustics (pronunciation, accent) stay out of scope
- *Map* [[concepts/how-to-build]], [[cookbooks/entity-alignment]]
- *Seen* `wquguru/dasheng` ([repo](https://github.com/wquguru/dasheng)): streaming ASR hears a read-aloud, alignment picks the mismatched words, Jev judges misread vs ASR spelling variant vs self-correction. Its README calls the stack offline, but its own config sends Jev calls to ZenMux (`https://zenmux.ai/api/v1/systemone`, model `typesafe/jev-1.13`, not in TypeSafe's docs; only the ASR self-hosts). `JoelLewis/game-coach` ([repo](https://github.com/JoelLewis/game-coach)): "Stockfish owns truth, Jev owns judgment" in a chess coach; status is a scaffold and feasibility spike, not a result

## Building and tuning the questions

**P42 Tuning questions against your own labels**
- *Decision* which wording, options and rubric make a question agree with your people
- *State* your dataset rows (selected columns only) and accumulated human labels, optionally with rationales
- *Ask* whatever the function is: `Noul` (binary), `Choice` (multiclass), several `Noul`s (multilabel), `Score` (ordered rubric)
- *Code* run the set, surface the least certain rows plus a random audit sample for labelling, let an optimiser (an LLM) propose a new definition, show the diff, a person accepts or rejects; keep a held-out split
- *Fit* strong — it moves wording, the main lever against literal reading (#1) and contradictory criteria (#7), out of guesswork. Risks: overfitting a small label set, and one author writing both questions and labels
- *Map* [[guides/testing-and-evaluation]], [[guides/writing-instructions-and-criteria]], [[concepts/confidence]]
- *Seen* `sutro-sh/jev-align` ([repo](https://github.com/sutro-sh/jev-align)): CLI using GEPA; 5-20 labels a round, optional 20% held-out set; a higher training score never auto-accepts; can publish functions *with their labelled data* to a public registry, so never push data you cannot share. Runs direct, via Vercel AI Gateway or Cloudflare Workers AI (gateway routes `unverified`; not affiliated with TypeSafe). The same habit by hand: wakegate picked its wording from three candidates on a dev set (P38); jevtown drops any question that failed its measurement (P40)

## Poor fits worth recognising

**P43 Compute knob inside another model**
- *Decision* how much compute a layer or step of a generative model gets (e.g. an attention sparsity rate)
- *State* whatever describes the layer at that step; for Jev it must be text
- *Ask* `Choice` over preset levels (`1% | 3% | 5% | 10%`)
- *Code* the model loop, timing and quality checks
- *Fit* poor — importance of a layer is a numeric property of tensors (#2), Jev sees no tensors, and a network call sits inside a GPU loop. No ablation against a fixed schedule was posted, so the speed-up may come from sparsity alone (inferred). Jev-shaped variant: one call per job on the *prompt text* ("motion-heavy scene?") to pick a preset
- *Map* [[ideas/patterns-agents]] P02 (effort routing, where the judgment is about the request, not the tensors)
- *Seen* [@sep_is_heim](https://x.com/sep_is_heim/status/2101603192664740330): Jev judges importance per layer (4 steps × 49 layers) of MiniMax H3 video generation and picks the sparsity; reports 6 min 7 s → 3 min 34 s, 41.7% faster on an RTX 4070

**P44 Choice probabilities as a text sampler**
- *Decision* which symbol or token comes next in a reply
- *State* the user's question plus the reply so far
- *Ask* `Choice` over an alphabet or token list plus `STOP`; draw from the probabilities, append, repeat
- *Code* the whole decoding loop: sampling, temperature, beams, buckets beyond 255 options (the documented cap, `verified` — [[concepts/choice]])
- *Fit* poor — generation is weakness #9 and costs one request per symbol. Its authors call the results "hilarious" and "kinda works". Use a generative model to write and Jev to pick among finished candidates (P41, [[ideas/patterns-data]] P16)
- *Map* [[concepts/jaggedness-jev-1-13]]
- *Seen* `kyle-pena-nlp/jevchat` ([repo](https://github.com/kyle-pena-nlp/jevchat)), `erik-dunteman/ChatJev` ([repo](https://github.com/erik-dunteman/ChatJev)). Tricks that transfer to ordinary `Choice` use (author-reported, `unverified`): list options as the *finished* candidate text, not a fragment the model must splice in (roughly tripled top-1 on character alphabets); shuffle the option order to cancel what the author calls position bias, or average several shuffled copies sent as parallel questions in one request (option-order sensitivity also in [[ideas/field-reports]]); for more than 255 candidates, split into buckets each with an `OTHER` escape, then ask once over the winners

## Related

- [[ideas/patterns]] — index of every pattern ID; [[ideas/consult]] — the advising procedure
- [[ideas/patterns-agents]], [[ideas/patterns-data]], [[ideas/patterns-business]], [[ideas/patterns-interface]] — P01-P37
- [[ideas/field-reports]], [[ideas/measurements]] — numbers and failures behind the verdicts
- [[concepts/jaggedness-jev-1-13]], [[concepts/system-one]] — what the fit verdicts are judged against

## Sources

- raw/x-repos/shitianfang__wakegate.md (https://github.com/shitianfang/wakegate)
- raw/x/sotak-2100701152824185319.md (https://x.com/sotak/status/2100701152824185319)
- raw/x/StingCloudLab-2102202720341934217.md (https://x.com/StingCloudLab/status/2102202720341934217)
- raw/x/theappcypher-2101095181382721998.md (https://x.com/theappcypher/status/2101095181382721998)
- raw/x/chris_not_busy-2102349211127955925.md (https://x.com/chris_not_busy/status/2102349211127955925)
- raw/x/TheMattBerman-2101439340588974096.md (https://x.com/TheMattBerman/status/2101439340588974096)
- raw/x/SimAudience-2101117203060019431.md (https://x.com/SimAudience/status/2101117203060019431)
- raw/x-repos/gaborishka__jevtown.md (https://github.com/gaborishka/jevtown)
- raw/x-repos/wquguru__dasheng.md (https://github.com/wquguru/dasheng)
- raw/x-repos/JoelLewis__game-coach.md (https://github.com/JoelLewis/game-coach)
- raw/x-repos/sutro-sh__jev-align.md (https://github.com/sutro-sh/jev-align)
- raw/x/sep_is_heim-2101603192664740330.md (https://x.com/sep_is_heim/status/2101603192664740330)
- raw/x-repos/kyle-pena-nlp__jevchat.md (https://github.com/kyle-pena-nlp/jevchat)
- raw/x-repos/erik-dunteman__ChatJev.md (https://github.com/erik-dunteman/ChatJev)
