1. A computer-implemented method, comprising: determining that a legacy application is executing on a client device; applying, when the legacy application is open in the client device, an adoption rule, wherein the adoption rule defines an instance in which a user is required to use a replacement application instead of the legacy application, wherein each of the legacy application and the replacement application are concurrently installed on the client device; determining that the adoption rule is satisfied; executing the replacement application when the adoption rule is satisfied; preventing, when the adoption rule is satisfied, use of the legacy application, determining that the replacement application is executing on the client device; identifying a user mistake relating to the replacement application, wherein the user mistake corresponds to a correct keystroke or user command in the legacy application; and automatically providing help to the user of the client device based on differences between the replacement application and the legacy application relating to the identified user mistake.