workshop-create

$npx mdskill add github/awesome-copilot/workshop-create

Creates a new workshop or uses an existing directory

  • Organizes work under a shared root
  • Depends on GitHub API and local file system
  • Detects existing workshop markers and scaffolds structure
  • Delivers results via file system and GitHub repository

SKILL.md

.github/skills/workshop-createView on GitHub ↗
---
name: workshop-create
description: 'Create a new workshop or use an existing directory as one. Handles two paths: (A) use an existing local directory the operator points at, or (B) create a new private GitHub repo in the signed-in account. Never creates a repo inside another repo.'
---

# Create a Workshop

Set up a new workshop — the root directory where desks live.

## When to use

- The operator says "create a workshop" or "start a new workshop"
- The operator wants to organize work under a shared root
- The operator has an existing directory they want to use as a workshop

## Two paths

### Path A: Use an existing directory

The operator already has a folder they want to use. Maybe it's a repo
they cloned, maybe it's a local project folder.

1. **Confirm the path exists.** If not, ask the operator for a valid path.
2. **Detect existing workshop markers.** Look for `desks/` or `classroom/`
   folders, a `workshop.md`, `CAIRN.md`, or `hands-up.md`. Finding any of
   these tells you this is an existing workshop — but this is detection
   only, not a stopping point. Continue to the next step and add whatever
   is missing; never overwrite what is already there.
3. **Scaffold the workshop structure** (only what's missing):
   ```
   <path>/
     desks/           # where desks live
     bench/            # shared workspace
     CAIRN.md          # operating disposition
     README.md         # workshop map
   ```
4. **Do NOT run `git init`.** The directory may already be a git repo, or
   the operator may not want one yet. Leave git state alone.
5. **Do NOT create a GitHub repo.** This path is local-only.

### Path B: Create a new private GitHub repo

The operator wants a fresh workshop backed by a GitHub repo.

1. **Get the workshop name.** Short, no spaces, kebab-case preferred.
2. **Pick and validate a clone parent.** `gh repo create --clone` clones
   into the **current working directory**, so choose an explicit parent
   directory first (ask the operator, or use their configured workshops
   directory) and confirm it is **not** already inside a git repo:
   ```bash
   git -C <parent-dir> rev-parse --is-inside-work-tree
   ```
   If that prints `true`, pick a different parent — otherwise the new
   repo nests inside the existing one. Create the parent if needed.
3. **Create and clone the repo from that parent:**
   ```bash
   cd <parent-dir>
   gh repo create <owner>/<name> --private --clone
   ```
   Use the operator's signed-in GitHub account as `<owner>`.
4. **Scaffold the workshop structure** inside the cloned repo. Git does
   not track empty directories, so add a placeholder in each otherwise
   empty folder or the scaffold will not survive the next clone:
   ```
   <name>/
     desks/.gitkeep
     bench/.gitkeep
     CAIRN.md
     README.md
   ```
5. **Commit and push** the scaffold, including the `.gitkeep` placeholders.

### Critical: Never nest repos

**Never run `git init` inside a directory that is already inside a git
repository.** Before initializing, check:

```bash
git -C <parent-dir> rev-parse --is-inside-work-tree
```

If that returns `true`, the parent is already a git repo. Do NOT create
another repo inside it. Either:
- Use Path A (just scaffold, no git)
- Or clone to a different location that isn't inside a repo

## CAIRN.md content

The operating disposition every desk reads:

```markdown
# cairn

the trail markers that say: someone was here, and they were honest.

## how a desk stands

- **stop is a valid finish.** don't force a result when the evidence
  says stop. "this doesn't work" is a finding, not a failure.
- **"done" means it holds.** if you'd bet your desk on it, ship it.
  if not, say what's uncertain and why.
- **hold scope.** touch only what the task needs. if you find something
  outside scope, note it and move on — don't chase it.
- **never go silent, never bluff.** partial + honest > complete + wrong.
  if you're stuck, say so. if you're unsure, say that too.
- **equal standing.** you can say "that's the wrong question." you can
  disagree with another desk. you answer to evidence, not hierarchy.

## the bench

the shared workspace. leave your work where others can find it.
label it. if it supersedes earlier work, say so.

## hands-up

when two desks disagree and can't settle it against external facts,
that's a hands-up. it goes to the operator. this is the system
working, not failing.
```

## After creation

Tell the operator:
- Where the workshop lives (full path)
- That they can now open desks in it with `desk-open`
- That Cairn will show signals once desks start emitting them

## Principles

- A workshop is a place, not a product. Keep it simple.
- The operator decides where things go. Don't assume.
- If an existing directory already has work in it, preserve everything.
  Only add what's missing.

More from github/awesome-copilot

SkillDescription
acquire-codebase-knowledgeUse this skill when the user explicitly asks to map, document, or onboard into an existing codebase. Trigger for prompts like "map this codebase", "document this architecture", "onboard me to this repo", or "create codebase docs". Do not trigger for routine feature implementation, bug fixes, or narrow code edits unless the user asks for repository-level discovery.
acreadiness-assessRun the AgentRC readiness assessment on the current repository and produce a static HTML dashboard at reports/index.html. Wraps `npx github:microsoft/agentrc readiness` and hands off rendering to the @ai-readiness-reporter custom agent. Supports policies (--policy) for org-specific scoring. Use when asked to assess, audit, or score the AI readiness of a repo.
acreadiness-generate-instructionsGenerate tailored AI agent instruction files via AgentRC instructions command. Produces .github/copilot-instructions.md (default, recommended for Copilot in VS Code) plus optional per-area .instructions.md files with applyTo globs for monorepos. Use after running /acreadiness-assess to close gaps in the AI Tooling pillar.
acreadiness-policyHelp the user pick, write, or apply an AgentRC policy. Policies customise readiness scoring by disabling irrelevant checks, overriding impact/level, setting pass-rate thresholds, or chaining org baselines with team overrides. Use when the user asks about strict mode, AI-only scoring, custom weights, CI gating, or wants org-wide standardisation.
ad-campaign-analyzerUse this skill when the user shares ad campaign performance data and asks what to cut, scale, or test. Trigger for prompts like "analyze my ad campaigns", "where am I wasting ad spend", "reallocate my ad budget", "which ads are actually working", or "ROAS analysis". Do not trigger for campaign planning or creative generation without performance data.
add-educational-comments'Add educational comments to the file specified, or prompt asking for file to comment if one is not provided.'
adobe-illustrator-scriptingWrite, debug, and optimize Adobe Illustrator automation scripts using ExtendScript (JavaScript/JSX). Use when creating or modifying scripts that manipulate documents, layers, paths, text frames, colors, symbols, artboards, or any Illustrator DOM objects. Covers the complete JavaScript object model, coordinate system, measurement units, export workflows, and scripting best practices.
agent-architectureDesign AI agent architectures through requirements discovery, or audit and diagnose architectural flaws in existing agents. Architecture only; excludes implementation and general code review.
agent-governance|
agent-owasp-compliance|