Agent skill

QA

by adobe in adobe/skills

Read-only automated QA sweep of a deployed stardust site on AEM Edge Delivery Services — validates routing, content fidelity vs the source capture, template conformance, rendered integrity…

Apache-2.0Auto-check passedFrontend & Design

Install QA

skills CLI
$ npx skills add adobe/skills --skill qa -a claude-code

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

GitHub CLI
$ gh skill install adobe/skills qa --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/adobe/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/stardust/skills/qa .claude/skills/qa && 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
qa
GitHub stars
195
Token cost
~2k tokens
SKILL.md length
895 words
Files
23 (incl. scripts)
Skills in repo
105
Repo updated
First seen
Licence
Apache-2.0

At a glance

Read-only automated QA sweep of a deployed stardust site on AEM Edge Delivery Services — validates routing, content fidelity vs the source capture, template conformance, rendered integrity…

  • Works in 3 steps: deterministic sweep → triage the ambiguous flags (LLM… → report to the user
  • The user asks to QA the site
  • SKILL.md covers Setup, Procedure, Read-only contract and Scheduling / CI
  • Runs JavaScript scripts from its folder; calls node; needs SITE_TOKEN

What it does

QA is an agent skill from adobe/skills. Read-only automated QA sweep of a deployed stardust site on AEM Edge Delivery Services — validates routing, content fidelity vs the source capture, template conformance, rendered integrity (geometry, JS errors, broken images), visual regression vs baselines, metadata/SEO/JSON-LD, link integrity, accessibility (axe), and performance budgets, then emits a findings report with an allowlist for documented non-defects. Finds issues; never fixes them. Use when the user asks to "QA the site", "validate the migration"…

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 26 other files, including scripts (for example `reference/checks.md`, `schemas/qa-allowlist.schema.json` and `schemas/qa-report.schema.json`). Compatibility notes: Requires Node 22+, Playwright with Chromium resolvable from the project, playwright-cli on PATH, and the impeccable skill (github.com/pbakaus/impeccable)…

It sits in Frontend & Design, covering Accessibility, Web performance and Visual regression testing. It works with Adobe Experience Manager. The repository describes itself as: Adobe Skills for Agents. The licence is Apache-2.0.

When your agent uses it

  • The user asks to QA the site
  • Validate the migration
  • Check the live site for issues
  • Run a QA sweep/regression check

Example prompts

  • “QA the site”
  • “validate the migration”
  • “check the live site for issues”
  • “/qa”

Requirements

  • Node.js
  • A credential in SITE_TOKEN
  • Compatibility (from SKILL.md): Requires Node 22+, Playwright with Chromium resolvable from the project, playwright-cli on PATH, and the impeccable skill (github.com/pbakaus/impeccable) installed alongside stardust.

Workflow steps

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

  1. deterministic sweep
  2. triage the ambiguous flags (LLM judgment, still read-only)
  3. report to the user

What it can do on your machine

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

    Ships 13 files in scripts/ (JavaScript, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • node

    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 these keys or tokens, usually read from environment variables:

    • SITE_TOKEN

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

  • Compatibility

    Requires Node 22+, Playwright with Chromium resolvable from the project, playwright-cli on PATH, and the impeccable skill (github.com/pbakaus/impeccable) installed alongside stardust.

    From compatibility in the SKILL.md frontmatter.

Context cost

QA loads about 2k tokens when it runs. Until then it costs about 165 tokens; SKILL.md has 895 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from adobe/skills at commit cbc9952, republished under its Apache-2.0 licence (© adobe). 895 words, ~1,977 tokens.

Download SKILL.mdSave it as .claude/skills/qa/SKILL.md (or your agent's skills folder). This skill also uses 22 other files; get the full folder from GitHub.
name
qa
description
Read-only automated QA sweep of a deployed stardust site on AEM Edge Delivery Services — validates routing, content fidelity vs the source capture, template conformance, rendered integrity (geometry, JS errors, broken images), visual regression vs baselines, metadata/SEO/JSON-LD, link integrity, accessibility (axe), and performance budgets, then emits a findings report with an allowlist for documented non-defects. Finds issues; never fixes them. Use when the user asks to "QA the site", "validate the migration", "check the live site for issues", "run a QA sweep/regression check", or invokes `$stardust qa` (`/stardust:qa` in Claude Code) <live-url>.
compatibility
Requires Node 22+, Playwright with Chromium resolvable from the project, playwright-cli on PATH, and the impeccable skill (github.com/pbakaus/impeccable) installed alongside stardust.
license
Apache-2.0

stardust:qa — read-only site QA sweep

One live URL in. One evidence-bound findings report out. This skill never edits anything — not site content, not DA documents, not repo code. Its only writes are report artifacts under stardust/qa/. If the user wants findings fixed, that is a separate, explicit follow-up outside this skill.

qa is the post-deploy counterpart of rollout's delivery verification: where rollout asks "did every page ship?", qa asks "is everything that shipped actually correct?" — at all three layers a deploy can silently break:

  1. delivery — what the pipeline serves (.plain.html, full HTML, sheets, sitemap)
  2. rendered — what a browser shows after block decoration (and what it does: an autoplay video that only shows its poster is a rendered defect)
  3. regression — what changed since the last approved state (visual baselines)

A green upper layer never implies the lower one: a publish 200 ≠ delivered, delivered HTML ≠ rendered correctly.

Setup

  1. Run the master skill's setup (skills/stardust/SKILL.md § Setup) if not already done this session. qa works standalone too — it only needs a live base URL.
  2. Resolve the base URL (the *.aem.live host or production domain). If the user didn't give one, look in stardust/rollout/rollout.json (site.liveHost) or ask.
  3. Resolve the inventory source — what pages the sweep covers, merged from any of: stardust/template-map.json (also supplies template assignments for conformance), a paths file, and the live sitemap.xml (always fetched; parity mismatches become findings, so a wrong sitemap can't silently shrink coverage).
  4. Optional inputs that unlock deeper checks:
    • --scrape stardust/scrape — verbatim fidelity vs the extraction capture
    • --expected-blocks <json> — explicit per-template block expectations
    • --parity <json> — dynamic parity file to replay (default stardust/dynamics/parity.json; the dynamics check reports parity-missing when absent)
    • --auth-header "token …" / --token-env SITE_TOKEN — protected origins; the secret is sent to the base origin only (otherwise derived by fleet consensus)
    • --blocks-dir <dir> — the site's blocks/ checkout, so the editability check can honour @ew-exempt JSDoc tags (otherwise pass --ew-exempt a,b for index-driven blocks)
  5. Browser checks need playwright resolvable from the project (node_modules/playwright). If missing, run the delivery-layer checks only (--checks routing,content,templates,metadata,links) and tell the user what was skipped.
  6. Append a phase-transition line to stardust/status.jsonl per reference/run-status.md (master skill) at sweep start/end.

Procedure

Phase 1 — deterministic sweep
bash
node <plugin>/skills/qa/scripts/qa.mjs \
  --base https://main--<site>--<org>.aem.live \
  --template-map stardust/template-map.json \
  --scrape stardust/scrape

Writes stardust/qa/inventory.json, report.json, report.html, screenshots under stardust/qa/shots/, and (first run) visual baselines under stardust/qa/baselines/. Exit 0 = no active errors, 1 = active errors, 2 = infra failure. reference/checks.md documents every check, its finding ids, and severity rationale. Useful variants: --checks <subset>, --max-pages <n> (smoke run), --fail-on warn (strict gate). The ai-readability check reproduces Adobe's AI Content Visibility Checker per page (served words ÷ rendered words) and attributes the gap per block (deploy/reference/ai-readability.md).

The editability check is the post-deploy Experience Workspace editability gate (deploy SKILL.md § 8, EW1–EW10): per page it re-creates the da.live canvas's instrumentation on the served document, lets the live page decorate, and counts which authored texts still carry their editor index. editability/dead-text (error) = a block rebuilt authored text and the author cannot click it in the canvas; editability/duplicated-index (warn) = a presentational clone kept the index. Dead texts inside blocks declared @ew-exempt (or listed in --ew-exempt) are info, not errors.

First run on a site: expect a wave of visual/baseline-created info findings — that is the baseline being established, not a defect. Baselines are screenshots and therefore local (stardust/.gitignore excludes qa/baselines/ and qa/shots/, master skill § Artifacts): later runs on the same machine diff against them; a fresh clone re-establishes them on its first sweep. qa/allowlist.json is the tracked record of judgement.

Show full SKILL.md (324 more words)Show less
Phase 2 — triage the ambiguous flags (LLM judgment, still read-only)

The deterministic sweep marks two finding classes as needs triage; read report.json and judge only those:

  • content/verbatim-below-threshold — inspect evidence.missingNodes against the live page and the scrape capture: is copy actually lost/corrupted (defect) or acceptably transformed (candidate for the allowlist)?
  • visual/visual-diff — open evidence.baseline and evidence.current side by side (they are PNGs; view them): real layout/style regression, or benign dynamism (carousel frame, loaded font, live embed)? Use the bands evidence to locate the changed region.

Record each verdict by annotating the finding in your summary to the user (defect vs non-defect + why). Do not edit report.json scores and do not fix anything.

Phase 3 — report to the user

Summarize: totals by severity, the confirmed defects first (with page paths and one-line evidence), then triaged-away flags with their rationale, then notable warns. Point at stardust/qa/report.html. Recommend — but do not apply — fixes.

Allowlist workflow (documented non-defects)

stardust/qa/allowlist.json (schema in schemas/qa-allowlist.schema.json) keeps known non-defects from drowning every future run — e.g. a source page that itself ships placeholder copy, or a form endpoint deliberately awaiting a client credential. Entries match on check/id/path/messagePattern and must carry a reason. Allowlisted findings stay in the report, greyed out, so the evidence is never deleted.

Only add an entry when the user confirms the flag is a non-defect (or it is already documented as one in the project's records). Never allowlist to make a run green.

Read-only contract

  • Writes only under stardust/qa/ (plus the status.jsonl ledger line).
  • Never invokes deploy/publish APIs, never PUTs to DA, never edits blocks, styles, or content — even for "trivial" fixes the sweep itself surfaced.
  • Reports failure honestly: a crashed check appears in the report as <check>/check-crashed (error), never silently dropped.

Scheduling / CI

The runner is plain node with no plugin-runtime dependency, so the same command works from a GitHub Action or cron for drift monitoring; --fail-on sets the gate. In CI without playwright, pin --checks to the delivery-layer subset.

© adobe, Apache-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

SKILL.md and 22 other files (scripts) in plugins/stardust/skills/qa of adobe/skills.

  • SKILL.md
  • reference/checks.md
  • schemas/qa-allowlist.schema.json
  • schemas/qa-report.schema.json
  • scripts/checks/ai-readability.mjs
  • scripts/checks/browse.mjs
  • scripts/checks/content.mjs
  • scripts/checks/dynamics.mjs
  • scripts/checks/editability.mjs
  • scripts/checks/links.mjs
  • scripts/checks/metadata.mjs
  • scripts/checks/perf.mjs
  • scripts/checks/routing.mjs
  • scripts/checks/templates.mjs
  • scripts/lib.mjs
  • scripts/qa.mjs
  • scripts/report-html.mjs
  • … and 6 more

Open the folder on GitHubat commit cbc9952

Compare with similar skills

QA 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.

QA compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
QA this skilladobe/skills195—~2kAutomated safety check: PassApache-2.0
Roier SEOdavila7/claude-code-templates32k—~2.7kAutomated safety check: PassMIT
Vrtmarigold-ui/marigold146—~787Automated safety check: PassMIT
Control UIcursor/plugins10k2 repos~1.2kAutomated safety check: PassNone
Browser QAaffaan-m/ECC274k2 repos~1kAutomated safety check: PassMIT
Design QAplugin87/ux-ui-agent-skills1.5k—~635Automated safety check: PassMIT

Similar skills

  • Roier SEO

    davila7/claude-code-templates

    Technical SEO auditor and fixer. An agent skill from davila7/claude-code-templates.

    32k GitHub stars~2.7k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Vrt

    marigold-ui/marigold

    DST — Trigger the Visual-Regression-Tests (Chromatic) GitHub Actions workflow on the current or a given branch.

    146 GitHub stars~787 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Control UI

    cursor/plugins

    Official

    Build or adapt a local browser/CDP harness to drive and inspect a web, IDE, or Electron UI.

    10k GitHub starsUsed in 2 repos~1.2k tokens
    Frontend & DesignAuto-check passed
  • Browser QA

    affaan-m/ECC

    Run automated post-deploy UI verification with a browser automation MCP (claude-in-chrome, Playwright, or Puppeteer): console-error and Core Web Vitals smoke checks, form and auth-flow interaction…

    274k GitHub starsUsed in 2 repos~1k tokens
    Frontend & DesignAuto-check passed
  • Design QA

    plugin87/ux-ui-agent-skills

    Set up or run design QA gates — token + hardcoded-value lint, automated a11y (axe), contrast, visual regression across variants/states/themes/RTL, and the manual a11y checklist.

    1.5k GitHub stars~635 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Visual QA

    dylanfeltus/skills

    Use vision models to self-review screenshots against design intent.

    179 GitHub stars~2.4k tokensUpdated 19 days ago
    Frontend & DesignAuto-check passed

More from adobe/skills

All 105 skills in this repo
  • Scaffolds, implements, deploys and debugs Adobe Runtime actions in App Builder projects, with templates for webhooks, events, database CRUD, sequences and Asset Compute workers.

    195 GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • Launches Chrome with an unpacked extension over CDP, opens its sidepanel, popup or options page, and hands over to cdp-connect for clicks, typing and screenshots.

    195 GitHub stars~952 tokensUpdated today
    Auto-check passed
  • Extracts icons, metadata, text, forms, videos and social links from any web page with playwright-cli, with SVG icon classification and cleanup.

    195 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Page Langs

    adobe/skills

    Detect all languages used on a webpage — both declared (html@lang, hreflang alternate links, nested lang= attributes, meta content-language) and actually present in the body text (Google CLD3 via…

    195 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Page Prep

    adobe/skills

    Prepare any webpage for clean interaction by detecting and removing disruptive overlays (cookie banners, GDPR consent, modals, popups, newsletter signups, paywalls, login walls).

    195 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Page Reduce

    adobe/skills

    Reduce a webpage to a structural skeleton with semantic tokens.

    195 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Questions about QA

What does QA do?

Read-only automated QA sweep of a deployed stardust site on AEM Edge Delivery Services — validates routing, content fidelity vs the source capture, template conformance, rendered integrity…. QA is an agent skill from adobe/skills. Read-only automated QA sweep of a deployed stardust site on AEM Edge Delivery Services — validates routing, content fidelity vs the source capture, template conformance, rendered integrity (geometry, JS errors, broken images), visual regression vs baselines, metadata/SEO/JSON-LD, link integrity, accessibility (axe), and performance budgets, then emits a findings report with an allowlist for documented non-defects.

When should I use QA?

QA fits situations like: the user asks to QA the site; validate the migration; check the live site for issues; run a QA sweep/regression check.

How do I install QA in Claude Code?

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

How do I install QA in Codex?

Run `npx skills add adobe/skills --skill qa -a codex`. Or copy the skill folder (plugins/stardust/skills/qa in adobe/skills) into .agents/skills/qa in your project. Codex loads it when a task matches its description.

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

What does QA need to run?

Going by SKILL.md and its folder, QA needs JavaScript for the scripts in its folder, the command-line tools its instructions call (node) and credentials named SITE_TOKEN. Our summary lists: Node.js; A credential in SITE_TOKEN. Compatibility (from SKILL.md): Requires Node 22+, Playwright with Chromium resolvable from the project, playwright-cli on PATH, and the impeccable skill (github.com/pbakaus/impeccable) installed alongside stardust..

Does QA 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 QA 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does QA use?

QA is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does QA use?

About 2k tokens (SKILL.md is roughly 7.9k 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 QA?

Skills that share tags, products or a category with QA: Roier SEO (davila7/claude-code-templates, 32k stars), Vrt (marigold-ui/marigold, 146 stars), Control UI (cursor/plugins, 10k stars) and Browser QA (affaan-m/ECC, 274k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains QA?

adobe (a GitHub organization) maintains it in adobe/skills, which has 195 GitHub stars. The repository holds 105 skills in this directory. The repository was last updated on October 6, 2026.

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