Автор - это модуль. Потому что автору надо сделать Crud. У автора своя статика. Своя бизнес-логика. Ну, все свое. Чтобы не ловить это по всему проекту. И для повторного использования автор напрашивается в модуль.
У поста то же самое.
Ещё раз: у тебя есть модели данных. Энтити. Они не укладываются в эту твою стройную модель с понями и радугой, потому что, ты сам сказал, есть кольцевая зависимость. Из чего следует, что это или один и тот же общий модуль на всё, или у тебя появляется модуль с общим для двух модулей АПИ - будь то просто модели или модели и интерфейсы.
"Эти модули обособлены, но создают между собой кольцевую зависимость" - это попытка сесть на два стула.