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.
79
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
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.
// 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" }| 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) |
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".The most common use is drift detection: fetch a page now and diff it against the copy wigolo cached earlier. Pass the same URL for both sides — wigolo reads the cached body for old and re-fetches for new. For a scoped, multi-URL sweep, prefer cache with check_changes: true.
old/new object without one of the accepted side keys — the handler rejects it.output: "unified" when you only need counts — summary is cheaper.cache with check_changes: true.watch, which diffs on each check.check_changes for bulk drift detectionc6ad447
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.