The Interaction Model Mapper enables a code-first approach to the development of a skill by abstracting the interaction model. Alexa types such as Intents and Slots are defined as Java classes, and corresponding interaction model data such as sample utterances, prompts, synonyms, etc. are stored in resource bundles. A skill is then constructed from a collection of these entities, and the interaction model is rendered from the CLI. This abstraction enables developers to componentize and share parts of their skill with others and promotes a standard software build/deploy lifecycle for skills.