The most effective approach I’ve ever used for user story refinement is to agree on who the likely developer will be for each story in a whole team session.
We then assign each story to their likely developer, leaving them to read through the stories outside of the session.
The developer decides if a story is sufficiently clear and well-defined. If so, they refine it with another tester in their own time, marking it as ‘fully refined’ when both agree.
Every team member has an optional meeting invite in their calendar for an hour each morning, where they can ‘drop in’ to discuss their stories and seek clarification from me.
All I asked was they arrange a tester to attend the call and give me 5 minutes notice to stop what else I was doing.
I call this “Distributed Refinement”, and it’s worked so well that I can’t imagine returning to the pain of whole team refinement sessions.
If you are unhappy with your development team, they may need more detailed guidance.
Clear and effective software requirements can help with this.