Agent skill

Live Preview

by SethGammon in SethGammon/Citadel

Mid-build visual verification loop. An agent skill from SethGammon/Citadel.

MITAuto-check passedTesting & QA

Install Live Preview

skills CLI
$ npx skills add SethGammon/Citadel --skill live-preview -a claude-code

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

GitHub CLI
$ gh skill install SethGammon/Citadel live-preview --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/SethGammon/Citadel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/live-preview .claude/skills/live-preview && 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
live-preview
GitHub stars
922
Token cost
~1.6k tokens
SKILL.md length
679 words
Files
3
Skills in repo
48
Repo updated
First seen
Licence
MIT

At a glance

Mid-build visual verification loop. An agent skill from SethGammon/Citadel.

  • Works in 5 steps: DETECT → CAPTURE → VERIFY → …
  • Tasks that involve Visual regression testing
  • SKILL.md covers Prerequisites, When to Use, Protocol and Integration with Archon, plus 5 more sections
  • Calls npx, node and npm

What it does

Live Preview is an agent skill from SethGammon/Citadel. Mid-build visual verification loop. Takes screenshots of components during construction, not just after. Catches visual regressions and invisible features before they compound. Requires Playwright or similar screenshot tool.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `__benchmarks__/no-server.md` and `__benchmarks__/visual-verify-pass.md`).

It sits in Testing & QA, covering Visual regression testing and Browser testing. It works with Playwright. The repository describes itself as: The operating layer for Claude Code + OpenAI Codex: persistent project memory, intent routing, safety hooks, cost telemetry, and parallel agent fleets. The licence is MIT.

When your agent uses it

  • Tasks that involve Visual regression testing
  • Tasks that involve Browser testing

Example prompts

  • “/live-preview”

Requirements

  • Node.js

Workflow steps

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

  1. DETECT
  2. CAPTURE
  3. VERIFY
  4. FIX (if failures found)
  5. ARTIFACT

What it can do on your machine

Read from SKILL.md and the folder at commit e41ff1d. 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

    Shell commands in SKILL.md call:

    • npx
    • node
    • npm

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

  • Network

    No URLs in SKILL.md. Its commands use npx and npm, which can reach the network depending on how they are called.

    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

Live Preview loads about 1.6k tokens when it runs. Until then it costs about 59 tokens; SKILL.md has 679 words of instructions outside code blocks.

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

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 SethGammon/Citadel at commit e41ff1d, republished under its MIT licence (© SethGammon). 679 words, ~1,627 tokens.

Download SKILL.mdSave it as .claude/skills/live-preview/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
live-preview
description
Mid-build visual verification loop. Takes screenshots of components during construction, not just after. Catches visual regressions and invisible features before they compound. Requires Playwright or similar screenshot tool.
license
MIT
user-invocable
true
auto-trigger
false
trigger_keywords
preview, screenshot, visual check, does it render
last-updated
2026-03-21

/live-preview — Build-Verify-Fix Loop

Prerequisites

This skill requires a screenshot tool. Supported:

  • Playwright (recommended): npx playwright screenshot [url] [output.png]
  • Puppeteer: via a small script
  • Any tool that takes a URL and produces a screenshot

If no screenshot tool is available, this skill will tell you what to install and exit.

When to Use

  • Any time .tsx, .jsx, .vue, .svelte, or .html files are modified
  • After component creation or replacement
  • During visual redesign campaigns
  • When Archon or Marshal delegate UI work

Protocol

Step 1: DETECT

Determine what needs visual verification:

  1. Check which files were modified in the current session/phase
  2. Filter to view-layer files (.tsx, .jsx, .vue, .svelte, .html, .css)
  3. If no view-layer files found: exit early with message "No view-layer files modified. Nothing to preview." Skip Steps 2-5. This is expected for non-UI repos (CLI tools, libraries, agent harnesses).
  4. Map each modified file to a route or URL where it renders:
    • If the project has a route manifest or sitemap, use it
    • If the project has a dev server, identify which routes render the modified components
    • If you can't determine the route, ask the user
Step 2: CAPTURE

For each route/URL that needs verification:

  1. Ensure the dev server is running (start it if not)
  2. Take a screenshot:
    bash
    npx playwright screenshot http://localhost:{port}/{route} .planning/screenshots/{route-slug}.png --full-page
  3. If Playwright isn't available, try:
    bash
    # Check for playwright
    npx playwright --version 2>/dev/null
    # If not found, inform the user:
    # "live-preview needs Playwright for screenshots. Install with: npm i -D playwright"
Step 3: VERIFY

For each screenshot:

  1. Read the screenshot (vision). Check:
    • Does the component render? (not blank, not invisible)
    • Does it show real data or placeholder/empty states?
    • Are there obvious layout breaks (overlapping elements, overflow, missing sections)?
    • Does it match the intended design direction?
  2. Record the result:
    • PASS: renders correctly, matches expectations
    • FAIL: describe what's wrong
    • BLANK: nothing rendered (critical failure)
Step 4: FIX (if failures found)

For each FAIL or BLANK:

  1. Diagnose: is it a data issue, a rendering issue, or a missing import?
  2. Fix the root cause (not a band-aid)
  3. Re-capture and re-verify
  4. Maximum 2 fix attempts per component. If still failing, log it and move on.
Step 5: ARTIFACT

Save verification artifacts:

  1. Screenshots go to .planning/screenshots/{campaign-slug}/ (if in a campaign) or .planning/screenshots/ (if standalone)
  2. In Codex, also register screenshots for the app artifact/browser workflow:
    bash
    node scripts/codex-app-artifacts.js record --workflow live-preview --kind screenshot --path ".planning/screenshots/{route-slug}.png" --status pass
  3. Verify registered artifacts:
    bash
    node scripts/codex-app-artifacts.js verify --require-artifacts
  4. Write a verification summary:
    markdown
    ## Visual Verification: {date}
    
    | Route | File Modified | Result | Notes |
    |-------|--------------|--------|-------|
    | /dashboard | Dashboard.tsx | PASS | Renders correctly |
    | /settings | SettingsPanel.tsx | FAIL → PASS | Fixed missing import, re-verified |
    | /profile | ProfileCard.tsx | BLANK → PASS | Component wasn't mounted, fixed export |
Show full SKILL.md (308 more words)Show less

Integration with Archon

When Archon delegates a build phase that modifies view files:

  1. After the sub-agent completes, Archon invokes /live-preview on the modified routes
  2. If any route is BLANK or FAIL, the phase is NOT marked complete
  3. The fix cycle runs before proceeding to the next phase
  4. This is part of Archon's Step 4 (Self-Correction) quality spot-check

What This Prevents

  • Invisible features (postmortem #17) — compiles but renders nothing
  • Layout regressions — change in one component breaks another's layout
  • Empty states shipped as features — data not connected, UI renders skeleton
  • "Works on my machine" — screenshots are artifacts anyone can review

Fringe Cases

  • Dev server is not running: Offer to start it. Output: "Dev server not detected on localhost:{port}. Start it with npm run dev or equivalent, then re-run /live-preview." Do not attempt screenshots against a dead server.
  • Port is not 3000: Check common alternatives (3001, 5173, 4173, 8080) before asking. Read package.json scripts for a --port flag or PORT env variable.
  • Screenshot tool unavailable (Playwright not installed): Output what to check manually — list the modified routes, describe what each should render, and suggest installing Playwright: npm i -D playwright. Exit gracefully without crashing.
  • .planning/screenshots/ does not exist: Create the directory before writing artifacts. Never error on a missing output directory.
  • No view-layer files modified: Exit immediately with "No view-layer files modified. Nothing to preview." This is expected and correct for non-UI repos.

Contextual Gates

Disclosure: "Taking screenshots for visual verification. Images saved to .planning/screenshots/." Reversibility: green — screenshots only; saves to .planning/screenshots/. No source files modified. Trust gates:

  • Any: full screenshot capture, verify, and fix workflow.

Quality Gates

  • Every modified view file must have a corresponding screenshot
  • BLANK results are critical failures (never acceptable)
  • Screenshots must be saved as artifacts (not just checked and discarded)
  • Fix attempts capped at 2 per component (prevent infinite loops)

Exit Protocol

---HANDOFF---
- Live Preview: {N} routes verified
- Results: {pass}/{total} passed
- Failures: {list of routes that failed and what was wrong}
- Screenshots: .planning/screenshots/{path}
- Reversibility: green — delete .planning/screenshots/ to remove artifacts; no source files modified
---

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

Files

SKILL.md and 2 other files in skills/live-preview of SethGammon/Citadel.

  • SKILL.md
  • __benchmarks__/no-server.md
  • __benchmarks__/visual-verify-pass.md

Open the folder on GitHubat commit e41ff1d

Compare with similar skills

Live Preview 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.

Live Preview compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Live Preview this skillSethGammon/Citadel922—~1.6kAutomated safety check: PassMIT
Dozzle Visual Snapshot Updateramir20/dozzle15k—~797Automated safety check: PassMIT
Economical Visual Testsigrlk/storybook-addon-test-codegen1541 repos~1.1kAutomated safety check: PassMIT
Playwright Testingchongdashu/vibejam-starter-pack149—~2.2kAutomated safety check: PassNone
UI Visual DebuggingNangoHQ/nango13k—~1.3kAutomated safety check: PassCustom licence
Playwright Visual Implementationbangumi/frontend127—~2.3kAutomated safety check: PassBSD-3-Clause

Similar skills

  • Regenerates Playwright visual snapshots for Dozzle after an intentional UI change, running them through Docker Compose so filenames match the Linux CI platform.

    15k GitHub stars~797 tokensUpdated today
    Testing & QAAuto-check passed
  • Economical Visual Tests

    igrlk/storybook-addon-test-codegen

    Author economical visual tests — full visual coverage in the fewest billable snapshots.

    154 GitHub starsUsed in 1 repo~1.1k tokens
    Testing & QAAuto-check passed
  • Playwright Testing

    chongdashu/vibejam-starter-pack

    Plan, implement, and debug frontend tests: unit/integration/E2E/visual/a11y.

    149 GitHub stars~2.2k tokensUpdated 5 mo ago
    Testing & QAAuto-check passed
  • UI Visual Debugging

    NangoHQ/nango

    A skill your agent uses when modifying or visually debugging Nango frontend UI, including packages/webapp, packages/connect-ui, browser interactions, screenshots, and visual regressions.

    13k GitHub stars~1.3k tokensUpdated today
    Testing & QAAuto-check passed
  • Use Playwright screenshots to implement or repair a frontend against one or more visual references.

    127 GitHub stars~2.3k tokensUpdated 3 days ago
    Testing & QAAuto-check passed
  • Playwright Expert

    cin12211/orca-q

    Playwright E2E testing expert for browser automation, cross-browser testing, visual regression, network interception, and CI integration.

    224 GitHub stars~1.3k tokensUpdated 17 days ago
    Testing & QAAuto-check passed

More from SethGammon/Citadel

All 48 skills in this repo
  • Create Skill

    SethGammon/Citadel

    Creates new skills from the user's repeating patterns. An agent skill from SethGammon/Citadel.

    922 GitHub stars~1.9k tokensUpdated 7 days ago
    Auto-check passed
  • Houseclean

    SethGammon/Citadel

    Cross-drive storage audit and cleanup. An agent skill from SethGammon/Citadel.

    922 GitHub stars~2.2k tokensUpdated 7 days ago
    Auto-check passed
  • Loop

    SethGammon/Citadel

    Bounded foreground repetition for the current session. An agent skill from SethGammon/Citadel.

    922 GitHub stars~1.4k tokensUpdated 7 days ago
    Auto-check passed
  • Triage

    SethGammon/Citadel

    GitHub issue and PR investigator. An agent skill from SethGammon/Citadel.

    922 GitHub stars~2.7k tokensUpdated 7 days ago
    Auto-check passed
  • Watch

    SethGammon/Citadel

    File sentinel that monitors the working directory for changes and marker comments, then auto-triggers appropriate skills.

    922 GitHub stars~2.9k tokensUpdated 7 days ago
    Auto-check passed
  • Archon

    SethGammon/Citadel

    Autonomous multi-session campaign agent. An agent skill from SethGammon/Citadel.

    922 GitHub stars~5.4k tokensUpdated 7 days ago
    Auto-check passed

Works with

Categories

Questions about Live Preview

What does Live Preview do?

Mid-build visual verification loop. An agent skill from SethGammon/Citadel. Live Preview is an agent skill from SethGammon/Citadel. Mid-build visual verification loop.

When should I use Live Preview?

Live Preview fits situations like: tasks that involve Visual regression testing; tasks that involve Browser testing.

How do I install Live Preview in Claude Code?

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

How do I install Live Preview in Codex?

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

Can I use Live Preview 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 SethGammon/Citadel --skill live-preview -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/live-preview, .gemini/skills/live-preview, .github/skills/live-preview and .opencode/skills/live-preview in your project.

What does Live Preview need to run?

Going by SKILL.md and its folder, Live Preview needs the command-line tools its instructions call (npx, node and npm). Our summary lists: Node.js.

Does Live Preview access the network?

SKILL.md contains no URLs. Its commands use npx and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Live Preview 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 Live Preview use?

Live Preview is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Live Preview use?

About 1.6k tokens (SKILL.md is roughly 6.5k 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 Live Preview?

Skills that share tags, products or a category with Live Preview: Dozzle Visual Snapshot Updater (amir20/dozzle, 15k stars), Economical Visual Tests (igrlk/storybook-addon-test-codegen, 154 stars), Playwright Testing (chongdashu/vibejam-starter-pack, 149 stars) and UI Visual Debugging (NangoHQ/nango, 13k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Live Preview?

SethGammon (a GitHub user) maintains it in SethGammon/Citadel, which has 922 GitHub stars. The repository holds 48 skills in this directory. The repository was last updated on October 1, 2026.

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