noodlbox

Community Detail

Explore specific code communities in depth

Dive deep into a specific code community to understand its symbols, processes, and connections.

URI Pattern

map://{repository}/community/{community_id}

Response Format

interface CommunityDetailResponse {
  id: string;
  label: string;
  stats: CommunityStats;
  symbols: SymbolListItem[];
  entry_points: EntryPointItem[];
  processes: ProcessListItem[];
  connections: ConnectionsSummary;
}

interface CommunityStats {
  symbols: number;
  processes: number;
  cohesion: number;
}

interface SymbolListItem {
  name: string;
  centrality: number;     // Importance score 0-1
  location: string;       // file:line
}

interface EntryPointItem {
  name: string;
  caller_community: string;
  calls: number;
}

interface ProcessListItem {
  id: string;
  label: string;
  steps: number;
}

interface ConnectionsSummary {
  outgoing: Connection[];
  incoming: Connection[];
}

interface Connection {
  to: string;            // Community name
  calls: number;
}

Example

{
  "id": "comm_auth",
  "label": "Authentication",
  "stats": {
    "symbols": 85,
    "processes": 12,
    "cohesion": 0.92
  },
  "symbols": [
    {
      "name": "authenticateUser",
      "centrality": 0.95,
      "location": "src/auth/authenticate.ts:42"
    },
    {
      "name": "validateToken",
      "centrality": 0.87,
      "location": "src/auth/token.ts:23"
    }
  ],
  "entry_points": [
    {
      "name": "login",
      "caller_community": "API",
      "calls": 156
    }
  ],
  "processes": [
    {
      "id": "proc_login",
      "label": "UserLogin",
      "steps": 5
    }
  ],
  "connections": {
    "outgoing": [
      {
        "to": "DataAccess",
        "calls": 47
      }
    ],
    "incoming": [
      {
        "to": "API",
        "calls": 156
      }
    ]
  }
}

Use Cases

1. Understanding Community Purpose

const community = await getResource('map://my-app/community/{id}');
console.log(`${community.label}: ${community.stats.symbols} symbols`);
console.log(`Entry points: ${community.entry_points.map(e => e.name)}`);

2. Finding Important Code

High centrality symbols are most important:

const topSymbols = community.symbols
  .filter(s => s.centrality > 0.8)
  .sort((a, b) => b.centrality - a.centrality);

3. Exploring Processes

for (const proc of community.processes) {
  const trace = await getResource(`map://my-app/process/${proc.id}`);
  // Analyze process
}

On this page