RFC-NNNN: </h1> <!-- Table of contents --> <div id="print-main-content"> <div id="jb-print-toc"> <div> <h2> Contents </h2> </div> <nav aria-label="Page"> <ul class="pst-show_toc_level nav section-nav flex-column"> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#summary">Summary</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#motivation-problem">Motivation / Problem</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#context-constraints-theory-transfer-assume-the-reader-does-not-have-it-in-their-head">Context & constraints ← (theory transfer: assume the reader does NOT have it in their head)</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#proposed-design">Proposed design</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#alternatives-considered-this-is-the-theory-the-road-not-taken-and-why">Alternatives considered ← (this is the theory: the road not taken and WHY)</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#invariants-assumptions-affected-the-tacit-never-do-x-because-y">Invariants & assumptions affected ← (the tacit “never do X because Y”)</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#impact">Impact</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#validation-plan-how-do-we-know-it-s-correct-not-just-that-it-runs">Validation plan ← (how do we KNOW it’s correct — not just that it runs)</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#risks-open-questions">Risks & open questions</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#rollout-migration">Rollout / migration</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#decision-filled-in-by-the-decider-this-is-what-turns-the-rfc-into-an-adr">Decision ← (filled in by the decider; this is what turns the RFC into an ADR)</a></li> </ul> </nav> </div> </div> </div> <div id="searchbox"></div> <article class="bd-article"> <section id="rfc-nnnn"> <h1>RFC-NNNN: <Title><a class="headerlink" href="#rfc-nnnn" title="Link to this heading">#</a></h1> <div class="pst-scrollable-table-container"><table class="table"> <thead> <tr class="row-odd"><th class="head"><p>Field</p></th> <th class="head"><p>Value</p></th> </tr> </thead> <tbody> <tr class="row-even"><td><p>Author(s)</p></td> <td><p></p></td> </tr> <tr class="row-odd"><td><p>Status</p></td> <td><p>Draft | Accepted | Accepted-with-changes | Rejected | Deferred | Superseded</p></td> </tr> <tr class="row-even"><td><p>Created</p></td> <td><p>YYYY-MM-DD</p></td> </tr> <tr class="row-odd"><td><p>Decided</p></td> <td><p>YYYY-MM-DD</p></td> </tr> <tr class="row-even"><td><p>Reviewers</p></td> <td><p></p></td> </tr> <tr class="row-odd"><td><p>Supersedes</p></td> <td><p>RFC-____ (if any)</p></td> </tr> <tr class="row-even"><td><p>Superseded by</p></td> <td><p>RFC-____ (if any)</p></td> </tr> </tbody> </table> </div> <section id="summary"> <h2>Summary<a class="headerlink" href="#summary" title="Link to this heading">#</a></h2> <p><em>One paragraph. What is changing and why, in language a new postdoc could follow.</em></p> </section> <section id="motivation-problem"> <h2>Motivation / Problem<a class="headerlink" href="#motivation-problem" title="Link to this heading">#</a></h2> <p><em>What is wrong or missing today? What forces this change now? What breaks or stays painful if we do nothing? Be concrete — name the configuration, the user, the failure.</em></p> </section> <section id="context-constraints-theory-transfer-assume-the-reader-does-not-have-it-in-their-head"> <h2>Context & constraints ← (theory transfer: assume the reader does NOT have it in their head)<a class="headerlink" href="#context-constraints-theory-transfer-assume-the-reader-does-not-have-it-in-their-head" title="Link to this heading">#</a></h2> <p><em>What must a reader hold in mind to evaluate this fairly? The relevant parts of the current architecture, the data flow through the affected components, external constraints (HPC memory budget, cluster environment, WMO/Copernicus/UNFCCC obligations, backward-compat promises to existing CIF users). This is the section that lets someone reason about the change instead of just trusting you.</em></p> </section> <section id="proposed-design"> <h2>Proposed design<a class="headerlink" href="#proposed-design" title="Link to this heading">#</a></h2> <p><em>How it works. Interfaces, data structures, control flow. Diagrams welcome. Enough detail that a reviewer can find the holes — but this is NOT the most important section; the ones around it are.</em></p> </section> <section id="alternatives-considered-this-is-the-theory-the-road-not-taken-and-why"> <h2>Alternatives considered ← (this is the theory: the road not taken and WHY)<a class="headerlink" href="#alternatives-considered-this-is-the-theory-the-road-not-taken-and-why" title="Link to this heading">#</a></h2> <p><em>For each serious alternative: what it was, and the specific reason it was rejected. “Wrap vs rewrite,” “GP vs NN surrogate,” “DART as subprocess vs reimplementing the analysis step” — the kind of decision where the reasoning is the real asset. Include the option of doing nothing.</em></p> </section> <section id="invariants-assumptions-affected-the-tacit-never-do-x-because-y"> <h2>Invariants & assumptions affected ← (the tacit “never do X because Y”)<a class="headerlink" href="#invariants-assumptions-affected-the-tacit-never-do-x-because-y" title="Link to this heading">#</a></h2> <p><em>What currently-true properties could this touch? Check the ones relevant to CIF:</em></p> <ul class="simple"> <li><p>[ ] <strong>Adjoint / tangent-linear consistency</strong> — does the gradient still match the forward? How verified?</p></li> <li><p>[ ] <strong>Numerical reproducibility</strong> — do reference results change? Bit-for-bit, or within tolerance?</p></li> <li><p>[ ] <strong>Mass conservation / physical invariants</strong> in the transport or transform operators.</p></li> <li><p>[ ] <strong>Plugin interface contract</strong> — are existing plugins (LMDz, FLEXPART, TM5mp, CHIMERE, …) still valid?</p></li> <li><p>[ ] <strong>Config / YAML backward compatibility</strong> — do existing user setups still run? Migration needed?</p></li> <li><p>[ ] <strong>On-disk / output format</strong> compatibility.</p></li> <li><p>[ ] Ordering dependencies, global state, or other “obvious to me, invisible to everyone” traps.</p></li> </ul> </section> <section id="impact"> <h2>Impact<a class="headerlink" href="#impact" title="Link to this heading">#</a></h2> <ul class="simple"> <li><p><strong>Affected components / plugins / instruments:</strong></p></li> <li><p><strong>Performance & memory</strong> (esp. the host-RAM + GPU-HBM budget):</p></li> <li><p><strong>User-facing changes</strong> (config, CLI, outputs):</p></li> <li><p><strong>Documentation</strong> that must change:</p></li> </ul> </section> <section id="validation-plan-how-do-we-know-it-s-correct-not-just-that-it-runs"> <h2>Validation plan ← (how do we KNOW it’s correct — not just that it runs)<a class="headerlink" href="#validation-plan-how-do-we-know-it-s-correct-not-just-that-it-runs" title="Link to this heading">#</a></h2> <p><em>Which regression/characterization configs cover this? New gradient checks? A benchmark configuration to compare before/after? What tolerance, and why that tolerance? Correctness in a variational inversion framework is numerical, not obvious — make the evidence explicit.</em></p> </section> <section id="risks-open-questions"> <h2>Risks & open questions<a class="headerlink" href="#risks-open-questions" title="Link to this heading">#</a></h2> <p><em>What might go wrong, what you’re unsure about, what you’re explicitly asking reviewers to weigh in on. Honesty here is what makes the review useful.</em></p> </section> <section id="rollout-migration"> <h2>Rollout / migration<a class="headerlink" href="#rollout-migration" title="Link to this heading">#</a></h2> <p><em>Phased or big-bang? Deprecation path for anything removed? What existing users must do, and how they’ll be told.</em></p> </section> <section id="decision-filled-in-by-the-decider-this-is-what-turns-the-rfc-into-an-adr"> <h2>Decision ← (filled in by the decider; this is what turns the RFC into an ADR)<a class="headerlink" href="#decision-filled-in-by-the-decider-this-is-what-turns-the-rfc-into-an-adr" title="Link to this heading">#</a></h2> <p><strong>Outcome:</strong> <strong>Date / decider:</strong> <strong>Rationale (esp. if rejected or changed):</strong> <strong>Follow-up issues / MRs:</strong></p> </section> </section> </article> <footer class="prev-next-footer d-print-none"> <div class="prev-next-area"> <a class="left-prev" href="README.html" title="previous page"> <i class="fa-solid fa-angle-left"></i> <div class="prev-next-info"> <p class="prev-next-subtitle">previous</p> <p class="prev-next-title">CIF Design Decisions — RFC & ADR</p> </div> </a> <a class="right-next" href="adr-template.html" title="next page"> <div class="prev-next-info"> <p class="prev-next-subtitle">next</p> <p class="prev-next-title">ADR-NNNN: <Title></p> </div> <i class="fa-solid fa-angle-right"></i> </a> </div> </footer> </div> <dialog id="pst-secondary-sidebar-modal"></dialog> <div id="pst-secondary-sidebar" class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner"> <div class="sidebar-secondary-item"><div id="pst-page-navigation-heading-2" class="page-toc tocsection onthispage"> <i class="fa-solid fa-list"></i> Contents </div> <nav id="pst-page-toc-nav" class="page-toc" aria-labelledby="pst-page-navigation-heading-2"> <ul class="pst-show_toc_level nav section-nav flex-column"> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#summary">Summary</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#motivation-problem">Motivation / Problem</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#context-constraints-theory-transfer-assume-the-reader-does-not-have-it-in-their-head">Context & constraints ← (theory transfer: assume the reader does NOT have it in their head)</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#proposed-design">Proposed design</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#alternatives-considered-this-is-the-theory-the-road-not-taken-and-why">Alternatives considered ← (this is the theory: the road not taken and WHY)</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#invariants-assumptions-affected-the-tacit-never-do-x-because-y">Invariants & assumptions affected ← (the tacit “never do X because Y”)</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#impact">Impact</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#validation-plan-how-do-we-know-it-s-correct-not-just-that-it-runs">Validation plan ← (how do we KNOW it’s correct — not just that it runs)</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#risks-open-questions">Risks & open questions</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#rollout-migration">Rollout / migration</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#decision-filled-in-by-the-decider-this-is-what-turns-the-rfc-into-an-adr">Decision ← (filled in by the decider; this is what turns the RFC into an ADR)</a></li> </ul> </nav></div> </div></div> </div> <footer class="bd-footer-content"> <div class="bd-footer-content__inner container"> <div class="footer-item"> <p class="component-author"> By VERIFY project </p> </div> <div class="footer-item"> <p class="copyright"> © Copyright 2026, VERIFY project. <br/> </p> </div> <div class="footer-item"> </div> <div class="footer-item"> </div> </div> </footer> </main> </div> </div> <!-- Scripts loaded after <body> so the DOM is not blocked --> <script defer src="../_static/scripts/bootstrap.js?digest=90905a2f556bf617f1a9"></script> <script defer src="../_static/scripts/pydata-sphinx-theme.js?digest=90905a2f556bf617f1a9"></script> <footer class="bd-footer"> </footer> </body> </html>