agentsclimarketplace

Benchmark

Skill luiseiman/dotforge/skills/benchmark

Compare Claude Code output with full config vs minimal config using standardized tasks per stack.From its SKILL.md

Install
npx -y skills add luiseiman/dotforge --skill benchmark

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 4 commands, including `git worktree add /tmp/bench-full-{{slug}} HEAD` and 3 more.

SKILL.md

4.2 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

Benchmark

Compare the effectiveness of a project's full dotforge configuration against a minimal baseline by executing the same standardized task in two isolated worktrees.

Cost warning: Each benchmark runs Claude Code twice (full + minimal). Use sparingly and only after Fases 0-2 are working.

Prerequisites

  • Project must have .claude/settings.json and CLAUDE.md
  • Project must be a git repository with a clean working tree
  • Task definitions must exist in $DOTFORGE_DIR/tests/benchmark-tasks/

Step 1: Select task

  1. Detect project stacks from .claude/.forge-manifest.json or infer from project files
  2. Load matching task from $DOTFORGE_DIR/tests/benchmark-tasks/{stack}.yml
  3. If multiple stacks match, let user choose or run the first match
  4. If no stack matches, use generic.yml

Display:

═══ BENCHMARK SETUP ═══
Project: {{name}}
Stack detected: {{stack}}
Task: {{task title}}
Description: {{task description}}

⚠ This will run Claude Code twice in isolated worktrees.
Proceed? (yes/no)

Step 2: Prepare worktrees

Create two git worktrees from the current HEAD:

  1. Full configgit worktree add /tmp/bench-full-{{slug}} HEAD

    • Copy entire .claude/ directory as-is
    • Copy CLAUDE.md as-is
  2. Minimal configgit worktree add /tmp/bench-minimal-{{slug}} HEAD

    • Create minimal CLAUDE.md with only project name and "Build & Test" section
    • Create minimal .claude/settings.json with only allowedTools (no hooks, no deny list)
    • No .claude/rules/, no hooks, no agents

Step 3: Execute task

For each worktree, run the task prompt using Claude Code in non-interactive mode:

cd /tmp/bench-full-{{slug}}
claude --print "{{task prompt}}" --allowedTools "Bash,Read,Write,Edit,Glob,Grep"

Same for minimal worktree.

Capture for each run:

  • files_created: count of new files (git diff --name-only --diff-filter=A)
  • files_modified: count of modified files
  • tests_passing: run the test command from task definition, count pass/fail
  • lint_issues: run lint command from task definition, count issues
  • errors: grep stderr for error patterns
  • has_test: boolean — did Claude create a test file?

Step 4: Compare and report

═══ BENCHMARK RESULTS — {{project}} ═══
Task: {{task title}}
Stack: {{stack}}
Date: {{YYYY-MM-DD}}

                   Full Config    Minimal Config    Delta
Files created:         {{N}}          {{N}}          {{+/-N}}
Tests created:         {{yes/no}}     {{yes/no}}     —
Tests passing:         {{N/M}}        {{N/M}}        {{+/-N}}
Lint issues:           {{N}}          {{N}}          {{+/-N}}
Errors:                {{N}}          {{N}}          {{+/-N}}

── ANALYSIS ──
{{if full is better across metrics:
  "Full config prevented {{N}} lint issues and {{N}} errors.
   ROI: rules + hooks justified for this project."}}
{{if similar:
  "Minimal difference detected. Consider simplifying configuration
   or running /forge rule-check to identify inert rules."}}
{{if minimal is better:
  "⚠ Full config may be adding overhead without benefit.
   Review rules for contradictions or excessive constraints."}}

Step 5: Cleanup

  1. Remove worktrees: git worktree remove /tmp/bench-full-{{slug}} and minimal
  2. Optionally save results to ~/.claude/metrics/{{slug}}/benchmark-{{date}}.json

Results JSON schema:

{
  "project": "{{slug}}",
  "date": "{{YYYY-MM-DD}}",
  "stack": "{{stack}}",
  "task": "{{task id}}",
  "full": {
    "files_created": 0,
    "tests_passing": 0,
    "lint_issues": 0,
    "errors": 0,
    "has_test": false
  },
  "minimal": {
    "files_created": 0,
    "tests_passing": 0,
    "lint_issues": 0,
    "errors": 0,
    "has_test": false
  }
}

Important constraints

  • NEVER run benchmark automatically — always require explicit user confirmation
  • NEVER push or commit from worktrees — they are disposable
  • If Claude Code execution fails in either worktree, report the failure and still show partial results
  • Timeout each run at 5 minutes — if Claude hasn't finished, capture partial state
  • Clean up worktrees even on failure

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most evals benchmarks skills give in ~1.1k tokens

Counted across 499 of the 513 authors here whose files we hold, read 2026-09-06

  • Spawn with-skill and baseline runs in the same turnin 31 of 499, across 24 files
  • Keep SKILL.md under 500 linesin 31 of 499, across 24 files
  • Draft assertions while test runs are in progressin 31 of 499, across 24 files
  • Compare against the baseline after changesin 31 of 499, across 13 files
  • Define evals before codingin 26 of 499, across 17 files
  • Run evals frequently during developmentin 25 of 499, across 16 files
  • Keep evals fastin 24 of 499, across 15 files
  • Version evals with codein 24 of 499, across 15 files
  • Generate the eval viewer before evaluating outputs yourselfin 24 of 499, across 17 files
  • Generate an eval report after runsin 24 of 499, across 15 files
  • Track pass@k metrics over timein 22 of 499, across 14 files
  • Save a baseline before making changesin 21 of 499, across 9 files

Said here and by no other author read

  • Detect project stacks from manifest or project files
  • Load matching benchmark task for detected stack
  • Use generic task when no stack matches
  • Create two git worktrees from current HEAD
  • Copy full configuration into one worktree
  • Build minimal config with only name and allowedTools

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.