that's helpful tho i'm alittle confused about a couple things.
when you say different "cores", you mean like Bitcoin Core & btcd? i thought everyone was referring to them as different "implementations" of the bitcoin protocol?
Yes, different implementations. That is better wording.
so is a spec a generalized description written in plain language that is supposed describe what the protocol does from a practical standpoint and thus acts like a broad ruleset to which different cores or implementations are to adhere?
Yes, a spec should be a plain language description on what is and is not valid. Even this can become complicated, but it serves a design point for any implementation. But as I said above, the spec alone is not enough. Even if you have a written spec, but there is a single implementation that is used by the majority, the implementation would trump the spec if a non compliant bug came up.