name: ghx-to-llm description: Convert GHX files to LLM-readable format and generate RAG summaries. Use when users mention GHX, Grasshopper definition, .ghx files, convert for LLM, document Grasshopper, or RAG context for parametric workflows. trigger: manual
GHX to LLM Converter
Convert Grasshopper .ghx files into two complementary outputs for LLM understanding and RAG retrieval.
How to Use This Skill
- User provides path to
.ghxfile - Run Python converter script → creates
{name}_Definition.md - Analyze conversion output → create
{name}_Summary.md - Both files saved to same folder as input
When to Use This Skill
- User invokes
/ghx-to-llm [path] - User asks to convert/document a Grasshopper file
- Creating RAG context for GH definitions
- Preparing GH workflows for LLM analysis
CLI Scripts
| Script | Purpose | Usage |
|---|---|---|
scripts/ghx_to_llm.py | Convert .ghx to LLM-readable markdown | python scripts/ghx_to_llm.py input.ghx [-o output.md] |
Script options:
input- Path to .ghx file (required)-o, --output- Custom output path (default:{input}_Definition.md)--stdout- Print to console instead of file
Output Files
| Input | Output 1 (Phase 1) | Output 2 (Phase 2) |
|---|---|---|
Task_01.ghx | Task_01_Definition.md | Task_01_Summary.md |
Example Workflow
# Phase 1: Convert (from skill folder)
python .claude/skills/ghx-to-llm/scripts/ghx_to_llm.py "path/to/Definition.ghx"
# Output: path/to/Definition_Definition.md
# Phase 2: Summarize (LLM reads conversion, writes summary)
# Read the _Definition.md file
# Create: path/to/Definition_Summary.md
Critical Requirements
- Input format: Must be
.ghx(XML-based), not binary.gh - Python: 3.8+ with standard library only (no external dependencies)
- Better output: Groups in Grasshopper improve output structure significantly
- Cluster internals (optional): Requires .NET 8+ SDK and Rhino 8 installed (for
GH_IO.dll). Without these, clusters still appear as labeled components with I/O, but the## CLUSTERSsection showing internal components is skipped
Quick Decision Tree
Have a .ghx file to document?
├── Want raw component data? → Phase 1 only (run script)
└── Want semantic summary? → Full workflow (both phases)
Have a .gh (binary) file?
└── Save as .ghx in Grasshopper first (File → Save As)
Phase 1: Conversion Output Format
The converter produces structured markdown with:
- Component groups as
## GROUPsections - Wire connections between components
- Parameter values (sliders, toggles, panels)
- Data flow references (e.g.,
5.1= component 5, output 1) - Modifiers: F=Flatten, G=Graft, S=Simplify, R=Reverse
- Clusters labeled as
Cluster"Name"[I/O]with descriptions ## CLUSTERSsection showing internal components of each cluster (requires .NET + Rhino 8)
Phase 2: Summary Structure Template
After reading the _Definition.md file, create a semantic summary:
# {Filename} - Grasshopper Definition Summary
## Purpose
[What this definition calculates or produces - 1-2 sentences]
## Required Setup
- **Rhino Layers:** [List layers with expected geometry types]
- **Plugins:** [List required Grasshopper plugins]
## Workflow Logic
[Plain language description of how data flows through the definition]
1. **[Stage Name]**: [What happens and why]
2. **[Stage Name]**: [What happens and why]
...
## Key Parameters
| Parameter | Default | Effect |
|-----------|---------|--------|
| [Name] | [Value] | [What changing it does] |
## Key Calculations
[Any important formulas or operations, explained in context]
## Output
[What the definition produces and how to interpret results]
Analysis Guidelines
When creating the Phase 2 summary:
- Extract Purpose - Look at output groups and final calculations
- Trace Data Flow - Follow group sequence and connections
- Identify Parameters - Find all Number Sliders, Boolean Toggles, editable Panels
- Explain Calculations - Translate mathematical component chains into formulas
- Note Dependencies - Identify required Rhino geometry and GH plugins
Troubleshooting
| Symptom | Cause | Solution |
|---|---|---|
| "File not found" | Wrong path | Use absolute path or verify relative path |
| Empty output | No components in file | Verify .ghx has content in Grasshopper |
| Missing connections | Unnamed groups | Add descriptive group names in Grasshopper |
| XML parse error | Corrupted or binary file | Re-save as .ghx from Grasshopper |
| Plugin components show as unknown | Third-party plugins | Component type name still captured; note plugin in summary |
| Encoding errors on Windows | Console encoding | Script handles this automatically |
Boundaries
This skill should NOT:
- Modify the original
.ghxfile - Generate Grasshopper component code
- Skip either output phase (both files are required for complete documentation)
- Include excessive technical detail in the summary (focus on intent and usage)