--- title: Verify the models-leaf layout rule against keios.eu and a jz/pxpx plugin before Phase 5 date: 2026-09-18 priority: medium area: plugin layout / conversion status: done --- Before the bulk model port (Phase 5) and before any second-project port, repeat the dependency probe done for Fonoteka on 2026-09-18 (see `.planning/notes/plugin-layout-winter-directories.md`) on at least: - one keios.eu stack plugin with models and services (`/media/nvme/dev/golem15/keios.eu/plugins/golem15/user` or `paymentgateway`) - one jz project plugin - one pxpx project plugin For each, count `models/ → classes/` (and `models/ → any sibling dir`) `use` edges and classify them as cast / service-calling hook / other. The rule holds if every edge falls into "cast moves into models" or "hook becomes a callback registered from classes/plugin.go". Any "other" category means the rule (or the note) needs amending before agents apply it at scale. ``` grep -rl "Vendor\\\\Plugin\\\\Classes" plugins/vendor/plugin/models | wc -l grep -rn "Vendor\\\\Plugin\\\\Classes" plugins/vendor/plugin/models ``` **Resolution (2026-09-18):** Probed `keios.eu/plugins/golem15/user`, `wavepath.org/plugins/golem15/chat`, and `PXSTARTER/plugins/pixelpixel/checkout`. Every live `models/` → sibling edge is cast or service-calling hook (see the three dated Evidence sections in `.planning/notes/plugin-layout-winter-directories.md`). No "other" category. The leaf rule holds; the bulk port may proceed.