Entered Middle English from Latin nescius, "not knowing," meaning foolish. By the 15th century: shy or wanton. Later: fastidious and precise (still alive in "a nice distinction"). Only in the 18th century did it drift to agreeable.
Assessment: Fully documented. The most extreme semantic journey of any common English word.
Interesting claims
A coded insult that stuck
A modern theory claims "nice" remains secretly derogatory, damning with faint praise, a fossil of its original meaning.
Assessment: Debatable as usage commentary; false as an origin claim.
Stories
The word that kept changing sides
The story told in every linguistics lecture: Chaucer's nice meant foolish, then it meant fastidious, then delicate, then agreeable. Each century thought it owned the meaning. Each century was wrong.
Assessment: The drift is documented word by word. The story is beloved because it shows meaning is a vote, not a decree, and everyone reading this sentence is still voting.
Sources and further reading
OED, nice, from Latin nescius, ignorant
Worth asking
If one word can travel from "stupid" to "sweet" in six centuries, what are your words becoming right now?