Back to Skills

patent-diagrams

RobThePCGuy
Updated Today
57 views
2
2
View on GitHub
Metaautomationdata

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 CommandRecommended
/plugin add https://github.com/RobThePCGuy/Claude-Patent-Creator
Git CloneAlternative
git clone https://github.com/RobThePCGuy/Claude-Patent-Creator.git ~/.claude/skills/patent-diagrams

Copy 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 definitions
    • id (str, required): Unique identifier
    • label (str, required): Display text (use \n for multiline)
    • type (str, optional): Block type ("input", "output", "process", "storage", "decision", "default")
  • connections (List[dict], required): Connection definitions
    • from_id (str, required): Source block ID
    • to_id (str, required): Target block ID
    • label (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 SVG
  • reference_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 flow
  • system_block: System architecture
  • method_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:

  1. Python package: pip install graphviz
  2. System executable:
    • Windows: winget install graphviz
    • macOS: brew install graphviz
    • Linux: sudo apt install graphviz

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

TypeShapeColorTypical Use
inputinvhouselightblueInput devices, sensors
outputhouselightgreenOutput devices, displays
processboxlightyellowProcessing units, algorithms
storagecylinderlightgrayMemory, databases
decisiondiamondlightcoralDecision points, logic
defaultboxwhiteGeneric components

Common Use Cases

  1. Method Claims: Use simple_flowchart or method_steps template
  2. System Architecture: Use system_block template or custom create_block_diagram
  3. Component Relationships: Use component_hierarchy template
  4. Custom Layouts: Use render_diagram with full DOT control
  5. Final Publication: Use add_diagram_references for patent-style numbering

GitHub Repository

RobThePCGuy/Claude-Patent-Creator
Path: skills/patent-diagrams
bigqueryclaude-codeclaude-code-pluginfaissmcp-servermpep

Related Skills

sglang

Meta

SGLang 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.

View skill

Algorithmic Art Generation

Meta

This 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.

View skill

csv-data-summarizer

Meta

This 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.

View skill

llamaindex

Meta

LlamaIndex 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.

View skill