Skip to content

fix(synthesize): live-calibrated threshold 0.65 + per-cluster member cap - #107

Merged
raphasouthall merged 1 commit into
mainfrom
fix/36-threshold-cluster-cap
Aug 22, 2026
Merged

fix(synthesize): live-calibrated threshold 0.65 + per-cluster member cap#107
raphasouthall merged 1 commit into
mainfrom
fix/36-threshold-cluster-cap

Conversation

@raphasouthall

Copy link
Copy Markdown
Owner

Part of #36. Follow-up to #106 caught during live verification on LXC 122: the 0.35 sibling threshold (tuned on synthetic pair measurements) chained dense early-harvest noise into a 209-member mega-cluster. Live dry runs at 0.45/0.55/0.65 show 0.65 produces coherent 4-15 member topic groups.

  • SIBLING_THRESHOLD 0.35 -> 0.65 (rationale comment updated with the live calibration).
  • New --max-cluster (default 20): hard per-cluster ceiling, keeps the anchor plus its most similar members; overflow stays unsuperseded and regroups on a later pass.

Gate: ruff clean, 769 tests pass (cap-behaviour test added). Live verify after merge: dry run on LXC 122 must show bounded clusters.

The 0.35 default was tuned on synthetic pair measurements; against the real
memory store it chained dense early-harvest noise into a 209-member
mega-cluster whose single learning could not preserve the members' facts.
Live dry runs show 0.65 yields coherent 4-15 member topic groups. New
--max-cluster (default 20) hard-caps any cluster to the anchor plus its
most similar members; overflow stays unsuperseded for a later pass.
@raphasouthall
raphasouthall merged commit 69fc1d2 into main Aug 22, 2026
5 checks passed
@raphasouthall
raphasouthall deleted the fix/36-threshold-cluster-cap branch August 22, 2026 12:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant