← 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