So… I’ve Been Refactoring

It’s been about a month since I made a blog post. I haven’t disappeared. I’ve been refactoring. Which is why my astro apps have been winking in and out of existence on the web over the past couple of weeks.
After running my Natal beta tests, I started seeing the things I wanted to tighten. Putting the feature through its paces, exposed questions I hadn't needed to answer while I was building it.
I studied Astrology years ago, after studying Data Analytics I felt the two domains went together like peanut butter and jelly. I wasn't starting from scratch when I decided to build software that could read the sky. And, frankly, calculating the sky isn't all that mysterious once you have the right tools and data. I've tested my program's accuracy to the moon and back. The calculations work.
But accuracy isn't the same thing as interpretation.
That distinction has become increasingly important as I've gone deeper into this project. A system can identify an enormous amount of technically correct astrological information. The harder question is: what actually matters?
This is where my data-analyst brain clicked in. I like to get granular, I know what you're thinking..."Who Doesn't?" Right? 🤣 I want to know what is happening, how significant it is, what else is happening at the same time, and how those things relate to one another. Astrology gives me a lot to work with. The Moon alone can generate enough activity to make a reading very busy very quickly.
But a horoscope isn't supposed to be a database dump.
I've been exploring the distinction between signal and noise. Not every mathematically valid aspect deserves equal weight. Not every transit should become a paragraph. Sometimes something is background. Sometimes it's supportive. Sometimes it is the thing the entire reading needs to be built around.
I started testing this idea by looking at aspect “anchors” and challenging myself to classify them as severe, moderate, or mild and to explain why.
This becomes even more important when segmenting future products like Love, Career, or Personal Development Astrology. A career horoscope isn't just a general daily horoscope with the word “job” sprinkled over it.
The underlying celestial data doesn't change because we're asking a different question. The lens changes. My job is to determine which parts of that very large body of information are most relevant to the question being asked, and then build those alternate lenses.
This has meant learning a lot more about astrology. Building something that can interpret astrology forced me to examine assumptions I can get away with making intuitively as a reader. In turning those ideas into a repeatable process, every “well, obviously this is important!” becomes: But,* why?*
And that is really what last month's refactoring has been about.
The architecture of the Astro Engine itself was always intended to support multiple products and interpretive lenses. The beta didn't change the vision. It gave me a much better understanding of the constraints needed to get there. I've been refining the system around a workflow that has become increasingly important to me: Calculate → validate → structure → interpret → editorialize → publish.
The LLM is part of that process, but it isn't the astrology engine. It doesn't get to decide what the sky is doing. My job is to give it reliable, structured information and a defined interpretive problem. The more I understand the distinction between calculation, significance, interpretation and editorial judgment, the better I can use an LLM without asking it to do work it shouldn't be doing.
So no, I haven't been slacking off for a month.
I've been down in the engine room, pulling things apart, asking increasingly annoying questions, learning more astrology than I expected to, and trying to make the software behave less like an interesting experiment and more like the system I originally envisioned.
And now, finally, we're getting somewhere interesting: the sky stays the same, but the questions I'm asking of it are getting better.


Comments