explain_code
Understand code functionality by receiving detailed explanations of what each part does, with adjustable depth for different skill levels.
Instructions
Provides a detailed explanation of code, breaking down what each part does.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The code to explain | |
| language | Yes | Programming language | |
| level | No | Explanation depth |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"code": {
"description": "The code to explain",
"type": "string"
},
"language": {
"description": "Programming language",
"type": "string"
},
"level": {
"description": "Explanation depth",
"enum": [
"beginner",
"intermediate",
"expert"
],
"type": "string"
}
},
"required": [
"code",
"language"
],
"type": "object"
}
Implementation Reference
- src/tools/cognitive.ts:610-675 (handler)The handler function for the 'explain_code' tool. It takes code, language, and optional level (beginner/intermediate/expert), generates a structured markdown explanation with breakdowns appropriate to the level, and returns it as a text content block.export function explainCodeHandler(args: any) { const { code, language, level = "intermediate" } = args; const lines = code.split("\n"); const explanation = `# Code Explanation (${language}) ## Audience Level: ${level} ## Code Overview This code has ${lines.length} lines written in ${language}. --- ## Line-by-Line Breakdown ${level === "beginner" ? ` ### What This Code Does (Simple) This code performs a specific task. Let me break it down: 1. **Setup**: The first few lines prepare what we need 2. **Main Logic**: The middle section does the actual work 3. **Output**: The end produces a result ### Key Concepts Used - Variables: Store information - Functions: Reusable blocks of code - Control flow: Making decisions ` : ""} ${level === "intermediate" ? ` ### Technical Breakdown - **Structure**: Identify the main components - **Data Flow**: How data moves through the code - **Dependencies**: What this code relies on - **Side Effects**: What external changes occur ### Design Patterns Used Look for: Factory, Observer, Strategy, etc. ### Potential Improvements - Error handling - Type safety - Performance optimizations ` : ""} ${level === "expert" ? ` ### Deep Analysis - **Complexity**: O(n) / O(log n) / etc. - **Memory**: Stack vs Heap usage - **Concurrency**: Thread safety considerations - **Edge Cases**: Boundary conditions ### Architecture Implications - Coupling and cohesion - SOLID principles adherence - Testability considerations ` : ""} ## Key Takeaways 1. Understand the purpose 2. Follow the data flow 3. Note the patterns used `; return { content: [{ type: "text", text: explanation }] }; }
- src/tools/cognitive.ts:600-608 (schema)Zod schema defining the input parameters for the 'explain_code' tool: required code and language strings, optional explanation level.export const explainCodeSchema = { name: "explain_code", description: "Provides a detailed explanation of code, breaking down what each part does.", inputSchema: z.object({ code: z.string().describe("The code to explain"), language: z.string().describe("Programming language"), level: z.enum(["beginner", "intermediate", "expert"]).optional().describe("Explanation depth") }) };
- src/index.ts:87-87 (registration)Registration of the 'explain_code' tool in the main stdio server tool registry map, linking schema and handler.["explain_code", { schema: explainCodeSchema, handler: explainCodeHandler }],
- src/server.ts:97-97 (registration)Registration of the 'explain_code' tool in the HTTP server tool registry map, linking schema and handler.["explain_code", { schema: explainCodeSchema, handler: explainCodeHandler }],