Pick a real bug. Ship the fix with AI.
Every challenge is a genuine GitHub issue from a major Python project, graded by the hidden tests from the fix that actually merged. Read any of them free; start a round when you are ready.
- Challenges
- 212 challenges
- Repositories
- 11 repositories
- Graded rounds
- 13 graded rounds
sympy.Array([]) fails, while sympy.Matrix([]) works
inspectdb should generate related_name on same relation links.
+300 XPCompete →
Track your progress
Sign in to see what you have solved, keep a streak, earn badges and XP, and climb the leaderboard.
- —0 rounds—medium★Exponent doesn't fully simplifysympy/sympysimplificationmathmediumnew
- —0 rounds—mediumsimplifying exponential -> trig identitiessympy/sympymathsymbolicmediumnew
- —0 rounds—easyLaTeX printer inconsistent with pretty printersympy/sympymathsymboliceasynew
- —0 rounds—easymatematica code printer does not handle floats and derivatives correctlysympy/sympymathsymboliceasynew
- —0 rounds—easyWrong result with apartsympy/sympymathsymboliceasynew
- —0 rounds—mediumSum of the elements of an identity matrix is zerosympy/sympymathsymbolicmediumnew
- —0 rounds—easyis_upper() raises IndexError for tall matricessympy/sympymathsymboliceasynew
- —0 rounds—medium`Permutation` constructor fails with non-disjoint cyclessympy/sympymathsymbolicmediumnew
- —0 rounds—mediumBehavior of Matrix hstack and vstack changed in sympy 1.1sympy/sympymathsymbolicmediumnew
- —0 rounds—easydecompose() function in intpoly returns a list of arbitrary ordersympy/sympymathsymboliceasynew
- —0 rounds—easyMod(x**2, x) is not (always) 0sympy/sympymathsymboliceasynew
- —0 rounds—mediumbell(n).limit(n, oo) should be oo rather than bell(oo)sympy/sympymathsymbolicmediumnew
- —0 rounds—easyPython 2->3 pickle fails with float-containing expressionssympy/sympymathsymboliceasynew
- —0 rounds—easy.subs on coth(log(tan(x))) errors for certain integral valuessympy/sympymathsymboliceasynew
- —0 rounds—easyMatrix.col_insert() no longer seems to work correctly.sympy/sympymathsymboliceasynew
- —0 rounds—medium@ (__matmul__) should fail if one argument is not a matrixsympy/sympymathsymbolicmediumnew
- —0 rounds—medium(-x/4 - S(1)/12)**x - 1 simplifies to an inequivalent expressionsympy/sympymathsymbolicmediumnew
- —0 rounds—easyIssue with a substitution that leads to an undefined expressionsympy/sympymathsymboliceasynew
- —0 rounds—easyDisplay of SeqFormula()sympy/sympymathsymboliceasynew
- —0 rounds—mediumInconsistency when simplifying (-a)**x * a**(-x), a a positive integersympy/sympymathsymbolicmediumnew
- —0 rounds—hardLaTeX printer does not use the same order of monomials as pretty and strsympy/sympymathsymbolichardnew
- —0 rounds—mediumPoly(domain='RR[y,z]') doesn't worksympy/sympymathsymbolicmediumnew
- —0 rounds—easyLatex printer does not support full inverse trig function names for acsc and asecsympy/sympymathsymboliceasynew
- —0 rounds—easyError pretty printing MatAddsympy/sympymathsymboliceasynew
- —0 rounds—mediumlambdify does not work with certain MatrixSymbol names even with dummify=Truesympy/sympymathsymbolicmediumnew
- —0 rounds—mediumLaTeX printing for Matrix Expressionsympy/sympymathsymbolicmediumnew
- —0 rounds—easymathematica_code gives wrong output with Maxsympy/sympymathsymboliceasynew
- —0 rounds—easycan't simplify sin/cos with Rational?sympy/sympymathsymboliceasynew
- —0 rounds—easyIndexed matrix-expression LaTeX printer is not compilablesympy/sympymathsymboliceasynew
- —0 rounds—mediumSome issues with idiffsympy/sympymathsymbolicmediumnew
- —0 rounds—hardmathml printer for IndexedBase requiredsympy/sympymathsymbolichardnew
- —0 rounds—mediumProduct pretty print could be improvedsympy/sympymathsymbolicmediumnew
- —0 rounds—mediumBad centering for Sum pretty printsympy/sympymathsymbolicmediumnew
- —0 rounds—hardautowrap with cython backend fails when array arguments do not appear in wrapped exprsympy/sympymathsymbolichardnew
- —0 rounds—easyIntersection should remove duplicatessympy/sympymathsymboliceasynew
- —0 rounds—mediumLambdify misinterprets some matrix expressionssympy/sympymathsymbolicmediumnew
- —0 rounds—easysimplify(cos(x)**I): Invalid comparison of complex I (fu.py)sympy/sympymathsymboliceasynew
- —0 rounds—easyException when multiplying BlockMatrix containing ZeroMatrix blockssympy/sympymathsymboliceasynew
- —0 rounds—easyUnexpected exception when multiplying geometry.Point and numbersympy/sympymathsymboliceasynew
- —0 rounds—hardnthroot_mod function misses one root of x = 0 mod p.sympy/sympymathsymbolichardnew
- —0 rounds—mediumexpr.atoms() should return objects with no args instead of subclasses of Atomsympy/sympymathsymbolicmediumnew
- —0 rounds—easyBlockDiagMatrix with one element cannot be converted to regular Matrixsympy/sympymathsymboliceasynew
- —0 rounds—mediumsqf and sqf_list output is not consistantsympy/sympymathsymbolicmediumnew
- —0 rounds—harduniq modifies list argumentsympy/sympymathsymbolichardnew
- —0 rounds—hardWrong matrix element fetched from BlockMatrixsympy/sympymathsymbolichardnew
- —0 rounds—hardsympy.polys.factortools.dmp_zz_mignotte_bound improvementsympy/sympymathsymbolichardnew
- —0 rounds—easyRewrite sign as abssympy/sympymathsymboliceasynew
- —0 rounds—hardPoint.vel() should calculate the velocity if possiblesympy/sympymathsymbolichardnew
- —0 rounds—hardpartitions() reusing the output dictionariessympy/sympymathsymbolichardnew
- —0 rounds—easy0**-oo produces 0, the documentation says it should produce zoosympy/sympymathsymboliceasynew
From Start to score in four steps
- 1
Press Start
A fresh container boots with the real repository checked out at the commit the bug was reported against, dependencies installed and tests runnable. VS Code opens in a new tab, usually within a minute.
- 2
Fix it with the agent
An AI coding agent sits in the editor. You have 60 minutes and up to 1M tokens for the round (less if your balance pays for less); usage is charged to your credit as you go, and the agent stops when the budget runs out.
- 3
Everything is recorded
Every prompt, every tool call the agent makes, tokens spent, files edited, each test run, pastes and time away from the tab. Nothing outside the workspace is watched.
- 4
Submit and get scored
Hidden tests from the real fix decide whether it is solved. The report scores you 0 to 100 from six sub-scores, and the round earns XP toward your level and the leaderboard.
How the score is made
Your overall score is a weighted blend of six sub-scores. Solving the issue matters most, but how you drove the agent, checked your work and spent your tokens is what separates a good engineer with AI from a lucky one. Non-empty practice submissions can earn XP. Your best result on each task counts, with harder tasks and passing tests worth more.
See a sample report →- Outcome35%
Do the hidden tests pass, and does nothing that worked before break?
- Prompt quality15%
Specific, contextual instructions beat “fix it”.
- Token economy15%
Solving it without burning the budget.
- Verification15%
Running the tests yourself before you submit.
- Speed10%
Time to a working fix (only counts when it works).
- Recovery10%
Getting out of error loops instead of repeating them.