Skill

patent-diagrams

Generate patent-style technical diagrams (flowcharts, block diagrams, system architectures) with automatic reference numbering.

From claude-patent-creator-standalone
Install
1
Run in your terminal
$
npx claudepluginhub robthepcguy/claude-patent-creator
Tool Access

This skill uses the workspace's default tool permissions.

Supporting Assets
View in Repository
diagram_skill.py
Skill Content

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
Similar Skills
cache-components

Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.

138.5k
Stats
Stars45
Forks5
Last CommitDec 2, 2025