По идее, репозиторий - это абстракция над хранилищем твоих сущностей, он должен быть простой прослойкой для запросов в БД. Он должен быть в доменном слое, чтобы ты мог получать доступ к сущностям и выполнять доменные операции, например, заказ товара - нужен репозиторий, чтобы обновить сущность заказа.
В контроллеры его могут класть для простоты. Например, есть GET запрос - не зачем тебе создавать отдельные юз. кейсы и т.д. - просто вызови нужный метод у интерфейса репозитория.
Если размещать интерфейс репозитория в прикладном слое, то тут 2 варианта:
1. У тебя богатые сущности, которые могут выполнять все действия без необходимости доп. запросов. Это похоже на DDD с их агрегатами.
2. Все смешалось в кучу и доменка вызывает прикладной слой
Скорее всего, идея такого проекта следующая - доменный слой имеется только сущности и все операции не требуют других зависимостей, а прикладной слой уже кое-как говорит с внешним миром и реализует бизнес операции.