You are correct that the rock definition that you list is incomplete. Rocks, such as obsidian, are made of glass - which is not a mineral. Opal is not a mineral, but rather a mineraloid - which lacks a mineral crystal structure. Both can be found in rocks. These are just two examples I like to use, but there are plenty of others.
Now, in your question, you list both coal and chert. I would be cautious with naming these "not rocks", or with describing as lacking in the characteristics of rocks. I can see where you may be thinking that they may not be rocks. Even if the rock is naturally derived, such as coal, or petrified wood, there are still microscopic minerals that have crystallized in that rock. Chert is just a microcrystalline quartz. However, chert is an aggregate of mainly just quartz.
Keeping in mind those examples and key bits of information, a better definition of a rock can be "An aggregate of minerals or mineraloids." This extends to naturally derived (e.g., coal, petrified wood, pearls) and artificially (e.g., concrete) derived rocks. An aggregate can also mean a multicrystalline combination of the same mineral, such as chert, or a quartzite.