·
Last changedVersion:
No hardening report available.
Create a new desk in the workshop with the standard structure.
Given a workshop directory and a desk name, create:
Workspace root: Resolve all desks/ paths relative to the repository root — the nearest ancestor directory containing a .git/ entry, starting from the current working directory. If no repository root can be determined, stop and ask the operator to confirm the intended base directory before proceeding. Never resolve desks/ relative to $HOME or /.
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-workshop
Before performing any filesystem operation, validate that <desk-name>
matches the pattern ^[a-z0-9-]{1,64}$ — only lowercase ASCII letters
(a–z), digits (0–9), and hyphens (-). Dots, slashes, spaces,
underscores, and all other characters are forbidden. The name must be
between 1 and 64 characters long. If the name does not match this
pattern, stop immediately and tell the operator which characters
are invalid and what the allowed pattern is. Do not proceed to Step 2
or beyond.
Check if it already exists. Only after the name has passed
validation above, check whether desks/<desk-name>/journal.md
already exists. If it does, 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. Only after the name has passed validation in Step 1 and the workspace root has been established, create the directory, initial journal, and signals folder:
Write the first journal entry. The journal starts with:
Announce it. Tell the operator what was created and what the desk's focus is.
This skill initializes storage — it does not launch a session. A desk becomes active when a Copilot session references its directory. The session workflow:
<desk-name> desk"desks/<desk-name>/journal.md to load priorssignal-write to emit signals
and desk-journal to persist state at the endThe 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).
Need this version hardened?
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
—
—
MIT
HARDENING.md
LICENSE
SKILL.md