Create a new desk in the workshop with the standard structure.
When to use
- The operator wants to start a new workstream
- Work arrives that doesn't belong to any existing desk
- A topic needs its own frame (its own history, its own priors)
What it creates
Given a workshop directory and a desk name, create:
desks/<desk-name>/
journal.md # persistent memory — read at start, written at end
.signals/ # structured signal output (JSON) — dashboard reads this
desks/ is the default home. A desk can instead live in a group folder:
any top-level folder whose name ends in -desks (for example
team-desks/<desk-name>/). Use one only when the operator asks for that
group, create the group folder if it doesn't exist, and read desks/ in
the steps below as that group folder.
How to use
Choose a name. Short, descriptive, kebab-case. The name is how the operator and other desks refer to this desk. Examples:
security-scan,api-review,ops,cloud-workshopCheck if it already exists. If
desks/<desk-name>/already has ajournal.md, the desk is live — do not overwrite it. Instead, resume it: read the journal and continue from where it left off. If the operator explicitly wants a fresh start, they must rename or archive the existing desk first.Create the structure. Make the directory, initial journal, and signals folder:
desks/<desk-name>/journal.md desks/<desk-name>/.signals/Write the first journal entry. The journal starts with:
- What this desk is for (its focus/purpose)
- What repos or work it covers (if applicable)
- Any initial context the first session needs
Announce it. Tell the operator what was created and what the desk's focus is.
Session orientation
This skill initializes storage — it does not launch a session. A desk becomes active when a Copilot session references its directory. The session workflow:
- The operator (or TA) starts a session and says "sit at the
<desk-name>desk" - The session reads the desk's
journal.mdto load priors. To find the desk, look indesks/<desk-name>/, then in each<group>-desks/<desk-name>/; if more than one has that name, ask which one (refer to it as<group>-desks/<desk-name>) - Work happens — the session uses
signal-writeto emit signals anddesk-journalto persist state at the end - The next session repeats from step 2
The desk identity comes from which journal is read, not from a persistent process. Desks are long-running in state (the journal carries forward), not in runtime (each session is independent).
Journal format
# <Desk Name> — Journal
## <date> — Desk opened
- **Purpose:** <what this desk focuses on>
- **Scope:** <repos, areas, or work this desk covers>
- **Next step:** <what the first session should do>
Principles
- A desk is a peer, not a sub-agent. It has equal standing to disagree with other desks.
- The journal is the memory. Without it, the next session starts blind. Write enough that someone starting from zero finds the way.
- One desk, one focus. If the scope is too broad, open two desks. Each desk's value comes from its specific frame — dilute the frame and you lose the value.