Skip to content

[problem] wr-itil evaluate-relevance has no evidence shape for RCA pinned to a platform version the stack no longer runs #391

Description

@tompahoward

Description

The relevance-close evaluator (evaluate-relevance, invoked by /wr-itil:review-problems) has no evidence shape for a ticket whose root-cause analysis is pinned to a platform or engine version the production stack no longer runs. Its existing shapes (file-no-longer-exists, ADR-shipped-confirmed, self-marker-in-body, checkbox-completion) key on explicit file paths, ADR citations, and in-body markers. A ticket whose RCA reads "OpenSearch 1.3.20's match_bool_prefix query builder does X" cites no path and no ADR, so after the stack migrates off 1.3.20 the ticket stays Open with no verdict at all. The evaluator is silent rather than wrong.

This is the missed-positive direction of the same evaluator's precision problem. #306 covers the over-fire direction: candidates surfaced that should be kept. This report covers candidates never surfaced that should be closed.

Symptoms

  • Downstream P027, whose RCA was pinned to "OpenSearch 1.3.20's match_bool_prefix query builder", stayed Open through two engine migrations (1.3.20 to 2.19 on 2026-07-11, and the 2.19 to 3.5 cutover on 2026-07-14). The evaluator emitted no close verdict across either. It took a dedicated AFK iteration on 2026-07-19 to close it as no longer relevant.
  • Downstream P028 ("OpenSearch 1.3.20 version debt") was closed by hand in the 2026-07-15 review rather than auto-flagged.
  • Downstream P035 and P038, both migration-era tickets, were likewise flagged by hand in that same review.

Workaround

Manually sweep the backlog for version-pinned root-cause claims after any platform or engine migration, and close the ones the migration has made moot. In practice a maintainer re-reads every open ticket's RCA around each migration, which is the work the relevance pass exists to remove.

Affected plugin or component

@windyroad/itil: the evaluate-relevance evidence-shape set used by /wr-itil:review-problems.

Frequency

Fires around platform and engine migrations. Four tickets missed across two migrations in one downstream repo over a four-day window (2026-07-11 to 2026-07-15).

Versions

  • Local plugin: @windyroad/itil@0.59.2
  • Upstream package: @windyroad/itil@0.59.2
  • Claude Code CLI: 2.1.219 (Claude Code)
  • Node: v24.16.0
  • OS: Darwin 25.3.0 x86_64

Evidence

Suggested fix shape. Add a version-pin detection shape to the evaluator:

  1. Grep the ticket's ## Description and ## Root Cause Analysis sections for version-pinned root-cause claims: a product or runtime name adjacent to a semver-ish literal (OpenSearch 1.3.20, Node 18, Elasticsearch 7.x).
  2. Cross-reference each extracted pin against the repo's current platform version markers: engine_version in Terraform, engines in package.json, container image tags in compose or CI config.
  3. Emit CLOSE-CANDIDATE on a mismatch, with the detected pin and the current version in the caveat so the maintainer can confirm at a glance.

Step 2 is the load-bearing part. Without a current-version source the shape would fire on every version literal in every ticket, which lands it straight in the #306 over-fire class.

Related upstream issues, same script, distinct root causes:

Additional context

The downstream repo that hit this runs a search engine whose version appears in Terraform (engine_version), so the cross-reference source in step 2 was available and unread. Adopter repos without a machine-readable platform-version marker would need the shape to degrade to a caveated verdict rather than silence.

Cross-reference

Reported from the downstream addressr project; tracked locally as P057 in its docs/problems/ directory.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions