patent-diagrams
About
This skill generates patent-style technical diagrams (flowcharts, block diagrams, system architectures) as SVG files using Graphviz. It automatically handles patent-style reference numbering and supports templates for common patterns. Use it when you need to create professional technical diagrams suitable for USPTO submissions or documentation.
Quick Install
Claude Code
Recommended/plugin add https://github.com/RobThePCGuy/Claude-Patent-Creatorgit clone https://github.com/RobThePCGuy/Claude-Patent-Creator.git ~/.claude/skills/patent-diagramsCopy and paste this command in Claude Code to install this skill
Documentation
Patent Diagrams Skill
Generate professional patent-style technical diagrams using Graphviz.
Capabilities:
- Flowcharts (method steps, decision flows)
- Block diagrams (system architectures, data flows)
- Custom diagrams (arbitrary DOT code)
- Reference numbering (patent-style annotations)
- Templates (pre-built patterns)
Output: SVG (Scalable Vector Graphics) for USPTO submissions
Core Operations
1. create_flowchart
Inputs:
steps(List[str], required): Ordered list of step descriptions
Outputs:
{
"success": bool,
"svg_path": str, # Absolute path to SVG
"filename": str,
"message": str
}
Example:
steps = [
"Receive input data from sensor",
"Validate data format",
"Process data using algorithm",
"Generate output signal",
"Transmit result to display"
]
result = create_flowchart(steps)
2. create_block_diagram
Inputs:
blocks(List[dict], required): Component definitionsid(str, required): Unique identifierlabel(str, required): Display text (use\nfor multiline)type(str, optional): Block type ("input","output","process","storage","decision","default")
connections(List[dict], required): Connection definitionsfrom_id(str, required): Source block IDto_id(str, required): Target block IDlabel(str, optional): Connection label
Example:
blocks = [
{"id": "sensor", "label": "Input\nSensor", "type": "input"},
{"id": "cpu", "label": "Processing\nUnit", "type": "process"},
{"id": "memory", "label": "Memory\nStorage", "type": "storage"},
{"id": "display", "label": "Output\nDisplay", "type": "output"}
]
connections = [
{"from_id": "sensor", "to_id": "cpu", "label": "raw data"},
{"from_id": "cpu", "to_id": "memory", "label": "store"},
{"from_id": "memory", "to_id": "cpu", "label": "retrieve"},
{"from_id": "cpu", "to_id": "display", "label": "results"}
]
result = create_block_diagram(blocks, connections)
3. render_diagram
Render arbitrary Graphviz DOT code.
Inputs:
dot(str, required): Graphviz DOT code
Example:
dot_code = """
digraph CustomDiagram {
rankdir=TB;
node [shape=box, style=filled, fillcolor=lightblue];
A [label="Component A"];
B [label="Component B"];
C [label="Component C"];
A -> B [label="signal"];
B -> C [label="processed"];
C -> A [label="feedback"];
}
"""
result = render_diagram(dot_code)
4. add_diagram_references
Add patent-style reference numbers to existing SVG.
Inputs:
svg_path(str, required): Path to input SVGreference_map(dict, required): Element text -> reference number- Key: Text to match (case-insensitive substring)
- Value: Reference number (integer)
Outputs:
{
"success": bool,
"svg_path": str, # NEW annotated SVG path
"original_path": str, # Original SVG preserved
"filename": str, # Ends with "_annotated.svg"
"references_added": int,
"message": str
}
Example:
reference_map = {
"Input Sensor": 10,
"Processing Unit": 20,
"Memory Storage": 30,
"Output Display": 40
}
result = add_diagram_references(
svg_path="C:/path/to/block_diagram.svg",
reference_map=reference_map
)
# Creates: "block_diagram_annotated.svg"
5. get_diagram_templates
Retrieve pre-built templates.
Outputs:
{
"success": bool,
"templates": {
"template_name": {
"name": str,
"description": str,
"dot_code": str
}
},
"template_names": List[str]
}
Available Templates:
simple_flowchart: Basic method flowsystem_block: System architecturemethod_steps: Patent method claims (101, 102, ...)component_hierarchy: Hierarchical tree
Example:
result = get_diagram_templates()
template = result["templates"]["system_block"]
diagram = render_diagram(template["dot_code"])
Graphviz Dependency
Required: Graphviz as Python package AND system executable.
Check Installation:
check_graphviz_installed()
# Returns: {"ready": bool, "python_package": bool, "system_command": bool, "version": str, "message": str}
Install if Missing:
- Python package:
pip install graphviz - System executable:
- Windows:
winget install graphviz - macOS:
brew install graphviz - Linux:
sudo apt install graphviz
- Windows:
Output Management
Output Directory: PROJECT_ROOT/diagrams/ (auto-created)
Filename Generation:
- Flowcharts:
flowchart_YYYYMMDD_HHMMSS.svg - Block diagrams:
block_diagram_YYYYMMDD_HHMMSS.svg - Custom renders:
diagram_YYYYMMDD_HHMMSS.svg - Annotated:
{original_name}_annotated.svg
Format: All paths are absolute (e.g., C:/Users/<YOUR_USER>/Desktop/TEST1/diagrams/flowchart.svg)
Block Types and Styling
| Type | Shape | Color | Typical Use |
|---|---|---|---|
input | invhouse | lightblue | Input devices, sensors |
output | house | lightgreen | Output devices, displays |
process | box | lightyellow | Processing units, algorithms |
storage | cylinder | lightgray | Memory, databases |
decision | diamond | lightcoral | Decision points, logic |
default | box | white | Generic components |
Common Use Cases
- Method Claims: Use
simple_flowchartormethod_stepstemplate - System Architecture: Use
system_blocktemplate or customcreate_block_diagram - Component Relationships: Use
component_hierarchytemplate - Custom Layouts: Use
render_diagramwith full DOT control - Final Publication: Use
add_diagram_referencesfor patent-style numbering
GitHub Repository
Related Skills
sglang
MetaSGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.
Algorithmic Art Generation
MetaThis skill helps developers create algorithmic art using p5.js, focusing on generative art, computational aesthetics, and interactive visualizations. It automatically activates for topics like "generative art" or "p5.js visualization" and guides you through creating unique algorithms with features like seeded randomness, flow fields, and particle systems. Use it when you need to build reproducible, code-driven artistic patterns.
csv-data-summarizer
MetaThis skill automatically analyzes CSV files to generate comprehensive statistical summaries and visualizations using Python's pandas and matplotlib/seaborn. It should be triggered whenever a user uploads or references CSV data without prompting for analysis preferences. The tool provides immediate insights into data structure, quality, and patterns through automated analysis and visualization.
llamaindex
MetaLlamaIndex is a data framework for building RAG-powered LLM applications, specializing in document ingestion, indexing, and querying. It provides key features like vector indices, query engines, and agents, and supports over 300 data connectors. Use it for document Q&A, chatbots, and knowledge retrieval when building data-centric applications.
