Class: top-level meta-lesson (not target-specific)
Banked: Cycle 150 (2026-05-18)
Calibration evidence: Modular Account V2 (Cycle 141) banked patterns -> Base Azul (Cycle 150) Info-class findings
Thesis
Banked patterns from target A predict findings in target B at non-trivial accuracy, even when A and B are different protocol classes (e.g. ERC-6900 modular account vs OP-Stack rollup). This validates the moat thesis underlying the lessons-library asset class: a banked-pattern library is reusable IP that compounds across cycles, not single-target scratch notes.
Evidence (Cycle 150)
During the Base Azul LEARN-MODE pass, 7 distinct Info-class findings were extractable from the public audit corpus. On a first read of those 7 against the MA V2-banked pattern set:
- 4 of 7 Info-class findings (~57%) were predicted in advance by MA V2-banked patterns. Predicted classes (matched):
- NatSpec / documentation drift
- Setter-without-cascade (state mutator that doesn't fire dependent invalidations)
- Two-path reconciliation (in MA V2: wrap-vs-direct-call; in Base Azul: Sequencer-vs-Batcher message paths)
- Documented-safety-net edges (audit-acknowledged "out of scope" surfaces that become operator product opportunities)
- 3 of 7 Info-class findings (~43%) were NOT predicted. Unpredicted classes:
- OP-Stack-specific fault-proof timing (no MA V2 analog)
- L2 batcher rate-limit edges (no MA V2 analog)
- L1-to-L2 message dedup invariants (no MA V2 analog)
Net: 57% one-shot Info-class transfer accuracy from a 1-target library to a different-class target.
Which classes transfer well (positive case studies)
- NatSpec / documentation drift. Universal across Solidity codebases.
- Setter-without-cascade. Any contract with state mutators + dependent invariants.
- Two-path reconciliation. Any contract with multiple entry-points reaching the same internal state.
- Documented-safety-net edges. Auditor-acknowledged "out of scope" surfaces. These compound especially well in Buddy's product line because they're operator-pitch opportunities, not just findings.
- Initializer / upgrade-window races. Common to all upgradeable proxy systems.
- Permit / signature replay across chains. Any signature-validating system with chain ID handling.
Which classes don't transfer (negative case studies)
- Target-specific protocol invariants. ERC-4337 deferred-action timing has no equivalent in Base Azul OP Stack. OP-Stack fault-proof batcher dedup has no equivalent in MA V2.
- Storage-layout-specific reentrancy. Rare overlap; each target has its own slot map.
- Token-edge variants tied to a specific asset list. USDC-blocklist edge does not transfer to an OP-Stack rollup target that doesn't take user-supplied asset lists.
Calibration data
| Severity class |
Cross-target transfer accuracy |
Sample size |
Confidence |
| Info |
~57% (4/7) one-shot |
1 cross-target pair (MA V2 -> Base Azul) |
LOW (n=1 pair) |
| Medium |
UNTESTED |
0 |
n/a |
| High |
UNTESTED |
0 |
n/a |
| Critical |
UNTESTED |
0 |
n/a |
Sample size warning: the 57% number comes from a single cross-target pair on Info-class only. High/Critical-class transfer is UNTESTED. Need 2-3 more deep-audit cycles before generalising. Treat 57% as a directional indicator, not a benchmark.
Implication for cycle ROI
- Spend more on the banked-pattern library (Phase 1.5.7 novel-pattern synthesis, Phase 1.5.8 saturation hunt outputs, LEARN-MODE-THEN-WALK lessons files).
- Run cross-target LEARN-MODE passes as the cheapest discovery path on fresh codebases. Diff prior-target patterns against new-target audit corpus before any Foundry scaffold.
- Foundry is the validator, not the discoverer. Pattern-library + LEARN-MODE finds candidate findings; Foundry confirms them. Don't burn Foundry budget on cold-blind hunts when a 30-min pattern-library diff would surface the same candidates.
What to bank from future cycles
Every new target's lessons-library entry should include a Section 4: Pattern Library Diff showing:
- Which prior-target patterns predicted findings in this target (hit/miss per class)
- Which findings were truly novel (not predicted by any banked pattern -> bank as new pattern)
- A running tally so the 57% one-shot number gets recalibrated as n grows
After 5-10 cross-target cycles, the calibration table above gets meaningful confidence intervals on Info / Medium / High / Critical.
Doctrinal hook for v0.next
The Saturation Skill v0.4+ should consider a --prior-library-overlap-score input: given a target's audit corpus + the banked lessons library, estimate the % of findings already predicted. If overlap is high (>50%): the cycle ROI is in LEARN-MODE banking rather than novel-Foundry hunting. This metric formalises what Cycle 150 did manually.