← Back to blog

Energy Descriptions: One Analysis, Infinite Questions

aipromptsastrology

This is the most labor-intensive part of the project. Not in terms of code — in terms of prompt iterations, frayed nerves, and money spent on testing.


The Task

I need a text that describes the energy of a single natal chart element — a house or a planet — so completely and in such isolation that it can be used to answer any question. About career, about relationships, about personality — doesn't matter. The text is the same.

The idea came simply: if the energy of the 3rd house in a chart doesn't depend on what the user is asking — then it can be described once. But "described once" means described exhaustively. Without ties to context. Without assumptions about age, gender, or life situation. Data that can be used to describe any meaning of the house or planet — for an adult, a child, or even the chart of a nation, if you take the thought to its logical end.


What's Inside a Single Energy Text

For each house, the system generates a detailed description. Here's what's in it:

Rulers and co-rulers — who rules the house, in what sign, in what house it stands, what its essential and accidental dignity is. The house ruler is the "delegate" of all the house's themes: wherever it stands, that's where the house's affairs are directed.

Energies in the house — planets physically located in the house. Each described with aspects, dignities, distance from the cusp.

Two modes of manifestation — for each key planet, how the energy works from the outside (pressure of circumstances, the feeling of "I'm just inside this") and from the inside (energy as a personal instrument). We don't know which mode the person is in — so we describe both.

Control — who actually dominates the house and why. It's not always the ruler — sometimes a planet with the tightest aspect pulls everything toward itself.

Tensions — what creates pressure: squares, oppositions, malefic conjunctions.

Support — what helps: trines, sextiles, benefics in strong positions.

Connections — a graph of connections to other houses: through rulership, through aspects, through planet placement. Each connection with a strength rating.

Contradictions — structural paradoxes of the house. For example: the cusp in Capricorn says "discipline and system," but inside sits Neptune, which dissolves everything. The declared structure in practice works through dissolution.

For planets — a similar structure, but from the planet's perspective rather than the house's. In case the user asks "tell me about my Moon" or "what does my Mars mean."

A single such text runs 500–1,500 words. Twelve houses during chart initialization — that's a serious volume.


The Prompt and Its Iterations

The prompt for generating an energy text is large and rigid. It defines the exact structure: which sections must be present, what goes in each one, how to describe aspects, how to handle intercepted signs, how to distinguish essential from accidental dignity.

Sounds simple. In practice — close to a hundred iterations.

The process looked like this: take a test chart, run all 12 houses, read the results, find the problem, fix the prompt. Run again. Seems better. Take a second test chart — and discover that at some point you stopped watching for generalization and tuned the prompt to the first chart. Roll back, redo, generalize. And around it goes.

Testing infrastructure — Java, Spring Tests, several charts with different configurations. Every run of all 12 houses means an LLM call for each house, real money. Over several months, a few hundred euros accumulated on prompt testing alone.


Why GPT Couldn't Handle It

The old pipeline ran on GPT-5-mini — there, structure wasn't required, the model just consumed data and produced something. But for energy descriptions you need rigid structure: who rules what, where it stands, which aspects, with what orbs, who dominates and why.

GPT got confused. It mixed up the house ruler and the planet located in the house. It confused distance from the house cusp with distance from the start of the sign. It dropped sections — might produce CONTROL but forget TENSION. It simplified where precision was needed.

Sonnet handles it. Not perfectly — you still need to monitor quality and occasionally tweak prompt wording. But it holds the structure, doesn't drop sections, distinguishes rulership from placement.

This was the real reason for switching from GPT to Claude — not marketing, not preferences, but a specific task that one model handles and another doesn't.


The Result

The energy texts are visible on the frontend — in collapsible elements under each analysis point. This isn't interface decoration — it's the real data the system uses to construct its response.

A single text is generated once and saved to the database. From there it's reused in any analysis where that house or planet appears in the plan. The first question about a chart is expensive because the system generates the missing texts. The tenth is significantly cheaper because almost everything is already cached.

From twelve such texts, the general personality portrait is assembled. Compared to the energy descriptions, that was already a minor task — a few days of work and a few dozen euros on testing. But it has its own nuances too.

Comments