mirror of
https://github.com/github/awesome-copilot.git
synced 2026-07-21 12:54:13 +00:00
docs(the-workshop): fix workshop scaffold, bench location, and component list
Address the remaining doc/skill review findings: - workshop-create: 'gh repo create --clone' clones into the CWD, which nests the new repo when run from inside a checkout. Add an explicit clone-parent selection + 'rev-parse --is-inside-work-tree' guard, and run the create from that parent. - workshop-create: desks/ and bench/ were scaffolded empty, so Git drops them and a later clone loses the scaffold. Scaffold .gitkeep in each and commit the placeholders. - bench-read: make <workshop>/bench/ the primary shared location (the directory workshop-create actually establishes) with desk-local artifacts as a secondary source, instead of treating the repo root as the bench. - the-workshop README: add the Workshop Create skill to the component table so all six packaged components are documented. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 26faf13e-639c-4a21-ac05-c0dc2bff7c62
This commit is contained in:
@@ -19,6 +19,7 @@ A **desk** isn't a sub-agent — it's a peer with a history. Sub-agents inherit
|
|||||||
| Type | Name | Description |
|
| Type | Name | Description |
|
||||||
|------|------|-------------|
|
|------|------|-------------|
|
||||||
| Agent | [Workshop TA](../../agents/workshop-ta.agent.md) | Room coordinator — sees all desks, routes work, tracks state, emits signals |
|
| Agent | [Workshop TA](../../agents/workshop-ta.agent.md) | Room coordinator — sees all desks, routes work, tracks state, emits signals |
|
||||||
|
| Skill | [Workshop Create](../../skills/workshop-create/) | Create a new workshop — the root where desks live — locally or backed by a new private GitHub repo |
|
||||||
| Skill | [Desk Open](../../skills/desk-open/) | Create a new desk with journal and folder structure |
|
| Skill | [Desk Open](../../skills/desk-open/) | Create a new desk with journal and folder structure |
|
||||||
| Skill | [Desk Journal](../../skills/desk-journal/) | Read/write persistent memory across sessions — the cairn trail |
|
| Skill | [Desk Journal](../../skills/desk-journal/) | Read/write persistent memory across sessions — the cairn trail |
|
||||||
| Skill | [Signal Write](../../skills/signal-write/) | Emit structured signals: hands-up, blocked, done, checkpoint |
|
| Skill | [Signal Write](../../skills/signal-write/) | Emit structured signals: hands-up, blocked, done, checkpoint |
|
||||||
|
|||||||
@@ -17,10 +17,11 @@ leave work products for each other.
|
|||||||
|
|
||||||
## What the bench is
|
## What the bench is
|
||||||
|
|
||||||
The bench is the shared filesystem of the workshop. It's not a
|
The bench is `<workshop>/bench/` — the shared workspace directory
|
||||||
|
that `workshop-create` establishes for cross-desk work. It's not a
|
||||||
message queue or a chat channel — it's files. When Desk A produces
|
message queue or a chat channel — it's files. When Desk A produces
|
||||||
a finding and Desk B needs to review it, the finding is a file
|
a finding and Desk B needs to review it, the finding is a file
|
||||||
on the bench. When the operator asks "what did the scanning desk
|
in `bench/`. When the operator asks "what did the scanning desk
|
||||||
find?" — you read the bench.
|
find?" — you read the bench.
|
||||||
|
|
||||||
Typical bench artifacts:
|
Typical bench artifacts:
|
||||||
@@ -31,15 +32,19 @@ Typical bench artifacts:
|
|||||||
|
|
||||||
## Where to look
|
## Where to look
|
||||||
|
|
||||||
The bench is the workshop directory itself and its subdirectories.
|
The primary shared location is the `bench/` directory at the
|
||||||
Common patterns:
|
workshop root — the designated cross-desk workspace. Desk-local
|
||||||
|
artifacts under `desks/<desk-name>/` are a secondary source: read
|
||||||
|
them when you need a specific desk's own work, but shared artifacts
|
||||||
|
belong in `bench/`.
|
||||||
|
|
||||||
```
|
```
|
||||||
desks/<desk-name>/ # each desk's own workspace
|
<workshop>/
|
||||||
|
bench/ # PRIMARY — shared cross-desk artifacts
|
||||||
|
<findings, verdicts, drafts, reports>
|
||||||
|
desks/<desk-name>/ # secondary — a desk's own workspace
|
||||||
journal.md # the desk's memory
|
journal.md # the desk's memory
|
||||||
<artifacts> # work products from this desk
|
<artifacts> # work still local to this desk
|
||||||
|
|
||||||
<shared files at root> # cross-desk artifacts
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## How to read
|
## How to read
|
||||||
|
|||||||
@@ -41,19 +41,32 @@ they cloned, maybe it's a local project folder.
|
|||||||
The operator wants a fresh workshop backed by a GitHub repo.
|
The operator wants a fresh workshop backed by a GitHub repo.
|
||||||
|
|
||||||
1. **Get the workshop name.** Short, no spaces, kebab-case preferred.
|
1. **Get the workshop name.** Short, no spaces, kebab-case preferred.
|
||||||
2. **Create the repo:** `gh repo create <owner>/<name> --private --clone`
|
2. **Pick and validate a clone parent.** `gh repo create --clone` clones
|
||||||
- Use the operator's signed-in GitHub account as `<owner>`
|
into the **current working directory**, so choose an explicit parent
|
||||||
- Clone it to a sensible location (ask the operator where, or use
|
directory first (ask the operator, or use their configured workshops
|
||||||
their configured workshops directory)
|
directory) and confirm it is **not** already inside a git repo:
|
||||||
3. **Scaffold the workshop structure** inside the cloned 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>/
|
<name>/
|
||||||
desks/
|
desks/.gitkeep
|
||||||
bench/
|
bench/.gitkeep
|
||||||
CAIRN.md
|
CAIRN.md
|
||||||
README.md
|
README.md
|
||||||
```
|
```
|
||||||
4. **Commit and push** the scaffold.
|
5. **Commit and push** the scaffold, including the `.gitkeep` placeholders.
|
||||||
|
|
||||||
### Critical: Never nest repos
|
### Critical: Never nest repos
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user