بنقرة واحدة
bisect-regression
Quickly find which commit introduced a test262 regression using git bisect with automated test.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Quickly find which commit introduced a test262 regression using git bisect with automated test.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Compare two test262 result files to find exactly which tests changed status. Use after a test262 run shows unexpected pass count changes.
Compile a source file to WAT and analyze the output for codegen inefficiencies. Use after a codegen change to verify the output is clean, when investigating performance issues, or when creating optimization issues from real compiler output.
Write an implementation spec for a hard issue. Read compiler source, identify exact functions/lines, design the fix, document edge cases.
Atomically claim an issue for a developer (human or agent) via the cross-developer lock ref, so two devs never pick up the same task. Syncs with origin first, refuses if already claimed or already done on main, and pushes the claim immediately without touching main or triggering CI.
Create a new issue file from a test262 failure pattern. Includes smoke test, sample extraction, and proper frontmatter.
Merge self-check for a green PR. Reads the PR's required-check status from the checks API (the committed ci-status feed is RETIRED), outputs MERGE (mark task completed, stand down — server-side auto-enqueue enqueues,
استنادا إلى تصنيف SOC المهني
| name | bisect-regression |
| description | Quickly find which commit introduced a test262 regression using git bisect with automated test. |
Find which commit introduced a regression using git bisect with an automated test script.
# Compare current vs archived results
python3 -c "
import json, os
current = {}
with open('benchmarks/results/test262-results.jsonl') as f:
for line in f:
r = json.loads(line)
current[r['file']] = r['status']
# Find archived files
archives = sorted([f for f in os.listdir('benchmarks/results')
if f.startswith('test262-results-') and f.endswith('.jsonl')])
print('Available archives:', archives)
# Compare with most recent archive
if archives:
prev = {}
with open(f'benchmarks/results/{archives[-1]}') as f:
for line in f:
r = json.loads(line)
prev[r['file']] = r['status']
regressions = [t for t in prev if prev[t] == 'pass' and current.get(t) != 'pass']
fixes = [t for t in current if current[t] == 'pass' and prev.get(t) != 'pass']
print(f'Regressions: {len(regressions)}, Fixes: {len(fixes)}')
# Pick a sample regression test for bisecting
if regressions:
print(f'Sample test for bisect: {regressions[0]}')
"
GOOD="<commit-hash-where-test-passed>" # e.g., the baseline commit
BAD="HEAD"
git bisect start
git bisect bad $BAD
git bisect good $GOOD
# vitest exits 0 on pass, 1 on fail — perfect for bisect
git bisect run npx vitest run tests/test262-vitest.test.ts -t "<test-name-pattern>"
Example with a specific test file:
git bisect run npx vitest run tests/test262-vitest.test.ts -t "S7.9.2_A1_T6"
This binary-searches through commits (~7 steps for 90 commits) and reports the first bad commit.
# git bisect will print: "<hash> is the first bad commit"
git show <hash> --stat
git show <hash>
git bisect reset
If different tests regressed from different commits, bisect each pattern separately:
# Pattern 1: SyntaxError regressions
git bisect start && git bisect bad HEAD && git bisect good $GOOD
git bisect run npx vitest run tests/test262-vitest.test.ts -t "S7.9.2_A1_T6"
git bisect reset
# Pattern 2: null deref regressions
git bisect start && git bisect bad HEAD && git bisect good $GOOD
git bisect run npx vitest run tests/test262-vitest.test.ts -t "RegExp-decimal-escape"
git bisect reset
git bisect skip if a commit doesn't compile at allgit show and check which files changed