microsoft/copilot-dev-camp-lab-author
| Creates new Copilot Dev Camp lab markdown files under docs/pages/<subfolder>/ with a consistent structure, concise exercises, and required custom components. Use when asked to author a new lab, scaffold a lab file, or draft a Copilot Dev Camp lab page.
npx skills add https://github.com/microsoft/copilot-camp --skill copilot-dev-camp-lab-author
Author a new lab file for Copilot Dev Camp, with the right structure and writing style, and place it in the correct docs path.
Collect all required values before creating the lab:
docs/pages.badgeId, badgeName) for cc-award.If the target subfolder is missing, ask for it.
If the lab number is missing, ask for it.
If knowledge-base URLs are missing, ask for them before drafting content.
docs/pages/<subfolder>/..md.<lab-number>-<slug>.md.Every lab markdown file must begin with YAML frontmatter containing the following fields:
---
code: <lab-unique-code>
title: <lab-title>
description: <brief-description-of-lab>
tags: [tag1, tag2, tag3]
level: <100|200|300|400|500>
time: <time-to-complete-in-minutes>
badge: <badge-code>
products: [product1, product2]
created-date: <YYYY-MM-DD>
last-edited-date: <YYYY-MM-DD>
---
WIQ01).agents, copilot, m365.100 (beginner), 200 (intermediate), 300 (advanced), 400 (expert), 500 (professional).WorkIQ-Expert).Teams, Copilot, SharePoint, Work IQ.YYYY-MM-DD format.YYYY-MM-DD format.{target=_blank} attribute so they open in a new tab. Example: Link text{target=_blank}.Use this style in all generated labs:
Use this baseline structure:
cc-next component.cc-award components.Immediately after the YAML frontmatter (first line of markdown content), always add a level-1 heading with the lab code and title in this format:
# Lab <code> - <title>
Example:
# Lab WIQ02 - Work IQ A2A Protocol
Always add this placeholder block near the top of the lab, after the title:
<!--
<div class="lab-intro-video">
<div style="flex: 1; min-width: 0;">
<iframe src="//www.youtube.com/embed/<VIDEO_ID>" frameborder="0" allowfullscreen style="width: 100%; aspect-ratio: 16/9;">
</iframe>
<div>Get a quick overview of the lab in this video.</div>
</div>
</div>
-->
At the end of every step, add:
<cc-end-step lab="<lab-code>" exercise="<exercise-number>" step="<step-number>" />
Values must match the current lab code, exercise index, and step index.
Always include:
<cc-next />
Always include, before awards:
<img src="https://m365-visitor-stats.azurewebsites.net/copilot-camp/<section>/<lab-id>" />
Always include one or more awards and ask the developer for suitable badges if missing:
<cc-award badgeId="<BadgeId>" badgeName="<Badge Name>" />
When a step needs a screenshot, add placeholders:

Use the alternate text of the image to suggest to the lab author the image content to capture. The image path should be relative to the lab file.
When this skill is triggered:
docs/pages/<subfolder>/.Do not skip questions when required inputs are missing.
Before finalizing:
# Lab <code> - <title>) is present immediately after frontmatter.YYYY-MM-DD format.docs/pages/<subfolder>/.cc-end-step.cc-next is present.cc-award exists.{target=_blank} attribute.Take microsoft/copilot-dev-camp-lab-author from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.