Agent skill

PlotJuggler Live Verification

by PlotJuggler in PlotJuggler/PlotJuggler

Confirms that a change to PlotJuggler 4 really works in the running app by proving the rebuild, launching with real data and measuring the result.

MPL-2.0Auto-check passedTesting & QA

Install PlotJuggler Live Verification

skills CLI
$ npx skills add PlotJuggler/PlotJuggler --skill verify-live -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install PlotJuggler/PlotJuggler verify-live --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/PlotJuggler/PlotJuggler.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/verify-live .claude/skills/verify-live && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
verify-live
GitHub stars
6.2k
Token cost
~956 tokens
SKILL.md length
455 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
MPL-2.0

At a glance

Confirms that a change to PlotJuggler 4 really works in the running app by proving the rebuild, launching with real data and measuring the result.

  • Works in 4 steps: Prove the rebuild (always, before any… → Launch with real data → Observe by change type → …
  • Confirming a widget or layout change in PlotJuggler before calling it fixed
  • SKILL.md covers Overview, Step 1 — Prove the rebuild…, Step 2 — Launch with real data and Step 3 — Observe by change type, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Two recorded mistakes motivate the skill: calling a fix verified when the file never recompiled, and claiming a visual check that never happened. Step one is to prove the rebuild by running `./build.sh`, logging its output and grepping for the edited file's `.cpp.o` line; without it, an edit with no effect is expected. The skill also warns against chaining a kill command with the build in one command, which skips compiling.

The app is then launched through `./run.sh` with real data such as `example.mcap`, bounded by `timeout` in scripted checks. What to observe depends on the change type. Visual and layout changes use the app's `--screenshot` flag or the qt-widgeteer harness, with notes that GNOME Wayland blocks external window capture and that QSS can override C++ sizing. Performance claims need a number such as repaint rate, which must stay at or below 60 Hz, frame time or CPU samples, gathered with `--apitrace`, `--heaptrack` or `perf`.

When your agent uses it

  • Confirming a widget or layout change in PlotJuggler before calling it fixed
  • Investigating an edit that seems to have no effect after rebuilding
  • Measuring a performance change with repaint rate or frame time

Example prompts

  • “I changed the plot legend sizing. Verify it in the live app before telling me it works.”
  • “My edit shows no difference after a rebuild. Check whether the file actually recompiled.”
  • “Measure the replot rate with this change and report it as a number.”

Requirements

  • A PlotJuggler 4 source checkout with `build.sh` and `run.sh`
  • Test data such as `example.mcap` from the repository root

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Prove the rebuild (always, before any conclusion)
  2. Launch with real data
  3. Observe by change type
  4. Calibrate the claim

What it can do on your machine

Read from SKILL.md and the folder at commit 346dee6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

PlotJuggler Live Verification loads about 956 tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 455 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~60
When it runs · the whole SKILL.md, loaded when a task matches
~956

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from PlotJuggler/PlotJuggler at commit 346dee6, republished under its MPL-2.0 licence (© PlotJuggler). 455 words, ~956 tokens.

Download SKILL.mdSave it as .claude/skills/verify-live/SKILL.md (or your agent's skills folder).
name
verify-live
description
Use when confirming a PJ4 change actually works in the running app — visual, widget, layout, or performance changes; before claiming anything is fixed or verified; or when an edit appears to have had no effect after rebuilding.

Verifying a change in the live app

Overview

The two recorded failure modes: claiming a fix works when the file never recompiled, and claiming visual verification that never happened ("I don't see any difference" round-trips). The rule: prove the rebuild, verify in the live app, and calibrate the claim to what you actually checked.

Step 1 — Prove the rebuild (always, before any conclusion)

bash
./build.sh 2>&1 | tee /tmp/build.log
grep "Building.*<YourFile>.cpp.o" /tmp/build.log   # must appear, or the edit is NOT live
  • RCC/QSS-only rebuilds mask a stalled C++ recompile — a missing .cpp.o line means "no effect" is expected, not mysterious.
  • Never chain pkill …; ./build.sh — the chain exits 144 and skips compiling. Kill the app in one command, build in a separate one.

If the edit "had no effect", suspect this step before suspecting the code.

Step 2 — Launch with real data

bash
./run.sh                              # loads only marketplace-installed extensions
./run.sh --plugin-dir ../pj-official-plugins/build/all/Release/bin   # locally-built plugins
  • run.sh already unsets QT_IM_MODULE (IBus segfault) and pins the bundled Qt plugins — launch through it, not the raw binary.
  • Test data: example.mcap at the repo root; more under module test assets.
  • Bound the run: timeout 20 ./run.sh … for scripted checks so nothing hangs the session.

Step 3 — Observe by change type

Visual / layout / widget:

  • Screenshot when cheap: pj_app's --screenshot flag, or the qt-widgeteer harness (3rdparty/qt-widgeteer, in-process WidgeteerClient).
  • GNOME Wayland blocks external window capture (grim etc. return nothing) — that's the environment, not the app. Use the in-app paths above or XWayland.
  • Sizing looks wrong / C++ sizing calls ignored: that's QSS overriding C++ (QStyleSheetStyle). Diagnose in the live app with an env-gated qWarning dump of size/min/max/iconSize + style()->className() — offscreen tests use a different style and cannot reproduce it. Fix in QSS, not C++.

Performance:

  • Produce a number: repaint/replot rate (must stay ≤60 Hz), frame time, on-CPU samples. Adjectives are not verification.
  • Tools: ./run.sh --apitrace (GL trace), ./run.sh --heaptrack (heap), perf on the live PID (see the perf-profile skill).
  • Suspect hot-path reads: anything calling latestAt inside a per-tick gate decompresses cold chunks — use indexAt/entryTimestamps and re-measure.

Behavioral (non-visual):

  • Prefer an automated reproduction (gtest in the module) over eyeballing; the live run then confirms wiring, not logic.
Show full SKILL.md (131 more words)Show less

Step 4 — Calibrate the claim

What you actually didWhat you may say
Built + tests pass, never launched"Tests pass; not verified in the live app"
Launched, exercised the feature, watched it"Verified live: <what you saw>"
Screenshot takenAttach it; say what it shows
Measured before/afterState both numbers and the setup
Offscreen/unit test only, for a visual change"Logic covered by test; visual appearance unverified"

Never imply visual verification that didn't happen — the honest weaker claim costs one sentence; the false stronger claim costs a round-trip and trust.

Red flags

  • Concluding "the fix didn't work" without the Building …cpp.o grep
  • pkill and ./build.sh in one command
  • "Verified" in the summary with no launch in the transcript
  • A performance claim containing no number
  • Debugging a sizing bug in offscreen tests

© PlotJuggler, MPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/verify-live of PlotJuggler/PlotJuggler.

Open the folder on GitHubat commit 346dee6

Compare with similar skills

PlotJuggler Live Verification next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

PlotJuggler Live Verification compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
PlotJuggler Live Verification this skillPlotJuggler/PlotJuggler6.2k—~956Automated safety check: PassMPL-2.0
TUI Change Verification for Warpwarpdotdev/warp65k1 repos~5.5kAutomated safety check: NotesAGPL-3.0
Acceptance Evidence for Deliverieslobehub/lobehub83k—~9.7kAutomated safety check: PassApache-2.0
Codewhale Dogfood Installcodewhale-hq/Codewhale41k—~1.3kAutomated safety check: PassMIT
Issue Fixmono/SkiaSharp5.6k—~5.1kAutomated safety check: PassMIT
Evidence-Driven Testingmichaelshimeles/skills1.3k1 repos~3.9kAutomated safety check: PassNone

Similar skills

  • Runs Warp's terminal UI for real, drives it with keystrokes and reads the rendered screen back to confirm that a change looks and behaves as intended.

    65k GitHub starsUsed in 1 repo~5.5k tokens
    Testing & QAAuto-check: notes
  • Verifies a delivery end to end by driving the real product on a CLI, web, desktop or iOS Simulator surface, capturing evidence and publishing a round with the lh CLI.

    83k GitHub stars~9.7k tokensUpdated today
    Testing & QAAuto-check passed
  • Codewhale Dogfood Install

    codewhale-hq/Codewhale

    Proves a Codewhale change in the real product: a stamped release build, an atomic local install, fresh-shell verification and manual QA that automated gates cannot cover.

    41k GitHub stars~1.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Issue Fix

    mono/SkiaSharp

    Fix bugs in SkiaSharp C bindings. An agent skill from mono/SkiaSharp.

    5.6k GitHub stars~5.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Evidence-Driven Testing

    michaelshimeles/skills

    Records an annotated screen recording of the agent testing an app hands-on, then posts the video and a results summary to the PR and tracker issue.

    1.3k GitHub starsUsed in 1 repo~3.9k tokens
    Testing & QAAuto-check passed
  • Staticphp Build Troubleshooting

    crazywhalecc/static-php-cli

    Diagnose StaticPHP v3 failures. An agent skill from crazywhalecc/static-php-cli.

    1.9k GitHub stars~814 tokensUpdated yesterday
    Testing & QAAuto-check passed

More from PlotJuggler/PlotJuggler

  • PlotJuggler 4 Perf Profiling

    PlotJuggler/PlotJuggler

    Guides CPU profiling of PlotJuggler 4 on Linux with perf: count first, record cheaply with LBR, then read per-thread, flat, flamegraph or time-window views.

    6.2k GitHub stars~1.6k tokensUpdated 7 days ago
    Auto-check: notes
  • PlotJuggler 3 to 4 Porting

    PlotJuggler/PlotJuggler

    Directs porting of widgets, dialogs, panels and transforms from PlotJuggler 3 to PlotJuggler 4 by lifting the original files intact and rebinding only the data paths.

    6.2k GitHub stars~1.1k tokensUpdated 7 days ago
    Auto-check passed
  • PlotJuggler Ship Check

    PlotJuggler/PlotJuggler

    Runs a gated finish-line checklist before committing a PlotJuggler PJ4 change: build proof, red-test triage, hooks, docs freshness and a diff self-review.

    6.2k GitHub stars~1.3k tokensUpdated 7 days ago
    Auto-check passed

Works with

Questions about PlotJuggler Live Verification

What does PlotJuggler Live Verification do?

Confirms that a change to PlotJuggler 4 really works in the running app by proving the rebuild, launching with real data and measuring the result. Two recorded mistakes motivate the skill: calling a fix verified when the file never recompiled, and claiming a visual check that never happened.o` line; without it, an edit with no effect is expected.

When should I use PlotJuggler Live Verification?

PlotJuggler Live Verification fits situations like: confirming a widget or layout change in PlotJuggler before calling it fixed; investigating an edit that seems to have no effect after rebuilding; measuring a performance change with repaint rate or frame time.

How do I install PlotJuggler Live Verification in Claude Code?

Run `npx skills add PlotJuggler/PlotJuggler --skill verify-live -a claude-code`. Or copy the skill folder (.claude/skills/verify-live in PlotJuggler/PlotJuggler) into .claude/skills/verify-live in your project. Claude Code loads it when a task matches its description.

How do I install PlotJuggler Live Verification in Codex?

Run `npx skills add PlotJuggler/PlotJuggler --skill verify-live -a codex`. Or copy the skill folder (.claude/skills/verify-live in PlotJuggler/PlotJuggler) into .agents/skills/verify-live in your project. Codex loads it when a task matches its description.

Can I use PlotJuggler Live Verification in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add PlotJuggler/PlotJuggler --skill verify-live -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/verify-live, .gemini/skills/verify-live, .github/skills/verify-live and .opencode/skills/verify-live in your project.

What does PlotJuggler Live Verification need to run?

SKILL.md names no scripts, command-line tools or credentials: PlotJuggler Live Verification is instructions for the agent only. Our summary lists: A PlotJuggler 4 source checkout with `build.sh` and `run.sh`; Test data such as `example.mcap` from the repository root.

Does PlotJuggler Live Verification access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is PlotJuggler Live Verification safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does PlotJuggler Live Verification use?

PlotJuggler Live Verification is published under the MPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does PlotJuggler Live Verification use?

About 956 tokens (SKILL.md is roughly 3.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to PlotJuggler Live Verification?

Skills that share tags, products or a category with PlotJuggler Live Verification: TUI Change Verification for Warp (warpdotdev/warp, 65k stars), Acceptance Evidence for Deliveries (lobehub/lobehub, 83k stars), Codewhale Dogfood Install (codewhale-hq/Codewhale, 41k stars) and Issue Fix (mono/SkiaSharp, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains PlotJuggler Live Verification?

PlotJuggler (a GitHub organization) maintains it in PlotJuggler/PlotJuggler, which has 6,233 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 1, 2026.

Source: PlotJuggler/PlotJuggler on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.