Problem
Three phase2 specs asserted "outcome":"bound" for selectors using framework-specific anchors (event_name, route_method, route_pattern). These anchors have confidence below the bound threshold (0.95), so the correct outcome is always reanchored.
Additionally, specs asserted contains: '"entity_kind":"Route"' — a field that does not exist in ResolutionMatch.
Confidence Values vs Thresholds
| Anchor |
Confidence |
Outcome |
qualified_name |
1.0 |
bound (≥ 0.95) |
body_hash |
0.95 |
bound |
event_name |
0.92 |
reanchored (≥ 0.75) |
topic_name |
0.92 |
reanchored |
function_signature |
0.85 |
reanchored |
route_pattern |
0.80 |
reanchored |
route_method |
0.70 |
(below reanchored) |
path_glob |
0.55 |
(below reanchored) |
Source: internal/semantic_overlay/resolve.go — DefaultThresholdBound = 0.95, DefaultThresholdReanchored = 0.75.
Specs Fixed on impl/phase2
phase2/dsl/selectors-by-event-name.yaml — "bound" → "reanchored"
phase2/dsl/selectors-by-route-method-and-path.yaml — same; also removed impossible "entity_kind":"Route" assertion
phase2/tracer-framework-demo.yaml — same fix
Non-existent Field
ResolutionMatch struct has fields: entity_id, qualified_name, confidence, via_anchor. It does not have entity_kind. Three specs were asserting on this missing field — the assertions were vacuously passing.
References
internal/semantic_overlay/anchors/event.go — ConfidenceEventName = 0.92
internal/semantic_overlay/anchors/route.go — ConfidenceRoutePattern = 0.80, ConfidenceRouteMethod = 0.70
internal/semantic_overlay/resolve.go — threshold constants
internal/semantic_overlay/overlay.go — ResolutionMatch struct
Problem
Three phase2 specs asserted
"outcome":"bound"for selectors using framework-specific anchors (event_name,route_method,route_pattern). These anchors have confidence below theboundthreshold (0.95), so the correct outcome is alwaysreanchored.Additionally, specs asserted
contains: '"entity_kind":"Route"'— a field that does not exist inResolutionMatch.Confidence Values vs Thresholds
qualified_namebody_hashevent_nametopic_namefunction_signatureroute_patternroute_methodpath_globSource:
internal/semantic_overlay/resolve.go—DefaultThresholdBound = 0.95,DefaultThresholdReanchored = 0.75.Specs Fixed on
impl/phase2phase2/dsl/selectors-by-event-name.yaml—"bound"→"reanchored"phase2/dsl/selectors-by-route-method-and-path.yaml— same; also removed impossible"entity_kind":"Route"assertionphase2/tracer-framework-demo.yaml— same fixNon-existent Field
ResolutionMatchstruct has fields:entity_id,qualified_name,confidence,via_anchor. It does not haveentity_kind. Three specs were asserting on this missing field — the assertions were vacuously passing.References
internal/semantic_overlay/anchors/event.go—ConfidenceEventName = 0.92internal/semantic_overlay/anchors/route.go—ConfidenceRoutePattern = 0.80,ConfidenceRouteMethod = 0.70internal/semantic_overlay/resolve.go— threshold constantsinternal/semantic_overlay/overlay.go—ResolutionMatchstruct