markharness

0002: Make historical mode the default for impacted_testcases in changes compute

Status

Accepted

Background

markharness changes compute compares two past tags, from_milestone/to_milestone, but impacted_testcases (the set of impacted TestCases) was always generated from the current working tree (impacted_testcases_by_feature, src/changes.rs). As a result, recomputing the same past interval at a later date could produce different results depending on changes to the current test structure (P1 finding in docs/テスト知識管理のGit-nativeモデル_評価レビュー.md).

This was caused by the question “what was actually impacted during a given past interval” (historical reproduction) and the question “what tests should be re-checked right now” (current candidate extraction) being mixed together in a single implementation without being explicitly separated.

Decision

Two modes were introduced for the impacted_testcases computation in markharness changes compute, with historical mode (generated from the Git tree that the to_milestone tag points to) as the default.

markharness backfill run (the backfill worker from Chapter 4), which also reconstructs past milestone intervals, was likewise changed to use the same default (historical).

Rationale (why historical was made the default)

Impact / Conditions for future reconsideration