@shiplightai/shiplight

Shiplight QA toolkit — the single entry point for all Shiplight test/QA work. Use ONLY when the user explicitly says 'shiplight' (e.g. 'write a shiplight test', 'use shiplight to verify X', 'shiplight cover') or invokes /shiplight. Routes to subcommands: init, setup-test-auth, update, create-yaml-tests, create-agent-verification, cover, fix, verify, review, ci, cloud, support, help.

View in AI SkillSafe app
7 scan findings
0 downloads
0 stars
0 demos
SKILL.md
nameshiplight
descriptionShiplight QA toolkit — the single entry point for all Shiplight test/QA work. Use ONLY when the user explicitly says 'shiplight' (e.g. 'write a shiplight test', 'use shiplight to verify X', 'shiplight cover') or invokes /shiplight. Routes to subcommands: init, setup-test-auth, update, create-yaml-tests, create-agent-verification, cover, fix, verify, review, ci, cloud, support, help.

Shiplight

The single entry point for Shiplight QA work. This skill takes a subcommand and routes it to the right workflow. Everything Shiplight-branded comes through here; the description above is deliberately gated so this skill fires only when the user names "shiplight" or types /shiplight — never on a generic "write a test".

Routing contract

  1. Identify the subcommand. Match the argument against the dispatch table — do not rely on the first token alone, because synonyms are often multi-word (yaml test, set up tests for my app) and intents may lead with a non-token word (create yaml test, show failing tests). In order: (a) an exact canonical token as the leading word; (b) the longest canonical-token or synonym phrase the argument contains; (c) overall intent against the synonym/intent column. Pick the single best-matching subcommand.
  2. Pass-through context. Forward whatever the selector didn't consume to the subcommand as context. Natural phrasing is expected — users won't type the exact hyphenated token; match the intent and treat the rest as the target. Examples:
    • /shiplight cover checkout flowcover + context checkout flow
    • /shiplight create a yaml test for logincreate-yaml-tests (matched on "yaml test") + context for login
    • /shiplight create agent verification for the signup flowcreate-agent-verification (matched on "agent verification") + context for the signup flow
  3. Dispatch. Read the matching references/<subcommand>.md (or references/<subcommand>/index.md for nested subcommands) and follow it, carrying the context forward.
  4. Clarify, don't guess. If the selector is empty (/shiplight alone) or ambiguous (see Ambiguity notes), show the menu and ask one clarifying question — the user wants to act but didn't say how. This differs from help, which is informational: help lists/explains subcommands and never executes (see references/help.md).
  5. Confirm destructive actions. Never auto-run init against a non-empty project — confirm first.

Shared layer

  • On every subcommand invocation (skip for help and support), identify the test project root, then run references/_shared/update-check.md once (daily skill refresh + shiplightai CLI version gate). It can halt the run: a CLI behind the latest published version stops the subcommand before it starts, and offers an upgrade.
  • Each subcommand names the references/_shared/ modules it needs (auth, mcp, evidence-and-report, project-layout, ground-truth, knowledge, secrets, vocabularies, test-spec-template). Read those before acting — they are the single source of truth, not restated per subcommand.

Subcommands (menu)

Show this grouped menu when invoked bare or when clarifying.

Setup

  • init — scaffold a Shiplight test project + write specs/context.md
  • setup-test-auth — configure login for the application under test and save reusable browser/Playwright state
  • update — refresh installed Shiplight skills + the shiplightai CLI

Author

  • create-yaml-tests — implement deterministic YAML E2E tests from a spec
  • create-agent-verification — create a reusable agent-run verification script
  • cover — decide test format + effort, plan, drive the producers, report

Maintain

  • fix — reproduce and repair failing or drifted tests

Check

  • verify — verify UI changes in the browser during local development

Review

  • review — app-quality review (security, privacy, design, performance, …)

Ship

  • ci — wire CI workflows + failure-triage pipeline
  • cloud — read Shiplight Cloud test results (runs, failing/flaky tests, artifacts) and analytics (health summary, pass-rate/run trends, slowest/flaky rankings, failure attribution)

Help

  • help — list subcommands, or help <subcommand> for details (does not execute)
  • support — get human help: file a support ticket with session diagnostics, check replies

End the menu with one footer line: Stuck? /shiplight support reaches a human — the ticket drafts itself from this session.

Dispatch table

Canonical Synonyms / intents Reference
init set up shiplight, new test project, scaffold references/init.md
setup-test-auth test app auth, application-under-test login, authenticated test account, save test session, storage state references/setup-test-auth.md
update self-update, upgrade skills, refresh skills, upgrade the shiplight cli, bump shiplightai, cli out of date references/update.md
create-yaml-tests yaml test(s), create a yaml test, write a yaml/e2e test, deterministic test, e2e test, write a test references/create-yaml-tests/index.md
create-agent-verification agent verification, create agent verification, verification script, repeatable agent check, live-env verification, full-stack test, cross-layer test, test the whole stack, drive the UI and check the backend/database, verify the backend state too, release smoke test, pre-release smoke references/create-agent-verification/index.md
cover coverage, test coverage, what's untested, coverage gaps, testing strategy, plan tests, write a spec, test plan, set up tests for my app, build tests, test this feature references/cover/index.md
fix failing test, triage, repair test, update test for product change references/fix.md
verify screenshot, verify the change, check the UI, visual check references/verify.md
review security review, review my app, accessibility, privacy, performance, seo references/review/index.md
ci github actions, ci setup, pipeline references/ci/index.md
cloud cloud results, test run results, failing tests, flaky tests, ci results, download artifacts, test health, pass rate, pass-rate/run trend, slowest tests, flakiest tests, failure attribution, failure breakdown, analytics references/cloud/index.md
support I'm stuck, contact support, talk to a human, human help, shiplight is broken, report a shiplight bug, file a ticket, support ticket, ticket status references/support.md
help what can shiplight do, list commands, usage, ? references/help.md

Ambiguity notes

  • "test" / "write a test" → could be create-yaml-tests (deterministic, UI focused) or create-agent-verification (spans UI and backend state). Default to create-yaml-tests unless the user signals a core journey, backend/ cross-layer proof, release smoke, or live-env judgment — but if unclear, ask.
  • "smoke test" → ambiguous alone. A quick UI pass over key screens is create-yaml-tests; a pre-release check that a core journey works and left the right backend state is create-agent-verification. Ask which, unless the user names a backend expectation or a release gate.
  • "verify" / "verification" → the verb (check a change now) is verify; creating a reusable verification script is create-agent-verification. The create- framing is the tell. Ask if the user's phrasing doesn't disambiguate.
  • "triage" → in Shiplight this means fix (repair failing tests). Do not confuse with review's internal triage/plan step.
  • "failing tests" / "flaky tests"reading them from CI ("in the cloud", "from the last run", plural reporting) is cloud (hosted results); repairing a broken test ("my test is failing", "fix this") is fix. Ask if the phrasing doesn't say which.
  • "report a bug" / "X is broken" → depends on what is broken. The user's app misbehaving is ground truth to report (_shared/ground-truth.md), not a subcommand; Shiplight itself misbehaving (skill, CLI, cloud API) is support. Ask if unclear which one the user means.
  • "login" / "auth" → ask what is being authenticated when the target is absent. Authentication for the application under test is setup-test-auth; Shiplight platform authentication and SHIPLIGHT_API_TOKEN setup is the CLI command npx shiplight setup-api-token, not a /shiplight subcommand.

After a subcommand completes or aborts (next-step suggestion)

After a subcommand's final report — including the report of an aborted run — optionally append one next-step suggestion. Rules:

  • Evidence-only. A suggestion must be triggered by something already observed during the run — the diff analyzed, the failure diagnosed, the project state read. Never run extra analysis (a new git diff, file scan, or browser session) just to decide a suggestion.
  • Silence is the default. No trigger from the table → no suggestion line at all. Failure states mostly suggest nothing: the user's next step is fixing the product, not another Shiplight command. Suggestions fire on success — "you proved it works; now make that durable / continuous / visible." The one failure that does fire is the Shiplight-side failure row (support), and it fires wherever the run stops — a mid-run abort report counts.
  • Gate on the nature of the change. When the run started from a code change that is backend-only or barely touches UI, suppress the browser-flavored suggestions (verify, create-yaml-tests, review design); cover (picks unit/contract/integration via its capability map) and create-agent-verification (cross-layer live checks) are the useful pointers there.
  • One line, statement not question. Format: Next: /shiplight <cmd> — <reason from this run>. Never auto-run the suggested command; never ask a blocking yes/no. The user decides.
  • At most one suggestion — two only when genuinely forked (e.g. cover vs create-yaml-tests by scope).
  • Skip entirely in CI / non-interactive mode, and after update / help / support.
After Trigger observed during the run Suggest
init app has login/authed routes setup-test-auth; otherwise cover
setup-test-auth invoked to unblock another command resume that command; otherwise nothing
verify passed on a meaningful flow with no YAML test covering it cover (feature-level) or create-yaml-tests (single narrow flow) — verify is ephemeral, lock it in
verify UI smells seen while driving: missing labels/roles, no data-testids, brittle DOM, console warnings review design (accessibility + testability)
verify check failed, or the change was trivial nothing
fix diagnosis was product change and the change extends beyond the repaired tests cover <feature> to refresh the testing-what spec
fix repeated locator drift / no stable semantic hooks review design (testability) — root-cause the drift instead of re-fixing every sprint
fix repro came from a CI failure, or several tests shared one source cloud to check blast radius / confirm the next run is green
fix diagnosis was an app bug nothing — report the bug (_shared/ground-truth.md)
create-yaml-tests tests pass and no CI E2E workflow exists ci
create-yaml-tests flow's confidence needs API/DB/log state better judged than asserted create-agent-verification
create-agent-verification case PASS on a now-stable path whose proof reduces to fixed conditions create-yaml-tests (promote to deterministic) — not when its worth is the judgment across evidence
create-agent-verification BLOCKED on login/session bootstrap setup-test-auth
cover produced Shiplight tests, no CI wiring ci
cover report rows BLOCKED on auth/env setup-test-auth
review user fixed UI findings in-session verify to confirm the fixes render
review high-severity findings without regression coverage cover
ci workflow wired push / open a PR to trigger it, then cloud for the first run's results
ci no tests exist yet cover first (precondition, per ci/index.md)
cloud failing/flaky tests attributed spec_issue / drift fix
cloud attribution dominated by app_regression nothing to run — an app bug to report
cloud recorder sessions covering untested flows create-yaml-tests from the recording
any the run stopped on a Shiplight-side failure with no known fix — CLI crash, unexplained Shiplight API error, or the same step failing twice identically support — the diagnostics for a ticket are already in this session

Embed badges

Add these to your README to show the skill's verification status.

SkillSafe verified badge
Verified badge
[![SkillSafe verified badge](https://api.skillsafe.ai/v1/badge/@shiplightai/shiplight/verified)](https://skillsafe.ai/skill/@shiplightai/shiplight/)
Installs badge
Installs badge
[![Installs badge](https://api.skillsafe.ai/v1/badge/@shiplightai/shiplight/installs)](https://skillsafe.ai/skill/@shiplightai/shiplight/)
Scan badge
Scan badge
[![Scan badge](https://api.skillsafe.ai/v1/badge/@shiplightai/shiplight/scan)](https://skillsafe.ai/skill/@shiplightai/shiplight/)
Eval pass rate badge
Eval pass rate
[![Eval pass rate badge](https://api.skillsafe.ai/v1/badge/@shiplightai/shiplight/eval)](https://skillsafe.ai/skill/@shiplightai/shiplight/)