vitest-evals

作者: sentry

在編寫、審查或調試基於 harness 的 vitest-evals 測試套件、自訂 Harness 適配器、第一方 ai-sdk 或 pi-ai harness 整合時使用…

npx skills add https://github.com/getsentry/vitest-evals --skill vitest-evals

vitest-evals

Use the harness-backed API as the only authoring model.

First Steps

  1. Read the package, app, or eval file being changed.
  2. Identify the runtime target, then open only the needed reference.
  3. Keep suites close to Vitest: one harness per describeEval(...), explicit run(...) inside each test, ordinary expect(...) assertions over the returned result.

Reference Router

NeedOpen
Write or review a normal eval suitereferences/suite-authoring.md
Build a custom app Harness without a first-party adapterreferences/custom-harness.md
Integrate AI SDK generateText, generateObject, tools, or an AI SDK-style agentreferences/harness-ai-sdk.md
Integrate a Pi AI or Pi Mono-style agentreferences/harness-pi-ai.md
Add custom judges, suite judges, built-in judges, or toSatisfyJudge(...) assertionsreferences/judges-and-assertions.md
Assert on message, tool-call, or span historyreferences/utilities.md
Configure tool recording or replayreferences/tool-replay.md
Diagnose failures, missing traces, odd output, or choose verification commandsreferences/troubleshooting.md

Runtime Defaults

  • Import describeEval(...), judges, and helpers from vitest-evals.
  • Bind exactly one harness to a suite.
  • Call run(input) where the test should execute the system.
  • Assert on result.output for app-facing behavior.
  • Use toolCalls(result) and message helpers for normalized session assertions.
  • Use spans(result), spansByKind(result, kind), and failedSpans(result) for span assertions.
  • Keep HarnessRun, NormalizedSession, usage, artifacts, and tool records JSON-serializable.
  • Keep judge model calls on judges. Use createJudge("Name", assess) for custom judges; use the provider-helper overload only when multiple judges reuse setup and need curried run options.
  • Put scenario-owned criteria on the input value. Put direct-check expected values in Vitest case rows. Pass per-case judge criteria through explicit matcher options, and suite-wide criteria through judge config.
  • Custom judges should use createJudge(...) for stable reporter labels.

Verification

Prefer the smallest command that covers the edited files:

TaskCommand
Lint filepnpm exec biome lint path/to/file.ts
Format filepnpm exec biome format --write path/to/file.ts
Test filepnpm exec vitest run path/to/file.test.ts -c vitest.config.ts
Eval filepnpm exec vitest run path/to/file.eval.ts -c vitest.config.ts --reporter=./packages/vitest-evals/src/reporter.ts
Type surfacepnpm typecheck
Package buildpnpm build

來自 sentry 的更多技能

generate-frontend-forms
sentry
使用 Sentry 新表單系統建立表單的指南。適用於實作表單、表單欄位、驗證或自動儲存功能時使用。
official
sentry-snapshots-cocoa
sentry
完整的 Sentry Snapshots 設定,適用於 Apple/Cocoa 專案。當被要求「設定 SnapshotPreviews」、「設定 Apple 快照測試」、「上傳 Apple 快照至…」時使用。
official
architecture-review
sentry
員工級別的程式碼庫健康檢查。找出單體模組、靜默失敗、型別安全漏洞、測試覆蓋缺口,以及LLM友善性問題。
official
linear-type-labeler
sentry
根據每個問題的標題與描述內容,從 Sentry 工作區的標籤分類法中分類 Linear 問題,並套用對應的類型標籤。
official
sentry-flutter-sdk
sentry
完整的 Sentry SDK 設定,適用於 Flutter 和 Dart。當被要求「為 Flutter 加入 Sentry」、「安裝 sentry_flutter」、「在 Dart 中設定 Sentry」或設定錯誤…時使用。
official
sentry-svelte-sdk
sentry
完整的 Sentry SDK 設定,適用於 Svelte 和 SvelteKit。當被要求「將 Sentry 加入 Svelte」、「將 Sentry 加入 SvelteKit」、「安裝 @sentry/sveltekit」或進行設定時使用…
official
vercel-react-best-practices
sentry
來自 Vercel Engineering 的 React 與 Next.js 效能優化指南。此技能應在撰寫、審查或重構 React/Next.js… 時使用。
official
sentry-tanstack-start-sdk
sentry
完整的 Sentry SDK 設定,適用於 TanStack Start React。當被要求「將 Sentry 加入 TanStack Start」、「安裝 @sentry/tanstackstart-react」或設定錯誤…時使用。
official