I've solved most of my problems by following these guidelines: one worktree for each code domain, using git sparse-checkout to limit the context (e.g. one worktree for the Rust core, one for Swift macOS, one for Swift iOS, etc.), and putting all the rules in claude.md (or agents.md). This way I get "containerization", lower context, and faster search across the codebase. After that, I only install the skills that actually matter for the context.
I've solved most of my problems by following these guidelines: one worktree for each code domain, using git sparse-checkout to limit the context (e.g. one worktree for the Rust core, one for Swift macOS, one for Swift iOS, etc.), and putting all the rules in claude.md (or agents.md). This way I get "containerization", lower context, and faster search across the codebase. After that, I only install the skills that actually matter for the context.