vendo: Skill for Claude Code

.claude/skills/genbench/SKILL.md

genbench is a skill for Claude Code from runvendo/vendo. It costs 70 tokens per session (1,248 once invoked), scanned A, original, Apache-2.0.

A benchmark for comparing how quickly and accurately Vendo generates interfaces against direct Claude-based approaches. It runs the same JSON-defined test cases through several generation methods.

In plain words
What is it for?
Use it to run one case, a whole world, or all available worlds; compare models such as Opus, Sonnet, and Haiku; and add new benchmark cases.
Why use it?
It replaces informal comparisons with repeatable tests, so you can see differences in generation time, accuracy, and cost.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: positional $N argument.

This is runvendo/vendo's own configuration. It tells Claude Code how to work on vendo itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything vendo configures →

Reuse

Borrowing it

Nothing to install: this file belongs to runvendo/vendo. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/runvendo/vendo/main/.claude/skills/genbench/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/runvendo/vendo

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for genbench

README.md
[![agentmods](https://agentmods.dev/badge/skills/runvendo/vendo/genbench.svg)](https://agentmods.dev/skills/runvendo/vendo/genbench)
Your own site
<a href="https://agentmods.dev/skills/runvendo/vendo/genbench"><img src="https://agentmods.dev/badge/skills/runvendo/vendo/genbench.svg" alt="Measured on agentmods" height="20"></a>
Per session 70 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,248 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00070 $0.01248
Opus 5 $0.00035 $0.00624
Sonnet 5 $0.00014 $0.00250
Haiku 4.5 $0.00007 $0.00125

Measured 6d ago against content hash 87229ba89d6e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

genbench scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/genbench/SKILL.md · 69 lines

How it starts

The opening of the file, as written. The whole thing — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.

genbench

One command, from the repo root (ANTHROPIC_API_KEY in the environment):

pnpm build                                      # genbench reads the built @vendoai/* dists
pnpm genbench run --prompt <case-id>            # one case, all contenders, opens preview.html
pnpm genbench run                               # every case in one world
pnpm genbench run --models opus,sonnet,haiku    # expand the harness x model matrix
pnpm genbench run --world maple                 # choose world (default: maple)
pnpm genbench run --world all                   # every world into ONE run folder

The corpus is 14 worlds, 196 cases — 15 per world, except buildlog and fieldops at 10 and logistics, observability, product-analytics and trades-accounting at 14. Case ids in maple: spend-overview, spend-chart, pending-transfers, account-balances, no-pending-transfers, transfer-receipt, cancel-both-pending, transfer-activity-feed, room-for-dana, rent-check, bills-calendar, money-dashboard, dining-budget-cap, category-groups, savings-goals.

  • Contenders: vendo (real pipeline, this working tree) · diy (one raw streamText call) · claude-code (stock Agent SDK in a scratch dir). Byte-identical world info per contender: ONE serializer, worldBlock in genbench/src/vendo.ts, enforced by the fairness test in genbench/tests/diy.test.ts against what the vendo driver really receives.
  • Worlds: genbench/worlds/<name>/{world.json, cases.json} plus an optional font.woff2 the harness injects into every contender's page. world.json = tools + canned data + theme + style rubric; cases.json = prompt + pass lines. Conventions: money in cents; a tool with data is a read, takes-only is a write.
  • Output: genbench/runs/<run>/<contender>/<case>/{artifact.tsx (vendo only), page.html, screenshot.png, result.json} + summary.json (the run's ONE aggregate, per column) + preview.html (live embedded screens, world-data panel, live tool-call feed). runs/ is gitignored. <contender> is the column slug <harness>-<model>vendo-sonnet, diy-opus, claude-code-haiku. Under --world all the case folder is <world>/<case>, because two worlds ship the same case id.
  • Floor checks are deterministic (delivered / renders / valid / honestData / wiredActions via click-probe). A check with nothing in front of it is VACUOUS and one whose grader was unreachable is DEGRADED; neither scores, in either direction. The pass lines are the rubric a pinned judge (versioned rubric contract) grades on every run — any edit to its prompt bumps rubricVersion and resets comparability.
  • Exit code: any floor failure exits 1; a judge outage or a failed rubric line does not. The last stdout line says which — floor failures: 2 (exit 1). Through pnpm that is followed by pnpm's own ELIFECYCLE line, which is not a second failure.
  • Judge spend is reported separately — judged.cost in result.json and one line under the preview's run header. It is NEVER folded into a contender's cost, which is only what that contender spent building its screen.
  • Budgets are per contender: five minutes for vendo and diy, twelve for claude-code, which runs its own ten-minute wall clock inside the driver.
  • Rough cost: one case ≈ 1-4 min ≈ $0.30-$0.50 + judge; one world is 10-15x that and --world all is 196x; --models multiplies by the model count. Prices in src/meter.ts are as of 2026-08-08 (Sonnet 5 is on intro pricing through 2026-08-31) — token counts are the durable number, dollars are not.
  • --prompt runs open preview.html on macOS; full runs just print the path. CI or GENBENCH_NO_OPEN=1 suppresses the window.
  • Gotchas: test genbench with pnpm --filter @vendoai/genbench test (its vitest.config.ts caps the pool at 1-2 workers) — never the full repo suite, and not a bare npx vitest, which resolves a different vitest that rejects this repo's worker flags. The two money-spending tests (judge smoke, claude-code driver) need GENBENCH_LIVE=1 and ANTHROPIC_API_KEY; both stay skipped otherwise. --lane build is deferred and says so.

Read the full file on GitHub · 69 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 69 lines · 70 tokens per session scan A 87229ba89d6e

Subscribe to this mod's changes

genbench is a skill published in the GitHub repository runvendo/vendo (605 stars, last pushed 4d ago), licensed Apache-2.0. It adds 70 tokens to every session and 1,248 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

agent-device

Automates Apple-platform apps (iOS, tvOS, macOS), Android devices, and Amazon Vega OS TV apps in Vega Virtual Devices. Use when navigating apps, taking snapshots/screenshots where supported, driving TV remotes, tapping, typing, scrolling, extracting UI info, collecting evidence, or planning agent-device CLI commands.

callstack/agent-device · 69 tokens

android-emulator

Verify and debug native, React Native, Expo, or Flutter apps on an Android Emulator with agent-device. Use when an agent needs to launch an app, inspect its live UI, tap, type, scroll, validate a code change, collect failure evidence, or reproduce a workflow on an Android virtual device.

callstack/agent-device · 65 tokens

ios-simulator

Verify and debug native, React Native, Expo, or Flutter apps on an iOS Simulator with agent-device. Use when an agent needs to launch an app, inspect its live UI, tap, type, scroll, validate a code change, collect failure evidence, or reproduce a workflow on an iPhone or iPad Simulator.

callstack/agent-device · 69 tokens

dogfood

Systematically explore and test a mobile app on iOS/Android with agent-device to find bugs, UX issues, and other problems. Use when asked to dogfood, QA, exploratory test, find issues, bug hunt, or test this app on mobile.

callstack/agent-device · 55 tokens

verify-implementation

프로젝트의 모든 verify 스킬을 실행하여 통합 패턴 검증 보고서를 생성합니다. 기능 구현 후, PR 전, 코드 리뷰 시 사용.

sangrokjung/claude-forge · 37 tokens

verification-engine

Use when verifying build/test/lint before commit, PR, or completion claims. Runs verification pipeline in fresh subagent context with auto-repair. Triggers on /handoff-verify, pre-commit check, build verification, test validation.

sangrokjung/claude-forge · 52 tokens