Claude Skills
CollectionsCompareWorkflowsNominate
Sign inSign up
© 2026 Curated Agent Skills·Learn more about Agent Skills
Back to repository

wavejson

verified

Generate WaveJSON timing diagrams for digital signals and create HTML viewers to display them. Use when documenting signal timing, creating timing diagrams, analyzing protocol sequences, visualizing digital waveforms (clock, data, control signals), or displaying/rendering WaveDrom diagrams locally.

View on GitHub

Marketplace

lumber-mart

lumberbarons/lumber-mart

Plugin

circuits

hardware

Repository

lumberbarons/lumber-mart

plugins/circuits/skills/wavejson/SKILL.md

Last Verified

February 1, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/lumberbarons/lumber-mart/blob/main/plugins/circuits/skills/wavejson/SKILL.md -a claude-code --skill wavejson

Installation paths:

Claude
.claude/skills/wavejson/
Powered by add-skill CLI

Instructions

# WaveJSON Timing Diagram Generator

Generate WaveJSON format timing diagrams for WaveDrom rendering. Perfect for documenting hardware interfaces, signal timing, protocol sequences, and any digital signal visualization.

**Format Reference:** This skill uses the [WaveJSON specification](https://github.com/wavedrom/schema/blob/master/WaveJSON.md)
and [WaveDrom](https://github.com/wavedrom/wavedrom) rendering engine, both licensed under MIT.

**Additional Resources:**
- `reference.md` - Quick reference card with wave characters, common patterns, detailed signal pattern examples, and validation checklist

## Important

- Keep signal names short, space is at a premium

## WaveJSON Format Overview

WaveJSON uses JSON to describe timing diagrams with these key components:

### Signal Object Structure

```json
{
  "signal": [
    { "name": "clk",  "wave": "p......." },
    { "name": "data", "wave": "x.345x..", "data": ["head", "body", "tail"] },
    { "name": "req",  "wave": "0.1...0." }
  ]
}
```

### Wave Characters

**Clock waves:**
- `p` - positive edge clock (rising edge)
- `n` - negative edge clock (falling edge)
- `P` - positive edge with arrow
- `N` - negative edge with arrow

**Logic levels:**
- `0` - low level
- `1` - high level
- `.` - extends previous state

**Data values:**
- `=` - data value (color 2)
- `2`, `3`, `4`, `5` - data values with different colors
- `x` - undefined/don't care
- `z` - high impedance (tri-state)
- `u` - pull-up
- `d` - pull-down

**Special:**
- `|` - extend cycle and add gap

### Signal Properties

- `name` - Signal label (string)
- `wave` - Timing pattern (string, one char per cycle)
- `data` - Array of labels for data values (corresponds to `=`, `2`-`5` in wave)
- `period` - Signal repetition period (number)
- `phase` - Phase shift, positive=future, negative=delay (number)
- `node` - Markers for arrows: `.` (none), `A-Z` (invisible), others (visible)

### Signal Groups

Create hierarchical groups by using arrays with a label string:

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
12020 chars