---
title: >-
  Extend roster-asset-lineage walker to emit super_priority_until, protected_for_year,
  is_rookie_tag, and audit_corrected
type: task
status: completed
description: >-
  Four roster_asset_holding columns are never written by the lineage walker despite being canonical
  schema; consolidate the fixes documented as gap observations on the Completed lineage attribution
  task.
base_uri: user:task/league/extend-roster-asset-lineage-walker-state-fields.md
created_at: '2026-05-21T18:14:36.901Z'
entity_id: b8c31dc6-b29b-4de1-898c-bc7fd804651c
finished_at: '2026-05-21T19:33:08.280Z'
observations:
  - ████████████████████████████████████████████████
owner_identity_uri: █████████████████████████
priority: Medium
public_read: true
relations:
  - follows [[████████████████████-██████-█████-███████-██████████████]]
  - relates [[██████████████-███████-█████████████-███████████████████████████████████████]]
tags:
  - user:tag/league-xo-football.md
  - user:tag/home-dynasty-league.md
updated_at: '2026-05-21T20:51:09.804Z'
visibility_analyzed_at: '2026-11-05T23:49:15.379Z'
---

## Background

Validation of lid=1 (2026-05-21) confirmed four schema columns have never been written by `scripts/generate-roster-asset-lineage.mjs`:

- `super_priority_until` -- 0 rows. 5 type-19 SUPER_PRIORITY transactions in lid=1 (2025 wk 10-17: CORU, ROBI, CHUB, STRO, HIGG) currently emit `unhandled_transaction_type_19` coverage warnings instead.
- `protected_for_year` -- 0 rows. PRACTICE_PROTECTED is in INTRA_HOLDING_TRANSACTION_TYPES so the walker skips it without updating the affected PS holding.
- `is_rookie_tag` -- 0 rows. ROOKIE_TAG transaction handling exists in walk-transactions.mjs but does not set the boolean on the resulting holding.
- `audit_corrected` -- 0 rows. No code path writes this; the 2025-06-03 RFA conditional-release-bug incident is not memorialized in lineage despite the schema field being designed for this case.

## Scope

- [ ] Add SUPER_PRIORITY (transaction type 19) handler in walk-transactions.mjs. Per Amend XXXIV, when a poached player is released, the original team gets super-priority claim rights through a window. Set `super_priority_until` on the released holding equal to processed_timestamp + window_duration; do not open a new holding.
- [ ] Add PRACTICE_PROTECTED intra-holding update: in the intra-holding pass, find the matching active PS holding and set `protected_for_year` to the current league year.
- [ ] Set `is_rookie_tag = true` in the ROOKIE_TAG branch of walk-transactions.mjs when opening the new holding.
- [ ] Add an admin hook (CLI flag or seed table) to flag specific (lid, holding_id) tuples as `audit_corrected = true` with `correction_note`. Seed the 2025-06-03 RFA conditional-release-bug incident as the initial entry.
- [ ] Verify on lid=1 post-rebuild: super_priority_until > 0, protected_for_year > 0, is_rookie_tag > 0, audit_corrected = 1.

## References

- ███████████████████████████████████████████████████ observations: [gap-confirmed] super_priority_until never written, [gap-confirmed] protected_for_year never written, [gap-confirmed] audit_corrected never written, [gap] is_rookie_tag also never written.
- ███████████████████████████████████████████████████████████████████████ (Amend XXXIV, Article VIII §3).
- ██████████████████████████████████████████████████████████████████████████████████████████████████ (audit_corrected seed fixture).
