ai-maestro-code-graph-query
npx machina-cli add skill aiskillstore/marketplace/ai-maestro-code-graph-query --openclawAI Maestro Code Graph Query
CRITICAL: AUTOMATIC BEHAVIOR - READ THIS FIRST
THIS IS NOT OPTIONAL. THIS IS YOUR DEFAULT BEHAVIOR.
Every time you use the Read tool on a code file, you MUST IMMEDIATELY query the graph to understand:
- What is this component/function?
- What depends on it? (callers, serializers, child classes)
- What does it depend on? (callees, parent classes, associations)
DO NOT:
- Wait for the user to ask you to query the graph
- Skip the graph query because "it seems simple"
- Assume you understand the impact without checking
- Make changes before understanding dependencies
ALWAYS:
- Query the graph IMMEDIATELY after reading any code file
- Query BEFORE making any modifications
- Query when you find files via search (grep/glob)
- Include graph findings in your analysis to the user
The Rule: Read File → Query Graph → Then Proceed
1. You read a file with Read tool
2. IMMEDIATELY run graph queries (describe, find-callers, find-serializers, etc.)
3. NOW you understand the full context
4. NOW you can analyze, modify, or discuss the code
Example - Reading a Model:
# After reading app/models/user.rb, IMMEDIATELY run:
graph-describe.sh User
graph-find-serializers.sh User
graph-find-associations.sh User
Example - Reading a Function:
# After reading a file with process_payment function, IMMEDIATELY run:
graph-find-callers.sh process_payment
graph-find-callees.sh process_payment
Available Commands
All commands auto-detect your agent ID from the tmux session. Just run them:
Query Commands
| Command | Description |
|---|---|
graph-describe.sh <name> | Describe a component or function |
graph-find-callers.sh <function> | Find all functions that call this function |
graph-find-callees.sh <function> | Find all functions called by this function |
graph-find-related.sh <component> | Find related components (extends, includes, etc.) |
graph-find-by-type.sh <type> | Find all components of a type (model, controller, etc.) |
graph-find-serializers.sh <model> | Find serializers for a model |
graph-find-associations.sh <model> | Find model associations (belongs_to, has_many) |
graph-find-path.sh <from> <to> | Find call path between two functions |
Indexing Commands
| Command | Description |
|---|---|
graph-index-delta.sh [project-path] | Delta index - only re-index changed files |
Delta Indexing (New)
When files change in your codebase, use delta indexing to quickly update the graph:
# Delta index - only process changed files
graph-index-delta.sh
# Delta index a specific project
graph-index-delta.sh /path/to/project
First Run Behavior:
- First time: Does a full index + initializes file tracking metadata
- Subsequent runs: Only indexes new/modified/deleted files
Output shows:
- New files added
- Modified files re-indexed
- Deleted files removed
- Unchanged files skipped
Performance:
- Full index: 30-120 seconds (1000+ files)
- Delta index: 1-5 seconds (5-10 changed files)
What to Query Based on What You Read
| File Type | IMMEDIATELY Query |
|---|---|
| Model | graph-describe.sh, graph-find-serializers.sh, graph-find-associations.sh |
| Controller | graph-describe.sh, graph-find-callees.sh |
| Service | graph-describe.sh, graph-find-callers.sh |
| Function | graph-find-callers.sh, graph-find-callees.sh |
| Serializer | graph-describe.sh |
| Any class | graph-find-related.sh |
Why This Matters
Without querying the graph, you will:
- Miss serializers that need updating when you change a model
- Break callers when you change a function signature
- Miss child classes that inherit your changes
- Overlook associations that depend on this model
The graph query takes 1 second. A broken deployment takes hours to fix.
Component Types
Use with graph-find-by-type.sh:
model- Database modelsserializer- JSON serializerscontroller- API controllersservice- Service objectsjob- Background jobsconcern- Shared modulescomponent- React/Vue componentshook- React hooks
Error Handling
Script not found:
- Check PATH:
which graph-describe.sh - Verify scripts installed:
ls -la ~/.local/bin/graph-*.sh - Scripts are installed to
~/.local/bin/which should be in your PATH - If not found, run:
./install-graph-tools.sh
API connection fails:
- Ensure AI Maestro is running:
curl http://localhost:23000/api/agents - Ensure your agent is registered (scripts auto-detect from tmux session)
- Check exact component names (case-sensitive)
Graph is unavailable:
- Inform the user: "Graph unavailable, proceeding with manual analysis - increased risk of missing dependencies."
Installation
If commands are not found:
./install-graph-tools.sh
This installs scripts to ~/.local/bin/.
Source
git clone https://github.com/aiskillstore/marketplace/blob/main/skills/23blocks-os/ai-maestro-code-graph-query/SKILL.mdView on GitHub Overview
This skill automatically queries the code graph after reading any file to understand its context and impact. It reveals what depends on a component (callers, serializers), what it depends on (callees, parent classes), and helps prevent breaking changes by surfacing relationships before you modify code.
How This Skill Works
Whenever you read a file with the Read tool, you immediately run graph-describe.sh and related queries (callers, callees, serializers, associations). You then use the gathered relationships to assess impact and guide edits, and you must query again before any modification or when you discover new files via search.
When to Use It
- When reading any file to understand its context and impact
- When searching for files to locate related components
- When exploring the codebase to map dependencies
- When assessing potential changes to avoid breaking callers or serializers
- When performing code reviews or planning refactors
Quick Start
- Step 1: Read the target file with the Read tool
- Step 2: Run graph-describe.sh <Name> and related queries (callers/callees/serializers)
- Step 3: Review results and plan changes with dependency context
Best Practices
- Always query the graph immediately after reading a file
- Query before making any modifications
- Use the full set of graph queries: describe, callers, callees, serializers, associations
- Include graph findings in your analysis and notes to teammates
- Use delta indexing to keep the graph up-to-date when files change
Example Use Cases
- Reading app/models/user.rb, run graph-describe, graph-find-serializers, and graph-find-associations
- Opening a function like process_payment, query callers and callees
- Exploring a new feature by mapping all inter-module dependencies
- Before changing a component, check all its callers and downstream serializers
- During a code-review, surface all impact paths to reviewers