You should create external rule objects for:
- "bootstrap" or top-level rule objects which must always exist for your client code to ask meaningful questions. These rule objects are typically singletons (i.e. the one-and-only instance of the particular rule class during the session); and
- rule objects which are created based on some external data (such as a Person or Case).