Sub-task of #65, unblocks data-driven recalibration instead of blind edge-weight edits.
Sweep #64 (interim, 123 cells) quantifies the expansion-precision cliff: ego@8k L0 = recall 0.902 / precision 0.982; L1 = recall 0.923 / precision 0.254 (mean across 3 test sets). One traversal hop buys +2pt recall at the cost of ~4/5 of context tokens being waste.
What is missing to fix it: the selection output records WHICH fragments were included but not WHY — no edge type / path-from-core attribution. Proposal:
- stamp each selected context fragment with the (category, weight, hop) of the edge(s) that pulled it in (extend
extra/latency-style diagnostics, off by default behind an env flag to keep output stable);
- re-run ONE cell (ego@8k, contextbench) with attribution on;
- rank edge categories by recall-contribution vs waste-contribution against gold;
- recalibrate CATEGORY_WEIGHTS from that ranking.
Acceptance: a table edge_category -> (gold hits, waste tokens) from a real cell, and a calibrated-weights PR that moves ego@8k toward recall >=0.93 at precision >=0.9 without regressing polybench/swebench.
Sub-task of #65, unblocks data-driven recalibration instead of blind edge-weight edits.
Sweep #64 (interim, 123 cells) quantifies the expansion-precision cliff: ego@8k L0 = recall 0.902 / precision 0.982; L1 = recall 0.923 / precision 0.254 (mean across 3 test sets). One traversal hop buys +2pt recall at the cost of ~4/5 of context tokens being waste.
What is missing to fix it: the selection output records WHICH fragments were included but not WHY — no edge type / path-from-core attribution. Proposal:
extra/latency-style diagnostics, off by default behind an env flag to keep output stable);Acceptance: a table
edge_category -> (gold hits, waste tokens)from a real cell, and a calibrated-weights PR that moves ego@8k toward recall >=0.93 at precision >=0.9 without regressing polybench/swebench.