OK, let's review the integration points
 * The selection plugin must tell the rest of the system that there is valid new selection. Currently, it does this by calling the `onSuccessfulSelection()` method on core. This could be easily converted to an event. Say, `successfulSelection`. On the other side, the adder plugin could listen to this event, and show the adder plugin. (The same goes for invalid selections / hiding the adder button.)
 * The selection plugin places the selection in core's `selectedSkeleton`, and the adder plugin picks it up from there. Again, this data could be passed as part of the event announcing the selection.

These couplings can be made really loose; basically it's just the selection plugin announcing an event (with some data), and the adder plugin reacting to it.

 * The only "ugly" part I see (which implies a close coupling) is the `ignoreMouseup` flag, which the adder plugin currently sets on the core, to help the text selection plugin being triggered by clicking on the adder button.
This could probably be handled by other means, like stopping the event from propagating.

Would you be satisfied if I eliminated this last integration point, and converted the others to events?