If you know how to write a T shell, then you know how to write framework, because T is a kind of framework. What are you writing the framework for?
If you're writing it to tell the judge how to weigh the round ("discourse first", "real-world impacts", etc.), then you need your interpretation to tell the judge what they should weigh. Usually you have a tagline version of the Interp ("Interpretation: Vote for the team with the best discourse.") followed by a card ("Discourse shapes reality, racism is bad, postmodern rambling, etc.").
You generally don't need a violation unless the framework is deliberately targeting a certain argument. For example, if you were to read a framework argument which says that kritiks shouldn't be weighed, then you would read a violation which shows how the negative's argument is a kritik and why it's bad in the context of your specific Ks bad framework (ex. "Their argument is a red herring which forces us to defend the ontological implications of our plan instead of focusing on the actual policy benefits of the plan in the real world.")
Standards are important because (just like with T) they tell the judge why your framework is preferable ("Weighing only policy options prevents us from kritiking a team that says, 'Provide universal healthcare, except to niggers.'").
I personally think there's a really blurry line between standards and voters on a non-offensive framework. Even if you're using a framework as an offensive attack on your opponents (policy-first against a kritikal aff, for example), I think this belongs more on the relevant flow than the framework flow. In the aforementioned example of reading a policy-first framework against a kritkal aff, I would read the framework and then go to case and explain exactly why the 1AC can't be weighed under the framework, rather than framing it as a voter. You don't vote neg because a policy-maker framework is better, you vote neg because the aff doesn't have any impacts under such a framework.
On the whole, if your framework argument needs voters, then it's more abuse than general framework.
I'd advise downloading an existing framework file from a camp and reading through it to see what a typical framework shell looks like.