code-communities
Detects architectural clusters and coupling boundaries via community detection on the code graph. Use when identifying module groupings or refactoring targets.
Install
npx skills add https://github.com/athola/claude-night-market/tree/master/plugins/cartograph/skills/code-communities
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install athola-claude-night-market@llmmart
git clone https://github.com/athola/claude-night-market.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole athola/claude-night-market collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Code Community Detection
Identify architectural clusters and module boundaries in the codebase.
When NOT To Use
- One module's imports (use
cartograph:dependency-graph) - Rendering an architecture already decided (use
cartograph:architecture-diagram)
Prerequisites
This skill requires the gauntlet plugin for graph data. Discover it:
GRAPH_QUERY=$(find ~/.claude/plugins -name "graph_query.py" -path "*/gauntlet/*" 2>/dev/null | head -1)
If gauntlet is not installed: Fall back to directory structure analysis. Group files by directory and use import statements to identify module boundaries. Generate a Mermaid diagram from directory-level relationships.
If installed but no graph.db: Tell the user to run
/gauntlet-graph build.
Steps
Run community detection (requires gauntlet):
python3 "$GRAPH_QUERY" --action communitiesFallback (no gauntlet): Analyze directory structure and cross-directory imports:
# Directory-level grouping find . -name "*.py" -not -path "*/node_modules/*" | \ sed 's|/[^/]*$||' | sort | uniq -c | sort -rn # Cross-directory imports (rg preferred, grep fallback) if command -v rg &>/dev/null; then rg "^from |^import " --type py -l . | \ xargs -I{} rg "^from \w+ import|^import \w+" {} --no-filename else grep -rh "^from \|^import " --include="*.py" . fi | sort | uniq -c | sort -rn | head -20Group by top-level directories and count cross-directory imports to estimate coupling.
Display clusters:
Community | Nodes | Cohesion | Description auth | 12 | 0.85 | Authentication module db | 8 | 0.92 | Database access layer api/handlers | 15 | 0.71 | API request handlers utils | 6 | 0.45 | Shared utilitiesShow coupling warnings: If communities have
10 cross-boundary edges, highlight them:
WARNING: High coupling between 'auth' and 'api/handlers' (23 cross-community edges, severity: high)Generate Mermaid diagram:
flowchart TB subgraph auth[Auth Module - cohesion 0.85] verify_token check_permissions end subgraph db[DB Layer - cohesion 0.92] execute_query connection_pool end auth -->|"23 edges"| api db -->|"5 edges"| apiSuggest improvements:
- Low cohesion (<0.5): "Consider splitting this module into more focused components"
- High coupling (>20 edges): "Consider introducing an interface to reduce direct dependencies"
Algorithm
Uses the Leiden algorithm (when igraph is available) with edge-type-specific weights. Falls back to file-based grouping otherwise.
| Edge Type | Weight |
|---|---|
| CALLS | 1.0 |
| INHERITS | 0.8 |
| IMPLEMENTS | 0.7 |
| IMPORTS_FROM | 0.5 |
| TESTED_BY | 0.4 |
| CONTAINS | 0.3 |
Exit Criteria
- Community table rendered with columns Community, Nodes, Cohesion, and Description for each detected cluster
- Coupling warning surfaced for any pair of communities with more than 10 cross-boundary edges, labelled with severity
- Mermaid
flowchart TBgenerated with onesubgraphper community showing cohesion score in the subgraph label - Improvement suggestions provided for any community with cohesion < 0.5 or coupling > 20 cross-community edges
- If gauntlet is not installed, directory-structure fallback runs and absence of graph data is stated to the user
Files (claude-night-market)
-
SKILL.md 3.7 KB
--- name: code-communities description: Detects architectural clusters and coupling boundaries via community detection on the code graph. Use when identifying module groupings or refactoring targets. --- # Code Community Detection Identify architectural clusters and module boundaries in the codebase. ## When NOT To Use - One module's imports (use `cartograph:dependency-graph`) - Rendering an architecture already decided (use `cartograph:architecture-diagram`) ## Prerequisites This skill requires the **gauntlet** plugin for graph data. Discover it: ```bash GRAPH_QUERY=$(find ~/.claude/plugins -name "graph_query.py" -path "*/gauntlet/*" 2>/dev/null | head -1) ``` **If gauntlet is not installed**: Fall back to directory structure analysis. Group files by directory and use import statements to identify module boundaries. Generate a Mermaid diagram from directory-level relationships. **If installed but no graph.db**: Tell the user to run `/gauntlet-graph build`. ## Steps 1. **Run community detection** (requires gauntlet): ```bash python3 "$GRAPH_QUERY" --action communities ``` **Fallback (no gauntlet)**: Analyze directory structure and cross-directory imports: ```bash # Directory-level grouping find . -name "*.py" -not -path "*/node_modules/*" | \ sed 's|/[^/]*$||' | sort | uniq -c | sort -rn # Cross-directory imports (rg preferred, grep fallback) if command -v rg &>/dev/null; then rg "^from |^import " --type py -l . | \ xargs -I{} rg "^from \w+ import|^import \w+" {} --no-filename else grep -rh "^from \|^import " --include="*.py" . fi | sort | uniq -c | sort -rn | head -20 ``` Group by top-level directories and count cross-directory imports to estimate coupling. 2. **Display clusters**: ``` Community | Nodes | Cohesion | Description auth | 12 | 0.85 | Authentication module db | 8 | 0.92 | Database access layer api/handlers | 15 | 0.71 | API request handlers utils | 6 | 0.45 | Shared utilities ``` 3. **Show coupling warnings**: If communities have >10 cross-boundary edges, highlight them: ``` WARNING: High coupling between 'auth' and 'api/handlers' (23 cross-community edges, severity: high) ``` 4. **Generate Mermaid diagram**: ```mermaid flowchart TB subgraph auth[Auth Module - cohesion 0.85] verify_token check_permissions end subgraph db[DB Layer - cohesion 0.92] execute_query connection_pool end auth -->|"23 edges"| api db -->|"5 edges"| api ``` 5. **Suggest improvements**: - Low cohesion (<0.5): "Consider splitting this module into more focused components" - High coupling (>20 edges): "Consider introducing an interface to reduce direct dependencies" ## Algorithm Uses the Leiden algorithm (when igraph is available) with edge-type-specific weights. Falls back to file-based grouping otherwise. | Edge Type | Weight | |-----------|--------| | CALLS | 1.0 | | INHERITS | 0.8 | | IMPLEMENTS | 0.7 | | IMPORTS_FROM | 0.5 | | TESTED_BY | 0.4 | | CONTAINS | 0.3 | ## Exit Criteria - [ ] Community table rendered with columns Community, Nodes, Cohesion, and Description for each detected cluster - [ ] Coupling warning surfaced for any pair of communities with more than 10 cross-boundary edges, labelled with severity - [ ] Mermaid `flowchart TB` generated with one `subgraph` per community showing cohesion score in the subgraph label - [ ] Improvement suggestions provided for any community with cohesion < 0.5 or coupling > 20 cross-community edges - [ ] If gauntlet is not installed, directory-structure fallback runs and absence of graph data is stated to the user
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.