Exactly the requested counts in both directions
Every successful plan contains the roster size multiplied by the requested count in directed review assignments. Each reviewer has exactly that many different authors, and each author has exactly that many different reviewers. The tool checks the completed edge list for self links, duplicate links, past links, count mismatches and forbidden reciprocal pairs before accepting it. Equal counts describe the number of planned reviews, not equal reading time, essay length, expertise, feedback quality or eventual completion. Those aspects still need the teacher’s judgment and a suitable rubric.
Different methods for unconstrained and historical plans
Without history, a shuffled cyclic construction produces a complete regular assignment and avoids opposite offsets when mutual reviews are forbidden. It samples a useful family of valid plans rather than uniformly sampling every possible directed graph. With past links, capacity matching checks exact incoming and outgoing counts. If mutual pairs are also forbidden, bounded branching removes one direction of each conflicting pair and repeats the matching check. The method and searched node count are displayed, without an unsupported promise that every valid outcome has equal probability.
Impossible and search limit are different results
A person with fewer allowed outgoing or incoming options than requested receives a specific ID warning. A capacity bottleneck or an exhausted exact search can prove that no complete plan fits the entered rules. Separately, search stops at two thousand nodes or approximately three seconds and reports an unconfirmed outcome, not mathematical impossibility. Cancel also discards the calculation. Reduce the review count, review the supplied history or change the mutual-pair rule as appropriate; a slow or failed attempt never produces a misleading almost-complete assignment.