The user's ruling, this session: "for each feature, each thing that we build that is an actual implementation, create a proper handler suite … group it by feature … v2/features". A feature is what the journal tool does when it can be said in a few words — writing a plan, planning a plan, managing rules, to-dos. It lives in v2/features/<feature>/ with its handlers (bus.on(...)), its trigger settings and its tests. The handlers are the concrete edge, the one place a resource type or an event is named by hand; everything under the feature folders — resources, controllers, record, bus, engine, drivers, providers — is generic and names no type. A rule because it binds every environment the rebuild will ever run on.

## Tests

The user, this session: one test per feature. A feature's tests live in v2/tests/features/<feature>/, one file per part of the feature (test_start_end.py), so each is found by name. v2/tests/kit.py holds check(), fresh() and done() for every v2 test; the loader's own tests are v2/tests/test_features.py, which also checks that every loaded feature has its test folder.
