For every Sprint Planning the capacity, the hours available for the team is an important ingredient. Usually, this is rather straight forward and easy to do. At my current project we have two teams. Each team is cross-functional, i.e. being able to deliver a piece of done software. However, in this case, the skills are very different, so that the overall number of available hours can be deceptive as there might be 120 h of development tasks and only 80 h available. We actually run into this problem when we got additional business analysts. The overall capacity went up so that we could commit to more user stories. As a result, we had far too much programming work and not enough analysis work.
Now, we break the capacity down per skills we need in our teams. Once Sprint Planning Two is over, we add up the hours per skill and see if we are still in the range. If yes – great! Otherwise the Dev Team and Product Owner self-organize and figure out a way to handle it.