Library+web research for narrow-margin architecture-critical decisions
Established 2026-04-25 during Catala spec Topic 1 scope-approval. 11th session auto-deep-dive win via novel pattern.
The pattern
Trigger conditions (all three must hold):
- Narrow margin — decision margin between top 2 options is <2pp under weighted scoring
- Architecture-critical — the decision meaningfully shapes downstream work (not trivial wording or sequencing)
- Ecosystem-mature — the domain has a production ecosystem with prior-art worth researching (not novel domain)
When triggered, do:
- Library deep-read — check
~/off-github/library/indexed/for relevant notes files; read them thoroughly rather than just noting they exist - Web research — search for recent developments (2024-2026), production modules, ecosystem sub-projects, release notes, pre-existing-similar-work
- Cross-reference — match discoveries against the scorecard criteria; update scores based on production-ecosystem evidence
Why
Narrow-margin decisions mean scorecard criteria are roughly balanced. Library+web research surfaces structural signals that the scorecard criteria missed:
- Production-module separations (e.g., Catala has
catala-explainas distinct module — validates CatalaResult-as-first-class-component) - Release maturity (v1.0/v1.1 production stable substantially mitigates “research-group dependency” risks)
- Pre-existing similar work (e.g., French inheritance Catala prior art already exists)
These are architectural facts, not scorecard assumptions. Incorporating them into scoring is research-grounded update, not bias.
Distinct from prior auto-deep-dive patterns
- Framework-rediscovery (wins 1-9): finds higher-scoring option via framework-reuse (e.g., A-23 vi-6 applied to 2nd classifier)
- Levelness-reframe (win 10): finds same-total option with better score variance (e.g., Catala ι with light-XKOS)
- Library-web-research (win 11): finds production-ecosystem evidence that shifts scoring of existing options
All three patterns are research-grounded; this one uses external research rather than internal session-pattern application.
Exemplar — 2026-04-25 Catala scope-approval
Initial state: γ (Expanded-8 with CatalaInvocation) winning 85.3% (0.8pp over δ Expanded-9 with CatalaResult).
Technical-priority weighting (Rich removed c4+c10): δ winning 87.2% (0.6pp over γ). Still narrow margin.
Research trigger: Rich directive: “look in the library and search online to find anything to help improve options γ and δ — take the perspective of the world’s leading Catala expert.”
Research output:
- Library deep-read of
merigoux-catala-popl2021/notes.md+ray-policy-as-code/notes.md+flatt-akoma-ntoso-profiles/notes.md— 660 total lines of verbatim quotes + synthesis - Web research for Catala 2024-2026 developments + French inheritance prior art
- Fetched
github.com/CatalaLang/catala-explain+ Catala releases page + catala-lang.org
Discoveries:
catala-explainproduction module (separates explanation-trace; validates δ)- Catala v1.0.0 (Nov 2024) + v1.1.0 “bac d’Eloka” (Jan 2026) stable (v1.1.0 “intermediate variable states” feature maps to δ’s CatalaResult)
catlegFrench legislative tooling + pre-existing French inheritance Catala work
Score updates applied:
- γ: c6 9→8 (doesn’t match ecosystem separation); c12 9→8 (implicit Result less cleanly maps to prov:Entity)
- δ: c7 9→10 (catala-explain ecosystem maturity); c11 9→10 (CatalaResult captures composed outputs)
Final margin: δ 88.6% vs γ 84.5% = 4.1pp (widened from 0.6pp). Research pattern shifted margin 7x.
How to apply
Before a narrow-margin architecture-critical decision:
- Check scorecard: is margin between top 2 options <2pp? Is the decision architecture-critical? Is the domain ecosystem-mature?
- If YES to all three: pause and do library+web research FIRST before locking
- Spend 30-60 minutes on research:
ls ~/off-github/library/indexed/ | grep -iE "relevant|keywords"- Read notes.md files in relevant library items
- Web search for “recent developments” / “production modules” / “release notes”
- Fetch specific ecosystem repos for architectural signals
- Update scorecard scores based on discoveries (honest update; document what changed and why)
- Re-present scorecard with “research-grounded update” section showing which options gained/lost points and why
Do NOT:
- Skip this step for narrow-margin decisions (margin <2pp is literally “could go either way”)
- Artificially widen margins via research (if research doesn’t shift scores, accept the narrow decision)
- Treat ecosystem-immature domains as candidates for this pattern (research won’t find production patterns)
Anti-patterns
- Research without updating scores (performative research; same decision pre-determined)
- Biased research (only search for signals supporting pre-preferred option)
- Ignoring library in favor of web search (library notes are already-synthesised evidence; web is raw)
- Research on every decision (inefficient; reserve for narrow-margin architecture-critical cases)
Related memories
feedback_always_check_library_indexed_first— broader library-first discipline; this pattern is specific trigger-conditioned applicationfeedback_auto_deep_dive_via_framework_rediscovery— prior auto-deep-dive wins 1-9feedback_reframe_beats_reweight— levelness-reframe win 10 (2026-04-25 Topic 4 ι)feedback_automatic_deep_dive_when_options_feel_imperfect— related trigger pattern
Sources
- 2026-04-25 Catala spec Topic 1 scope-approval session (Rich’s “take the perspective of the world’s leading Catala expert” directive)
- Library deep-read of 3 indexed items (Merigoux Catala POPL + Ray Policy-as-Code + Flatt Akoma Ntoso profiles)
- Web research:
github.com/CatalaLang/catala-explain+ releases +catleg