---
{
  "n": 14,
  "title": "A small journal capability is a feature under features, with at most one test",
  "abstract": "",
  "refs": [],
  "seen": [
    "user",
    "agent"
  ],
  "data": {
    "member": "owner"
  },
  "created": 1789745298.539606,
  "updated": 1790088180.245458,
  "deleted": 0.0,
  "completed": 0.0,
  "outcome": "",
  "type": "rule"
}
---
A feature is one journal behaviour that can be said in a few words. It lives under features/<feature>/ with its event handlers and trigger settings. Handlers are the concrete edge where resource types or event names may be named; resources, controllers, record, bus, engine, drivers and providers stay generic.

## Tests
A feature has at most one test file, features/<feature>/test.py, with at most 10 tests (message 3339: the cap counts test methods, not lines), and only when it does something the generated runs cannot see. tests/ holds only the generated runs (every action of every resource, the gate over every provider) and the boot guard; scripts/checks/test_shape.py enforces this shape.

## Tests
Each feature has focused coverage under tests/features/<feature>/, one file per behavior; tests/test_features.py checks that every loaded feature has a test folder.
