Where: test/unit/StorageLayout.t.sol pins six UUPS proxies (PolicyManager, ClaimManager, PremiumManager, SpecRegistry, Swapper, CoverPoolFactory) but NOT the vault wrapper inheritance chain (CoveredVaultStorage → BasePolicyInteractions → ERC4626Upgradeable → Ownable2StepUpgradeable → …).
Verified UUPS: src/defi/adapters/morpho/CoveredVaultStorage.sol line 21 inherits UUPSUpgradeable; src/defi/adapters/morpho/CoveredVaultAdmin.sol implements proposeUpgrade/executeUpgrade/_authorizeUpgrade. The wrapper is deployed via the UUPS proxy script in script/adapter/DeployCoveredVaultWrapper.s.sol.
Caveat (added on re-check): AGENTS.md only requires storage-layout discipline for the six contracts already deployed on Ethereum mainnet. The vault wrapper isn't on that list. This is a defensive addition, not a mandated one — but cheap and high-value given the deep inheritance chain.
Fix: mirror the existing test pattern with a test_CoveredVaultWrapper_storageLayoutPinned case.
Where: test/unit/StorageLayout.t.sol pins six UUPS proxies (PolicyManager, ClaimManager, PremiumManager, SpecRegistry, Swapper, CoverPoolFactory) but NOT the vault wrapper inheritance chain (CoveredVaultStorage → BasePolicyInteractions → ERC4626Upgradeable → Ownable2StepUpgradeable → …).
Verified UUPS: src/defi/adapters/morpho/CoveredVaultStorage.sol line 21 inherits UUPSUpgradeable; src/defi/adapters/morpho/CoveredVaultAdmin.sol implements proposeUpgrade/executeUpgrade/_authorizeUpgrade. The wrapper is deployed via the UUPS proxy script in script/adapter/DeployCoveredVaultWrapper.s.sol.
Caveat (added on re-check): AGENTS.md only requires storage-layout discipline for the six contracts already deployed on Ethereum mainnet. The vault wrapper isn't on that list. This is a defensive addition, not a mandated one — but cheap and high-value given the deep inheritance chain.
Fix: mirror the existing test pattern with a test_CoveredVaultWrapper_storageLayoutPinned case.