Browser product surface
React setup, solve plan, worker transport, persisted documents
Auto orchestration core
Input validation, complexity axes, phase budget policy, explicit fallbacks
Constraint-aware template lane
Outer constrained path: scaffold and merge around a nested pure-SGP structure-oracle invocation
Nested pure-SGP structure lane
Subroutine inside Auto: direct pure cases enter here immediately; constrained template candidates call back into it for contact geometry
Constraint scaffold / projection / merge sublane
Budgeted scaffold construction, dense warmup polish, signal extraction, template ranking, oracle projection, hard filtering, repair, and acceptance
Result, observability, and product feedback
Solver3 polish, canonical evaluation, telemetry, UI result inspection
Solver5 exact construction detail
Router, family portfolio, candidate ledger, shared atom output
Offline design-theory discovery tooling
Developer-only searches for certified seeds; runtime solver5 consumes shipped JSON/codegen artifacts only
Solver6 repeat-minimization detail
Exact handoff, Latin seed lane, block/tail seed lane, scoring and pure local polish
Solver6 local polish internals
LocalSearchState, same-week deltas, tabu/breakout, weak-week LNS, best snapshot, stop telemetry
Shared zero-repeat atom bridge
The same construction atom output serves exact responses and solver6 block seeds
Scaffold construction and warmup
Hard-feasible scaffold, dense warmup polish, anchors and signals
Template candidate builder
Sessions, group slots, mapped people, risk, and ranked pure-SGP shape
Projection / merge / repair gate
Map oracle geometry into real slots, filter hard constraints, repair displaced placements, accept or fall back
Dense search subsystem
Indexed hard/soft constraints, move kernels, preview deltas, RuntimePatch apply, invariants, and final polish
Scenario editor
- people, sessions, capacities
- hard/soft constraints
- initial/manual schedules
Solve plan builder
- capability-gated defaults
- Auto remains product-default
- no hidden direct solver6 shortcut
Contract transport
- WASM worker or API runtime
- progress mailbox
- typed request/response contracts
Auto engine entry
- compile scenario
- validate solver selection
- derive canonical input facts
Complexity axes
- repeat/contact pressure
- constraint disruption
- placement heterogeneity
- attendance/capacity shape
AutoSolvePlan budgets
- total runtime from user or complexity
- scaffold / oracle / merge reserves
- solver3 search remainder
Initial schedule supplied?
- validate supplied placements
- honor user-provided starting point
Exactly pure SGP?
- full attendance
- uniform groups
- contact objective only
- optional repeat limit
Repeat pressure relevant?
- if no, use deterministic baseline
- if yes, request contact geometry
Pure SGP atom/template request
- synthetic pure scenario shape
- explicit objective mode
- deadline passed through
Exact construction router
- construction-only solver
- records every family attempt
- fails honestly if requested span unsupported
Repeat minimization constructor
- pure-SGP only
- exact handoff before search
- budgeted seed construction then local polish
Certified construction data
- JSON sources
- codegen validation
- offline discovery only
- deterministic runtime expansion
Span semantics
- RequestedSpan
- BestAvailableFullSpan
- ClosestSupportingSpan
Attempt ledger
- NotApplicable reasons
- ConstructionFailed mismatch
- InsufficientWeeks diagnostics
Round-robin atom
- group_size = 2
- 1-factorization route
- exact counting frontier
Triple systems
- KTS 6t+1 finite fields
- KTS / NKTS catalogs
- pseudo-doubling seeds
MOLS / TD routes
- MOLS catalog
- MOLS direct product
- transversal prime-power
- recursive latent-group lift
Design catalogs
- QDM → RTD
- RITD group fill
- RBIBD / P4 router
- affine plane prime-power
MOLR / PSB / ownSG
- MOLR from MOLS
- MOLR group fill
- ownSG starter blocks
- published schedule bank
Difference matrices
- cyclic partite certificates
- highest exact per (g,p)
- prefix truncation supported
- runtime lookup + expansion
Single-round partition
- p > g pigeonhole cap
- one-week exact fallback
- visual/report exact cells
Candidate record set
- family precedence
- max_supported_weeks
- quality label
- evidence + residual metadata
Rank and truncate
- larger span for requested/best
- smallest excess for closest
- quality then precedence
- prefix if selected span is longer
Zero-repeat atom API
- same zero-repeat construction router solver5 exposes
- RequestedSpan / BestAvailableFullSpan / ClosestSupportingSpan
- solver6 exact-block seeds consume these atoms
Discovery not runtime
- CLI / tools search workspace
- no hidden solver5 runtime search
- deterministic lookup remains product path
Difference-matrix ladder
- row-wise MRV exact backtracking
- column-beam fallback search
- target ladder + deadline stop
- highest exact certificate retained
Cyclic KTS reconstruction
- one-layer cyclic starters
- two-layer compact starters
- catalog reconstruction CLI
- strategy portfolio per order
Frontier sweep runners
- curated target candidates
- parallel ladder batches
- summary JSON + local reports
- human-reviewed import step
Candidate artifacts
- DM rows with modulus/group size
- compact KTS starter artifacts
- citation/provenance recorded
- near misses excluded from solver5
Artifact promotion gate
- JSON schema validation
- build.rs catalog generation
- zero-repeat-catalog inspect
- regression fixture when frontier changes
Runtime lookup material
- checked-in JSON only
- highest frontier per family
- expanded by construction families
- served through solver5 router
Exact handoff check
- requested zero-repeat atom?
- terminal optimal response
- skip seed portfolio entirely
FastBaseline seed
- valid full-horizon incumbent
- cheap atom repeat/truncate
- direct cyclic partition fallback
Square-case gate
- groups = group size
- groups ≥ 4
- weeks ≥ 3
- choose Latin lane if true
Base symmetry break
- week 1 rows
- week 2 columns
- canonical square frame
20% core phase
- identity row required
- affine rows optional
- linear contact coverage
30% expansion phase
- near-orthogonal templates
- randomized permutations
- borrow only if needed
Candidate week pool
- row permutations
- coprime column multipliers
- deduplicated candidate weeks
30% selection phase
- required week selection
- may borrow to full seed
- stops at deadline
20% optimize phase
- optional replacements
- selected-week improvement
- soft budget only
Dominant atom probe
- query BestAvailableFullSpan
- uses same atom source as solver5
- block span chosen for non-square lane
Requested horizon divisible?
- yes: exact block only
- no: prefix plus tail candidates
ExactBlockOnly
- dominant zero-repeat atom divides horizon
- repeat exact atom blocks
- greedy relabeling
- full-horizon candidate
Exact-block prefix
- dominant zero-repeat atom copied floor(request/span)
- relabel copies greedily
- leave remainder unresolved
DominantPrefixTail
- append one more relabeled block
- truncate to requested horizon
RequestedTailAtom
- query ClosestSupportingSpan for remainder
- append exact atom for tail
- only if solver5 has supporting span
HeuristicTail
- greedy pair-frequency weeks
- valid remainder completion
- fallback tail candidate
Completed seed set
- FastBaseline plus advanced seeds
- only valid full-horizon candidates
- failed/timeout attempts kept
Seed scoring
- active objective mode
- linear / triangular / squared
- max-pair and family tie-breaks
Local polish controller
- choose hill climb / tabu mode
- deadline-aware incumbent
- known lower-bound stop
LocalSearchState
- pair-frequency state
- current + best snapshots
- active penalty model
Same-week swaps
- mutable weeks only
- square scaffold locks
- candidate count / nth move
Incremental scoring
- pair-adjustment scratch
- linear / squared delta
- best admissible swap
Tabu and escape
- week-local tabu keys
- aspiration for improvements
- breakout when stuck
Weak-week rebuild
- weakest mutable weeks
- greedy replacement week
- polish rebuilt week
Apply and track best
- apply swap/replacement
- update pair counts
- record best snapshot
Stop and emit incumbent
- deadline/no-improve/optimum
- iterations and µs telemetry
- return best schedule
Validate pure template
- partition/capacity shape
- zero-repeat or repeat score
- convert to real schedule object
Constructor budget split
- scaffold budget
- oracle recombination budget
- SAT fallback slice
- seed xor for diversity
Scaffold constructors
- deterministic baseline first
- SAT hard-feasible fallback if baseline fails
- constraint feasibility owned here
- telemetry-visible failures
Solver3 scaffold polish
- load scaffold into RuntimeState
- brief dense search under scaffold budget
- score polished scaffold
- current runtime uses one scaffold run
Best scaffold + frozen mask
- lowest scaffold score selected
- rigid placements marked
- manual / immovable / clique anchors protected
Polished-scaffold signals
- pair pressure by session pair
- placement histogram
- rigidity by person/session
- flexible vs frozen counts
Session window candidates
- candidate sessions
- attendance overlap
- coverage estimate
- repeat pressure focus
Group-slot ladder
- group-size ladder
- capacity-compatible slots
- omitted group count
- oracle capacity
Stable people + dummies
- high-attendance people
- stable mapped subset
- dummy oracle people
- omitted high-attendance count
Disruption-risk estimate
- scaffold rigidity cost
- coverage value
- capacity fit
- candidate-aware rebudget
Ranked oracle templates
- ordered template candidates
- sessions / groups / capacities fixed
- synthetic pure-SGP shape emitted
Projection mapper
- oracle people → real people
- oracle groups → real groups per session
- respect real participation and capacity
Projection scoring
- pair-alignment score
- group-alignment score
- rigidity mismatch
- dummy/omitted accounting
Hard-constraint filter
- frozen anchors unchanged
- hard-apart violations rejected
- capacity and attendance checked
Oracle injection
- write projected groups
- keep protected placements
- track changed placements
- collect displaced participants
Displacement repair
- reinsert partial participants
- repair empty/overfull groups
- preserve hard feasibility
- count repairs
Real-score acceptance gate
- evaluate merged schedule
- compare with scaffold
- accept improvement or keep scaffold
- outcome stored in telemetry
Fallback ledger
- timeout/error path
- no silent downgrade
- reason preserved for telemetry
Dense search entry
- constructed incumbent loaded
- indexed scenario facts
- allowed sessions and runtime limits
Constraint index tables
- capacity + participation masks
- clique and immovable lookup
- pair / attribute / visit adjacency
- allowed-session mutation scope
RuntimeState caches
- flat person-location arrays
- group member / size slots
- pair contact matrix
- attribute-sum + visit-count caches
SearchRunContext
- move policy
- driver and improver modes
- time / iteration / no-improve stops
- correctness lane config
Search driver
- single-state default/general loop
- optional memetic population
- optional recombination / path relinking
Feasibility guards
- capacity and attendance
- immovable placements
- must-stay-together cliques
- must-stay-apart pair blocks
Penalty surfaces
- repeat encounters + pair meetings
- should-together / should-apart
- attribute balance and sums
- person-group visit counts
Move-family selection
- swap
- transfer
- clique swap
- policy memory and adaptive weights
Hotspot guidance
- repeat-guided swaps
- SGP week-pair tabu
- conflict-restricted sampling
- aspiration overrides
Candidate sampling
- eligibility filters
- same-week swaps
- transfer proposals
- must-stay clique moves
Analyze move family
- swap / transfer / clique-swap analysis
- pre-score feasibility result
- runtime-lightweight preview path
- oracle recompute debug path
Preview score delta
- incremental score preview
- hard blocks reported before accept
- soft penalty deltas
- tabu aspiration surface
Placement validity slice
- capacity and attendance deltas
- immovable assignment guard
- must-stay clique cohesion
- must-apart pair block checks
Pair penalty slice
- repeat encounter linear/squared delta
- pair-meeting target delta
- should-together reward/penalty
- should-apart co-location penalty
Attribute penalty slice
- attribute-balance desired counts
- attribute-sum lower/upper bounds
- normalized numeric scales
- linear/squared penalty functions
Visit-count slice
- person-group visit lower/upper
- selected sessions and groups
- cache delta for moved people
- weighted penalty contribution
RuntimePatch delta set
- person-location updates
- group-member patch ops
- pair contact deltas
- attribute / visit cache deltas
Accepted patch apply
- mutate dense arrays
- sync score aggregates
- refresh policy counters
- preserve hard feasibility
Acceptance and cooling
- improving / neutral / uphill moves
- temperature schedule
- local-optimum escape metrics
Best schedule archive
- publish best incumbent
- progress callbacks
- best-so-far schedule emission
- final result extraction
Preview validation
- trusted vs checked previews
- oracle delta cross-checks
- certification scans
- hard-block counters
Recombination lanes
- donor session transplant
- session-aligned path relinking
- multi-root balanced inheritance
- child polish and retention
Stop conditions
- time limit
- max iterations
- runtime-scaled no-improvement
- optimal score reached
Canonical evaluation
- score breakdown
- repeat contacts
- constraint penalties
- stop reason
Auto telemetry
- complexity axes
- phase budgets
- constructor path/outcome
- search timings and fallbacks
Results workspace
- schedule visualization
- pair-meeting matrix
- history / export / manual editor