Organize a workshop
Bind a folder as your orch workspace, register projects and shared folders, and keep git boundaries clean.
Goal#
Set up a workshop: one root folder that holds several projects (each its own
git repo) plus shared folders per language that any project can read. Get
orch init's seeded layout in place without breaking git boundaries.
Steps#
-
Create (or
cdinto) the folder that will be your workshop root, then bind it:orch setupThis writes
orch.yamland.orch/in the current folder, asks for optional project/shared folder names, and putsorch.exe's folder on your user PATH. -
Seed the ordered layout and doctrine:
orch initorch initasks for the docs locale, shared folders, project/app names, and whether to installorch guardhooks. It seeds a thinCLAUDE.md,DEV_PRACTICES.md,GATES.md, and a per-projectTRACKER.md, thengit inits each project and shared folder — never the workshop root. Add--recommendto default toshared/<lang>/+projects/<app>/, or--dry-runto preview without writing. -
Register an existing project folder (if you didn't create it during
orch init):orch project add products/saintPaths resolve from
cwdfirst, then the workspace root.--namesets a short id (default: folder name). -
Register a shared folder by language:
orch shared add shared/go --lang go--langdefaults toworkspace.primary_languages, or the onlyshared.*bucket if there's just one. This also seeds and indexes symbols under that folder immediately.
Git boundaries#
- The workshop root is not a git repo.
orch initnever runsgit initthere. - Each project folder is its own repo (
orch project adddoes not create it — register an existing folder, orgit initit yourself first). - Shared folders are also their own repos, one per language bucket.
.orch/(device token, local db, externalized tool output) is added to the workshop root's.gitignoreautomatically byorch setup/orch init— it is local runtime state, not something to commit.
Verify#
orch project list
orch shared list
project list shows each registered path and, if another live interactive
Chair already holds that project, a (chair: name, workers: N) suffix.
shared list prints one <lang>\t<path> line per registered folder.
Undo#
orch project remove <path-or-name>
orch shared remove <path>
Both only unregister the entry from orch.yaml — neither deletes the
folder or its git history.
Related#
configure-agents.md— after the workshop exists, tell orch which agent CLIs to launch.worktrees.md— how dispatched sessions get their own isolated checkout per project.