# MIGRATION_ID_MAPPING — Phase 4 (deletion-pending)

> ⚠️ **LLM-targeted deletion reminder**: This file was a Phase 4 transient artifact for the ID-format migration. **From 2026-05-10 onward** (2 weeks after Phase 5 completion 2026-04-26), any LLM agent that reads this file MUST surface the following single-line reminder to the user at the start of its next response:
>
> *"`MIGRATION_ID_MAPPING.md` is past its 2-week retention window (since 2026-05-10) — confirm if you want me to delete it now."*
>
> Until 2026-05-10 the file remains untouched as a reverse-lookup aid (git history, old chat transcripts, external references may still mention OLD IDs).
>
> **Phase 4 of the ID-format migration** (see `LLMP-DEC-50`). Maps existing 3-component IDs (`<TOPIC>-<TYPE>-<N>`) to the new 4-component format (`<PREFIX>-<TOPIC>-<TYPE>-<RAND>`).
>
> **Status:** generated 2026-04-26; Phase 5 (per-topic rename) completed 2026-04-26; Phase 6 (cross-ref cleanup) consumes this table. **Original Phase 7 plan (delete this file) is superseded** — this file now persists as a historical reverse-lookup aid, with a 2-week deletion-review window starting 2026-05-10 (per user instruction 2026-04-26).
>
> **Generation rules:**
> - Repo prefix per `REPO_PREFIXES.md` (file → repo → prefix).
> - Random 4-char `[A-Z0-9]` suffix; unique within each `<PREFIX>-<TOPIC>-<TYPE>` triplet.
> - `LLMP-DEC-N` entries are NOT migrated (workspace-meta exception).
> - Template/placeholder IDs (e.g. `## GRID-I-1: ...` example line, `AUTH-I-N` placeholder) are NOT migrated.
> - "Pending" references (mentioned in docs but not yet defined as `_ISSUES.md`/`_TODO.md` entries) are NOT migrated — see "Pending forward-references" section below; they get rewritten/removed in Phase 6.

---

## Summary

| Repo | Prefix | Issue IDs | TODO IDs | Total |
|---|---|---:|---:|---:|
| AyCode.Core | `ACCORE` | 41 | 36 | 77 |
| AyCode.Blazor | `ACBLAZOR` | 0 | 2 | 2 |
| Mango.Nop Libraries | `MGNOPLIB` | 0 | 0 | 0 |
| Mango.Nop.Core (sub-folder) | `MGNOPCORE` | 0 | 0 | 0 |
| Nop.Plugin.Misc.AIPlugin | `MGFBANKPLUG` | 0 | 0 | 0 |
| FruitBank | `FBANKNOP` | 0 | 0 | 0 |
| FruitBankHybridApp | `FBANKAPP` | 0 | 0 | 0 |
| **Total** | | **41** | **38** | **79** |

---

## ACCORE — AyCode.Core

### BINARY (BIN)

Canonical home: `AyCode.Core/docs/BINARY/BINARY_ISSUES.md`, `AyCode.Core/docs/BINARY/BINARY_TODO.md`.

| OLD_ID | FILE (repo-relative) | NEW_ID |
|---|---|---|
| `BIN-I-1`  | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-D2J5` |
| `BIN-I-2`  | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-G7N3` |
| `BIN-I-3`  | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-S1F8` |
| `BIN-I-4`  | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-V5L2` |
| `BIN-I-5`  | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-K8R4` |
| `BIN-I-6`  | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-P3M6` |
| `BIN-I-7`  | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-T9X1` |
| `BIN-I-8`  | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-B4Y7` |
| `BIN-I-9`  | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-H2C5` |
| `BIN-I-10` | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-N6Q3` |
| `BIN-I-11` | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-F1W8` |
| `BIN-I-12` | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-J4D2` |
| `BIN-I-13` | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-R5V9` |
| `BIN-I-14` | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-L7G3` |
| `BIN-I-15` | `AyCode.Core/docs/BINARY/BINARY_ISSUES.md` | `ACCORE-BIN-I-M3K6` |
| `BIN-T-1`  | `AyCode.Core/docs/BINARY/BINARY_TODO.md`   | `ACCORE-BIN-T-S8P4` |
| `BIN-T-2`  | `AyCode.Core/docs/BINARY/BINARY_TODO.md`   | `ACCORE-BIN-T-Q2N7` |
| `BIN-T-3`  | `AyCode.Core/docs/BINARY/BINARY_TODO.md`   | `ACCORE-BIN-T-W9F1` |
| `BIN-T-4`  | `AyCode.Core/docs/BINARY/BINARY_TODO.md`   | `ACCORE-BIN-T-T5J8` |

### LOGGING (LOG)

Canonical home: `AyCode.Core/docs/LOGGING/LOGGING_ISSUES.md`, `AyCode.Core/docs/LOGGING/LOGGING_TODO.md`.

| OLD_ID | FILE (repo-relative) | NEW_ID |
|---|---|---|
| `LOG-I-1`  | `AyCode.Core/docs/LOGGING/LOGGING_ISSUES.md` | `ACCORE-LOG-I-K7M2` |
| `LOG-I-2`  | `AyCode.Core/docs/LOGGING/LOGGING_ISSUES.md` | `ACCORE-LOG-I-R9P3` |
| `LOG-I-3`  | `AyCode.Core/docs/LOGGING/LOGGING_ISSUES.md` | `ACCORE-LOG-I-L4N8` |
| `LOG-I-4`  | `AyCode.Core/docs/LOGGING/LOGGING_ISSUES.md` | `ACCORE-LOG-I-B2H5` |
| `LOG-I-5`  | `AyCode.Core/docs/LOGGING/LOGGING_ISSUES.md` | `ACCORE-LOG-I-X7Q1` |
| `LOG-I-6`  | `AyCode.Core/docs/LOGGING/LOGGING_ISSUES.md` | `ACCORE-LOG-I-V3J6` |
| `LOG-I-7`  | `AyCode.Core/docs/LOGGING/LOGGING_ISSUES.md` | `ACCORE-LOG-I-T8F2` |
| `LOG-I-8`  | `AyCode.Core/docs/LOGGING/LOGGING_ISSUES.md` | `ACCORE-LOG-I-M4C9` |
| `LOG-I-9`  | `AyCode.Core/docs/LOGGING/LOGGING_ISSUES.md` | `ACCORE-LOG-I-P5W3` |
| `LOG-I-10` | `AyCode.Core/docs/LOGGING/LOGGING_ISSUES.md` | `ACCORE-LOG-I-K1Z7` |
| `LOG-T-1`  | `AyCode.Core/docs/LOGGING/LOGGING_TODO.md`   | `ACCORE-LOG-T-H6Y4` |
| `LOG-T-2`  | `AyCode.Core/docs/LOGGING/LOGGING_TODO.md`   | `ACCORE-LOG-T-N2D8` |
| `LOG-T-3`  | `AyCode.Core/docs/LOGGING/LOGGING_TODO.md`   | `ACCORE-LOG-T-R7L3` |
| `LOG-T-4`  | `AyCode.Core/docs/LOGGING/LOGGING_TODO.md`   | `ACCORE-LOG-T-F4S6` |
| `LOG-T-5`  | `AyCode.Core/docs/LOGGING/LOGGING_TODO.md`   | `ACCORE-LOG-T-J9G2` |
| `LOG-T-6`  | `AyCode.Core/docs/LOGGING/LOGGING_TODO.md`   | `ACCORE-LOG-T-B8K5` |
| `LOG-T-7`  | `AyCode.Core/docs/LOGGING/LOGGING_TODO.md`   | `ACCORE-LOG-T-X1V4` |
| `LOG-T-8`  | `AyCode.Core/docs/LOGGING/LOGGING_TODO.md`   | `ACCORE-LOG-T-M7P2` |
| `LOG-T-9`  | `AyCode.Core/docs/LOGGING/LOGGING_TODO.md`   | `ACCORE-LOG-T-L3T8` |
| `LOG-T-10` | `AyCode.Core/docs/LOGGING/LOGGING_TODO.md`   | `ACCORE-LOG-T-Q6Z1` |
| `LOG-T-11` | `AyCode.Core/docs/LOGGING/LOGGING_TODO.md`   | `ACCORE-LOG-T-W4H9` |

### SIGNALR_BINARY_PROTOCOL (SBP)

Canonical home: `AyCode.Services/docs/SIGNALR_BINARY_PROTOCOL/SIGNALR_BINARY_PROTOCOL_ISSUES.md`, `..._TODO.md`.

| OLD_ID | FILE (repo-relative) | NEW_ID |
|---|---|---|
| `SBP-I-1` | `AyCode.Services/docs/SIGNALR_BINARY_PROTOCOL/SIGNALR_BINARY_PROTOCOL_ISSUES.md` | `ACCORE-SBP-I-F6T2` |
| `SBP-I-2` | `AyCode.Services/docs/SIGNALR_BINARY_PROTOCOL/SIGNALR_BINARY_PROTOCOL_ISSUES.md` | `ACCORE-SBP-I-G4B5` |
| `SBP-T-1` | `AyCode.Services/docs/SIGNALR_BINARY_PROTOCOL/SIGNALR_BINARY_PROTOCOL_TODO.md`   | `ACCORE-SBP-T-P8X9` |
| `SBP-T-2` | `AyCode.Services/docs/SIGNALR_BINARY_PROTOCOL/SIGNALR_BINARY_PROTOCOL_TODO.md`   | `ACCORE-SBP-T-K3J7` |
| `SBP-T-3` | `AyCode.Services/docs/SIGNALR_BINARY_PROTOCOL/SIGNALR_BINARY_PROTOCOL_TODO.md`   | `ACCORE-SBP-T-L1V4` |
| `SBP-T-4` | `AyCode.Services/docs/SIGNALR_BINARY_PROTOCOL/SIGNALR_BINARY_PROTOCOL_TODO.md`   | `ACCORE-SBP-T-R6D2` |
| `SBP-T-5` | `AyCode.Services/docs/SIGNALR_BINARY_PROTOCOL/SIGNALR_BINARY_PROTOCOL_TODO.md`   | `ACCORE-SBP-T-H7M5` |
| `SBP-T-6` | `AyCode.Services/docs/SIGNALR_BINARY_PROTOCOL/SIGNALR_BINARY_PROTOCOL_TODO.md`   | `ACCORE-SBP-T-N9F3` |
| `SBP-T-7` | `AyCode.Services/docs/SIGNALR_BINARY_PROTOCOL/SIGNALR_BINARY_PROTOCOL_TODO.md`   | `ACCORE-SBP-T-J5W8` |
| `SBP-T-8` | `AyCode.Services/docs/SIGNALR_BINARY_PROTOCOL/SIGNALR_BINARY_PROTOCOL_TODO.md`   | `ACCORE-SBP-T-B3K6` |

### SIGNALR (SIG)

Canonical home: `AyCode.Services/docs/SIGNALR/SIGNALR_ISSUES.md`, `AyCode.Services/docs/SIGNALR/SIGNALR_TODO.md`.

| OLD_ID | FILE (repo-relative) | NEW_ID |
|---|---|---|
| `SIG-I-1` | `AyCode.Services/docs/SIGNALR/SIGNALR_ISSUES.md` | `ACCORE-SIG-I-R4W7` |
| `SIG-I-2` | `AyCode.Services/docs/SIGNALR/SIGNALR_ISSUES.md` | `ACCORE-SIG-I-L5K3` |
| `SIG-I-3` | `AyCode.Services/docs/SIGNALR/SIGNALR_ISSUES.md` | `ACCORE-SIG-I-H8D6` |
| `SIG-I-4` | `AyCode.Services/docs/SIGNALR/SIGNALR_ISSUES.md` | `ACCORE-SIG-I-P1J4` |
| `SIG-I-5` | `AyCode.Services/docs/SIGNALR/SIGNALR_ISSUES.md` | `ACCORE-SIG-I-N3V8` |
| `SIG-I-6` | `AyCode.Services/docs/SIGNALR/SIGNALR_ISSUES.md` | `ACCORE-SIG-I-T7S2` |
| `SIG-I-7` | `AyCode.Services/docs/SIGNALR/SIGNALR_ISSUES.md` | `ACCORE-SIG-I-B5G9` |
| `SIG-I-8` | `AyCode.Services/docs/SIGNALR/SIGNALR_ISSUES.md` | `ACCORE-SIG-I-K6F1` |
| `SIG-I-9` | `AyCode.Services/docs/SIGNALR/SIGNALR_ISSUES.md` | `ACCORE-SIG-I-X4M7` |
| `SIG-T-1` | `AyCode.Services/docs/SIGNALR/SIGNALR_TODO.md`   | `ACCORE-SIG-T-J2P5` |
| `SIG-T-2` | `AyCode.Services/docs/SIGNALR/SIGNALR_TODO.md`   | `ACCORE-SIG-T-W8R3` |
| `SIG-T-3` | `AyCode.Services/docs/SIGNALR/SIGNALR_TODO.md`   | `ACCORE-SIG-T-D7Q4` |
| `SIG-T-4` | `AyCode.Services/docs/SIGNALR/SIGNALR_TODO.md`   | `ACCORE-SIG-T-V9H1` |
| `SIG-T-5` | `AyCode.Services/docs/SIGNALR/SIGNALR_TODO.md`   | `ACCORE-SIG-T-M5L6` |
| `SIG-T-6` | `AyCode.Services/docs/SIGNALR/SIGNALR_TODO.md`   | `ACCORE-SIG-T-S3N8` |

### TOON (TOON)

Canonical home: `AyCode.Core/docs/TOON/TOON_ISSUES.md`, `AyCode.Core/docs/TOON/TOON_TODO.md`.

| OLD_ID | FILE (repo-relative) | NEW_ID |
|---|---|---|
| `TOON-I-1` | `AyCode.Core/docs/TOON/TOON_ISSUES.md` | `ACCORE-TOON-I-B7L4` |
| `TOON-I-2` | `AyCode.Core/docs/TOON/TOON_ISSUES.md` | `ACCORE-TOON-I-X3H2` |
| `TOON-I-3` | `AyCode.Core/docs/TOON/TOON_ISSUES.md` | `ACCORE-TOON-I-P6V5` |
| `TOON-I-4` | `AyCode.Core/docs/TOON/TOON_ISSUES.md` | `ACCORE-TOON-I-K4Z9` |
| `TOON-T-1` | `AyCode.Core/docs/TOON/TOON_TODO.md`   | `ACCORE-TOON-T-D1R7` |
| `TOON-T-2` | `AyCode.Core/docs/TOON/TOON_TODO.md`   | `ACCORE-TOON-T-G5M3` |
| `TOON-T-3` | `AyCode.Core/docs/TOON/TOON_TODO.md`   | `ACCORE-TOON-T-J8N6` |
| `TOON-T-4` | `AyCode.Core/docs/TOON/TOON_TODO.md`   | `ACCORE-TOON-T-V2T4` |
| `TOON-T-5` | `AyCode.Core/docs/TOON/TOON_TODO.md`   | `ACCORE-TOON-T-S6B9` |
| `TOON-T-6` | `AyCode.Core/docs/TOON/TOON_TODO.md`   | `ACCORE-TOON-T-F3X1` |
| `TOON-T-7` | `AyCode.Core/docs/TOON/TOON_TODO.md`   | `ACCORE-TOON-T-M9Q2` |

### XCUT (XCUT)

Canonical home: `AyCode.Core/docs/XCUT/XCUT_ISSUES.md`. Cross-ref pointer entries with the same ID exist in `BINARY_ISSUES.md` (line 148) and `SIGNALR_ISSUES.md` (line 131) — they are renamed to the same NEW_ID in Phase 5 (cross-ref pointers, not duplicate entries).

| OLD_ID | FILE (repo-relative) | NEW_ID |
|---|---|---|
| `XCUT-I-1` | `AyCode.Core/docs/XCUT/XCUT_ISSUES.md` (canonical) + cross-refs in `BINARY_ISSUES.md`, `AyCode.Services/docs/SIGNALR/SIGNALR_ISSUES.md` | `ACCORE-XCUT-I-X8Q1` |

---

## ACBLAZOR — AyCode.Blazor

### MGGRID (GRID)

Canonical home: `AyCode.Blazor.Components/docs/MGGRID/MGGRID_TODO.md`. (No issues yet — `MGGRID_ISSUES.md` only contains a placeholder example line.)

| OLD_ID | FILE (repo-relative) | NEW_ID |
|---|---|---|
| `GRID-T-1` | `AyCode.Blazor.Components/docs/MGGRID/MGGRID_TODO.md` | `ACBLAZOR-GRID-T-V4P7` |
| `GRID-T-2` | `AyCode.Blazor.Components/docs/MGGRID/MGGRID_TODO.md` | `ACBLAZOR-GRID-T-S2L9` |

---

## Pending forward-references (NOT migrated — Phase 6 cleanup)

These IDs are referenced in docs but not yet defined as `_ISSUES.md`/`_TODO.md` entries. They have no OLD_ID body to migrate. Phase 6 must decide per-case: (a) actually create the entry under the new format, or (b) rewrite/remove the reference.

| Referenced ID | Mentioned in | Decision deferred to Phase 6 |
|---|---|---|
| `LOG-T-12` | `docs/AUTH/README.md`, `docs/adr/0001-user-bearer-token-flow.md` | Tentative TODO ("Never log secrets" framework guideline). Either define as `ACCORE-LOG-T-<RAND>` and add to `LOGGING_TODO.md`, or rewrite reference. |
| `SBP-T-9` | `AyCode.Services/docs/adr/0001-acbinary-decorator-feature-stack-design.md` | Reserved for `AcHubProtocolDecoratorBase` impl + handshake; deferred until at least one leaf ADR (0002-0005) reaches `Status: Accepted`. Either define on demand or rewrite reference. |

## Template/placeholder IDs (NOT migrated)

These appear in template/example lines, not as real entries. They stay as-is (or get reformatted to the new placeholder syntax in Phase 5 alongside the topic rename).

| Placeholder | File | Note |
|---|---|---|
| `GRID-I-1` | `AyCode.Blazor.Components/docs/MGGRID/MGGRID_ISSUES.md:7` | Example line: "Add the first `## GRID-I-1: ...` entry below..." — should become "`## ACBLAZOR-GRID-I-<RAND>:`" example. |
| `AUTH-I-N` | `AyCode.Core/docs/AUTH/AUTH_ISSUES.md`, `AyCode.Core/docs/AUTH/README.md` | Generic placeholder — the `N` is literal "N", not a digit. Should become `ACCORE-AUTH-I-<RAND>` example. |

## Workspace-meta IDs (NOT migrated — bare exception)

`LLMP-DEC-N` Decision Log entries do NOT receive a repo prefix per `REPO_PREFIXES.md` "LLMP exception" section. They stay bare. Highest entry as of 2026-04-26: `LLMP-DEC-55` (Phase 3 closure).

---

## Within-triplet duplicate-check (sanity)

| Triplet | Count | Suffixes (sorted) | Unique? |
|---|---:|---|---|
| `ACCORE-BIN-I-` | 15 | B4Y7, D2J5, F1W8, G7N3, H2C5, J4D2, K8R4, L7G3, M3K6, N6Q3, P3M6, R5V9, S1F8, T9X1, V5L2 | ✅ |
| `ACCORE-BIN-T-` | 4  | Q2N7, S8P4, T5J8, W9F1 | ✅ |
| `ACCORE-LOG-I-` | 10 | B2H5, K1Z7, K7M2, L4N8, M4C9, P5W3, R9P3, T8F2, V3J6, X7Q1 | ✅ |
| `ACCORE-LOG-T-` | 11 | B8K5, F4S6, H6Y4, J9G2, L3T8, M7P2, N2D8, Q6Z1, R7L3, W4H9, X1V4 | ✅ |
| `ACCORE-SBP-I-` | 2  | F6T2, G4B5 | ✅ |
| `ACCORE-SBP-T-` | 8  | B3K6, H7M5, J5W8, K3J7, L1V4, N9F3, P8X9, R6D2 | ✅ |
| `ACCORE-SIG-I-` | 9  | B5G9, H8D6, K6F1, L5K3, N3V8, P1J4, R4W7, T7S2, X4M7 | ✅ |
| `ACCORE-SIG-T-` | 6  | D7Q4, J2P5, M5L6, S3N8, V9H1, W8R3 | ✅ |
| `ACCORE-TOON-I-` | 4 | B7L4, K4Z9, P6V5, X3H2 | ✅ |
| `ACCORE-TOON-T-` | 7 | D1R7, F3X1, G5M3, J8N6, M9Q2, S6B9, V2T4 | ✅ |
| `ACCORE-XCUT-I-` | 1 | X8Q1 | ✅ (trivially) |
| `ACBLAZOR-GRID-T-` | 2 | S2L9, V4P7 | ✅ |

All 12 triplets pass uniqueness within-triplet (the only collision domain that matters per `REPO_PREFIXES.md`'s suffix specification — collisions ACROSS triplets are non-issues since the full ID disambiguates).

---

## Phase 5 readiness checklist

For each topic-pair (`_ISSUES.md` + `_TODO.md`) Phase 5 will:
1. Rename headers (`## LOG-I-1: ...` → `## ACCORE-LOG-I-K7M2: ...`).
2. Rewrite intra-file cross-refs (e.g., body text "see LOG-I-3" → "see ACCORE-LOG-I-L4N8").
3. Rewrite TOC/anchor references if present.
4. Verify with grep: zero remaining bare `<TOPIC>-<TYPE>-<N>` matches in the file (post-rename), excluding example/placeholder lines.
5. One commit per topic (12 commits total: BIN, LOG, SBP, SIG, TOON, XCUT, GRID — but BIN/LOG/SIG/SBP/TOON each pair I+T → 5 commits; XCUT and GRID each 1 commit → 7 commits total).

Inter-file cross-refs (e.g., `BINARY_ISSUES.md` mentioning `BIN-T-3`, `BINARY_TODO.md` mentioning `BIN-T-3` from another entry, ADRs mentioning `LOG-I-9` etc.) are handled in Phase 6.

---

## Related

- `REPO_PREFIXES.md` — repo prefix registry (canonical authority for the `<PREFIX>` component).
- `skills/docs-check/references/TOPIC_CODES.md` — topic registry (canonical authority for the `<TOPIC>` component).
- `LLM_PROTOCOL_DECISIONS.md` `LLMP-DEC-50` — migration design decision (7-phase plan).
- `LLM_PROTOCOL_DECISIONS.md` `LLMP-DEC-53`, `LLMP-DEC-54`, `LLMP-DEC-55` — Phases 1-3 closure entries.
