ADR Reorganization Migration Guide¶
This document provides a reference for the ADR reorganization completed on November 16, 2025.
What Changed¶
ADRs have been reorganized from a flat, sequential numbering scheme to a category-based structure to prevent naming collisions in parallel development.
Old → New Mapping¶
Infrastructure ADRs¶
| Old Name | New Name | Description |
|---|---|---|
| ADR-001 | INF-001 | Migration to Scala 3 and JDK 21 |
| ADR-001a | INF-001a | Netty Channel Lifecycle with Cats Effect IO |
| ADR-009 | INF-002 | Actor System Architecture - Untyped vs Typed Actors |
| ADR-010 | INF-003 | Apache HttpClient Transport for JupnP UPnP Port Forwarding |
VM (EVM) ADRs¶
| Old Name | New Name | Description |
|---|---|---|
| ADR-002 | VM-001 | EIP-3541 Implementation |
| ADR-003 | VM-002 | EIP-3529 Implementation |
| ADR-004 | VM-003 | EIP-3651 Implementation |
| ADR-005 | VM-004 | EIP-3855 Implementation |
| ADR-006 | VM-005 | EIP-3860 Implementation |
| ADR-007 | VM-006 | EIP-6049 Implementation |
| ADR-014 | VM-007 | EIP-161 noEmptyAccounts Configuration Fix |
Consensus ADRs¶
| Old Name | New Name | Description |
|---|---|---|
| ADR-011 | CON-001 | RLPx Protocol Deviations and Peer Bootstrap Challenge |
| ADR-012 | CON-002 | Bootstrap Checkpoints for Improved Initial Sync |
| ADR-013 | CON-003 | Block Sync Improvements - Enhanced Reliability and Performance |
| ADR-016 (MESS) | CON-004 | MESS (Modified Exponential Subjective Scoring) Implementation |
| ADR-016 (ETH66) | CON-005 | ETH66 Protocol Aware Message Formatting |
Note: The old ADR-016 had two different documents with the same number - this was one of the collision issues the reorganization solves.
Testing ADRs¶
| Old Name | New Name | Description |
|---|---|---|
| ADR-015 | TEST-001 | Ethereum Tests Adapter |
| ADR-017 | TEST-002 | Test Suite Strategy, KPIs, and Execution Benchmarks |
Operations ADRs¶
| Old Name | New Name | Description |
|---|---|---|
| ADR-008 | OPS-001 | Enhanced Console User Interface |
Path Changes¶
Old Structure¶
New Structure¶
docs/adr/
├── infrastructure/
│ ├── INF-001-scala-3-migration.md
│ └── ...
├── vm/
│ ├── VM-001-eip-3541-implementation.md
│ └── ...
├── consensus/
├── testing/
└── operations/
Updating References¶
If you have local branches or documentation that reference the old ADR names:
- In markdown links: Replace
docs/adr/NNN-*withdocs/adr/CATEGORY/PREFIX-NNN-* -
Example:
docs/adr/001-scala-3-migration.md→docs/adr/infrastructure/INF-001-scala-3-migration.md -
In text references: Replace
ADR-NNNwith the appropriatePREFIX-NNN - Example:
ADR-001→INF-001 - Example:
ADR-015→TEST-001
Creating New ADRs¶
When creating a new ADR:
- Choose the appropriate category directory
- Use the next sequential number for that category
- Follow the naming convention:
PREFIX-NNN-descriptive-title.md - Update both the category README and the main
docs/adr/README.md
Category Prefixes¶
- INF- Infrastructure (platform, language, runtime, build)
- VM- Virtual Machine (EVM, EIPs, VM features)
- CON- Consensus (consensus, networking, P2P, sync)
- TEST- Testing (test infrastructure, strategies)
- OPS- Operations (admin, monitoring, UI, deployment)
Benefits¶
This new structure provides:
- No naming collisions: Different teams can work on ADRs in parallel without conflicts
- Clear categorization: Easy to find relevant ADRs by domain
- Independent numbering: Each category has its own sequence
- Scalability: New categories can be added as needed
Questions?¶
See the main ADR README for full documentation on the new structure.