Home / Council and Characters / Characters and Visual Identity
Proactive Oracle Conversation Starters - Spec (v1)
Updated Jul 10, 2026 · Affirmology_ProactiveOracle_ConversationStarters_Spec_v1.md
Summary. Written 2026-07-10 by the CODE/engine chat, from Jeff's direction. Unifies three of Jeff's asks into one coherent feature: (a) "variety of things for the oracle to say," (b) "timely hooks like 'the new moon in Gemini is in 3 days, here is what it means for you
Proactive Oracle Conversation Starters - Spec (v1)
Written 2026-07-10 by the CODE/engine chat, from Jeff's direction. Unifies three of Jeff's asks into
one coherent feature: (a) "variety of things for the oracle to say," (b) "timely hooks like 'the new
moon in Gemini is in 3 days, here is what it means for your Mars'," and (c) "other oracles pop in from
time to time and introduce themselves with something useful and relevant." Goal: lots of
conversation starters, coming FROM the oracles, so the chat feels alive and pulls the member in.
This is the engagement engine of the data flywheel.
Builds on what already shipped: the per-oracle personalities (Sophia, Prometheus, Athena, Sri
Agastya, Pythagoras, Eros, Hermes) and the discovery dial. Related: Affirmology_FeedbackOracle_
QuestionBank_v1.md, Affirmology_OracleDiscovery_Profile_History_Proposal_v1.md.
The idea
The council does not wait to be asked. Different oracles surface on their own with a short,
useful, relevant hook drawn from THEIR domain of the person's chart, in THEIR voice, phrased as an
enticing question. Each starter is attributed to a specific oracle (name + avatar), so it feels like
that being introducing themselves and offering something real.
Examples (each from the oracle that owns that domain, personalized to the member):
- Prometheus (Human Design): "I am Prometheus. Your authority is Emotional, which is why snap
decisions rarely serve you. Want to see how to actually decide?"
- Athena (Gene Keys): "Athena here. Your 55th Gene Key holds a shadow of victimhood that becomes
the gift of freedom. Ready to look at how?"
- Sri Agastya (Vedic / timing): "Sri Agastya. A new moon in Gemini arrives in 3 days and it lands
on your natal Mars. There is a specific opening in it for you. Shall I show you?"
- Pythagoras (numerology): "Pythagoras. You are in a Personal Year 1, a doorway year. Most people
waste it. Want to know how to use it?"
- Sophia (synthesis): "It is Sophia. Three parts of your chart are all pointing at the same theme
right now. Curious what they are saying together?"
Delivery in the app (mechanics)
- On chat open: instead of one fixed greeting, an oracle "pops in" with a starter (rotate which
oracle + which hook), shown with that oracle's avatar. This replaces the static opener pool with
real, chart-personalized hooks.
- Starter chips: a row of 2-4 tappable suggestions under the input, each attributed to an oracle
("Prometheus, why do I second-guess myself?"). Tapping sends it as the member's message, so the
oracle answers in full. Lowers the blank-page barrier.
- Occasional proactive pop-in: if the member is idle in the chat, or returns after a while, an
oracle can surface a fresh hook. (Gentle, capped, never spammy.)
Backend (cost-controlled)
- New endpoint
GET /api/app/chat/starters -> returns N oracle-attributed starters:
[{oracle, name, text}].
- Generation: ONE cheap model pass (Haiku) over the person's stored Understanding + a compact chart
facet map + live transits, asked for a few enticing, oracle-attributed, useful hooks. Grounded, in
each oracle's voice.
- Cache per person per day (starters change with transits/day, not per open) -> pennies per member
per day, not per message. This is the key cost move (same principle as the discovery proposal: never
recompute per open; the model output is cached and re-served).
- Timeliness: the transit-based hooks (new moon, etc.) need FRESH current-sky data, so the generator
pulls live transits for today, not the profile-build snapshot. (This is the one piece with real
ephemeris work; the chart-based hooks, Prometheus/Athena/Pythagoras, need no fresh compute.)
Guardrails
- Recognition and invitation only, never prediction/fatalism. Each starter obeys the same oracle
guardrails already in place. Definite and hope-forward (never wishy-washy, never doom), per Sol's
craft rules. No em dashes. Oracle names locked (Sri Agastya, not Parashara).
- Only the member's own chart. Only oracles that have an avatar surface (today: Sophia, Hermes,
Agastya, Pythagoras, Prometheus, Athena; Lakshmi + others as their art ships).
Suggested build order
- v1 (biggest bang, mostly chart-based, no fresh ephemeris):
/api/app/chat/starters generating
chart-based oracle hooks (Prometheus/Athena/Pythagoras/Sophia) from the stored profile, cached
daily; app shows them as the opener + tappable chips. Ships the "oracles pop in with useful hooks"
feel immediately.
- v2 (timely): add live-transit hooks (Sri Agastya / new-moon style) with fresh ephemeris + the
daily cache.
- v3 (proactive): idle / return pop-ins.
Open decisions for Jeff
- Delivery emphasis: opener pop-in, tappable chips, or both first? (Recommend both, they reinforce.)
- How many starters at once (recommend 3) and how often oracles pop in proactively (recommend only on
open + on return, capped, until we see engagement data).
- Chips wording length: short label vs. the full oracle sentence. (Recommend a short attributed label
that expands to the full hook.)