A string may be URL-encoded, Base64-encoded, and hex-encoded in different orders. Automatic detection is convenient but ambiguous: some ordinary text also resembles an encoding. Start with a safe message, apply two known layers, then verify that the tool decodes them in reverse order without altering the bytes.
It should show each detected step and stop when the next interpretation is uncertain, rather than repeatedly decoding into nonsense. Report original bytes, applied layers, encoded text, detected sequence, and first mismatch.