{"id":15994437,"url":"https://github.com/ravenstine/skillex","last_synced_at":"2025-03-18T01:30:57.811Z","repository":{"id":48521256,"uuid":"99080360","full_name":"Ravenstine/skillex","owner":"Ravenstine","description":"A DSL for writing interactive fiction for voice-activated speakers.","archived":false,"fork":false,"pushed_at":"2018-02-06T06:46:53.000Z","size":329,"stargazers_count":9,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-09T07:08:54.384Z","etag":null,"topics":["alexa","amazon-alexa-skill","amazon-echo","echo-dot","voice-activated"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ravenstine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-08-02T06:26:22.000Z","updated_at":"2023-02-26T07:09:54.000Z","dependencies_parsed_at":"2022-08-31T14:02:43.520Z","dependency_job_id":null,"html_url":"https://github.com/Ravenstine/skillex","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ravenstine%2Fskillex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ravenstine%2Fskillex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ravenstine%2Fskillex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ravenstine%2Fskillex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ravenstine","download_url":"https://codeload.github.com/Ravenstine/skillex/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221704192,"owners_count":16866708,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alexa","amazon-alexa-skill","amazon-echo","echo-dot","voice-activated"],"created_at":"2024-10-08T07:08:55.477Z","updated_at":"2024-10-27T16:27:24.431Z","avatar_url":"https://github.com/Ravenstine.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Skillex\n=======\n\n- Write Alexa skills through human-readable configuration.\n- Easily handle many complex states within a skill.\n\n## Getting Started\n\n`npm install -g skillex`\n\nThis tool is designed to be used with the Ask CLI.  \n\n[Ask CLI](https://developer.amazon.com/docs/smapi/ask-cli-command-reference.html): `npm install -g ask-cli`\n\nIt's also recommended you use Bespoken Tools for developing your skill without having to frequently redeploy to see your changes.\n\n[Bespoken Tools](https://bespoken.tools/): `npm install -g bespoken-tools`\n\n## Core Concepts\n\nA skill is configured almost entirely through YAML files referred to as \"scenes\".  An entire skill can be represented in a single scene, or multiple scenes can be used to represent groups of states(e.g. different \"scenes\" in a text adventure game).  `entrypoint.yml` is always the default scene.\n\nEach scene contains one or more \"labels\", which are merely the top-level objects in a scene.  Labels represent a very specific scene in the execution of a skill, and can contain various key/value pairs used to build a skill response.\n\nFor example, a label can have a `say:` key that defines the speech text that is returned to an Alexa-enabled device.  If you want to ask the user a question and wait for a response, you would define that with a `ask:`.\n\n## Tutorial\n\nLet's make a new skill.\n\n```sh\nskillex new my-skill\n```\n\nIn `my-skill/scene/entrypoint.yml`, you'll see the following:\n\n```yaml\nIntro:\n  speak: Congratulations!  You've successuflly run your first skill.\n```\n\nBefore we continue, build your schema by running `skillex build-model`.  This will write a JSON file to the `build/alexa/models` directory.\n\nAssuming you have set up the Ask CLI with the proper credentials, you can deploy your skill by running:\n\n```sh\nskillex deploy\n```\n\nWhich is the equivalent of running\n\n```sh\nskillex bundle\nask deploy\n```\n\nIf the deploy is successful, your skill should now be available on an Alexa-enabled device associatd with your Amazon developer account.  Just say \"Alexa, open my skill\" and see what happens, or use the new [test simulator](https://developer.amazon.com/blogs/alexa/post/577069bd-d9f9-439a-b4bf-3b0495e3d24b/announcing-new-test-simulator-beta-for-alexa-skills).\n\n## Tests\n\nTesting uses [Mocha](https://github.com/mochajs/mocha), and is pretty much a joke at the moment.\n\n`npm install -g mocha`\n\nRun tests with the `mocha` command in the root project folder.\n\n## Current State\n\nI'm working on a serious rewrite.  Will add more documentation soon as things stabilize.\n\n## TODO\n\n- `go to scene:` **complete**\n- `go to random:`\n- `condition:` **complete enough**\n- `card:` **complete**\n- `assign:` w/ operators **complete**\n- template strings **complete**\n- `script:` **complete**\n- template keys **complete**\n- `audio:` **complete**\n- linter/warning system to catch errors \u0026 pitfalls\n- `reprompt:` **complete**\n- full support of multi-language strings **complete**\n- session persistence\n- `video:`\n- utterance expander **complete**\n- intent wildcard **complete**\n- automatic mapping of simpler intent names to AMAZON intent names **complete**\n- automagically guess built-in slot types based on slot names **complete**\n- encrypted attributes\n- simple slot value extraction **complete**\n- your utterances are also your intents \u0026 samples **complete**\n- `require slots:`\n- templates and the Display directive\n- `prompts:`\n- Random speech strings to easily provide converstional variance **complete**\n\n## License\n\nSee [LICENSE.txt](https://github.com/Ravenstine/skillex/blob/master/LICENSE.txt).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fravenstine%2Fskillex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fravenstine%2Fskillex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fravenstine%2Fskillex/lists"}