dev_kitlisted
Install: claude install-skill jedbjorn/subfloor
# dev_kit — the sandbox dev kit
What you have to build, test, and inspect a fork — and the one boundary that
trips shells up.
## You are in a container
You run **inside the sandbox container**; the repo is bind-mounted at its host
path. The app the FnB watches in their browser is a **separate instance** — the
host-supervised stack (pm2 / `make`), outside your container. To *see* the app
yourself, run a dev server **inside** the sandbox on `0.0.0.0:$SC_DEV_PORT`; the
FnB reaches that instance at `http://127.0.0.1:$SC_DEV_PORT`. (See the boot
doc's `RUNNING THE APP` section.)
## Install + run
- `./sc deps` — install the fork's deps into the bind-mount: a repo-root `.venv`
from every `requirements*.txt` (fork pins win) + `npm ci`/`install` per
`package.json`. Persists across image rebuilds. **Run this first.**
- `./sc test` — backend (`.venv` pytest honoring the fork's `pytest.ini`, else
the engine's stdlib unittest) + UI (`npm run test` / vitest where a `test`
script is declared). Non-zero if any suite fails.
## The `.venv` dev kit
`./sc deps` layers these onto the fork's own deps with `--upgrade-strategy
only-if-needed`, so a fork's pins and its `[tool.ruff]`/`[tool.mypy]` config
always win. **Available, not enforced** — opt in per fork.
- `./sc lint [paths]` → `.venv/bin/ruff check` — lint + format-check.
(`.venv/bin/ruff format` to apply formatting.)
- `./sc typecheck [paths]` → `.venv/bin/mypy` — Python type-check.
- `.venv/bin/pytest` / `coverage` / `http