(subdir: NcodeConfigDirectory)
| 72 | } |
| 73 | |
| 74 | function getExistingUserDirs(subdir: NcodeConfigDirectory): string[] { |
| 75 | const dirs: string[] = [] |
| 76 | pushIfExistingDir(dirs, join(getLegacyClaudeConfigHomeDir(), subdir)) |
| 77 | pushIfExistingDir(dirs, join(getCanonicalNcodeConfigHomeDir(), subdir)) |
| 78 | // Codex-aligned cross-vendor user-global skills surface. `.agents/` is |
| 79 | // cross-vendor and follows $HOME, not NCODE_CONFIG_DIR/CLAUDE_CONFIG_DIR. |
| 80 | // Skills-only asymmetry: `.agents/commands` and `.agents/agents` are not |
| 81 | // loaded here. |
| 82 | if (subdir === 'skills') { |
| 83 | pushIfExistingDir( |
| 84 | dirs, |
| 85 | join(getCrossVendorAgentsHomeDir(), '.agents', subdir), |
| 86 | ) |
| 87 | } |
| 88 | return dirs |
| 89 | } |
| 90 | |
| 91 | /** |
| 92 | * Extracts a description from markdown content |
no test coverage detected