agentleFS
MicrosoftKnown publishermicrosoft/copilot-camp/.github/skills/copilot-dev-camp-lab-author/SKILL.md

copilot-dev-camp-lab-author

Skill677 starsChanged 4 months agoMITView on GitHub

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.

The file

Show its rules and text

We split this skill into the rules it gives an agent

31 rules. About 0 are common, 26 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈26

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If the target subfolder is missing, ask for it.

    line 29
  2. Distinctive:

    If the lab number is missing, ask for it.

    line 30
  3. Distinctive:

    If knowledge-base URLs are missing, ask for them before drafting content.

    line 31
  4. Very specific:

    Create the file only under docs/pages/<subfolder>/.

    line 35
  5. Very specific:

    Use markdown file extension .md.

    line 36
  6. Distinctive:

    If file already exists, ask whether to pick a new number/slug or update existing content.

    line 38
  7. Distinctive:

    Every lab markdown file must begin with YAML frontmatter containing the following fields:

    line 42
  8. Distinctive:

    Every lab must have a unique code and title.

    line 74
  9. Distinctive:

    Every lab file must include YAML frontmatter with all required fields.

    line 75
  10. Distinctive:

    Use no more than 4-5 exercises total.

    line 76
  11. Distinctive:

    Keep steps concise; fewer is preferred when pedagogically valid.

    line 78
  12. Very specific:

    All links to external sites must include the {target=_blank} attribute so they open in a new tab.

    line 79
  13. Distinctive:

    Use this style in all generated labs:

    line 83
  14. Distinctive:

    Use this baseline structure:

    line 91
  15. Distinctive:

    Always add this placeholder block near the top of the lab, after the title:

    line 119
  16. Distinctive:

    Always include, before awards:

    line 155
  17. Distinctive:

    Always include one or more awards and ask the developer for suitable badges if missing:

    line 163
  18. Distinctive:

    When a step needs a screenshot, add placeholders:

    line 171
  19. Distinctive:

    Use the alternate text of the image to suggest to the lab author the image content to capture.

    line 177
  20. Distinctive:

    When this skill is triggered:

    line 181
  21. Distinctive:

    Ask for any missing required inputs.

    line 183
  22. Distinctive:

    Ask for knowledge-base URL list.

    line 186
  23. Distinctive:

    Ask which badges to add.

    line 187
  24. Distinctive:

    Ask for tags (comma-separated) and convert to YAML list.

    line 190
  25. Distinctive:

    Ask for difficulty level (100–500).

    line 191
  26. Distinctive:

    Ask for estimated time to completion (in minutes).

    line 192
  27. Distinctive:

    Ask for badge code.

    line 193
  28. Distinctive:

    Ask for products (comma-separated) and convert to YAML list.

    line 194
  29. Distinctive:

    Do not skip questions when required inputs are missing.

    line 198
  30. Very specific:

    Every step ends with cc-end-step.

    line 211
  31. Very specific:

    All links to external sites use the {target=_blank} attribute.

    line 216

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Copilot Dev Camp Lab Author

Purpose

Author a new lab file for Copilot Dev Camp, with the right structure and writing style, and place it in the correct docs path.

Required Inputs

Collect all required values before creating the lab:

  • Target subfolder under docs/pages.
  • Lab number.
  • Lab unique code.
  • Lab title.
  • Knowledge-base URLs (web sites/pages to use for grounded content).
  • Badge suggestions (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.

File Placement Rules

  • Create the file only under docs/pages/<subfolder>/.
  • Use markdown file extension .md.
  • Suggested naming pattern: <lab-number>-<slug>.md.
  • If file already exists, ask whether to pick a new number/slug or update existing content.

Frontmatter Requirements

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>
---

Frontmatter Field Definitions

  • code: Unique identifier for the lab (e.g., WIQ01).
  • title: Lab title matching the lab title in content.
  • description: 1-2 sentence summary of what students will learn (infer the value from the lab content, once created).
  • tags: Comma-separated list (ask user) converted to YAML list. Examples: agents, copilot, m365.
  • level: Difficulty level: 100 (beginner), 200 (intermediate), 300 (advanced), 400 (expert), 500 (professional).
  • time: Estimated time in minutes to complete the lab (infer the value based on the length of the content, once created).
  • badge: The badge code issued upon lab completion (e.g., WorkIQ-Expert).
  • products: Comma-separated list (ask user) converted to YAML list. Examples: Teams, Copilot, SharePoint, Work IQ.
  • created-date: Lab creation date in YYYY-MM-DD format.
  • last-edited-date: Most recent edit date in YYYY-MM-DD format.

Authoring Constraints

  • Every lab must have a unique code and title.
  • Every lab file must include YAML frontmatter with all required fields.
  • Use no more than 4-5 exercises total.
  • Each exercise must have no more than 5-6 steps.
  • Keep steps concise; fewer is preferred when pedagogically valid.
  • All links to external sites must include the {target=_blank} attribute so they open in a new tab. Example: [Link text](https://example.com){target=_blank}.

Writing Style And Structure

Use this style in all generated labs:

  • Instructional and practical, focused on outcomes.
  • Clear progression from context to hands-on steps.
  • Short paragraphs and concrete actions.
  • Enterprise-aware language: prerequisites, validation, and expected outcomes.
  • Each exercise should end with a visible checkpoint step component.

Use this baseline structure:

  1. Lab title and short intro.
  2. Scenario.
  3. Lab objectives.
  4. Exercises with numbered steps.
  5. Completion section.
  6. Visitor stats image.
  7. cc-next component.
  8. One or more cc-award components.

Mandatory Markup

A) Lab Title Heading

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

B) Video placeholder near top (commented out)

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>
-->

C) End each step with cc-end-step

C) End each step with cc-end-step

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.

D) Add cc-next at lab end

Always include:

<cc-next />

E) Visitor stats image before awards

Always include, before awards:

<img src="https://m365-visitor-stats.azurewebsites.net/copilot-camp/<section>/<lab-id>" />

F) One or more awards

Always include one or more awards and ask the developer for suitable badges if missing:

<cc-award badgeId="<BadgeId>" badgeName="<Badge Name>" />

G) Image placeholders where useful

When a step needs a screenshot, add placeholders:

![TODO: replace with screenshot description](../../assets/images/<folder>/<image>.png)

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.

Behavior Contract

When this skill is triggered:

  1. Ask for any missing required inputs.
  2. Confirm target file path under docs/pages/<subfolder>/.
  3. Confirm lab number and lab code.
  4. Ask for knowledge-base URL list.
  5. Ask which badges to add.
  6. Collect frontmatter information:
    • Prompt for lab title and description.
    • Ask for tags (comma-separated) and convert to YAML list.
    • Ask for difficulty level (100–500).
    • Ask for estimated time to completion (in minutes).
    • Ask for badge code.
    • Ask for products (comma-separated) and convert to YAML list.
    • Record created-date and last-edited-date (use current date if not provided).
  7. Generate the complete lab markdown with YAML frontmatter and required components.

Do not skip questions when required inputs are missing.

Generation Checklist

Before finalizing:

  • YAML frontmatter is present at the top of the file with all required fields.
  • Lab title heading (format: # Lab <code> - <title>) is present immediately after frontmatter.
  • Frontmatter values match the collected user inputs (code, title, description, tags, level, time, badge, products).
  • created-date and last-edited-date are in YYYY-MM-DD format.
  • File path is under docs/pages/<subfolder>/.
  • Exercise count is within limits.
  • Step count per exercise is within limits.
  • Every step ends with cc-end-step.
  • cc-next is present.
  • Visitor stats image is present before awards.
  • At least one cc-award exists.
  • Knowledge-base URLs were requested from developer.
  • All links to external sites use the {target=_blank} attribute.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.