# Wigolo Diff

Compare two versions of a page and see exactly what changed, a live URL against its...

- Repository: https://github.com/KnockOutEZ/wigolo (5517 stars)
- Category: Git and review
- License: AGPL-3.0-only
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add KnockOutEZ/wigolo --skill wigolo-diff -g -a claude-code -y`
Codex: `npx skills add KnockOutEZ/wigolo --skill wigolo-diff -g -a codex -y`
Cursor: `npx skills add KnockOutEZ/wigolo --skill wigolo-diff -g -a cursor -y`
Gemini CLI: `npx skills add KnockOutEZ/wigolo --skill wigolo-diff -g -a gemini-cli -y`

## Description

Compare two versions of a page and see exactly what changed, a live URL against its cached copy, two URLs, or two markdown blobs. Section-level hunks, word- or line-level granularity, or a summary of counts. Use when the user says "what changed", "diff these", "compare this page to last time", "show me the changes", "did this doc update", or wants a changelog between two versions of the same content.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# wigolo diff

Structural comparison of two page versions. Point it at a live URL and its cached copy, two URLs, or two raw markdown blobs, and it returns a git-style patch, structured per-section hunks, or a counts-only summary.

## Quick Reference

```json
// Live page vs its cached version (re-fetches `new` side)
{ "old": { "url": "https://docs.example.com/api" }, "new": { "url": "https://docs.example.com/api" } }

// Two different URLs
{ "old": { "url": "https://v1.example.com/spec" }, "new": { "url": "https://v2.example.com/spec" } }

// Two markdown blobs directly
{ "old": { "markdown": "# Title\nold body" }, "new": { "markdown": "# Title\nnew body" } }

// Structured per-section hunks at word granularity
{ "old": { "url": "https://example.com" }, "new": { "url": "https://example.com" }, "output": "hunks", "granularity": "word" }

// Counts only
{ "old": { "url": "https://example.com" }, "new": { "url": "https://example.com" }, "output": "summary" }
```

## Parameters

| Parameter | Type | Default | When to use |
|-----------|------|---------|-------------|
| `old` | object | required | Left-hand side. One of `{ url, markdown, content_hash }` |
| `new` | object | required | Right-hand side. One of `{ url, markdown }` |
| `output` | string | "unified" | "unified" (git-style patch), "hunks" (per-section), "summary" (counts only) |
| `granularity` | string | "line" | "line", "word" (changed tokens only, tighter), "section" (walks H1/H2/H3) |

## Output Shapes

- **`unified`**, a git-style unified patch, ready to read or store.
- **`hunks`**, structured per-section change blocks. Combine with `granularity: "section"` to align hunks to headings, or `granularity: "word"` for tight intra-line edits.
- **`summary`**, counts only: `added_lines`, `removed_lines`, `modified_lines`, and `total_changed_chars` (sum of added + removed line chars across the edit script). Cheapest way to answer "did anything change, and how much".

## Comparing Against the Cache

The rest: https://github.com/KnockOutEZ/wigolo/blob/HEAD/skills/wigolo-diff/SKILL.md
