It's clear from the spec that #1 is the Right Thing, as long as I understand your code. Your docs say:
"conditions that cause the Lisp image to enter the debugger if interactive,
or to die if not interactive"
The hyperspec for SERIOUS-CONDITION is almost word-for-word:
"All conditions serious enough to require interactive intervention if not handled should inherit from the type serious-condition."
So I am going to make that change.
For number 2, I think it's more about the structure of our code -- can we allow the user to intervene and handle some of these conditions? Are we inadvertently preventing the user from successfully invoking a restart? I'm not sure I understand well enough how that condition handling is being done in ASDF. E.g., in FIND-SYSTEM, we wrap an original error in a LOAD-SYSTEM-DEFINITION-ERROR. I'm not sure, but I suspect that makes inaccessible any original restarts.
For #3, MODULE-PROVIDE-ASDF, we are just providing the user with additional information -- we don't handle the error, we just tell the user that this error has caused loading the module to fail. So I can change that ERROR to SERIOUS-CONDITION without denying the user access to restarts.
It's clear from the spec that #1 is the Right Thing, as long as I understand your code. Your docs say:
"conditions that cause the Lisp image to enter the debugger if interactive,
or to die if not interactive"
The hyperspec for SERIOUS-CONDITION is almost word-for-word:
"All conditions serious enough to require interactive intervention if not handled should inherit from the type serious-condition."
So I am going to make that change.
For number 2, I think it's more about the structure of our code -- can we allow the user to intervene and handle some of these conditions? Are we inadvertently preventing the user from successfully invoking a restart? I'm not sure I understand well enough how that condition handling is being done in ASDF. E.g., in FIND-SYSTEM, we wrap an original error in a LOAD-SYSTEM- DEFINITION- ERROR. I'm not sure, but I suspect that makes inaccessible any original restarts.
For #3, MODULE- PROVIDE- ASDF, we are just providing the user with additional information -- we don't handle the error, we just tell the user that this error has caused loading the module to fail. So I can change that ERROR to SERIOUS-CONDITION without denying the user access to restarts.
I'll make change #3 also.