d895f2223a
`getProjectPathCandidates` walks up from cwd to repoRoot (or home as a fallback). When cwd is anywhere under $HOME and no closer .git boundary exists, that walk-up reaches the home directory and enumerates `~/.agent/<segments>` and `~/.agents/<segments>` as project paths. `getUserPathCandidates` then enumerates the very same directories as user paths, so every skill/rule/prompt/command/AGENTS.md found there loaded twice. The capability deduper marks the second copy as shadowed, but the Extension Dashboard renders shadowed entries — so users see one active + one greyed-out duplicate of every home-level skill. Skip the home directory inside the walk-up while still terminating the loop on it; ancestors above home are still visited if the cwd happens to live above (e.g. monorepo `home: tempDir` test fixtures). Tests: - Drop the duplicated copy of `getProjectPathCandidates` from the monorepo-skills test; import the real one so behavior stays in sync. - Replace the old "walk-up stops at home when no repo root" assertion (which encoded the buggy behavior) with one that pins the new contract: home-level `.agent[s]/skills` are NOT enumerated as project paths. - Add an explicit regression assertion that project ∩ user candidate sets are empty when cwd is under home. Fixes #1116