Sono buono, grazie puts a claim about your character where an answer about your health was wanted, politely, with a thank you attached. The companion mistake is parlo buono l’italiano, where the same word has been handed to the speaking instead of to a thing. Both come out of English, which uses “good” for objects and, in relaxed moments, for actions as well, so there is nothing in the source sentence to divide.
Italian divides it twice. Buono is an adjective, so it describes a noun and takes that noun’s gender and number. Bene is an adverb, so it describes a verb and never changes its ending at all. Italian does let some adjectives stand in an adverb’s slot with particular verbs (parla chiaro, vai piano), so the claim here is not that a verb can only ever take an adverb: it is that between these two words, the verb takes bene. Once you know which of the two you want, the agreement half is the ordinary machinery of every Italian adjective, and the post on molto and molti is about exactly that, so this one stays on the choice between the words.
The second division is the one English gives you no warning about. How you are takes stare, and takes it with the adverb: sto bene, sto male, come stai. What you are takes essere: sono buono is a statement about the kind of person you are, and it is a sentence Italian allows, just not an answer to that question. With stanco, though, the verb is essere: sono stanco, not sto stanco. And stare does take some adjectives, in the sense of staying or behaving (stai tranquillo, sta’ buono), which is a different sentence from the one about how you are.
Il gelato è molto buono.
Parli molto bene l’italiano.
Sto bene, grazie.
Marco è bravo a cucinare.
Che bella giornata.
Nothing in those lines is settled by how good anything is. The ice cream and the day are things, so they take adjectives. The speaking is an action, so it takes the adverb. And two of the sentences are there because English says “good” in places where Italian has a third word waiting: a skill is bravo, which is an adjective and agrees with the person (brava, bravi), and how something strikes you is bello, which has its own shortened forms in front of a noun (un bel libro), on the same kind of principle, although bello patterns on the definite article and not on uno.
Bravo is worth a second look: it is the one an English speaker is least likely to reach for. Sei molto buono says you are kind. Sei molto bravo says you are good at it. The sentence about cooking wants the second, and it wants a with the infinitive after it: bravo a cucinare, brava a disegnare.
The edge that trips people up
Buono has two shapes, and the rule for which one you get is borrowed from somewhere you have already been. In front of a noun it shortens to buon exactly where uno shortens to un: buon viaggio, buon lavoro, un buon libro. And it keeps its full form exactly where uno would keep its own, in front of the same list of awkward beginnings that gives you lo studente and uno studente, which is the sound list from the post on il against lo.
Un buon libro e un buono studente.
Un buon studente is written and said as well. Both forms exist and neither is being ranked here: un buono studente is the one the uno pattern hands you, which is the reason it is the one printed above.
Then the comparatives, where the whole split repeats and catches the same learner a second time. Migliore is the adjective, so it describes a noun: questo vino è migliore, una soluzione migliore. Meglio is the adverb, so it goes with the verb: oggi sto meglio, parli meglio di me. When essere is impersonal, with an infinitive after it, a clause, or nothing at all, it is meglio and not migliore: è meglio andare, è meglio che tu vada, è meglio così. Where the word is describing a subject it is still migliore, which is why questo vino è migliore keeps the adjective, and è il migliore does the same. The other side of the pair works the same way, with peggiore as the adjective and peggio as the adverb, so learning one pair hands you the other.
Questo vino è migliore, e oggi sto meglio.
How to hear it
The choice is decided by the word being described, and that word is almost always next to the one you are choosing. A noun, including one that is implied rather than said, takes buono, and then it agrees with that noun. A verb takes bene, and then nothing moves, because bene has no endings to move.
There is a second question underneath, and it is about the verb instead of the word. If the sentence is about your health, your mood or how things are going, the verb changes too: come stai, not come sei. Come va does the same job for a situation. Both of those questions take bene as their plain answer.
The adjective and the adverb are the half of this you can carry over. English has “good” and “well” too, and a reader who can hear the difference in English has most of buono against bene already. The half with nothing to carry over is the verb: English asks how you are with the verb it uses for everything, and Italian keeps a second verb for that question and answers it with sto. That is the part that has to be learned rather than converted, and once come stai and sto bene are the reflex, what is left is a difference you could already hear in English.