So getting back to Pharo's tags, I like the fact that there are some common namings, such as many packages will have tags like "Examples", or "Tests", however I still fail to see why would you want to put one class into multiple tags and what the benefit would be.
In my case I have a hard time dealing with hierarchical categorizations, I haev plenty of aspects of my code that runs accross in different ways. One case is the Model/Web/Application vs Tests, which they can be combined orthogonally. Another aspect is that I have classes that belong to different layers: Application, Interface-Web, Interface-Windows, Interface-CommandLine, Commands, Model, Persistence But them several of these classes belong to different "modules" or sets of functionality: Clients, Providers, Administration, Production With a Tag scheme, I can arbitrarily browse: All commands that are in the Provider module Persistence Tests Classes from Production and Persistence (which should be empty)