Skip to main content
skill GitHub Copilot official · GitHub

workshop-create — GitHub Copilot skill: what it does, how to install

Scaffolds a workshop root directory locally or creates a private GitHub repo. It sets up desks, bench, and Cairn operating rules.

Install into GitHub Copilot · Skills CLI (Vercel) All methods and platforms ↓
npx skills add github/awesome-copilot --skill workshop-create
Open on GitHub

What workshop-create does

The skill initializes a workshop workspace to organize tasks and subagent desks under a shared root. It generates the desks/ directory, a shared bench/ folder, a map in README.md, and operating principles in CAIRN.md.

It runs two different setup paths. For an existing folder, it checks for previous markers and adds missing files without overwriting data or touching git. For a new setup, it creates a private repo via gh repo create. The skill checks the parent folder with git rev-parse beforehand, preventing nested repositories.

Install this if your workflow relies on Cairn and desk conventions. Skip it if you do not use this workspace structure.

What it helps with

  • Create a private GitHub repository with desks and bench directories
  • Add workshop scaffold to an existing folder without overwriting files
  • Prevent nesting one git repository inside another
  • Generate CAIRN.md operating guidelines for agent tasks

Example prompts for the agent

  • create a workshop
  • start a new workshop
  • use this folder as a workshop

How to install workshop-create

1Skills CLI (Vercel)

npx skills add github/awesome-copilot --skill workshop-create

2GitHub CLI

gh skill install github/awesome-copilot workshop-create

3Manually: put the files in place

.github/skills/workshop-create/SKILL.md

From the same set554

The whole set →
git-commit official github This skill reviews Git changes, stages related files, and creates Conventional Commits. Use it when you want an agent to make one commit or split work into separate commits. GitHub Copilot 47,165installs excalidraw-diagram-generator official github Turn a plain-language description into an Excalidraw diagram. Useful for mapping processes, system structure, and relationships between entities. GitHub Copilot 31,639installs multi-stage-dockerfile official github This skill guides GitHub Copilot in writing multi-stage Dockerfiles for different languages and frameworks. Use it when the final runtime image should contain fewer build dependencies. GitHub Copilot 29,688installs documentation-writer official github Skill that turns the agent into a technical writer following the Diátaxis framework: tutorials, how-to guides, reference, and explanation. Proposes structure before writing. GitHub Copilot 27,757installs prd official github Turns a feature idea into a structured PRD with user stories, technical requirements, and risks. Use it when planning a software feature or an AI-powered one. GitHub Copilot 24,035installs refactor official github This skill reshapes existing code without changing its external behavior. Use it for gradual cleanup of large functions, duplication, weak types, and code smells. GitHub Copilot 22,321installs java-springboot official github Gives GitHub Copilot Spring Boot development practices, from project layout to tests and security. Use it when writing or reviewing Java application code. GitHub Copilot 21,272installs create-readme official github This skill reviews a project and creates a structured README.md. Use it when the repository needs clear documentation based on its actual files and code. GitHub Copilot 19,081installs

Similar

security-diff-scan official OpenAI Reviews pull requests, commits, and local diffs for security vulnerabilities. Catches risks in modified and deleted code before merging. CX Codex GP ChatGPT 30installs track-findings official OpenAI This skill moves validated Codex Security findings into Linear, Jira, or GitHub. Use it when scan results are reviewed and ready for controlled tracking. CX Codex GP ChatGPT 26installs collab-proof dong7812 Separates Claude's actual contributions from developer actions in a coding session. Helps log architecture decisions and bug root causes directly into the repository. Claude Code 25installs triage Matt Pocock This skill moves issues and external PRs through triage states, verification, and agent briefs. It fits maintainers managing an issue queue. Claude Code 990,453installs code-review Matt Pocock Reviews changes from a chosen reference point against repository standards and the originating spec. Use it for a branch, PR, or work in progress. Claude Code 789,521installs implement Matt Pocock Implements work from a specification or tickets, following a test-driven flow and ending with review and a commit. Use it when a coding task needs a defined delivery routine. Claude Code 774,700installs git-guardrails-claude-code Matt Pocock This skill adds a Claude Code hook that stops risky Git commands before they run. Use it when an agent must not push or discard working-tree changes. Claude Code 499,069installs setup-pre-commit Matt Pocock This skill configures pre-commit checks for a JavaScript repository, running Prettier, type checking, and tests before each commit. Claude Code 489,289installs

Questions about workshop-create

How to install workshop-create for GitHub Copilot?

Run gh skill install github/awesome-copilot workshop-create or npx skills add github/awesome-copilot --skill workshop-create. The skill file saves to .github/skills/workshop-create/SKILL.md.

What does workshop-create do?

It creates the standard root folder for desks and bench workspaces. It either converts an existing local directory without running git init or provisions a private GitHub repository using the GitHub CLI.

How does workshop-create handle existing git repositories?

It executes git -C rev-parse --is-inside-work-tree before creating a repo. If the parent path is already a repository, it refuses to nest another one inside it.

Source text

SKILL.md · MIT
---
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.

© github · MIT · github/awesome-copilot

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor