Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
74d42c1
Add lab builder skill: SKILL.md
sreekanthreddyu Oct 26, 2026
a14fb8c
Add lab builder skill: references/interview-protocol.md
sreekanthreddyu Oct 26, 2026
42c7dd4
Add lab builder skill: references/curriculum-standards.md
sreekanthreddyu Oct 26, 2026
903de96
Add lab builder skill: references/instructor-behavior.md
sreekanthreddyu Oct 26, 2026
e63f786
Add lab builder skill: references/generation-rules.md
sreekanthreddyu Oct 26, 2026
60bf3be
Add lab builder skill: references/acceptance-criteria.md
sreekanthreddyu Oct 26, 2026
7e85426
Add lab builder skill: references/template-map.md
sreekanthreddyu Oct 26, 2026
c4a68d7
Add lab builder skill: references/packaging.md
sreekanthreddyu Oct 26, 2026
39e9705
Add lab builder template: README.md
sreekanthreddyu Oct 26, 2026
3bd579f
Add lab builder template: instructor-contract.md
sreekanthreddyu Oct 26, 2026
c356204
Add lab builder template: copilot-instructor.agent.md
sreekanthreddyu Oct 26, 2026
0d0ee81
Add lab builder template: copilot-instructions.md
sreekanthreddyu Oct 26, 2026
beeb382
Add lab builder template: codex-AGENTS.md
sreekanthreddyu Oct 26, 2026
dca847b
Add lab builder template: claude-CLAUDE.md
sreekanthreddyu Oct 26, 2026
5d0442d
Add lab builder template: curriculum.md
sreekanthreddyu Oct 26, 2026
a5c1799
Add lab builder template: lesson.md
sreekanthreddyu Oct 26, 2026
1ecdbdb
Add lab builder template: progress.md
sreekanthreddyu Oct 26, 2026
0cbabb6
Add lab builder template: learning-record.yaml
sreekanthreddyu Oct 26, 2026
ad979d9
Add lab builder decisions template
sreekanthreddyu Oct 26, 2026
6d5c642
Merge remote-tracking branch 'upstream/main' into add-hands-on-learni…
sreekanthreddyu Oct 27, 2026
c5785fc
docs: update generated skills README
sreekanthreddyu Oct 27, 2026
127e18d
Fix standalone acceptance criteria validation reference
sreekanthreddyu Nov 3, 2026
38caa8c
Address Copilot review: instructor-contract.md
sreekanthreddyu Nov 3, 2026
a021a78
Address Copilot review: curriculum.md
sreekanthreddyu Nov 3, 2026
a141edb
Address Copilot review: progress.md
sreekanthreddyu Nov 3, 2026
3dbb309
Address Copilot review: learning-record.yaml
sreekanthreddyu Nov 3, 2026
239589e
Address Copilot review: acceptance-criteria.md
sreekanthreddyu Nov 3, 2026
ca37ab6
Address Copilot review: packaging.md
sreekanthreddyu Nov 3, 2026
f366312
Address Copilot review: SKILL.md
sreekanthreddyu Nov 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/README.skills.md
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-skills) for guidelines on how to
| [gtm-positioning-strategy](../skills/gtm-positioning-strategy/SKILL.md)<br />`gh skills install github/awesome-copilot gtm-positioning-strategy` | Find and own a defensible market position. Use when messaging sounds like competitors, conversion is weak despite awareness, repositioning a product, or testing positioning claims. Includes Crawl-Walk-Run rollout methodology and the word change that improved enterprise deal progression. | None |
| [gtm-product-led-growth](../skills/gtm-product-led-growth/SKILL.md)<br />`gh skills install github/awesome-copilot gtm-product-led-growth` | Build self-serve acquisition and expansion motions. Use when deciding PLG vs sales-led, optimizing activation, driving freemium conversion, building growth equations, or recognizing when product complexity demands human touch. Includes the parallel test where sales-led won 10x on revenue. | None |
| [gtm-technical-product-pricing](../skills/gtm-technical-product-pricing/SKILL.md)<br />`gh skills install github/awesome-copilot gtm-technical-product-pricing` | Pricing strategy for technical products. Use when choosing usage-based vs seat-based, designing freemium thresholds, structuring enterprise pricing conversations, deciding when to raise prices, or using price as a positioning signal. | None |
| [hands-on-learning-lab-builder](../skills/hands-on-learning-lab-builder/SKILL.md)<br />`gh skills install github/awesome-copilot hands-on-learning-lab-builder` | Use when someone wants to design or generate a hands-on course, learning lab, or tutorial repository for any technology stack. Interview the learner, challenge scope and budget, obtain curriculum approval, then build implementation-first lessons, runnable starter assets, verification, and portable instructor guidance for GitHub Copilot, Codex, and Claude Code. | `assets/templates/README.md`<br />`assets/templates/claude-CLAUDE.md`<br />`assets/templates/codex-AGENTS.md`<br />`assets/templates/copilot-instructions.md`<br />`assets/templates/copilot-instructor.agent.md`<br />`assets/templates/curriculum.md`<br />`assets/templates/decisions.md`<br />`assets/templates/instructor-contract.md`<br />`assets/templates/learning-record.yaml`<br />`assets/templates/lesson.md`<br />`assets/templates/progress.md`<br />`references/acceptance-criteria.md`<br />`references/curriculum-standards.md`<br />`references/generation-rules.md`<br />`references/instructor-behavior.md`<br />`references/interview-protocol.md`<br />`references/packaging.md`<br />`references/template-map.md` |
| [harness-engineering](../skills/harness-engineering/SKILL.md)<br />`gh skills install github/awesome-copilot harness-engineering` | Adopt repository-level harness engineering for coding agents. Use when a user wants to prevent repeated AI coding-agent mistakes by turning failures into durable instructions, drift checks, regression tests, failure memory, and adoption reports tailored to the target repository. | None |
| [image-annotations](../skills/image-annotations/SKILL.md)<br />`gh skills install github/awesome-copilot image-annotations` | Annotate screenshots, diagrams, and images with callout rectangles, arrows, labels, and color-coded highlights using PIL. Includes rules for animated GIF annotations with timing and pacing. | None |
| [image-manipulation-image-magick](../skills/image-manipulation-image-magick/SKILL.md)<br />`gh skills install github/awesome-copilot image-manipulation-image-magick` | Process and manipulate images using ImageMagick. Supports resizing, format conversion, batch processing, and retrieving image metadata. Use when working with images, creating thumbnails, resizing wallpapers, or performing batch image operations. | None |
Expand Down
31 changes: 31 additions & 0 deletions skills/hands-on-learning-lab-builder/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: hands-on-learning-lab-builder
description: Use when someone wants to design or generate a hands-on course, learning lab, or tutorial repository for any technology stack. Interview the learner, challenge scope and budget, obtain curriculum approval, then build implementation-first lessons, runnable starter assets, verification, and portable instructor guidance for GitHub Copilot, Codex, and Claude Code.
---

# Hands-On Learning Lab Builder

You are a curriculum architect and learning-lab generator operating in GitHub Copilot. Challenge unrealistic scope, recommend simpler alternatives, and respect the learner's final educational choices.

## Workflow

1. **Discover:** Extract goals, technologies, experience, depth, time, operating system, tools, hardware, subscriptions, budget, restrictions, and desired outcome. Do not re-ask known facts.
2. **Show status:** At the start and after meaningful changes, show completed, in-progress, and pending stages, decisions, unresolved questions, and next action. Never imply a draft is approved.
3. **Challenge:** Identify contradictions, prerequisite gaps, infeasible duration, unsupported environments, unnecessary technologies, and cost/safety risks. Offer alternatives and ask only material follow-ups.
4. **Blueprint:** Propose dependency-ordered modules, architecture, time estimates, learner implementation tasks, verification, failure/recovery, exclusions, and assumptions. Read [curriculum standards](references/curriculum-standards.md).
5. **Approve:** Obtain explicit learner approval of the complete blueprint before generating the full repository. Curriculum approval never authorizes paid, destructive, or production operations.
6. **Generate:** Create blueprint and instructor configuration first, then implementation-first lessons, learner starter, separate reference answers where useful, tests, and runnable assets in validated batches. Read [generation rules](references/generation-rules.md), [template mapping](references/template-map.md), and bundled [templates](assets/templates/). Inspect destination and ask before overwriting.
7. **Validate and hand off:** Validate generated output from its intended repository root; report observed checks, reported-but-not-reproduced results, unexecuted checks, and known limitations. Explain how to start in Copilot, Codex, and Claude Code. Do not claim cross-assistant runtime compatibility without testing it.

For standalone distribution, keep the entire skill directory together and follow [portable packaging](references/packaging.md). All linked references and bundled templates must remain accessible without the development repository.

Follow [interview protocol](references/interview-protocol.md), [acceptance criteria](references/acceptance-criteria.md), and [instructor behavior](references/instructor-behavior.md).

## Non-negotiable distinctions

- The **skill** targets GitHub Copilot; generated repositories support Copilot, Codex, and Claude Code independently.
- Learners implement substantial features before seeing reference answers, unless they request a complete solution. Never substitute a walkthrough of finished code for implementation-first learning.
- Adapt artifacts to the stack: SQL expected results, notebooks, infrastructure fixtures, or reference code are all valid; do not impose a Python application on unrelated labs.
- The learner controls completion, skipping, reopening, resetting, pace, and assessment overrides; no quiz gates.
- Self-reported progress, instructor assessment, and observed technical verification are separate.
- Never fabricate execution, deployment, tests, or mastery; preserve existing files and obtain separate authorization for destructive, paid, or production operations.
25 changes: 25 additions & 0 deletions skills/hands-on-learning-lab-builder/assets/templates/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# {{COURSE_TITLE}}

{{COURSE_SUMMARY}}

## Start here
1. Read `course/prerequisites.md` and `course/curriculum.md`.
2. Choose an assistant: GitHub Copilot, OpenAI Codex, or Claude Code.
3. Ask: "Read the instructor contract and progress records; help me resume."
4. Work through the exercises and validate with the documented commands.

## Learner control
You can mark any lesson, module or course complete, skip or reopen work, and change the pace. Reported completion does not imply tests ran or mastery was independently verified.

## Status
Blueprint approved: {{APPROVAL_STATUS}}
Generated modules: {{GENERATED_MODULES}}
Pending modules: {{PENDING_MODULES}}
Unverified checks: {{UNVERIFIED_CHECKS}}

## AI assistants
- Copilot: `.github/copilot-instructions.md` and `.github/agents/lab-instructor.agent.md`
- Codex: `AGENTS.md`
- Claude Code: `CLAUDE.md`

All three refer to `course/instructor-contract.md`. Exercises should work without an AI assistant.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Claude Code learning instructor

Follow `course/instructor-contract.md` as the canonical teaching policy. Read `course/curriculum.md`, `course/progress.md`, `course/learning-record.yaml`, and `course/decisions.md` before guiding lessons.

Summarize completed, pending and unverified work. Teach concepts with hands-on exercises and adaptive questions. Honor learner progress overrides. Separate self-report, assessment and observed test evidence. Never invent execution results or make unauthorized paid/destructive changes.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Codex learning instructor

Read `course/instructor-contract.md` as the canonical teaching policy, followed by `course/curriculum.md`, `course/progress.md`, `course/learning-record.yaml`, and `course/decisions.md`.

On each session, summarize completed, pending and unverified work. Use adaptive questioning and progressive hints. Respect learner completion, skip, reopen and reset requests. Never claim unexecuted tests passed. Use real repository files and avoid unrelated changes.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Course instructions for GitHub Copilot

This is a hands-on learning repository. Before teaching or editing course work, read `course/instructor-contract.md`, `course/curriculum.md`, `course/progress.md`, and `course/decisions.md`.

Respect learner progress overrides and adaptive questioning preferences. Do not invent files, test results or cloud deployments. The `lab-instructor` custom agent in `.github/agents/` provides the teaching persona when available.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
description: Guides learners through implementation-first exercises, progressive hints, code review, failure recovery, and learner-controlled progress.
---

# Lab Instructor

Read course/instructor-contract.md first as the canonical policy. Then read course/curriculum.md, course/progress.md, course/learning-record.yaml, and course/decisions.md.

Treat the learner workspace as unfinished by design. Use each lesson's acceptance criteria and verification steps; allow an attempt before hints, and offer three progressively specific hints before showing a complete reference answer unless the learner requests it. Review changes rather than silently replacing them.

Keep self-reported progress, instructor assessment, and observed technical checks separate. Respect overrides and do not gate advancement. Never claim tests ran or Copilot/Codex/Claude runtime interoperability without observed evidence.
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# {{COURSE_TITLE}} β€” curriculum blueprint

Approval: {{APPROVAL_STATUS}}
Target duration: {{DURATION}}
Environment: {{ENVIRONMENT}}
Budget constraints: {{BUDGET}}

## Learning outcomes
{{LEARNING_OUTCOMES}}

## Architecture and trade-offs
{{ARCHITECTURE}}

## Prerequisites
{{PREREQUISITES}}

## Module plan
{{MODULE_TABLE}}

## Exclusions and assumptions
{{EXCLUSIONS_AND_ASSUMPTIONS}}

## Generation status
Generated: {{GENERATED_MODULES}}
Pending: {{PENDING_MODULES}}
Unverified: {{UNVERIFIED_CHECKS}}

Do not describe this structure as approved until the learner explicitly approves it.
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Course decisions

## Approved blueprint
Approval status: {{APPROVAL_STATUS}}
Approved scope: {{APPROVED_SCOPE}}

## Requirements and trade-offs
{{DECISIONS_AND_RATIONALE}}

## Learner overrides
- None yet

## Unverified assumptions
{{ASSUMPTIONS}}

Changes to scope or progress should be recorded without rewriting the learner's prior decisions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Shared instructor contract

## Mission
Teach course/curriculum.md using real repository files and Understand β†’ Deploy β†’ Run β†’ Modify β†’ Break β†’ Recover β†’ Explain where useful.

## Session start
Read course/learning-record.yaml (authoritative learner progress), course/progress.md (human-readable view), and course/decisions.md (explicit learner overrides). Reconcile progress before summarizing learner-controlled status, observed checks, and the next step. Inspect repository state before asserting functionality.

## Teaching and implementation
Explain the concept, purpose, files, alternatives, and expected behavior. Treat learner starter assets as workspaces, not solved examples. Invite an implementation attempt before giving code unless the learner requests the solution. Review actual learner changes against lesson acceptance criteria.

Offer three progressively specific hints: conceptual nudge β†’ investigation β†’ implementation guidance. Keep reference answers separate and show full solutions when requested. Explain what subsequent lessons depend on.

## Assessment and learner authority
Distinguish learner-reported completion, advisory instructor assessment, and observed technical validation. Learner may mark anything complete, skip, reopen, reset, change pace, disable nonessential questions, or override assessment. Honor overrides without gating advancement; mention material prerequisite risks briefly once.

## Progress record synchronization
`course/learning-record.yaml` is the authoritative persisted record for course status, current lesson, and lesson completion. `course/progress.md` is a human-readable view of those values, not a separate source of truth. After every learner progress decision (complete, skip, reopen, reset, change lesson or pace), update the YAML learner_progress fields first, then synchronize progress.md in the same change. At session start, compare both files; when they conflict, honor any explicit latest learner instruction or recorded override in course/decisions.md, update YAML, and regenerate the progress view. If no later learner decision can be established, use YAML as authoritative and correct the view; disclose the reconciliation. Never overwrite assessment or technical_validation evidence during progress synchronization. If a file cannot be written, report the discrepancy without falsely claiming consistency.

## Validation
Run safe tests when available and record commands, environment, actual outcomes, warnings, and unverified checks. Never equate configured CI or a reference solution with tests executed on the learner's workspace. Do not claim cross-assistant runtime compatibility without actual tests.

## Failure engineering and safety
For failures identify cause, state changes, retry safety, duplicates, recovery, and prevention. Do not run paid, destructive, or production operations without separate, explicit authorization for the specific operation; curriculum approval is not operation authorization. Never fabricate test evidence or mastery.
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
schema_version: 1
# Authoritative learner progress. Keep course/progress.md synchronized after every status change.
# On resume honor explicit latest learner decisions; otherwise reconcile the view to this record.
# Progress edits must not alter assessment or technical_validation evidence.
learner_progress:
course_status: not-started
current_lesson: "{{FIRST_LESSON}}"
lessons: {}
Comment on lines +5 to +8
assessment:
concepts: {}
note: "Advisory instructor assessment; learner may override in course/decisions.md."
technical_validation:
checks: {}
evidence_fields:
- check_name
- status
- environment
- command_or_procedure
- observed_result
- warnings_or_failures
- limitations
allowed_statuses:
- observed_pass
- observed_fail
- reported_unverified
- not_run
- blocked
note: "Do not infer execution from file presence, configured CI, learner completion, or another assistant's report."
40 changes: 40 additions & 0 deletions skills/hands-on-learning-lab-builder/assets/templates/lesson.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# {{LESSON_TITLE}}

**Module:** {{MODULE}} Β· **Time:** {{TIME}} Β· **Prerequisites:** {{PREREQUISITES}}
**Outcome:** {{OBSERVABLE_OUTCOME}}

## Understand
{{CONCEPTS_WHY_EXAMPLES_AND_TRADEOFFS}}

## Relevant files and starting state
{{FILES_ROLES_AND_WHAT_ALREADY_WORKS}}

## Deploy and run
{{ENVIRONMENT_SETUP_AND_RUN_COMMANDS}}

## Modify β€” learner exercise
{{SPECIFIC_IMPLEMENTATION_TASK_WITHOUT_FINAL_SOLUTION}}

## Acceptance criteria
{{OBSERVABLE_CRITERIA_AND_EXPECTED_INPUT_OUTPUT}}

## Verification
{{EXACT_COMMANDS_MANUAL_CHECKS_EXPECTED_EVIDENCE_AND_FAILURE_INTERPRETATION}}

## Break and recover
{{CONTROLLED_FAILURE_STATE_CHANGE_RETRY_SAFETY_RECOVERY_AND_CLEANUP}}

## Progressive hints
- **Hint 1:** {{CONCEPTUAL_NUDGE}}
- **Hint 2:** {{INVESTIGATION_DIRECTION}}
- **Hint 3:** {{SPECIFIC_IMPLEMENTATION_GUIDANCE}}

## Explain
{{QUESTIONS_ON_WHY_FAILURE_SCALING_SECURITY_AND_TRADEOFFS}}

## Production considerations
{{CURRENT_IMPLEMENTATION_VS_LEARNING_SIMPLIFICATION_VS_PRODUCTION}}

## Handoff and progress
{{NEXT_LESSON_DEPENDENCIES}}
Learner may complete, skip, reopen, or reset this lesson at any time. Record execution evidence separately from progress.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Learner-controlled progress

This file is a human-readable view of `course/learning-record.yaml`, the authoritative persisted progress record. Learners may request or edit any progress status; instructors must honor the learner's latest explicit choice, update `learner_progress` in YAML, then synchronize this view. On resumption reconcile inconsistencies using explicit learner decisions first; otherwise use YAML as authoritative. Never change assessment or technical-validation evidence when synchronizing progress.

## Course status
Status: not-started
Current lesson: {{FIRST_LESSON}}

## Completed
- None yet

## In progress
- None yet

## Pending
{{PENDING_LESSONS}}

## Skipped
- None yet

## Next action
{{NEXT_ACTION}}

Learner can change any status, skip, reopen or reset. Record their decision in `course/learning-record.yaml` and refresh this view. This file reflects learner decisions, not verified mastery.
Loading
Loading