Docs/06 Descent

06 Descent

Recovering a dropped specific at the moment it turns out to matter.

When the compressed lesson fails, which child do you go to?

Compression normally destroys the information you would need to invert it, which is why the manifest is mandatory. Descent is then a ranking problem over dropped claims, not a search over the graph:

score = w_judge · model_usefulness + w_prior · rescue_rate − w_cost · tokens
         (0.60)                       (0.28)                  (0.12)
  • model_usefulness — one call ranks every candidate 0–1: how likely is it that this detail being absent caused this failure. A judgement, so the model makes it. "Parse the body, not the status code" is the fix for "treated HTTP 200 as success" while sharing none of its words.
  • prior — Laplace-smoothed rate at which this node has actually rescued failures. Observed outcome, so it stays in code. Makes descent a contextual bandit over the graph.
  • cost — token count. A measurement.

With no judge available the first term is simply absent and ranking falls back to "try what has worked, cheapest first" — degrading honestly rather than substituting a metric that looks like judgement.

Strategies (recall.strategy): delta-patch (apex + matched claims, default), delta-jump (swap in the holder node), stepwise (walk children, ignore the manifest — the ablation baseline).

Escalation: exhaust candidates → load the level-0 node, which is never deleted. If that fails too, it is a genuine knowledge gap, not a compression bug.