+redef class ToolContext
+ var default_phase = new DefaultPhase(self, null)
+end
+
+# Empty phase that delegates `process_mainmodule` to the global `do_work`.
+class DefaultPhase
+ super Phase
+ redef fun process_mainmodule(mainmodule, given_mmodules) do
+ do_work(mainmodule, given_mmodules, toolcontext.modelbuilder)
+ end
+end
+
+# Easy entry point to prototype a specific work or proof-of-concept.
+#
+# Complex or mature work should use the full `phase` framework to enable
+# combination and orcherstration of works.
+#
+# * `mainmodule` is the bottom main module (possibly implicit).
+# * `given_mmodules` is the exact list of module from the command line.
+# * `modelbuilder` is the context that contains a lot of things.
+#
+# @toimplement
+fun do_work(mainmodule: MModule, given_mmodules: SequenceRead[MModule], modelbuilder: ModelBuilder) do end
+