SKILL.md
Patent Diagram Generator Skill
Create patent-style technical diagrams including flowcharts, block diagrams, and system architectures using Graphviz.
When to Use
Invoke this skill when users ask to:
- Create flowcharts for method claims
- Generate block diagrams for system claims
- Draw system architecture diagrams
- Create technical illustrations for patents
- Add reference numbers to diagrams
- Generate patent figures
What This Skill Does
- Flowchart Generation:
- Method step flowcharts - Decision trees - Process flows with branches - Patent-style step numbering
- Block Diagram Creation:
- System component diagrams - Hardware architecture diagrams - Software module diagrams - Component interconnections
- Custom Diagram Rendering:
- Render Graphviz DOT code - Support multiple formats (SVG, PNG, PDF) - Multiple layout engines (dot, neato, fdp, circo, twopi)
- Patent-Style Formatting:
- Add reference numbers (10, 20, 30, etc.) - Use clear labels and connections - Professional formatting for USPTO filing
Required Dependencies
This skill requires Graphviz to be installed:
Windows:
choco install graphviz
Linux:
sudo apt install graphviz
Mac:
brew install graphviz
Python Package:
pip install graphviz
How to Use
When this skill is invoked:
- Load diagram generator:
```python import sys sys.path.insert(0, os.path.join(os.environ.get('CLAUDEPLUGINROOT', '.'), 'python')) from python.diagram_generator import PatentDiagramGenerator
generator = PatentDiagramGenerator() ```
- Create flowchart from steps:
```python steps = [ {"id": "start", "label": "Start", "shape": "ellipse", "next": ["step1"]}, {"id": "step1", "label": "Initialize System", "shape": "box", "next": ["decision"]}, {"id": "decision", "label": "Is Valid?", "shape": "diamond", "next": ["step2", "error"]}, {"id": "step2", "label": "Process Data", "shape": "box", "next": ["end"]}, {"id": "error", "label": "Handle Error", "shape": "box", "next": ["end"]}, {"id": "end", "label": "End", "shape": "ellipse", "next": []} ]
diagrampath = generator.createflowchart( steps=steps, filename="methodflowchart", outputformat="svg" ) ```
- Create block diagram:
```python blocks = [ {"id": "input", "label": "Input\\nSensor", "type": "input"}, {"id": "cpu", "label": "Central\\nProcessor", "type": "process"}, {"id": "memory", "label": "Memory\\nStorage", "type": "storage"}, {"id": "output", "label": "Output\\nDisplay", "type": "output"} ]
connections = [ ["input", "cpu", "raw data"], ["cpu", "memory", "store"], ["memory", "cpu", "retrieve"], ["cpu", "output", "processed data"] ]
diagrampath = generator.createblockdiagram( blocks=blocks, connections=connections, filename="systemdiagram", output_format="svg" ) ```
- Render custom DOT code:
```python dot_code = """ digraph PatentSystem { rankdir=LR; node [shape=box, style=rounded];
Input [label="User Input\\n(10)"]; Processor [label="Processing Unit\\n(20)"]; Output [label="Display\\n(30)"];
Input -> Processor [label="data"]; Processor -> Output [label="result"]; } """
diagrampath = generator.renderdotdiagram( dotcode=dotcode, filename="customdiagram", output_format="svg", engine="dot" ) ```
- Add reference numbers:
```python # After creating a diagram, add patent-style reference numbers reference_map = { "Input Sensor": 10, "Central Processor": 20, "Memory Storage": 30, "Output Display": 40 }
annotatedpath = generator.addreferencenumbers( svgpath=diagrampath, referencemap=reference_map ) ```
Diagram Templates
Get common templates:
templates = generator.get_diagram_templates()
# Available templates:
# - simple_flowchart: Basic process flow
# - system_block: System architecture
# - method_steps: Sequential method
# - component_hierarchy: Hierarchical structure
Shape Types
Flowchart Shapes
ellipse: Start/End pointsbox: Process stepsdiamond: Decision pointsparallelogram: Input/Output operationscylinder: Database/Storage
Block Diagram Types
input: Input devices/sensorsoutput: Output devices/displaysprocess: Processing unitsstorage: Memory/storagedecision: Control logicdefault: General components
Layout Engines
dot: Hierarchical (top-down/left-right)neato: Spring model layoutfdp: Force-directed layoutcirco: Circular layouttwopi: Radial layout
Output Formats
svg: Scalable Vector Graphics (best for editing)png: Raster image (good for viewing)pdf: Portable Document Format (USPTO compatible)
Patent-Style Reference Numbers
Convention:
- Main components: 10, 20, 30, 40, ...
- Sub-components: 12, 14, 16 (under 10)
- Elements: 22, 24, 26 (under 20)
Example labeling:
"Input Sensor (10)"
" - Detector Element (12)"
" - Signal Processor (14)"
"Central Unit (20)"
" - CPU Core (22)"
" - Cache (24)"
Presentation Format
When creating diagrams:
- Describe what will be generated:
"Creating a flowchart for the authentication method with 5 steps..."
- Generate the diagram:
Run Python code to create SVG/PNG/PDF
- Show file location:
"Diagram created: ${CLAUDEPLUGINROOT}/python\diagrams\method_flowchart.svg"
- List reference numbers (if added):
`` Reference Numbers: - Input Module (10) - Processing Unit (20) - Output Interface (30) ``
Common Use Cases
- Method Claims → Flowcharts
- Show sequential steps - Include decision branches - Number steps (S1, S2, S3...)
- System Claims → Block Diagrams
- Show components and connections - Use reference numbers - Indicate data flow directions
- Architecture Diagrams → Custom DOT
- Complex system layouts - Multiple interconnections - Hierarchical structures
Error Handling
If Graphviz is not installed:
- Check installation:
dot -V - Install for your OS (see above)
- Verify Python package:
pip show graphviz - Test generation:
python scripts/test_diagrams.py
Tools Available
- Bash: To run Python diagram generation
- Write: To save DOT code or diagrams
- Read: To load existing diagrams or templates