Reading through The Language of Modular Design, there’s really not much to disagree with. Spending time as a team to develop a design language is useful and, if nothing else, helps remove ambiguity.
But whenever I read articles like this, my fear is teams will invent entirely new vocabularies when there are existing ones that are more interoperable. Don’t create a class when an element or well-defined attribute will do. Look at schema.org or microformats. Once you’ve exhausted your options, then add a well-considered class and put it at the highest level of your component that makes sense.