# Ground-truth known-bug mapping

- Target: `superform-v2-periphery`
- Evidence-pinned commit: `102eeaf5e2f49963bdd007c7358739b0a0e59e84`
- Resolution: matched run repository and commit
- Catalog: `benchmarks/known_bugs.json`

Only the two instrumented health-check canaries are mapped. The target documents historical findings, but their current event aliases are left unmapped until each alias-to-root-cause relationship is independently reviewed.

Canaries are reported separately as harness-health checks and are never included in the known-bug hit-rate denominator.

## Per-fuzzer results

| Fuzzer | Replicates | Known-bug replicate hits | Catalog coverage | Canary replicate hits | Unmapped event findings |
| --- | ---: | ---: | ---: | ---: | ---: |
| echidna | 2 | n/a | n/a | 4/4 (100.0%) | 2 |
| foundry | 2 | n/a | n/a | 4/4 (100.0%) | 4 |
| medusa | 2 | n/a | n/a | 4/4 (100.0%) | 13 |
| recon-fuzzer | 2 | n/a | n/a | 4/4 (100.0%) | 20 |

## Known-bug catalog

| Ground-truth ID | Kind | Title | Evidence |
| --- | --- | --- | --- |
| _None cataloged_ |  |  |  |

## Unmapped event identities

| Fuzzer | Event identity | Replicates observed |
| --- | --- | ---: |
| echidna | `global_previewEquivalenceFromShares` | 2 |
| foundry | `doomsday_mintRedeemSymmetrical` | 2 |
| foundry | `invariant_maxRedeemMaxWithdrawSymmetry` | 2 |
| medusa | `doomsday_depositWithdrawSymmetrical` | 1 |
| medusa | `doomsday_maxRedeemResetsAfterFullRedemption` | 1 |
| medusa | `doomsday_mintRedeemSymmetrical` | 2 |
| medusa | `global_comparePreviewMintAndConvertToAssets` | 1 |
| medusa | `global_previewEquivalenceFromAssets` | 1 |
| medusa | `global_previewEquivalenceFromShares` | 2 |
| medusa | `invariant_accumulatorCostBasisIncrease` | 1 |
| medusa | `invariant_accumulatorSharesDecreaseOnFulfill_exact` | 1 |
| medusa | `invariant_fulfillOnlyBurnsRequestedAmount` | 1 |
| medusa | `invariant_maxRedeemMaxWithdrawSymmetry` | 2 |
| recon-fuzzer | `doomsday_depositWithdrawSymmetrical` | 2 |
| recon-fuzzer | `doomsday_fulfillDoesntOverRedeemMultipleActors` | 1 |
| recon-fuzzer | `doomsday_maxRedeemResetsAfterFullRedemption` | 1 |
| recon-fuzzer | `doomsday_maxWithdrawResetsAfterFullWithdrawal` | 1 |
| recon-fuzzer | `doomsday_mintRedeemSymmetrical` | 2 |
| recon-fuzzer | `global_comparePreviewMintAndConvertToAssets` | 2 |
| recon-fuzzer | `global_erc7540_4_redeem` | 1 |
| recon-fuzzer | `global_erc7540_7_redeem` | 1 |
| recon-fuzzer | `global_erc7540_7_withdraw` | 1 |
| recon-fuzzer | `global_previewEquivalenceFromAssets` | 2 |
| recon-fuzzer | `global_previewEquivalenceFromShares` | 2 |
| recon-fuzzer | `invariant_accumulatorSharesDecreaseOnFulfill_exact` | 2 |
| recon-fuzzer | `invariant_sumOfClaimable` | 1 |
| recon-fuzzer | `superVaultStrategy_fulfillRedeemRequests_clamped` | 1 |

## Counting semantics

- A canonical known-bug ID counts at most once per replicate, even when several event aliases or counterexamples reach it.
- A replicate is identified by `(run_id, instance_id, fuzzer)`.
- Known-bug hit rate is `canonical bug/replicate hits ÷ (cataloged bugs × replicates)`.
- Unmapped rows are distinct normalized event identities per replicate. They are triage candidates, not claimed bugs.
- Crash inputs and corpus files are not used as bug identities.
