mirror of
https://github.com/github/awesome-copilot.git
synced 2026-07-21 12:54:13 +00:00
feat: add workshop-create skill — two paths, never nest repos
Syncs with jennyf19/the-workshop PR #8 (merged). Adds the workshop-create skill with Path A (existing dir) and Path B (new GitHub repo), explicit guard against repo-in-repo nesting. TA agent updated with workshop-create section. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 26faf13e-639c-4a21-ac05-c0dc2bff7c62
This commit is contained in:
@@ -62,6 +62,16 @@ sufficient. The Cairn is a way of standing, not a dependency.
|
||||
|
||||
## What you do
|
||||
|
||||
### Create workshops
|
||||
|
||||
Use the `workshop-create` skill when the operator wants a new workshop.
|
||||
Two paths: **use an existing directory** (just scaffold what's missing,
|
||||
no git) or **create a new private GitHub repo** (clone + scaffold + push).
|
||||
|
||||
Critical rule: **never create a repo inside another repo.** Check the
|
||||
parent directory first. If it's already in a git tree, use the existing
|
||||
directory path instead.
|
||||
|
||||
### Open and manage desks
|
||||
|
||||
Use the `desk-open` skill to create a new desk. You help the
|
||||
|
||||
@@ -93,7 +93,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t
|
||||
| [swift-mcp-development](../plugins/swift-mcp-development/README.md) | Comprehensive collection for building Model Context Protocol servers in Swift using the official MCP Swift SDK with modern concurrency features. | 2 items | swift, mcp, model-context-protocol, server-development, sdk, ios, macos, concurrency, actor, async-await |
|
||||
| [technical-spike](../plugins/technical-spike/README.md) | Tools for creation, management and research of technical spikes to reduce unknowns and assumptions before proceeding to specification and implementation of solutions. | 2 items | technical-spike, assumption-testing, validation, research |
|
||||
| [testing-automation](../plugins/testing-automation/README.md) | Comprehensive collection for writing tests, test automation, and test-driven development including unit tests, integration tests, and end-to-end testing strategies. | 9 items | testing, tdd, automation, unit-tests, integration, playwright, jest, nunit |
|
||||
| [the-workshop](../plugins/the-workshop/README.md) | Stop being the switchboard between your AI agents — direct a team. The Workshop puts long-running AI agents (desks) in the same room, on the same work, each with its own memory and history, sharing one workspace so you direct the work instead of relaying it. | 5 items | multi-agent, coordination, desks, persistent-memory, agent-signals, developer-experience |
|
||||
| [the-workshop](../plugins/the-workshop/README.md) | Stop being the switchboard between your AI agents — direct a team. The Workshop puts long-running AI agents (desks) in the same room, on the same work, each with its own memory and history, sharing one workspace so you direct the work instead of relaying it. | 6 items | multi-agent, coordination, desks, persistent-memory, agent-signals, developer-experience |
|
||||
| [typescript-mcp-development](../plugins/typescript-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in TypeScript/Node.js using the official SDK. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 2 items | typescript, mcp, model-context-protocol, nodejs, server-development |
|
||||
| [typespec-m365-copilot](../plugins/typespec-m365-copilot/README.md) | Comprehensive collection of prompts, instructions, and resources for building declarative agents and API plugins using TypeSpec for Microsoft 365 Copilot extensibility. | 3 items | typespec, m365-copilot, declarative-agents, api-plugins, agent-development, microsoft-365 |
|
||||
| [visual-pr](../plugins/visual-pr/README.md) | Capture, annotate, and embed screenshots and animated GIF demos in pull request descriptions. Includes Playwright-based UI capture, PIL image annotations, PR embedding workflows for GitHub and Azure DevOps, and screen recording with variable timing. | 4 items | screenshots, pull-request, before-after, annotations, playwright, gif, screen-recording, visual |
|
||||
|
||||
@@ -405,5 +405,6 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-skills) for guidelines on how to
|
||||
| [winmd-api-search](../skills/winmd-api-search/SKILL.md)<br />`gh skills install github/awesome-copilot winmd-api-search` | Find and explore Windows desktop APIs. Use when building features that need platform capabilities — camera, file access, notifications, UI controls, AI/ML, sensors, networking, etc. Discovers the right API for a task and retrieves full type details (methods, properties, events, enumeration values). | `LICENSE.txt`<br />`scripts/Invoke-WinMdQuery.ps1`<br />`scripts/Update-WinMdCache.ps1`<br />`scripts/cache-generator` |
|
||||
| [winui3-migration-guide](../skills/winui3-migration-guide/SKILL.md)<br />`gh skills install github/awesome-copilot winui3-migration-guide` | UWP-to-WinUI 3 migration reference. Maps legacy UWP APIs to correct Windows App SDK equivalents with before/after code snippets. Covers namespace changes, threading (CoreDispatcher to DispatcherQueue), windowing (CoreWindow to AppWindow), dialogs, pickers, sharing, printing, background tasks, and the most common Copilot code generation mistakes. | None |
|
||||
| [workiq-copilot](../skills/workiq-copilot/SKILL.md)<br />`gh skills install github/awesome-copilot workiq-copilot` | Guides the Copilot CLI on how to use the WorkIQ CLI/MCP server to query Microsoft 365 Copilot data (emails, meetings, docs, Teams, people) for live context, summaries, and recommendations. | None |
|
||||
| [workshop-create](../skills/workshop-create/SKILL.md)<br />`gh skills install github/awesome-copilot workshop-create` | 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. | None |
|
||||
| [write-coding-standards-from-file](../skills/write-coding-standards-from-file/SKILL.md)<br />`gh skills install github/awesome-copilot write-coding-standards-from-file` | Write a coding standards document for a project using the coding styles from the file(s) and/or folder(s) passed as arguments in the prompt. | None |
|
||||
| [x-twitter-scraper](../skills/x-twitter-scraper/SKILL.md)<br />`gh skills install github/awesome-copilot x-twitter-scraper` | Build GitHub Copilot workflows with Xquik X API SDKs, REST endpoints, MCP tools, TweetClaw OpenClaw plugin installs, signed webhooks, tweet search, user lookup, follower exports, media actions, and agent automation. | None |
|
||||
|
||||
+2
-1
@@ -22,6 +22,7 @@
|
||||
"./skills/bench-read/",
|
||||
"./skills/desk-journal/",
|
||||
"./skills/desk-open/",
|
||||
"./skills/signal-write/"
|
||||
"./skills/signal-write/",
|
||||
"./skills/workshop-create/"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
---
|
||||
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. **Check if it's already a workshop.** Look for `desks/` or `classroom/`
|
||||
folders, a `workshop.md`, `CAIRN.md`, or `hands-up.md`. If any exist,
|
||||
it's already a workshop — just use it.
|
||||
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. **Create the repo:** `gh repo create <owner>/<name> --private --clone`
|
||||
- Use the operator's signed-in GitHub account as `<owner>`
|
||||
- Clone it to a sensible location (ask the operator where, or use
|
||||
their configured workshops directory)
|
||||
3. **Scaffold the workshop structure** inside the cloned repo:
|
||||
```
|
||||
<name>/
|
||||
desks/
|
||||
bench/
|
||||
CAIRN.md
|
||||
README.md
|
||||
```
|
||||
4. **Commit and push** the scaffold.
|
||||
|
||||
### 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.
|
||||
Reference in New Issue
Block a user