WHY IT CANNOT BE EDITED
A credential says the work met a published standard. If the standard could be rewritten, every credential already issued would quietly start asserting something nobody agreed to. So the constructor is the last moment any of it can change, and it says so in code: it refuses to run a second time.
WHAT THE CONSTRUCTOR REFUSES
A band nobody could ever reach is the one that matters: five criteria scored out of five cap the total at twenty five, so a top band needing twenty six would be a level printed on the page and awarded to nobody. It also refuses a rubric with no band starting at zero, a level defined twice, and a higher level that needs fewer points than a lower one.
Those checks live in the contract, and the refusal you would see here is its own sentence rather than this page's guess at one. check_bands() is a free view that answers the same question before anything is spent.
FROM A TERMINAL INSTEAD
npm run args # the constructor arguments
npm run deploy # refuses what the chain would refuse
The command line path checks the bands before spending a transaction, which is worth having on a network that charges. Read how an assessment runs first if you have not.