Skip to content

L4 Wave1: negative-assortative crossover + novelty-debt advisory + mode-lock replay test#22

Merged
zaler23 merged 3 commits into
mainfrom
mzz/l4-wave1
Jun 30, 2026
Merged

L4 Wave1: negative-assortative crossover + novelty-debt advisory + mode-lock replay test#22
zaler23 merged 3 commits into
mainfrom
mzz/l4-wave1

Conversation

@zaler23

@zaler23 zaler23 commented Jun 30, 2026

Copy link
Copy Markdown
Owner

L4 Wave1 — landing immediately net-positive directions

Following L1-L3 (#21), this wave lands the three directions that can be landed immediately by reusing existing mechanisms and adding tests. Production net +36 lines (seed_coverage), the rest tests.

Three landings

  • Negative-assortative crossover — the lowest_similarity global donor policy already exists in production and is reachable via CACrossoverConfig. Zero production change; regression test added to prove it selects the most distant donor, contrasting with the default highest_search_quality. Default policy unchanged.
  • Novelty-debt advisoryassess_seed_coverage gains a pure-derived novelty_debt field (over-represented families + missing family count), reusing existing family counts and the 0.35 concentration threshold. Advisory metadata only, no gate: needs_more_seed/status semantics unchanged, no new class/registry/ledger.
  • Mode-lock orthogonal replay — the existing path already implements this (selection pressure -> parent selector picks an under-explored parent -> deterministic reproduction). Zero production change; end-to-end test added to lock in that an under-explored family is selected and produces offspring.

Invariants

  • Canonical spine / soft ordering signal / answer-first (synthesis/final_gate) untouched.
  • No new framework / registry / DSL / config.

Verification

  • full suite: 671 passed, 1 skipped
  • net: 4 files +141/-1, production only seed_coverage +36

Note: descriptor-collapse direction closed (falsified by data)

The "change the descriptor to fix family collapse" direction was closed after offline measurement falsified it: the exploration run does not collapse (462 candidates -> 333 cells, 323 families); removing the path bucket has zero effect, and routing the descriptor cell actually collapses it (-> 71 families). Collapse is run x descriptor-binding dependent, not a run-agnostic defect.

🤖 Generated with Claude Code

zaler23 and others added 3 commits July 1, 2026 02:12
…icy path

lowest_similarity global donor policy already exists in crossover.py and is reachable via CACrossoverConfig; add a regression test proving it selects the most-distant donor (negative-assortative) vs the default highest_search_quality. Zero production change; default policy unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ate)

assess_seed_coverage emits a pure-derived novelty_debt dict (overrepresented families + missing-family count) reusing existing family counters and the 0.35 concentration threshold. advisory_metadata_only_no_gate: does not alter needs_more_seed/status gating. No new class/registry/ledger.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… regression test

SemanticLooping/DiversityCollapse already routes under-explored families through selection_pressure into ParentSelector and deterministic reproduction; add an end-to-end test asserting a cold under-explored parent is selected, written into MutationPlan.parent_ids, and produces offspring. Zero production change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@zaler23 zaler23 merged commit 7b226f4 into main Jun 30, 2026
5 checks passed
@zaler23 zaler23 deleted the mzz/l4-wave1 branch June 30, 2026 18:17
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