| name | workshop-startup-instructions |
| description | Use when writing walkthrough.md, writing lab.md, creating a new workshop module, or updating a module setup checklist. For workshop content authors, not participants: require explicit startup scaffolding and Copilot configuration instructions. |
| domain | documentation |
| confidence | high |
| source | earned (module-01 workshop reference implementation) |
Context
When authoring workshop modules, the setup or prerequisites section must remove guesswork. Every walkthrough.md and lab.md should tell the reader exactly how to start the project and exactly how to configure Copilot before the exercise begins.
Required startup instructions
1. Project scaffolding via .NET CLI
- Include the exact
dotnet new ... command(s) for the module's stack.
- State where to run the command (for example, the workspace root) and whether the reader should
cd into the generated project.
- Name the exact file paths for any starter or sample files that must be created or replaced, using standard project conventions for that stack (
Controllers/, Program.cs, Pages/, and so on).
- If a module builds on an existing app instead of creating a new one, say exactly which folder or project to open and where follow-on edits belong.
- Do not use vague instructions like "create a starter file" or "set up a sample app" without commands and paths.
2. Copilot configuration
- Tell the reader to select Claude Sonnet 4.5 as the default workshop recommendation. Rationale: it gives a strong balance of speed and code-quality reasoning and follows repo-aware instructions well.
- Explain how to switch models: open the Chat panel, use the model picker dropdown, and confirm inline completions use the same model.
- Include a short settings checklist:
- Editor: Inline Suggest enabled
- GitHub Copilot: Enable Auto Completions enabled
- Copilot Chat mode called out explicitly for the module:
- Use Ask/Chat mode when the module is teaching fundamentals or guided prompting
- Use Agent mode only when the module is specifically teaching agent workflows
- Optional telemetry or data-sharing reminder for managed classroom or training environments
Reference implementation
- Canonical example:
workshop/module-01-copilot-foundations/walkthrough.md
- Copy the structure and tone of its Before You Begin: Setup Checklist, Configuring Copilot, and starter-file guidance sections.
Paste-in template
## Before You Begin: Setup Checklist
Complete this checklist before you start:
- [ ] VS Code open with the correct workspace folder (`{workspace-folder}`)
- [ ] GitHub Copilot extension installed and signed in
- [ ] Copilot Chat panel open
- [ ] Copilot model switched to **Claude Sonnet 4.5** for Chat and completions (see "Configuring Copilot" below)
- [ ] In `{workspace-folder}`, scaffold the project with `{dotnet-template-command}`, then place the starter file at `{controller-or-entrypoint-path}` (see below)
### Configuring Copilot
- **Set Copilot Chat to Claude Sonnet 4.5.** Use the model picker in the Chat panel.
- **Make sure inline completions use the same model.** Confirm completions also use **Claude Sonnet 4.5**.
- **Why this model for the workshop?** Claude Sonnet 4.5 provides a strong balance of speed and code-quality reasoning and follows repo-aware instructions well.
Recommended settings before you begin:
- **Editor: Inline Suggest** enabled
- **Copilot Chat mode:** `{Ask/Chat or Agent mode, with one-line reason tied to this module}`
- **GitHub Copilot: Enable Auto Completions** enabled
- **Optional:** Verify telemetry or data-sharing settings match the training environment policy
### Starter file — `{controller-or-entrypoint-path}`
Run:
```powershell
{dotnet-template-command}
cd {ProjectName}
Then add or update {controller-or-entrypoint-path}. Keep the file in the standard location for this project type.
## Anti-patterns
- Telling the reader to "create a sample project" without the exact command
- Mentioning a file to edit without naming its path
- Recommending a Copilot model without telling the reader where to change it
- Leaving Chat mode ambiguous when the module depends on Ask/Chat or Agent behavior