# KRB empty image prop repair — v5 explicit targets only

Sylvain's correction is right: the source/live image mapping and placement decisions were already resolved in the review artifacts. The repair script should not re-match component content at runtime.

## What v5 changes

- Uses the reviewed target map only: `pageId`, `path`, `componentInstanceId`, `elementId`, `propId`, `assetId`.
- Removes context/ordered/single-image-prop fallbacks from v4.
- Attempts explicit Designer runtime lookup by audited component instance/element ID where available.
- If explicit lookup is unavailable, traversal is used only to find an element whose described ID exactly matches the audited page-client `componentInstanceId`/`elementId`.
- If the exact component or exact prop cannot be resolved, it skips with diagnostics instead of guessing.
- Still defaults to `dryRun: true` and `runMode: 'current-page'`.
- Still refuses to overwrite non-empty image props.

## Why this is different from v4

v4 tried to recover from blank Code Lab runtime IDs by using component name/context/order. That risks putting a pre-matched image onto the wrong repeated component. v5 is stricter: the audited placement is authoritative, and runtime must resolve that exact target.

## Files

- `krb-empty-image-prop-repair-existing-assets-v5-explicit.js`
- `krb-empty-image-remediation-reviewed-v2.json`
- `krb-empty-image-remediation-reviewed-v2.csv`
- `krb-empty-image-remediation-reviewed-v2.md`
- `krb-empty-image-remediation-needs-upload-v2.csv`

## If v5 cannot resolve exact targets

That means the Code Lab surface is not exposing the same component-instance IDs page-client read back. In that case the correct next step is not heuristic matching; it is to run the repair through a surface that accepts the composite element IDs directly, or generate per-page scripts from a fresh Code Lab ID dump correlated back to page-client once, then apply exact IDs.
