Your fundamental rule earns a thousand likes from me! But I'll elaborate on the basics about what I think about during a match.
1) First I find out their player type in regards to aggression. The deciding factor here is how they act in seemingly ambiguous situations like stopped strings, and spaced safe attacks, where the initiative is almost entirely up to the players to take. Do they take it or back off? This gives me a basic framework for when I can run up to them and mix up against a player, and when I can steal opportunites that they give away by playing too safe (like not attacking at advantage) or if this player can be GI'd (they attack predictably at advantage to stop your advances). This can be tested by creating those situations and waiting to see how they respond.
2) I also take note of whether they tend to stay uninterruptable at advantage or leave openings. If they stay uninterruptable, GI is often a good choice. If they leave openings, attacking at disadvantage becomes an option. If they leave huge openings, trying to bait an evade, I make my next decision based on their "space sensitivity." More on that later.
3) Then, I see how they behave at disadvantage. Things that are worthing noting include whether they move around, tech evade/counter, or attack, and I act accordingly.
4) Now that I've covered the even/advantage/disadvantage situations, I'll talk about where it's ambiguous: the long range distance game. Here, approaching the opponent is based on their space-sensitivity I mentioned earlier. Every character controls space based on the area their moves cover. It's important to note the opponent's personal movelist as well. A space-sensitive player attacks right when you enter that space, as predictably as an AI, but also very effectively as it allows control of the maximum amount of space. Players like this must be baited by entering in and out of those spaces. Most players have a specific amount of time when you're in their space before they stop holding G or stepping around or w/e and attack. More sensitive players are easier to bait, but they're much harder to approach and mid/throw mixup. Less sensitive players can often be safely throw spammed.
5) Finally, this my framework for predicting the frequency of these behaviors. I have them categorized into three types: adapting, reacting, and stubborn. Adapters preemptively change their mixup options before it stops working in attempt to catch you when you change. Reacters act based on the last thing you did; they react to your current perceived set of options. Stubborn players don't change at all, catching people who think they eventually will. These three styles interact like in RPS: adapting > reacting > stubborn > adapting. However, an adapter may change into a reacter in reaction to your stubborn behavior! But the stubborn player might preemptively adapt to that reaction by changing to an adapter expecting a response to your obstinate stubborn play!
So yeah, those are my fundamentals.