Change Planning
Research and gather context before implementing changes
Pre-work research - gather context and understand the codebase BEFORE implementing changes.
Quick Start
"I need to implement user notifications, where do I start?"
"Show me the codebase map"
"Search for code related to email sending"
"What processes involve the UserService?"
When to Use
Use this workflow before any non-trivial implementation task:
- Adding a new feature
- Modifying existing behavior
- Integrating with existing code
- Understanding unfamiliar code areas
Workflow
Get the Codebase Overview
Start by reading the codebase map to understand the high-level structure:
"Show me the codebase map"
Uses: map://current resource
Look for:
- Community names and purposes
- Cohesion scores (how tightly coupled)
- Cross-community flows
Search for Relevant Code
Use semantic search to find code related to your task:
"Search for code related to user notifications"
Uses: noodlbox_query_with_context tool
This returns processes ranked by relevance with full context.
Explore the Target Community
Drill into specific modules to understand their boundaries:
"Show me details about the Notifications community"
Uses: map://current/community/{id} resource
Focus on:
- Entry points (where to hook in)
- Key symbols (important functions/classes)
- Internal processes
Trace Execution Flows
Understand how existing code executes:
"Trace the sendEmail process"
Uses: map://current/process/{id} resource
See the exact function call sequence to understand integration points.
Map Dependencies
Before planning your implementation, understand what code you'll depend on:
"What functions call EmailService.send?"
"What does NotificationManager depend on?"
Uses: noodlbox_raw_cypher_query tool
// Find callers of a function
MATCH (caller)-[:CALLS]->(target:Symbol {name: "send"})
RETURN caller.name, caller.file_path
// Find dependencies of a class
MATCH (source:Symbol {name: "NotificationManager"})-[:CALLS]->(dep)
RETURN DISTINCT dep.name, dep.kindExample: Planning a New Feature
Task: Add push notification support alongside existing email notifications
Understand Current State
"Show me the codebase map"
Find the Notifications community and note its cohesion score.
Find Existing Patterns
"Search for notification sending patterns"
Review how email notifications are currently implemented.
Identify Integration Points
"What calls NotificationService.notify?"
These callers will need to support push notifications too.
Map the Extension Points
"Show me the NotificationService community details"
Identify where to add push notification logic without breaking existing behavior.
Tools & Resources Reference
| Purpose | Tool/Resource |
|---|---|
| High-level overview | map://current |
| Semantic search | noodlbox_query_with_context |
| Module details | map://current/community/{id} |
| Execution flow | map://current/process/{id} |
| Dependency queries | noodlbox_raw_cypher_query |