원클릭으로
cloud-v2
Read Shiplight Cloud v2/Nova test results: list runs, fetch run details, and download artifacts.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Read Shiplight Cloud v2/Nova test results: list runs, fetch run details, and download artifacts.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | cloud_v2 |
| description | Read Shiplight Cloud v2/Nova test results: list runs, fetch run details, and download artifacts. |
Read-only access to test results uploaded by the Shiplight CLI / CI runner. The /v1 segment is the API contract version. Do not attempt to publish runs through this skill.
export SHIPLIGHT_API_URL=https://nova-api.shiplight.ai
All API calls require:
Authorization: Bearer $SHIPLIGHT_API_TOKEN
If the user provides a token, append it to the project's .env file as SHIPLIGHT_API_TOKEN=<token> and tell them to keep .env out of git.
The runs this skill reads are produced in CI by the shiplight report CLI, which uploads each test run's artifacts to Shiplight Cloud.
To set up a GitHub Actions workflow (default or Shiplight-hosted runners, tokens, and shiplight report wiring), see the create-yaml-tests skill's references/ci.md.
| Status | Action |
|---|---|
| 400 | Fix the request, IDs, or query parameters. All validation errors return 400. |
| 401 | Token is missing, invalid, expired, or for the wrong Nova environment. |
| 403 | Token lacks permission; or the S3 URI points at a non-test-results bucket; or the URI key's first segment is not your organization ID. |
| 404 | Run, result, or artifact not found for this organization. |
| 500 | Retry only if idempotent. |
Base URL: $SHIPLIGHT_API_URL
curl -H "Authorization: Bearer $SHIPLIGHT_API_TOKEN" \
"$SHIPLIGHT_API_URL/v1/test-runs?pageSize=10"
Ordered by createdAt descending.
| Param | Type | Description |
|---|---|---|
result | string | Exact match on overall run result: passed, failed, pending |
repo | string | Exact match on org/repo |
branch | string | Exact match on branch |
from | string | ISO timestamp lower bound (inclusive) on createdAt |
to | string | ISO timestamp upper bound (inclusive) on createdAt |
page | number | Default 1 |
pageSize | number | Default 20 |
Response: array of { id, status, result, branch, commitSha, repo, target, startTime, endTime, totalTestCount, passedCount, flakyCount, failedCount, skippedCount, metadata, ... }.
passedCount includes flakyCount (use passedCount - flakyCount for strict passes); failedCount includes timedout. Sum = totalTestCount.
curl -H "Authorization: Bearer $SHIPLIGHT_API_TOKEN" \
"$SHIPLIGHT_API_URL/v1/test-runs/42"
Returns the run (testRun) plus every testCaseResult row, unpaginated.
{
"testRun": {
"id": 42,
"status": "finished",
"result": "passed",
"branch": "main",
"totalTestCount": 1,
"passedCount": 1,
"failedCount": 0
},
"testCaseResults": [
{
"id": 101,
"testRunId": 42,
"result": "passed",
"reportS3Uri": "s3://shipyard-test-results/org-1/tests/_local/test-results/101/report.json",
"videoS3Uri": "s3://...",
"traceS3Uri": "s3://..."
}
]
}
curl -H "Authorization: Bearer $SHIPLIGHT_API_TOKEN" \
"$SHIPLIGHT_API_URL/v1/test-results?repo=org/repo&file=tests/checkout.spec.ts&pageSize=10"
Results for one file across runs, newest first.
| Param | Type | Description |
|---|---|---|
repo | string | Required. Exact match on org/repo. |
file | string | Required. Exact match on the test file path. |
result | string | Per-row result: passed, failed, timedout, flaky, skipped, pending |
branch | string | Exact match on branch |
from | string | ISO timestamp lower bound (inclusive) on result createdAt |
to | string | ISO timestamp upper bound (inclusive) on result createdAt |
page | number | Default 1 |
pageSize | number | Default 20 |
[
{
"id": 101,
"testRunId": 42,
"file": "tests/checkout.spec.ts",
"testName": "checkout succeeds",
"status": "finished",
"result": "passed",
"startTime": "2026-05-27T10:00:01.000Z",
"endTime": "2026-05-27T10:00:10.000Z",
"errorMessage": null,
"reportS3Uri": "s3://shipyard-test-results/org-1/tests/_local/test-results/101/report.json",
"videoS3Uri": "s3://...",
"traceS3Uri": "s3://...",
"createdAt": "2026-05-27T10:00:11.000Z"
}
]
curl -H "Authorization: Bearer $SHIPLIGHT_API_TOKEN" \
"$SHIPLIGHT_API_URL/v1/failing-tests?repo=org/repo"
For each unique (file, testName) in the window, returns its latest row when the result is failed or timedout.
| Param | Type | Description |
|---|---|---|
repo | string | Required. Exact match on org/repo |
branch | string | Exact match on branch |
from | string | ISO timestamp lower bound (inclusive) on run createdAt. Defaults to now - 7 days |
to | string | ISO timestamp upper bound (inclusive) on run createdAt. Defaults to now |
page | number | Default 1 |
pageSize | number | Default 20 |
[
{
"id": 101,
"testRunId": 42,
"file": "tests/checkout.spec.ts",
"testName": "checkout succeeds",
"status": "finished",
"result": "failed",
"startTime": "2026-05-27T10:00:01.000Z",
"endTime": "2026-05-27T10:00:10.000Z",
"errorMessage": "Expected status 200, got 500",
"reportS3Uri": "s3://shipyard-test-results/org-1/tests/_local/test-results/101/report.json",
"videoS3Uri": "s3://...",
"traceS3Uri": "s3://...",
"createdAt": "2026-05-27T10:00:11.000Z"
}
]
curl -H "Authorization: Bearer $SHIPLIGHT_API_TOKEN" \
"$SHIPLIGHT_API_URL/v1/flaky-tests?repo=org/repo"
For each unique (file, testName) in the window, returns its latest row when the result is flaky (passed only after retry).
| Param | Type | Description |
|---|---|---|
repo | string | Required. Exact match on org/repo |
branch | string | Exact match on branch |
from | string | ISO timestamp lower bound (inclusive) on run createdAt. Defaults to now - 7 days |
to | string | ISO timestamp upper bound (inclusive) on run createdAt. Defaults to now |
page | number | Default 1 |
pageSize | number | Default 20 |
[
{
"id": 207,
"testRunId": 42,
"file": "tests/checkout.spec.ts",
"testName": "applies promo code",
"status": "finished",
"result": "flaky",
"startTime": "2026-05-27T10:00:20.000Z",
"endTime": "2026-05-27T10:00:35.000Z",
"errorMessage": "TimeoutError: locator.click — first attempt timed out after 5000ms",
"reportS3Uri": "s3://shipyard-test-results/org-1/tests/_local/test-results/207/report.json",
"videoS3Uri": "s3://...",
"traceS3Uri": "s3://...",
"createdAt": "2026-05-27T10:00:36.000Z"
}
]
When present, errorMessage carries the first-attempt failure that triggered the retry.
curl -H "Authorization: Bearer $SHIPLIGHT_API_TOKEN" \
"$SHIPLIGHT_API_URL/v1/s3/file?uri=s3://shipyard-test-results/<org-id>/tests/_local/test-results/<id>/report.json"
Query: uri (string, required) — an s3:// URI from a result row (reportS3Uri, videoS3Uri, traceS3Uri).
Response: raw file bytes; save with curl -o <file>.
GET /v1/test-runs?pageSize=10&result=failed (or other filters) to find recent failures.GET /v1/test-runs/{testRunId} to load testRun + testCaseResults.testCaseResult, GET /v1/s3/file?uri=<reportS3Uri> to fetch the report JSON.s3:// URIs via GET /v1/s3/file?uri=…. Report schema is reporter-defined; expect arbitrary fields containing s3:// values.GET /v1/failing-tests?repo=org/repo (or /v1/flaky-tests) — defaults to the last 7 days on any branch. Add branch= to scope, from/to to widen or shift the window.GET /v1/s3/file?uri=<reportS3Uri> to fetch the report JSON.s3:// URIs via GET /v1/s3/file?uri=….Create, update, and repair local Shiplight YAML E2E tests. Use for Shiplight test projects, including project setup, specs, auth setup, YAML implementation, validation, and test maintenance.
Drive comprehensive test creation for a feature, spec, module, or PR. Decide what must be tested, pick the testing strategy at the lowest sufficient cost, drive the test producers to author the tests, run them, and record the session — what was tested, by what test type, and what passed — in specs/<feature>/test-spec.md and test-report.md. Drives the producers create-yaml-tests and create-agent-tests.
Author, scaffold, and run coding-agent-driven tests: Markdown case files executed by a coding agent against a live environment (browser, API, DB, logs, cloud, telemetry) with an auditable PASS/FAIL/BLOCKED report. Use when a deterministic test would be premature, brittle, too expensive, or too narrow.
Review orchestrator and single entry point for all application reviews. Triage what needs reviewing, then run the right domains: security (OWASP, auth, headers, supply chain), privacy (PII, tracking, consent, GDPR/CCPA), compliance (HIPAA, SOC 2, PCI-DSS, GDPR), design (responsive, accessibility, typography, i18n), resilience (error handling, degradation, API contracts), performance (Core Web Vitals, bundles, runtime), SEO (meta, structured data, crawlability), and GEO (AI citation readiness, llms.txt, entity clarity). Use for pre-launch readiness, post-incident planning, or any 'review my app for X' request.
Deprecated alias for create-yaml-tests. Renamed to create-yaml-tests; this entry only redirects for backward compatibility. Use create-yaml-tests to create, update, and repair local Shiplight YAML E2E tests.
Triage failing Shiplight YAML tests: reproduce failures, inspect evidence, apply minimal correct fixes, report app/spec mismatches, and update project memory.