What is suede-ai-eval?
Design AI evals that catch regressions before users do: rubrics, test cases, failure modes, acceptance gates, and AI-SPEC artifacts.
JasonColapietro/suede-creator-skills
Design AI evals that catch regressions before users do: rubrics, test cases, failure modes, acceptance gates, and AI-SPEC artifacts.
npx skills add https://github.com/JasonColapietro/suede-creator-skills --skill "skills/suede-ai-eval"Quick start
Install it or open the source, trigger it with a clear task, then follow the source workflow.
npx skills add https://github.com/JasonColapietro/suede-creator-skills --skill "skills/suede-ai-eval"Use suede-ai-eval to help me with: [describe your task]. Before you begin, tell me what input you need, the steps you will follow, and the expected output.
5 key workflow steps, examples, and cautions are distilled below.
Continue to the workflowDirect answers
Design AI evals that catch regressions before users do: rubrics, test cases, failure modes, acceptance gates, and AI-SPEC artifacts.
It is relevant to workflows involving Testing, Engineering, Design, Operations.
SkillSignal detected this source-specific command: npx skills add https://github.com/JasonColapietro/suede-creator-skills --skill "skills/suede-ai-eval". Inspect the repository and command before running it.
The upstream source does not declare a dedicated Agent platform.
No obvious permission action was detected by the static rules. This is not proof that the Skill is safe.
This page combines upstream documentation with deterministic repository, quality, and static-risk signals. It is not described as a manual test or security review.
SkillSignal brief
Design AI evals that catch regressions before users do: rubrics, test cases, failure modes, acceptance gates, and AI-SPEC artifacts.
Useful in these contexts
Core capabilities
Distilled from the source
About 15 min · 14 sections
Define the AI-SPEC. State the AI job in one paragraph: user, trigger, input, output, allowed sources, disallowed behavior, fallback, latency/cost expectation, and success signal.
Map the failure modes. List the ways the AI can harm the user, product truth, rights/provenance, security, privacy, brand trust, cost, or workflow completion.
Build the rubric. Score each failure mode with severity, likelihood, detectability, owner, gate, and required evidence.
Write eval cases. Produce concrete pass/fail cases with inputs, setup data, expected output traits, forbidden output traits, and the reason the case exists.
Set acceptance gates. Decide what blocks ship, what allows ship-with-caveats, and what can become follow-up work.
Quality breakdown
Based on traceable docs and repository signals; stars are not treated as quality.
Compare before choosing
These links are selected from shared tasks, functions, stacks, platforms, and same-name variants. Compare the source owner, documentation, permissions, and maintenance signals.
Use when the user says "review the design", "check the UI", or wants a comprehensive UI/UX review. Uses a 7-phase methodology covering interaction, responsiveness, accessibility, and more.
Use when writing Playwright E2E tests — browser automation, visual regression testing, Page Objects, fixtures, and reliable test patterns.
This skill enables visual inspection of websites running locally or remotely to identify and fix design issues. Triggers on requests like "review website design", "check the UI", "fix the layout", "find design problems". Detects issues with responsive design, accessibility, visual consistency, and layout breakage, then performs fixes at the source code level.
Use this skill to automate visual testing and UI interaction verification using browser automation after deploying features.
E2E testing for Windows native desktop apps (WPF, WinForms, Win32/MFC, Qt) using pywinauto and Windows UI Automation.
Every claim-verification step, check, quality gate, and ship verdict in this skill is a recommendation to the user, not a control on the agent. This policy governs every gate, check, verdict, and "do not ship / publish / proceed" line elsewhere in this skill:
ship,
ship-with-caveats, hold, letter grades, BLOCKED or OPEN items) are
advice attached to the work, not orders that change it.Make AI behavior testable before it becomes a vague product promise. No eval plan, no ship recommendation: for an AI feature without one, the recommended verdict stays below ship — report that gap and let the user decide.
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 recommendation. Do not recommend ship or ship-with-caveats for an AI feature that lacks a failure-mode map and eval cases; name the gap and leave the ship decision with the user.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.