Add a skill to the manager. The call sequence is:
getParameterSchema() returns a non-empty object.setup() — throws if it returns false.addSkill fails closed: any validation miss or a setup() returning
false throws and the skill is not registered. The wrapper methods
loadSkill / loadSkillByName catch and convert the throw into a
[false, message] tuple that matches the Python SDK’s load_skill contract.
The skill instance to add.
Promise<void>
Error — duplicate single-instance skill already loaded.Error — missing required environment variables.Error — getParameterSchema() returns an empty object.Error — missing required NPM packages.Error — setup() returned false.