Skip to content
ImasaikiranPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

bench

A portrait of your Claude Code practice. Klout for Claude Code: scan your .claude/ setup, get a one-page shareable card: hours Claude gave back, signature verbs, missing moves.

Zero revenue. Adoption-first. Score-only. Open scorecard, community-editable.

Try it

npx @imasaikiran/bench@alpha

TODO: Task 1.38 (npm publish of 0.0.2-alpha.0) has not run yet, so the package is not on the registry. Until then, run from a local checkout: pnpm -C cli build && node cli/dist/index.js.

The CLI scans ~/.claude/ (or $CLAUDE_HOME), shows a terminal preview, asks consent, and either uploads to https://bench.dev/api/scan to open a shareable card or writes bench-scan.json + bench-scan.html locally with --offline. Nothing leaves the machine without a y/N prompt.

Repo layout

This is a pnpm workspace. Three packages:

Path Package What it is
cli/ @imasaikiran/bench TypeScript CLI. Scans .claude/, scores against the rubric, uploads or exports. Bin: bench.
web/ @imasaikiran/bench-web Next.js 15 App Router app (bench.dev). Receives scans, renders the v1 portrait, OG images, GitHub claim.
rubric/ @imasaikiran/bench-rubric Single rubric.yaml + JSON schema. Bundled into the CLI and re-imported by the web for server-side re-scoring.

Other top-level dirs:

  • docs/specs/: frozen design docs.
  • docs/plans/: implementation plans (current: 2026-04-25-bench-v2-implementation-plan.md).
  • V2_KICKOFF.md: single source of truth for v2 scope, constraints, and what v1 looked like.

v1 (static HTML, the locked frontend) lives on tag v1.0.0 and branch v1-bench. Do not touch those. v2 work happens on v2-dev.

Local dev

Requires Node >=20.10 and pnpm 9.

pnpm install
pnpm typecheck
pnpm test

Run the web app:

pnpm -C web dev

It boots on http://localhost:3000. Most pages render without env vars; routes that touch the database, GitHub OAuth, the cron, or /internal/metrics need the variables documented in .env.example. Copy it to web/.env.local.

Build the CLI and run it against your own setup:

pnpm -C cli build
node cli/dist/index.js --offline

Run a single package's tests:

pnpm -C cli test
pnpm -C web test
pnpm -C rubric test

Environment

All env vars are documented in .env.example: purpose, file:line where each is read, required vs optional, and an example value. Copy it to web/.env.local for local dev.

Note: BENCH_HMAC_KEY is not an env var. The integrity key is hard-coded in cli/src/payload.ts and web/lib/hmac.ts as a public constant. It exists to deter casual tampering, not as an auth secret. See .env.example for context.

The scorecard is open

rubric/rubric.yaml is the single source of truth for scoring. Versioned, community-editable. PRs that propose new checks, retune thresholds, or add tier conditions are welcome. See docs/specs/2026-04-25-bench-v2-design.md §10 for the rubric contract.

No LLM is in the scoring path. All scoring is deterministic from the rubric file.

Docs

Branch policy

  • v2-dev: active v2 work. All PRs land here or on v2-dev/<task-slug> branches merged back.
  • v1-bench, tag v1.0.0: frozen v1 frontend. Read-only. Never rebase or force-push.
  • main: released/merged state. Carries the merged v2 work; no longer held at the seed commit.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages