fr-isolationlisted
Install: claude install-skill derio-net/super-fr
# fr-isolation
A workspace contract, not just a worktree: a git worktree OUTSIDE the repo (`~/.cache/fr/worktrees/<main-checkout>/<branch>`),
commands in the profile's devcontainer, base repo untouched while the run is live. Plain shell, any agent or human.
**Announce at start:** "I'm using fr-isolation to run this work isolated."
## Hard requirements
- Inside a git repo. **devcontainer mode** (default) needs ≥1 profile (`.devcontainer/<profile>/devcontainer.json`); missing →
exit 2 pointing at fr-init. NEVER proceed unisolated; offer the fr-init interview (pause, resume).
- **host-worktree** (`FR_ISOLATION_TARGET=worktree`, docker-less): host env as-is, NO profile/secrets; restart/stats refuse, stop/rebuild no-op.
- **external** mode (valid preparer-written `.fr-isolation` marker, `mode:external`): fr adopts the container's checkout — `up --branch`
ensures the branch in place; restart/stop/rebuild/stats refuse, gc reports (the container's owner runs them).
- Any other `FR_ISOLATION_TARGET` value fails closed (`devcontainer|worktree`). **It selects the mode at `up` only:** every later command
follows the workspace's recorded mode, so agents, hooks and fresh shells need no env; only `up`, `gc`'s sweep and a reaped `verify-merge` read it.
## Lifecycle
```bash
fr isolation up --branch <b> [--profile <name>] [--session <id>] [--print-path] # worktree + container; --print-path: last stdout line = path
fr isolation exec --branch <b> -- CMD ...