Workshop harness. The participant's project is not this directory. just prepare builds it in develop/, and the sandbox can see only that directory.
nix develop # participants on handout machines: JDK, sbt, scalafmt, just, nono, Claude Code
just # recipes
just prepare # lesson names
just prepare refine-1 # empty project, then the prompt
just claude # Claude Code inside develop/Directors use nix develop .#outer for harness and presentation/ work. It is the participant shell plus python3, scala-cli and nodejs_22:
nix develop .#outer # directors: harness and presentation/ work
just --group outer --list # recipes that require that shellHarness recipes are tagged [group('outer')] and refuse to run outside that shell (scripts/require-outer-shell). Optional local shortcut (gitignored): copy .envrc.example to .envrc and direnv allow (needs nix-direnv). Do not commit .envrc.
Director shell intent and gates: docs/specs/SPEC.v14-outer-shell.md (outer.v14.M1, outer.v14.M2). just sandbox is the same boundary with a plain shell. Broader onion design: docs/specs/SPEC.v1-onion-layering.md. Prompts: workshop/JOURNEY.md.