Ouroboros runs a Socratic interview before execution. It scores ambiguity:
Ambiguity = 1 - Σ(clarity_i × weight_i)
If the score is above 0.2, it keeps asking. No code until the spec is locked.
Once running, it doesn't loop by count — it loops until convergence: Similarity = 0.5 * name_overlap + 0.3 * type_match + 0.2 * exact_match
When similarity hits 0.95 across iterations, it stops. It also detects pathological patterns (stagnation, oscillation, wonder loops) and breaks them explicitly. Built on the Claude SDK with parallel sessions — each node in the AC tree gets its own bounded context so autocompact doesn't silently corrupt state mid-run.
MIT licensed. Would be curious what this community thinks about the convergence threshold choices.