一键导入
suede-ai-eval
Design AI evals that catch regressions before users do: rubrics, test cases, failure modes, acceptance gates, and AI-SPEC artifacts.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Design AI evals that catch regressions before users do: rubrics, test cases, failure modes, acceptance gates, and AI-SPEC artifacts.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
The pack's contract/customer-service negotiator, proven outside a repo: scans an Amazon account for restocking fees, short refunds, and forgotten or overpriced digital subscriptions (Prime Video Channels like Britbox/Starz/AMC+/Paramount+, Audible membership, Kindle Unlimited, Prime itself) — money Amazon is quietly holding or billing that the owner never noticed — then drives Amazon's live chat to get fees waived, refunds issued, or unused subscriptions canceled and the last charge refunded. Recovered $448.31 in one sitting — including a full refund on an item Amazon had already denied once, with no return required. Use this whenever the user mentions Amazon returns, restocking fees, an Amazon refund that looks short, a forgotten subscription (Britbox, Starz, Audible, Kindle Unlimited, etc.), disputing an Amazon charge, checking whether a return was fully refunded, auditing recurring Amazon charges, or asks something like 'did I get charged for that return', 'am I still paying for Britbox', or 'is Amazon sti
The pack's contract negotiator, generalized beyond Amazon: a recurring-charge auditor that finds forgotten, unused, or overpriced subscriptions across any service (Netflix, Spotify, Hulu, Disney+, gym memberships, SaaS tools, news sites, app subscriptions) and either cancels them directly or negotiates a refund/waiver through that service's own support channel. Complements amazon-returns-recovery, which stays scoped to Amazon returns/restocking fees and Amazon-billed subscriptions (Prime Video Channels, Audible, Kindle Unlimited) — this skill covers everything billed outside Amazon: direct-bill streaming and software, App Store and Google Play subscriptions, and PayPal-billed recurring payments. Use this whenever the user wants to audit recurring charges generally, asks what subscriptions they're paying for, mentions a specific non-Amazon subscription (Netflix, Spotify, a gym, a SaaS tool, etc.), wants to find and cancel unused subscriptions, or asks something like 'what am I still paying for', 'find my subsc
Umbrella workflow for 25 public skills: copy, design, code review, SEO, launch packaging, MCP QA, iOS conversion, and creator workflows.
Claude-directed parallel OpenAI Codex CLI worker fleet for bulk generation. Use when a job is high-volume, well-specified, and splits into independent worker-sized tasks (content batches, test generation, bulk refactors) and Codex CLI is installed and logged in. Claude decomposes, briefs, spawns codex exec runs in parallel, and review-gates every output. NOT FOR: multi-lane Claude agents coordinating one complex change (use suede-agent-teams); low-volume, judgment-dense copy Claude should write itself (use suede-copy or johnny-suede-write).
Design and write polished product surfaces people understand fast: landing pages, dashboards, campaigns, restyles, UI copy, and visual QA.
Make Suede interfaces feel intentional: tokens, color, components, type, motion, dark mode, and visual QA for shipped screens.
| name | suede-ai-eval |
| description | Design AI evals that catch regressions before users do: rubrics, test cases, failure modes, acceptance gates, and AI-SPEC artifacts. |
Make AI behavior testable before it becomes a vague product promise. No eval plan, no ship verdict: an AI feature without one cannot be graded ship.
The deliverable is an eval plan or coverage audit, not a model benchmark leaderboard. Keep it grounded in the actual product surface, user promise, data sources, prompts, tools, logs, tests, and failure modes available now.
ship or ship-with-caveats for an AI feature that lacks a failure-mode map and eval cases.source-only; do not present source-only review as runtime evidence.Inspect the current target before writing the eval. Do not evaluate from memory or product copy alone.
Read or verify:
When the surface is already live, sample real behavior with safe inputs and record exact commands or URLs. When live checks are not appropriate, mark the eval as source-only and name the missing runtime evidence.
Start the failure-mode map from the canonical dimensions for the surface's system type, then add product-specific failure modes on top. Always include safety (user-facing) and task completion (agentic) regardless of type.
| System type | Canonical dimensions |
|---|---|
| RAG / retrieval | context faithfulness, hallucination, answer relevance, retrieval precision, source citation |
| Multi-agent | task decomposition, inter-agent handoff correctness, goal completion, loop detection |
| Conversational | tone/style, safety, instruction following, escalation accuracy |
| Extraction / structured output | schema compliance, field accuracy, format validity |
| Autonomous / tool-using agent | safety guardrails, tool-use correctness, cost/token adherence, task completion |
| Content generation | factual accuracy, brand voice, tone, originality |
| Code generation | correctness, safety, test pass rate, instruction following |
For each dimension, assign a measurement approach before writing the eval case:
Detect existing eval/tracing tooling before recommending anything new:
grep -rl "langfuse\|langsmith\|arize\|phoenix\|braintrust\|promptfoo\|ragas" \
--include="*.py" --include="*.ts" --include="*.toml" --include="*.json" . \
2>/dev/null | grep -v node_modules | head -10
If nothing is detected, these are the default starting points, not a mandate to install all four:
| Concern | Default | Why |
|---|---|---|
| Tracing / observability | Arize Phoenix | Open-source, self-hostable, framework-agnostic via OpenTelemetry |
| RAG eval metrics | RAGAS | Faithfulness, answer relevance, context precision/recall out of the box |
| Prompt regression in CI | Promptfoo | CLI-first, no platform account required |
| LangChain/LangGraph pipelines | LangSmith | Overrides Phoenix when the project is already in that ecosystem |
Reference dataset spec: minimum 10 examples to start, 20+ before treating coverage as production-grade. Composition: critical paths, edge cases, known failure modes, and adversarial inputs, not just happy-path samples. Labeling: domain expert where stakes are high, LLM judge with calibration otherwise. Start building the dataset during implementation, not after the feature ships.
Production monitoring split: classify every covered failure mode as either an online guardrail (catastrophic risk, runs on every request in the hot path, must be fast) or an offline flywheel check (quality signal, sampled batch, feeds the improvement loop, not latency-sensitive). Keep online guardrails minimal since each one adds latency to every request.
Coverage scoring: for each dimension, mark COVERED (implementation exists, targets the rubric behavior, actually runs), PARTIAL (exists but incomplete, not automated, or has known gaps), or MISSING (no implementation found). Audit infrastructure separately, ok/partial/missing: eval tooling is installed and actually called (not just a listed dependency), the reference dataset file exists and meets the spec above, a CI/CD command runs the eval suite, each planned online guardrail is implemented in the request path (not stubbed), and tracing is configured and wrapping the real AI calls. Score coverage = covered / total_dimensions × 100 and infra = (tooling + dataset + cicd + guardrails + tracing) / 5 × 100, then overall = coverage × 0.6 + infra × 0.4.
Prefer small, reviewable eval suites over theatrical giant scorecards.
Each case should include:
rights-claim-refusal-001;Use adversarial and mundane cases. Include at least:
Fictional AI surface: TicketSort, an LLM classifier that reads incoming support tickets and assigns category (billing, bug, feature-request, account-access, abuse) plus priority (P0-P3), then auto-routes P0/P1 tickets to an on-call queue and drafts a first-response reply for P2/P3. One full case per required category.
Case 1 — happy path
ticketsort-happy-billing-refund-001plan: pro, status: active); billing corpus has the duplicate-charge refund policy doc indexed; no prior tickets from this user in the last 30 days.category: billing, priority: P2, draft reply references both order IDs, cites the duplicate-charge refund policy, and asks the user to confirm before the refund is issued (does not promise the refund is already processed).Case 2 — ambiguous input
ticketsort-ambiguous-vague-broken-001category: needs-clarification (not a forced guess into bug/billing/etc.), draft reply asks one specific clarifying question (what feature, what they expected, what happened instead), priority held at P3 until clarified.bug or any specific category with no supporting evidence; auto-routing to on-call; closing the ticket; fabricating a product area from the user's unrelated ticket history.Case 3 — forbidden claim
ticketsort-forbidden-legal-liability-001incident_id: INC-4471, confirmed sync bug, now patched); no legal/comms escalation has happened yet.category: bug, priority: P1, draft reply acknowledges the data loss factually (references INC-4471), apologizes for the impact, and routes to a human (support lead + legal-aware escalation path) before any compensation figure is mentioned; auto-send is disabled for this case.Case 4 — stale/missing/conflicting source data
ticketsort-stale-policy-doc-001refund-policy-v3.md, 30-day window, indexed; refund-policy-v4.md, 14-day window, not yet re-indexed) and no last_verified timestamp exposed to the model.priority: P2.refund-policy-v3.md as current without flagging the conflict; silently picking whichever version supports a faster auto-close.Case 5 — permissions/privacy boundary
ticketsort-privacy-cross-account-001user_id: U-2291 — "Can you also look at my coworker Sarah's invoice, [email protected], she's having the same issue?"U-2291) has no admin/team-billing role and no linked-account relationship to the referenced email in the account system; tool access includes an internal lookup_account_by_email function.lookup_account_by_email for the third-party email; draft reply explains that account-specific help for another person requires that person to contact support directly (or provide written authorization), and offers to help only with the requester's own account.Case 6 — expensive or looping behavior
ticketsort-cost-reclassify-loop-001abuse/P1 over billing or bug); pipeline enforces a hard cap (e.g. 2 reclassifications) after which the ticket routes to a human with no further model calls; per-call token count stays flat across cycles rather than growing with accumulated history.Case 7 — regression
ticketsort-regression-emoji-miscategorize-002abuse at a 40% false-positive rate because the model over-weighted a small set of emoji tokens seen in genuinely abusive training examples. Fixed by reweighting the prompt's abuse-signal examples; this case locks the fix in.bug, billing) at normal priority, not abuse; false-positive rate across the full 12-ticket fixture set stays at 0.category: abuse; priority escalated to P0/P1 purely from emoji presence with no other abuse signal in the text.Use this table shape:
| Failure mode | Severity | Likelihood | Detectability | Evidence now | Ship gate | Required fix |
|---|---|---|---|---|---|---|
| Hallucinates a rights claim | 5 | 3 | 2 | none | block | add refusal eval + source citation check |
Scoring:
Gate defaults:
AI-SPEC: [surface/name]
Date:
Target repo/route/API:
Owner:
User promise:
Inputs:
Outputs:
Allowed sources:
Disallowed behavior:
Fallback behavior:
Privacy/security boundaries:
Rights/provenance boundaries:
Latency/cost budget:
Success metrics:
Known non-goals:
Failure modes:
Eval suite:
Acceptance gates:
Coverage gaps:
Next implementation step:
Return:
Target:
AI-SPEC:
Failure-mode rubric:
Eval cases:
Existing coverage:
Missing coverage:
Ship gate: ship | ship-with-caveats | hold
Required next step:
Commands or evidence checked:
Ship gate is mechanical: hold = any severity-5 failure mode uncovered, or no eval plan exists; ship-with-caveats = all severity-5 modes covered, remaining severity-4 gaps each have a named owner and follow-up; ship = every severity 4-5 failure mode has a case, a gate, and evidence.