본문으로 건너뛰기
cccskills
무료GitHub에 공개

vercel-error

Use @vercel/error to design, implement, migrate, audit, or review structured TypeScript errors. Trigger when a project uses or adopts the package, or when work involves its codes, fields, factories, HTTP APIs, telemetry, or terminal output. Use native Error for local failures that need no stable identity, recovery guidance, observability, or transport.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구Vercel
설치 방법 보기

포함된 파일(7)

  • SKILL.md6.4 KB
  • references/contract-design.md13.7 KB
  • references/core.md3.7 KB
  • references/create-errors.md5.2 KB
  • references/format.md2.4 KB
  • references/http.md10.6 KB
  • references/sources.md2.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

@vercel/error

Use structured fields to identify what failed, explain why, and suggest what to do next. Software should branch on stable fields; people and agents should read the prose. Preserve the fields until output is rendered, and never parse terminal formatting.

Workflow

1. Inspect the target project

Read the target project's package.json, lockfile, existing errors, output paths, logging, and tests before choosing an API.

  • Use the installed @vercel/error version's public exports as the contract. Do not deep-import unexported source paths.
  • If the package is absent, resolve the intended version from workspace constraints or the current release, then inspect its published exports and engines. Add it as a production dependency only for requested implementation work.
  • Compare a Node target's version with the selected version's engines, and report an incompatibility instead of silently changing the runtime. The package itself is isomorphic (browsers, workers, edge runtimes), so treat engines as the Node support matrix, not a runtime allowlist.
  • Record the project's existing code and scope names and the callers that depend on them. In step 4, preserve or challenge those conventions based on evidence.
  • Leave dependencies unchanged for advice and review.

Before continuing, record the selected version and runtime compatibility, verify the public imports, and identify where the error is created, handled, sent, logged, or shown.

2. Decide whether a structured error is needed

Keep native Error for a simple local failure that no caller classifies, transports, reports, or presents with recovery guidance. Use @vercel/error when at least one of these is needed:

  • a stable code or scope
  • structured reason, hint, fix, or documentation
  • response data or HTTP transport and reconstruction
  • telemetry or debugging context
  • consistent terminal presentation
  • reliable recognition across bundle or realm boundaries

Use a structured error only when you can name the caller, transport, logger, or UI that needs it. "It is more consistent" is not enough.

3. Choose the public API

NeedPublic APIRead
Decide error codes, details, public text, and reportingVercelErrorOptionsContract design
Construct one error, define a subclass, preserve a cause, or inspect a caught valueVercelError, core guards and extractorsCore errors
Create a typed family, allowlist reporting, or use a custom classcreateErrorscreateErrors factories
Produce or consume response data or HTTP error responsesbuildErrorResponseData, errorResponse, fromHttpResponse, parseErrorResponseData, fromErrorResponseDataResponse data and HTTP
Format errors for terminal outputformatError, frame, hint, fix, linkTerminal output

Use VercelError#toString() for a VercelError; it already uses the package formatter. Use frame() for errors or CLI output that should remain another type.

Read each reference whose row matches the work. Continue when every required operation maps to a public import verified in the selected package version.

4. Choose fields and recovery guidance

Apply Contract design to every field in scope, including its pushback rules.

Before implementation, verify that every populated field has a known use and every client-visible field is safe.

When set, scope and code must be nonblank. Keep their original text. Omit blank optional public fields and preserve other text.

5. Implement or review

For review work, report correctness, disclosure, and recovery gaps; edit only when asked.

For implementation, change only the error path that needs structured fields. Preserve surrounding behavior, code conventions, and third-party error types. Treat project-wide code or scope renames as a separate migration. Code examples must typecheck in the shown context or be labeled as partial replacements.

This step is complete when the reviewed or changed scope is limited to the identified use and every example is complete or explicitly partial.

6. Test public behavior

Test the behavior that consumes the error, not private formatting helpers:

  • creation, throwing, and reporting through the factory when those paths matter
  • stable code and preserved cause for programmatic handling
  • response data with approved text and identity, excluding diagnostics
  • the same public fields in JSON and ANSI, plus Content-Type, conditional Vary, and HTTP status
  • rejection of invalid unknown response data before reconstruction
  • terminal output with and without optional sections
  • the actual public package entry point used by the target project

Run the target project's closest test and typecheck first, then its required checks. Verification is complete when they pass or every failure and untested runtime or integration path is reported.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

이 스킬의 문제 신고