vs-eval
Use when asked to write PathGrade cases, static pins, live evals, exclusive contracts, or fixture-backed skill tests.
Skill by vltansky
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/vltansky-vs-eval
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/vs-eval
What's inside
- Skill name
vs-eval- Description
- Use when asked to write PathGrade cases, static pins, live evals, exclusive contracts, or fixture-backed skill tests. Use when the user types /vs-eval.
- License
- MIT
- Instructions
- 125 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (8)
- SKILL.md
- openai.yaml · agents/
- reject-mention-only.mjs · scripts/
- clean-exclusive.static.eval.ts · test/fixtures/
- clean-skill.md · test/fixtures/
- mention-only.static.eval.ts · test/fixtures/
- slogan-only-skill.md · test/fixtures/
- vs-eval.static.eval.ts · test/
SKILL.md (first lines)
# Eval
Write PathGrade cases that fail a skill which copies slogans and omits the
behavior. Building block.
## Flow Contract
- **Kind:** Building block
- **Inputs:** A skill change, a hypothesized contract, and the existing eval style in this repo
- **Outputs:** `*.static.eval.ts` and/or `*.eval.ts` plus fixtures that can fail; a `scripts/reject-*.mjs` workspace scorer when the contract is fixture content; status of the pin
- **Status:** PINNED, LIVE, WARN, or BLOCKED
- **Consumers:** Skill authors; `/vs-tdd`, `/vs-shape-it`, `/vs-build-it` compose only when the unit is a vs skill PathGrade contract (not default phases); `/vs-try-skill` dogfood; `/vs-ship-it` before a skill PR
- **Skip conditions:** Skip when the change is not a skill or eval contract (plain app code with ordinary unit tests)
## Workshop first
Ask 1-3 clarifying questions. Draft one scenario. Write eval code only
after the user accepts.
The live prompt tests skill behavior. It is a problem a real user would
type, not implementation steps.
Bad: "read SKILL.md then run X".
Good: the request a user would type to trigger the skill.
## Workspace scorer, not slogan pins
A writer following this skill emits `scripts/reject-*.mjs` that reads
fixture files and scores their content. Same CLI contract as `/vs-write`
and `/vs-deslop` (examples only; do not edit those skills here):
```bash
node scripts/reject-*.mjs <file-or-pair>
```
Exit 0 clean. Exit 1 reject. Exit 2 cannot check. Treat 2 as not
checked, not a pass.
The static CASE runs that script on fixtures. Do not make a slogan
`toMatch` the contract.
## Static pin vs live CASE
- Static pin (`*.static.eval.ts`): assert wording the skill must keep,
**or** run the workspace scorer on fixtures. No agent and no tokens.
- Live CASE (`*.eval.ts`): score a transcript with PathGrade
`createAgent` (from `vs-internal-shared/test/pathgrade-agent`) and
`evaluate` (from `@wix/pathgrade`). Scope a live file when needed.
Do not write a live CASE for a phrase that SKILL.md can assert. Do not
write a static pin for a first-turn question, a tool call, or a
transcript shape. Do not invent a new PathGrade runner.
### Gold, fail-closed, isolation, APIs
Do not invent APIs. Gold stays true if the skill internals change. Score outcome (lint, tests,
behavior), not filenames or methods the skill might rename. If a check
looks for a file, the user prompt must name it.
Each live CASE needs at least one `check()` or `score()`. Optional
`judge()` at weight 0.2-0.5. `toolUsage` only when the workflow is mandatory.
Score outcome first.
API: `createAgent`, `prompt` / `runConversation`, `evaluate`, `check`,
`score`, `judge`, `toolUsage` from `@wix/pathgrade`. This repo wraps
`createAgent` via `vs-internal-shared/test/pathgrade-agent`.
Isolation is `createAgent({ skillDir, workspace })` copying the skill
and fixture into an isolated workspace and HOME. Score that workspace.
Fail-closed: missing evidence fails; `onScorerError: 'zero'` or
`'fail'`, not `'skip'`. Multi-turn skills use `runConversation`
plus reactions, not a flattened one-shot.
## Exclusive order
1. Name the required behavior.
2. Pair every copied slogan with `not.toMatch` on that slogan.
3. Add the exclusive alternative a slogan-only skill fails (run the
reject script on a bad fixture).
A fixture can fail good-mention plus bad-behavior. Put the bad tell in
the fixture; put the reject rule in `scripts/reject-*.mjs`. Keep fixture
canaries out of SKILL.md.
Match text across wraps with `\s+`. Do not relax an assertion to make
it pass.
When a skill already pins `toBeLessThanOrEqual(N)` on SKILL.md line
count, stay at or under N. `/vs-write` uses 240. Do not invent a
ceiling a skill does not already pin.
## PathGrade commands - do not edit PathGrade
Prefer pathgrade run over bare vitest. Do not install PathGrade; vs already has @wix/pathgrade. Keep the vs wrappers.
```bash
pathgrade analyze --dir skills/that-skill
pathgrade validate skills/that-skill/test/that.eval.ts
pathgrade run
npm run eval:static
npm run eval
npm run eval -- skills/vs-shape-it/test/shape-it.eval.ts
npm run eval:preview
```
`npm run eval:static` is the edit loop. `npm run eval` spends tokens on live
agents; scope it.
Do not edit PathGrade: not wix-private/pathgrade, not `@wix/pathgrade`, not
node_modules/@wix/pathgrade source, not .pathgrade internals. Change only skill text, fixtures, `scripts/reject-*.mjs`, and
`*.eval.ts` / `*.static.eval.ts` beside the skill.
## Output style
Apply the shared output style at ../vs-internal-shared/references/output-style.md to every user-facing message.
## Workflow
Direct: emit **Next** only. Composed: return to caller.From vltansky/vs, MIT.
More from vltansky/vs
- 0.570score
vs-explain-video
vltansky
Make a short narrated motion explainer video about a topic, code path, or PR.
SkillAFreshness: AClaude Code +9 - 0.570score
vs-improve
shadcn
Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to execute.
SkillAFreshness: AClaude Code +9 - 0.570score
vs-disk-cleanup
vltansky
Free disk space left behind by coding agents: stale git worktrees (t3code, Codex, Claude Code), old vs session artifacts under ~/.vs, and home-folder dev…
SkillAFreshness: AClaude Code +9 - 0.570score
vs-explain-pr
vltansky
Make a short narrated video explainer of an open PR from its base...head diff, finished body, and evidence media, then add it to the PR body.
SkillAFreshness: AClaude Code +9 - 0.569score
vs-baby-sit
vltansky
Use when asked to watch a PR, fix CI, address review comments, or keep a branch merge-ready in a loop.
SkillAFreshness: AClaude Code +9 - 0.567score
vs-internal-shared
vltansky
Internal reference for vs shared conventions: artifact paths, project ID resolution, storage preference, and skill taxonomy.
SkillAFreshness: AClaude Code +9 - 0.565score
vs-explain-back
vltansky
Use when the user types /vs-explain-back, or asks you to explain back, teach back, mirror, or restate their messy multi-message explanation as a clean…
SkillAFreshness: AClaude Code +9 - 0.565score
vs-eli5
vltansky
Explain a topic like I'm a 5 year old.
SkillAFreshness: AClaude Code +9 - 0.565score
vs-before-after
vltansky
Use when asked for before and after, the functional difference, what behavior changed, or the user value of a branch, PR, commit, or working-tree diff.
SkillAFreshness: AClaude Code +9 - 0.555score
vs-bugfix
vltansky
Use when the user says fix, bugfix, broken, or describes a bug.
SkillAFreshness: AClaude Code +9 - 0.529score
vs-architect
vltansky
Use when asked to improve a codebase's architecture, find refactoring or consolidation opportunities, deepen shallow modules, reduce coupling, clarify seams…
SkillBFreshness: BClaude Code +9 - 0.529score
vs-deslop
vltansky
Use when code works but feels AI-generated, bloated, repetitive, over-defensive, or needs cleanup before review or shipping.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 1
- Open issues
- 1
- Last commit (this folder)
- Aug 22, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/vltansky/vs
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from vltansky
- 0.570score
vs-disk-cleanup
vltansky
Free disk space left behind by coding agents: stale git worktrees (t3code, Codex, Claude Code), old vs session artifacts under ~/.vs, and home-folder dev…
SkillAFreshness: AClaude Code +9 - 0.570score
vs-explain-video
vltansky
Make a short narrated motion explainer video about a topic, code path, or PR.
SkillAFreshness: AClaude Code +9 - 0.570score
vs-explain-pr
vltansky
Make a short narrated video explainer of an open PR from its base...head diff, finished body, and evidence media, then add it to the PR body.
SkillAFreshness: AClaude Code +9 - 0.569score
vs-baby-sit
vltansky
Use when asked to watch a PR, fix CI, address review comments, or keep a branch merge-ready in a loop.
SkillAFreshness: AClaude Code +9 - 0.567score
vs-internal-shared
vltansky
Internal reference for vs shared conventions: artifact paths, project ID resolution, storage preference, and skill taxonomy.
SkillAFreshness: AClaude Code +9 - 0.565score
vs-eli5
vltansky
Explain a topic like I'm a 5 year old.
SkillAFreshness: AClaude Code +9
Cite this page
vs-eval skill. Agent Mart. https://agentmart.dev/skills/vltansky-vs-eval (last updated 2026-10-24)