← All showcases
comment links · deprecation impactLegacy migration
legacydiscoverydeprecation

Archaeology on inherited code

Seed an rq: comment into an undocumented function, mark the old path @deprecated, see impact.

Find the intent, pin it, then retire the path that still calls it.

legacy/billing.py — before

def calc_total(lines, tax_region):
    """nobody knows why tax_region is a string."""
    ...

migrate/billing.rq

calc_total {
    order total includes regional tax
    tax_region is an ISO-3166-2 code
    implemented in ["./legacy/billing.py".calc_total]
    @status in-progress
    @tags (
        legacy
        billing
    )
}

legacy_tax_helper {
    superseded by [calc_total]
    @deprecated
    @status pending
}

legacy/billing.py — after

# rq:["../migrate/billing.rq".calc_total]
def calc_total(lines, tax_region):
    """order total includes regional tax (ISO-3166-2)."""
    ...

Reqlan: Deprecation Impact

$ Reqlan: Deprecation Impact  →  legacy_tax_helper
deprecated: legacy_tax_helper
inbound:
  checkout.rq → [legacy_tax_helper]
  reports/tax.py  rq:[legacy_tax_helper]
impact: 2 references still live