Skip to content
Back to skills

Bar Benchmark Cure Consulting Group

ASecurity

Scores legal competency on a NY bar-style bank (MBE, NYLE, MPRE, MEE essays). Use when baselining a model, gating legal skill changes, or measuring the legal skills' uplift live.

  • 85 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 8, 2026
ai-agentspythongobashgitbackend

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned October 8, 2026

npx -y skills add ThomasMoreAI/legal-skills-open --skill bar-benchmark-cure-consulting-group --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Bar Benchmark Cure Consulting Group?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Bar Benchmark Cure Consulting Group
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thomasmoreai-bar-benchmark-cure-consulting-group/badge)](https://www.skillsdirectory.com/skills/thomasmoreai-bar-benchmark-cure-consulting-group)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: bar-benchmark-cure-consulting-group
title: NY Bar Benchmark
description: Scores legal competency on a NY bar-style bank (MBE, NYLE, MPRE, MEE essays). Use when baselining a model, gating legal skill changes, or measuring the legal skills' uplift live.
author: Cure-Consulting-Group
author_url: https://github.com/Cure-Consulting-Group/ProductEngineeringSkills/tree/main/skills/legal/bar-benchmark
license: MIT
version: 0.1.0
execution_mode: open
jurisdiction: us
practice: general
language: en
---

# NY Bar Benchmark

A legal skill library that *sounds* right and one that *is* right look identical until something
is measured. This skill is the measurement: a scored, validated question bank shaped like the
New York bar, a runner that sits a model for it live, and a remediation loop for every miss.

Done means: a score per component against its pass mark, the uplift from the `legal-doctrine`
references (bare vs with-references arm), and each miss mapped to the reference file that should
have prevented it.

## What the score is and isn't

The bundled bank is **original and self-authored** (NCBE questions are copyrighted). Any model
that helped write it will score it generously. So the number is:

- a **regression gate** for changes to the legal skills,
- an **uplift instrument**: bare arm vs doctrine arm on the same items,
- a **weak-area finder**.

It is **not** a prediction of bar passage. That needs a licensed NCBE or commercial bank run as a
local overlay (below), and even then passing is not a license to practice (NY Judiciary Law §478).

## The real exam (verified 2026-09-28)

| NY requirement | Real standard | This bank's proxy mark |
|---|---|---|
| UBE: MBE 50% / MEE 30% / MPT 20% | Scaled **266/400** | MBE ≥70%, MEE rubric ≥7/10 |
| MBE: 200 items (175 scored, 25 per subject × 7) | ≈60–65% raw typically passes | 20 items × 7 subjects |
| NY Law Exam (NYLE): 50 items, 2 hrs, open book | **60%** (30/50) | ≥75%, ~54 items over the 12 NYLC subjects |
| MPRE | Scaled **85** | ≥80%, 30 items |

NY replaces the UBE with the **NextGen** bar exam from **July 2028** and keeps the NYLC/NYLE.
When that happens, add NextGen-shaped sets (integrated skills items) rather than editing these.

## Step 1: Classify

| Request | Run |
|---|---|
| "How good is the model at law?" | `run_live.py --arm both` over the full bank |
| "Did my change to a legal skill break anything?" | `run_live.py --arm doctrine --subject <subject>`, compare to the last result in `results/` |
| "Which areas are weak?" | Score, then the remediation loop |
| "Do the skills actually help?" | `cite_probe.py`: citation integrity, bare vs skill. MCQ scores are at the ceiling for frontier models, so uplift shows here, not there |
| Add or fix questions | Edit `benchmark/questions/*.json`, then `validate_bank.py` |

## Step 2: Run

```bash
S="<plugin>/skills/legal/bar-benchmark/scripts"
python3 "$S"/validate_bank.py                          # structural lint; must be clean
python3 "$S"/bar_bench.py stats                        # coverage
python3 "$S"/run_live.py --backend claude --arm both   # live: bare vs doctrine, writes results/
python3 "$S"/run_live.py --backend codex --component nyle
python3 "$S"/cite_probe.py --backend claude --runs 2    # citation integrity: memos, live statute check
python3 "$S"/bar_bench.py list --component mpre        # exam mode for a human or another agent
python3 "$S"/bar_bench.py score answers.json           # grade an answer file; exit 1 on fail
```

`run_live.py` sends questions without the key to a headless CLI in an empty temporary directory
and batches 10 MCQs per call. Isolation differs by backend: `claude` runs with no tools, no
plugins, no MCP servers, and no project settings; `codex` runs in its read-only sandbox with MCP
servers disabled (it can still read files and loads your global Codex instructions); `agy` has no
tools-off mode, so the runner refuses it unless you pass `--allow-agy`. Every item's `ref` must
name a file in `legal-doctrine/reference/`, and the run stops otherwise. The runner grades essays
with a judge. The judge defaults to a different model family (Codex for a Claude candidate);
same-family judging is labeled advisory. Each run writes `results/<date>-<backend>.json` with
scores, answers, and cost. Results from runs on client material (overlays) stay out of git.

**Self-assessment in a session** (no CLI): `list` the questions only, answer every one before
opening the key or any reference file, then `score`. Consulting the key first makes the number
meaningless.

## Step 3: Remediation loop

For each miss:

1. Read the item's `cite` and `why` (`bar_bench.py key --set <set>`), then the primary source.
2. Is the key right? Self-authored banks have errors. If the key is wrong, fix the item and log
   it in `benchmark/VALIDATION.md`. That's a bank defect, not a model miss.
3. If the key is right, open the item's `ref` file in `legal-doctrine`:
   - rule present and right → retrieval failure; make the rule more prominent or route to it;
   - rule present and wrong → fix it and check sibling claims written at the same time;
   - rule absent → coverage gap; add it.
4. Add a variant item that tests the same rule from another angle, and re-run. A fix that doesn't
   move the score didn't fix anything.

A miss on a NY-distinction item matters more than an MBE miss: that is the gap a real NY matter
would expose.

## Question bank

| Component | Files | Items |
|---|---|---|
| MBE-style | `mbe-<subject>.json` × 7 | 140 |
| NYLE-style | `nyle-cluster-{a,b,c,d}.json` | ~54 |
| MPRE-style | `mpre.json` | 30 |
| MEE-style essays | `mee-cluster-{a,b,c,d}.json` | 7, rubric-scored /10 |

Every item carries `cite`, `why` (why each wrong choice is wrong), and `ref` (the reference file
that should carry its rule). The schema is in `benchmark/README.md`. Validation history (blind
key verification, disputes, fixes) is in `benchmark/VALIDATION.md`.

### Local overlays — licensed banks and matter-specific sets

Never commit licensed questions or client facts here. Put them in:

```
.claude/bar-benchmark/questions/*.json    # auto-discovered under the working directory
BAR_BENCHMARK_QUESTIONS=dir1:dir2         # or by environment
--questions <dir>                         # or per run
```

Same schema; an overlay item with a bundled id replaces it. `bar_bench.py sources` shows what
loaded.

## Scripts

- `scripts/bar_bench.py`: list / template / key / stats / sources / score (`--json`).
- `scripts/run_live.py`: live two-arm run against `claude`, `codex`, `agy`, or `mock`.
- `scripts/validate_bank.py`: schema, ids, key validity, letter balance, rubric sums, `ref` targets.
- `scripts/cite_probe.py`: six NY research-memo prompts, bare vs skill arm; counts statute cites
  that don't exist (live), case cites carrying a verification status, and VERIFIED overclaims.

## Related

`legal-doctrine` (what's measured), `legal-research` (citation integrity), the `legal-analyst`
agent (runs the benchmark gate before memo work), `cpa-benchmark` (the same pattern for tax).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.