Quick Answer
The Four-Factor Response Engine in Cosmic Story v2 improves AI-generated content by integrating personal context, astrological insights, user interactions, and output type, ensuring a tailored experience for each user.
Person, astrology, user signal, cadence — the four factors that shape every prompt before AI generation in My Zodiac AI's Cosmic Story v2. Plain-English breakdown of the composition step, the prompt structure, and why astrology is a modifier, not a dictionary.

The Four-Factor Response Engine in Cosmic Story v2 improves AI-generated content by integrating personal context, astrological insights, user interactions, and output type, ensuring a tailored experience for each user.
Person, astrology, user signal, cadence — the four factors that shape every prompt before AI generation in My Zodiac AI's Cosmic Story v2. Plain-English breakdown of the composition step, the prompt structure, and why astrology is a modifier, not a dictionary.
In a category where most AI astrology apps wrap a single LLM call in a daily horoscope template, Cosmic Story v2 does something structurally different: every artifact it generates runs through a four-factor composition step before the AI is even called. That step is what makes the output feel like it knows who the chapter is for, when, and in what shape.
This post walks through the four factors, names what each one is for, and shows how they merge into a single prompt.
┌──────────────────────────────┐
│ 1. Person + bond context │
│ 2. Astrological surface │
│ 3. User signal │
│ 4. Cadence shape │
└──────────────────────────────┘
↓
composed prompt
↓
AI generation
↓
post-process + encrypt
↓
surface in app
Each factor brings orthogonal information. None is redundant with another. Drop one and the output regresses noticeably; add a fifth and the prompt becomes muddier without gaining signal.
Who is this artifact for? What's their relationship to the user? What do we know about how this bond has felt recently?
This factor includes:
This is the dominant signal. Astrology can add texture, but if the prompt doesn't anchor on a specific person and the texture of that bond, the output drifts toward generic.
This is what makes the output cosmic story rather than journal app. But — critically — it's a modifier, not a dictionary.
Calculated via Swiss Ephemeris (sweph), the same library that powers every serious astrological practitioner's tooling. The factor includes:
Output gets 1 to 3 aspect chips — small structured tags like "Moon trine Venus" or "Mercury retrograde square Sun" — that the chapter can lean on as a modifier. The chapter doesn't have to say "Mercury's at 14° Gemini square your natal Sun". It says something like "directness will be tricky to land today; one short sentence beats three".
The default voice is plain English. Jargon mode is opt-in for the astrology-native user — same prompt, just the post-processor flips the surface vocabulary to use technical terms.
What's happened in the app, for this user, recently? Specifically:
This is what makes the chapter feel like the engine remembers your week. Without this factor, today's chapter is identical regardless of how you've been showing up.
What kind of artifact should this be?
Cadence picks the right template, the right length budget (chapter ≈ 220 words; coach reply ≈ 120 words; ritual nudge ≈ 30 words), and the right tone modifiers. Without it, the engine would have to guess from contextual cues, which is fragile.
The composed prompt is not a raw concatenation of user data. The composition step:
PERSON_1, PERSON_2) before the prompt reaches the provider; the post-processor swaps tokens back to real names after generation.The full payload goes to the AI provider via the AI_GENERATION_ADAPTER symbol token. The adapter is swappable; today My Zodiac AI uses one provider, tomorrow it might be another, and the engine doesn't care.
Once the AI responds, four things happen:
Then the artifact is persisted (in soulwise_chapters), an EventEmitter2 event fires (CHAPTER_COMPLETED), and the inbox surfaces it.
Most AI astrology apps wrap a single LLM call. The four-factor engine is the structural reason Cosmic Story v2 outputs feel like they know who they're for and when. It's also why the engine can produce up to 35 distinct AI-generated pieces per active premium user per week without sounding repetitive — every artifact composes off a different combination of person + signal + cadence.
This is, structurally, the wedge: nobody else in the category is composing prompts this way. Co-Star wraps one prompt per user per day. The Pattern doesn't generate fresh content at all. Paired only models one bond.
Four factors, one pipeline, eight artifact kinds. That's the engine.
Three factors gives generic-sounding output because cadence (the artifact type) collapses into one of the other factors. Five or more factors introduces overlap — the marginal factor doesn't bring orthogonal signal. Four turned out to be the smallest set that produces relationship-specific, time-specific, and texture-aware output without redundancy.
The engine reads journal entries marked as feed-enabled. Each entry has a per-entry 'private — do not feed to Luminara' flag. Off by default. Premium adds bulk-toggle for older entries. Nothing is shared outside your account.
No. Astrology is a modifier. The dominant signal is the person + bond context and recent user signal. Astrology adds texture — 'Mercury's drag is real today' rather than 'today is mathematically a high-stress day'. The default voice is plain English; jargon mode is opt-in.
Disclaimer: Astrology is for entertainment and personal-reflection purposes. While birth charts can offer valuable insight for self-understanding and growth, they are not a substitute for professional medical, legal, financial, or mental-health advice. Please consult qualified professionals for important life decisions.
Three factors gives generic-sounding output because cadence (the artifact type) collapses into one of the other factors. Five or more factors introduces overlap — the marginal factor doesn't bring orthogonal signal. Four turned out to be the smallest set that produces relationship-specific, time-specific, and texture-aware output without redundancy.
The engine reads journal entries marked as feed-enabled. Each entry has a per-entry 'private — do not feed to Luminara' flag. Off by default. Premium adds bulk-toggle for older entries. Nothing is shared outside your account.
No. Astrology is a modifier. The dominant signal is the person + bond context and recent user signal. Astrology adds texture — 'Mercury's drag is real today' rather than 'today is mathematically a high-stress day'. The default voice is plain English; jargon mode is opt-in.
Get personalized insights based on your birth chart