msb-repo-layout
Where things live in the msb-manager checkout and what each file is for: msbctl's internal shape (the Sandbox class, cmd_* handlers, main() argparse, the fzf menu with its numbered-prompt fallback), m
SKILL.md.agents/skills/msb-repo-layout/SKILL.md
GitHubRepo Layout
Detail carved out of AGENTS.md, which keeps only what has to hold in
every session. Repo-specific throughout; the facts here are verified against
msb 0.7.6 and re-checked on 0.7.7.
msbctl— single-file Python CLI (~1900 lines).Sandboxclass (config resolution,msbflag emission),cmd_*handlers,main()argparse at the bottom, fzf menu with numbered-prompt fallback.msb-picker— fzf picker used by the desktop entry (msb-manager.desktop).bootstrap.sh— runs once inside the guest at create time.msbctlpipes it in over stdin (not mounted, so manager code stays out of the VM). Intentionally notset -e: every step records its outcome and failures are summarized together so an allowlist can be built in one pass. Parameterized byMSB_*env vars.defaults.toml— what msb-manager ships: egress rule groups, version pins, baseline defaults. Read from the checkout, never copied.templates/—config.toml.in(the short skeleton of local overrides install.sh writes once),sandbox.toml.in,dev.yaml.in,registry.toml.in,registry-repo.toml.in(a sandbox with no folder),registry-kandev.toml.in(one Kandev owns)..msb/— this repo's own sandbox policy (sandbox.toml,dev.yaml).