This is a codespace with guidelines for developing and managing GitHub Skills exercises and supportive tooling. It provides:
- Unified settings for consistent styling (like linting).
- Tools for testing transition and grading workflows.
- Guidelines and recommendations for designing exercise steps.
- Copilot instructions and prompts to quickly make first drafts.
-
(Optional) For additional permissions options, fork the repository to your account/organization.
- By default a Codespace only has access to the original repository and your user space.
- If you need to edit exercises across multiple accounts/organizations, you will need to change a few settings.
-
Press the below button to start the Codespace. This may take a few minutes.
-
Open the VS Code Command Palette. Run the following command and select the workspace settings file.
File: Open workspace from file...
/exercise-creator/exercise-creator.code-workspace
With the help of GitHub Copilot, making a new exercise from scratch can be very quick. Here is a hello world level example. It creates an outline for planning then an actual exercise! 🧑🚀
Important
Copilot is good for bootstrapping and refinement. It will make a decent first draft, but it is your responsibility as a human (with feelings and empathy) to ensure the exercise is enjoyable and meets the needs of your learners.
-
Open the Copilot Chat panel and ensure you are in
Agentmode.- We recommend selecting
autofor the model or a model you find works well for your industry. ⚠️ Warning: The free (0x) models often skip instructions, which produces broken exercises. We don't recommend this.
- We recommend selecting
-
Ask Copilot to create a draft outline for an exercise.
Make a GitHub Skills exercise outline to teach the fundamentals of Git and version control. Assume no prior experience with version control.💡 Tip: You can also use the
/create-exercise-outlinecommand to be more explicit.💡 Tip: You can also ask Copilot to save this outline as an issue on a repository. Alternately, Copilot can review notes from an existing issue and restructure it.
-
Manually review and refine the draft exercise outline.
💡 Note: This may seem boring, but a few extra minutes here will make the actual draft exercise from Copilot much better.
-
With the outline refined, ask Copilot to create the actual exercise.
This outline looks good. Please make it into a real exercise.💡 Tip: You can also use the
/bootstrap-exercise-from-outlinecommand to be more explicit. -
Ask Copilot to review the exercise for common issues.
Please review the GitHub Skills exercise draft for common issues.💡 Tip: You can also use the
/review-exercisecommand to be more explicit. -
Refine the draft exercise (with Copilot) to make it production worthy. 🧐 Some example ideas:
Step 2 seems has an activity for XYZ but doesn't introduce it in the theory.The tone has become too serious. Make it more fun so it appeals to my students. They all really like anime. Make it an anime about our school mascot.Adjust this to follow our internal company standards in this doc: /my-documents/my-project/guidelines.md -
Ask Copilot to review the exercise for common issues (again).
I've made a lot of updates. Please do another review. -
Use the following Copilot prompt to publish the exercise to your account.
The exercise looks good. Please publish it to my account.💡 Tip: You can also use the
/publish-exercisecommand to be more explicit. -
Go to the exercise repo and give it a test run! 😎
-
Share it with your friends and coworkers! 🥳 🚀
The Exercise Creator is structured to handle multiple repositories via a dedicated repos folder. We recommend organizing exercises in this space.
-
Get the URL for your existing exercise repository. Example:
https://github.com/skills/getting-started-with-github-copilot.git
-
In the Codespace terminal, navigate to the
/workspaces/reposfolder.cd /workspaces/repos/ -
Clone the exercise.
git clone https://github.com/skills/getting-started-with-github-copilot.git
Please see the Skills docs for the full guidelines on planning, design, testing, and maintenance.
We are very open to contributions and enhancements from the community! 🧑🚀
Please feel free to create an issue or submit a pull request.

