~~ 2021-03-10T13:56:23+01:00 I call it reverse dictionary problem. A common pattern in programmer/dev/architect activity. I expect this not to be easy to automate. So you have a description of a thing. And you have to find the keyword in some api/toolset/folklore/etc having a similar description. Eg. It's something that you can put things on. It's elevated from the ground, a flat area. Made of wood. Shelves? No no, you can stand next to it and put your laptop there, and work. A table? Sort of, but elevated higher, so you can stand? Oh a standing desk? IDK, I need what I described... -- Also, a task sometimes is, when you recognize a repeating pattern, to create a new thing that attempts covering most of them. Then.. go through all the patterns and see if the new thing is applicable to replace the instance of the pattern. Eg you have tests that many times navigate a webpaget to a certain users settings page, flips a flag having id id and logs out. withUserSetting(user, flagid); Later you might recognize that there are other actions that could be done on the settings page. So you might change your new thing to a functional one. withUserSetting(user, page -> flipFlag(page, id)); And could have changeEmail, ... similar to flipFlag...