A rule set that fires no rules gives you no error and no output to work backwards from. A goal-driven run turns that silence into a tree, where the deepest red node names the input that was actually missing.
Name the context keys a run should establish and the engine works backwards to find the rules that can produce them, firing only what the answer actually needs. Every run comes back with a proof tree that shows how the value came to be, or which input was missing.
Mark a rule as retractable and its conclusions are only true while the rule still matches. When the facts behind a decision move, the decision comes back out, and so does everything built on top of it.
Most engines tell you the result. The inference trace tells you the reasoning — every firing in order, a green/red condition tree with the actual values, every context change, and a plain-language explanation on demand.