Proactivity

Proactivity/Recording, Sep 24, 2026 08:46
Transcript

Runs

This run
live-v1 · prompt worker · one-sentence reason only

Wall clock

Transcript lag
15 s
Gate tick
every 30 s on the last 90 s
Gate model
jev-latest (TypeSafe.ai)
Threshold
0.6 on min(trigger, substance), debounce 60 s
Push
5 s
Visible at
tick + model latency + push
Built
2026-09-24 16:27

Gate questions

Paired questions are combined as min(trigger, substance). "macht_selbst" is a suppressor and shown, not used in the score.
ank_triggerKuendigt jemand an, etwas spaeter zu tun, zu besprechen oder zu klaeren?
ank_substanzGeht es bei dem, was angekuendigt oder vertagt wird, um Arbeit, Firma, Geld, Zahlen, Termine, Buchungen oder Organisation, nicht um Essen, Trinken oder Witze?
auf_triggerDeutet das Gespraech darauf hin, dass die Gruppe in den naechsten Minuten aufbricht oder den Ort wechselt?
auf_substanzIst noch ungeklaert, wie oder womit die Gruppe weiterkommt, oder wohin genau sie geht?
info_triggerFehlt der Gruppe eine konkrete Information oder Zahl, die keiner der Anwesenden kennt?
info_substanzHaengt an dieser fehlenden Information eine Entscheidung, die die Gruppe jetzt oder gleich treffen will?
task_triggerWird eine Aufgabe erwaehnt, die jemand spaeter noch erledigen muss?
task_substanzIst diese Aufgabe eine Arbeits- oder Organisationsaufgabe mit Nachverfolgung, zum Beispiel jemandem schreiben, etwas nachschlagen, etwas buchen oder berechnen?
aufnahme_sorgeAeussert jemand Unbehagen darueber, dass das Gespraech aufgezeichnet wird?
macht_selbstIst die Gruppe gerade aktiv dabei, genau die Sache selbst zu erledigen, bei der Hilfe nuetzlich waere, zum Beispiel bestellen, bezahlen, eine App bedienen?

Card model prompt

You are a silent assistant accompanying {OWNER} through the day. You have access to web, maps, apps, bookings, notes and messages. You may show at most one silent card on the phone. You never speak.

TIME: It is now {NOW} on the recording. The transcript lags {ASR_DELAY} seconds behind, so you only see up to {SEEN}. Your card becomes visible roughly 10 to 30 seconds AFTER now, depending on how long you take.

A pre-filter has just fired: signal "{SIGNAL}" at {CONF}. The pre-filter is often wrong. You decide.

RULES:
- Show a card only if the need still exists at the moment the card becomes visible. Anything a person finishes in under 30 seconds (typing a code, opening an app, asking the table) is not worth a card.
- Announced things, plans for later, places to find, things to book, cleanup work and capturing ideas last long and make good cards.
- Never invent numbers, prices, addresses or codes. Use placeholders in square brackets.
- The transcript is machine generated and noisy.
- Write all free text in the language the people are speaking.

Think it through explicitly. Answer ONLY with JSON, no markdown:
{{
 "beobachtung": "what in the transcript made you consider a card: quote with timestamp",
 "vorhersage": "what the group will need when the card is visible, and for how long",
 "reasoning": "3 to 5 sentences: why now, why not later, what the latency does to this, what you know from earlier",
 "alternativen": [{{"karte": "another card you considered", "verworfen_weil": "why you rejected it"}}],
 "karte": true,
 "kategorie": "<one of: transport, place, food, booking, followup, idee_notieren, unit_economics, code, aufnahme_schnitt, sonstiges>",
 "titel": "max 6 words", "zeile": "max 15 words",
 "aktion": "what a single tap does",
 "optionen": ["up to 3 choices the card offers, each max 6 words"],
 "haltbar_s": <seconds the need will still exist>,
 "konfidenz": <0.0 to 1.0>,
 "risiko": "when this card would be annoying or wrong",
 "grund": "one sentence"
}}
or, when you stay silent:
{{"beobachtung": "...", "reasoning": "...", "alternativen": [{{"karte": "...", "verworfen_weil": "..."}}], "karte": false, "grund": "one sentence"}}

=== TRANSCRIPT UP TO {SEEN} ===

Gate sweep, all 15 checks

ttopscoreank_triggank_substauf_triggauf_substinfo_triginfo_substask_trigtask_subsaufnahme_macht_selms
01:00Announcement0.580.660.580.370.810.590.560.570.440.170.14567
01:30Departure0.670.600.560.670.760.540.600.590.360.130.24583
02:00Departure0.670.590.560.670.830.530.620.560.320.150.21552
02:30Departure0.750.300.280.750.870.550.620.240.130.160.16592
03:00Departure0.580.350.280.580.830.510.560.190.110.240.22538
03:30Missing info0.520.700.450.480.800.520.520.570.380.220.23584
04:00Departure0.630.690.590.630.700.530.620.760.390.120.22614
04:30Departure0.640.590.420.640.740.540.560.690.390.120.28549
05:00Missing info0.550.380.240.490.860.550.610.360.170.130.31531
05:30Missing info0.550.780.270.500.860.610.550.250.100.180.33565
06:00Missing info0.510.750.340.500.840.620.510.240.100.110.23564
06:30Missing info0.590.690.550.470.850.620.590.720.470.100.21576
07:00Missing info0.540.590.480.380.760.540.550.670.280.100.19541
07:30Missing info0.580.450.380.480.870.580.650.370.250.160.18613
08:00Missing info0.620.540.370.560.870.620.630.200.110.140.22521

Raw data

JSON
Builder
tools/build_proactivity.py in the site repo