بنقرة واحدة
compat-review
Verify compat PR claims by running lodash vs es-toolkit/compat at runtime
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Verify compat PR claims by running lodash vs es-toolkit/compat at runtime
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Classify and summarize a PR for efficient review
Create a new es-toolkit release (version bump, changelog, tag)
es-toolkit usage guide covering installation, import patterns, and setup for Node.js, Bun, Deno, and browsers. Use when the user asks how to install, import, or set up es-toolkit in their project.
Guide migrating lodash code to es-toolkit. Use when the user wants to migrate from lodash, replace lodash imports, reduce bundle size by switching to es-toolkit, or understand the difference between es-toolkit and es-toolkit/compat.
Analyze code or requirements and recommend the best es-toolkit functions. Use when the user asks which es-toolkit function to use, needs help finding a utility, or wants alternatives to manual implementations.
Suggest and apply GitHub labels to unlabeled issues
| name | compat-review |
| description | Verify compat PR claims by running lodash vs es-toolkit/compat at runtime |
| argument-hint | <PR number or function name> |
| allowed-tools | Bash, Read, Write, Grep, Glob |
Verify that a compat PR actually fixes a real lodash inconsistency.
$ARGUMENTS — PR number (e.g. 1234) or function name (e.g. chunk)
PR number:
gh pr view {number} --repo toss/es-toolkit --json title,body,files
From the PR description and diff, extract:
Function name: Read the function source and its spec to understand current behavior.
Create a temporary vitest spec at src/compat/{category}/_compat-review-{fn}.spec.ts.
import { describe, expect, it } from 'vitest';
import { fn as compatFn } from 'es-toolkit/compat';
import { fn as lodashFn } from 'lodash';
Include two groups of test cases:
A. Contributor's claimed examples — Extract directly from the PR description or test diff. These are the cases the PR claims to fix.
B. ~10 additional edge cases you generate — Based on the function's signature and lodash's known behavior patterns:
[], {}, '', 0null, undefined-1, 0, 1.5, NaN, Infinity'3'), boolean, mixed typesEach test:
it('description', () => {
let lodashResult, compatResult;
let lodashErr: any, compatErr: any;
try {
lodashResult = lodashFn(args);
} catch (e) {
lodashErr = e;
}
try {
compatResult = compatFn(args);
} catch (e) {
compatErr = e;
}
if (lodashErr && compatErr) return; // both throw = consistent
if (lodashErr || compatErr) {
throw new Error(`Behavior mismatch: ${lodashErr ? 'lodash throws' : 'compat throws'}`);
}
expect(compatResult).toEqual(lodashResult);
});
yarn vitest run src/compat/{category}/_compat-review-{fn}.spec.ts
Record which tests fail — these are real inconsistencies that exist on main.
gh pr diff {number} --repo toss/es-toolkit | git apply
Run the same test again. Confirm that:
Revert after testing:
git checkout -- .
Delete _compat-review-*.spec.ts.
## {fn} — Compat Review
### PR Claim
{What the contributor says they're fixing}
### Verification (BEFORE fix)
| # | Input | lodash | compat | Match? | Source |
|---|-------|--------|--------|--------|--------|
| 1 | ... | ... | ... | MISMATCH | PR example |
| 2 | ... | ... | ... | MATCH | Edge case |
### Verification (AFTER fix)
| # | Input | lodash | compat | Match? | Source |
|---|-------|--------|--------|--------|--------|
### Verdict
- [ ] PR claim is valid (inconsistency confirmed on main)
- [ ] Fix resolves the claimed inconsistency
- [ ] No regressions in edge cases
- [ ] Existing tests still pass