COMPO · 9.04 · VARIANTS / SCORING / TESTS · v1.1

Variants,
scoring &
tests.

Corrective v1.1 final local evaluation layer Topic 9: explicit immutable ModularGridVariant bundles, explicit hard/soft target contracts, hard-filter decisions separated from numeric target fit, one composite independent vote grid.modular.system.localModularGridFit, mutation-free repair requests, same-context variant comparison and consolidated regression. No profile means N/A, not zero. No hidden variant generator. No beautyScore.

ModuleCompo 9.04
Scopevariants / scoring / tests
Hardfilter only
VotelocalModularGridFit
Metrics1 independent
NextTopic9 closing audit

Final Topic 9 evaluation layer

00 / module api

9.04 получает только уже существующие evidence refs. Он не создаёт новую геометрию и не генерирует скрытые combinations.

VARIANT

Explicit immutable evidence bundle.

HARD

Filter only, never penalty.

SOFT

Explicit target fit only.

Refs, не копии child data

01 / ModularGridVariant

Variant описывает одну явно собранную конфигурацию Topic 9.

ModularGridVariant {
  variantRef,
  variantKind,

  modularGridRef,
  columnGeometryRef,
  rowGeometryRef,
  cellSetRef,

  regionSetRef?,
  forbiddenRegistryRef?,
  occupancyMapRef?,

  candidateSetRef?,
  placementCandidateRef?,

  confidence,
  provenance,

  mutationAllowed: false
}

Applicability explicit

02 / variant kinds

Kind фиксирует, какой уровень Topic 9 реально присутствует.

KindRequired evidence
STRUCTURE_ONLY9.00 + 9.01
WITH_REGIONS+ RegionSet
WITH_RUNTIME_STATE+ OccupancyMap
WITH_PLACEMENT_CANDIDATE+ CandidateSet + Candidate

No target = no preference

03 / TargetSpec

Любая desired property приходит только explicit target contract.

ModularGridTargetSpec {
  targetRef,

  subjectKind,

  observedSelector,

  targetModel:
    NUMERIC_INTERVAL |
    CATEGORICAL_ALLOWED,

  minValue?,
  maxValue?,
  tolerance?,

  allowedValues[]?,
  mismatchFit?,

  constraintKind:
    HARD |
    SOFT,

  missingEvidencePolicy:
    N_A |
    INVALID,

  confidence,
  provenance
}

Target adapters only

04 / observations

Raw Topic9 evidence не становится score автоматически.

STRUCTURE: COLUMN_COUNT ROW_COUNT CELL_COUNT REGIONS: REGION_COUNT FORBIDDEN_CELL_FRACTION RUNTIME: OCCUPIED_CELL_FRACTION FREE_CELL_FRACTION UNKNOWN_CELL_FRACTION MULTI_OCCUPIED_CELL_FRACTION PLACEMENT: PLACEMENT_FOOTPRINT_CELL_COUNT PLACEMENT_SOURCE_KIND PLACEMENT_EVIDENCE_STATUS

INVALID > REJECT > N_A > KEEP

05 / hard filter

Hard decision существует отдельно от numeric fit.

INVALID: broken contract / lineage REJECT: evaluated HARD target mismatch N_A: HARD evidence unavailable under N_A policy KEEP: all applicable HARD targets pass Never: score < threshold → REJECT

SOFT targets only

06 / component fit

Numeric interval и categorical allowed-list имеют явную семантику.

numeric inside interval: fit = 1 outside: distance to interval fit = 1 - clamp(distance/tolerance,0,1) categorical allowed: fit = 1 categorical mismatch: fit = explicit mismatchFit

Explicit denominator

07 / scoring profile

Profile перечисляет ровно те SOFT targets, которые должны составить local composite.

ModularGridScoringProfile {
  profileRef,

  requiredTargetRefs[],
  optionalTargetRefs[],

  weights: {
    targetRef: positiveNumber
  },

  aggregate:
    WEIGHTED_MEAN,

  missingRequiredPolicy:
    N_A,

  confidence,
  provenance
}

One independent Topic9 vote

08 / MetricResult

Component target fits не голосуют отдельно.

grid.modular.target.componentFit.<targetRef> owner: Compo9.04 componentOf: grid.modular.system.localModularGridFit independentVoteAllowed: false grid.modular.system.localModularGridFit owner: Compo9.04 composite: true scoringGroup: modular-grid-local independentVoteAllowed: true

Missing evidence is not zero

09 / N/A semantics

Required и optional components ведут себя по-разному только потому, что profile это явно объявил.

required SOFT target = N_A → composite = N_A optional SOFT target = N_A → drop from denominator no profile → composite = N_A INVALID component → composite = INVALID

Same evaluation context only

10 / comparison

Нельзя ранжировать варианты, рассчитанные по разным profiles или target sets.

compare only when: same profileRef same targetSetFingerprint hardFilter = KEEP metric.status = OK sort: localModularGridFit descending tie: same rank variantRef only deterministic display order committedVariantRef = null

Advice, not mutation

11 / repair requests

Hard mismatch или N/A evidence может породить только owner-qualified request.

ModularGridRepairRequest {
  repairRequestRef,
  variantRef,

  reasonCode,

  targetOwnerRef,
  sourceEvidenceRefs[],

  suggestedAction,

  mutationAllowed: false,
  provenance: DERIVED
}

Local fit ≠ final composition

12 / firewalls

9.04 закрывает Topic 9, но не захватывает global composition owners.

NOT GLOBAL QUALITY. localModularGridFit ничего не говорит автоматически о balance, hierarchy, negative space, eye flow, typography, crop или beauty.

Visual Lab

13 / visual lab

Показываем hard/soft split, N/A и explicit ranking.

A · HARD != SCORE KEEPREJECT hard branch never numeric penalty B · SOFT COMPONENTS components → one composite vote C · SAME CONTEXT RANKING #1 0.92 #2 0.81 #3 N/A same profile + same target set only HARD mismatch → REJECT · never fit=0 no profile → localModularGridFit=N/A · N/A != 0 component fits have independentVoteAllowed=false only grid.modular.system.localModularGridFit votes independently ranking = explicit Topic9 target fit only · not beauty/global acceptance repair request != mutation · comparison committedVariantRef=null

9.04 consolidated regression

14 / deterministic tests

Проверяем variant lineage, target applicability, hard filter, composite scoring, comparison guards, repairs и absence of double counting.

Tests not run yet.

DATA FOR LAYOUT ENGINE

15 / machine contract

Machine-readable final Topic 9 contract.

{
  "module": "Compo 9.04",
  "name": "variants_scoring_tests",
  "version": "1.1-corrective",
  "canonical_main_title": "Variants, scoring и tests",
  "topic": "09_МОДУЛЬНАЯ_СЕТКА_КОЛОНКИ_И_РЯДЫ",
  "scope": "EXPLICIT_MODULARGRID_VARIANTS_HARD_FILTER_LOCAL_TARGET_SCORING_REPAIRS_COMPARISON_AND_CONSOLIDATED_TESTS",
  "review_basis": {
    "public_MAIN": "9.04 exact title confirmed and is final Topic9 file",
    "public_Core_0.00": "canonical public Core link could not be opened; no Core content invented",
    "previous_module": "Compo9.03 occupancy/collision/reflow/candidates",
    "related_owners_reviewed": [
      "Compo9.00 ModularGrid root + rows",
      "Compo9.01 CellSet/atomic cells/addressing",
      "Compo9.02 RegionSet/ForbiddenGridRegistry",
      "Compo9.03 ModularGridOccupancyMap/GridPlacementCandidateSet"
    ]
  },
  "consumes": [
    "Compo9.00.ModularGrid",
    "Compo8.01.ResolvedColumnGeometry reference",
    "Compo9.00.ResolvedRowGeometry",
    "Compo9.01.CellSet",
    "optional Compo9.02.RegionSet",
    "optional Compo9.02.ForbiddenGridRegistry",
    "optional Compo9.03.ModularGridOccupancyMap",
    "optional Compo9.03.GridPlacementCandidateSet",
    "optional Compo9.03.GridPlacementCandidate",
    "explicit ModularGridTargetSpec[]",
    "optional explicit ModularGridScoringProfile"
  ],
  "provides": [
    "ModularGridVariant",
    "ModularGridVariantSet",
    "ModularGridTargetSpec",
    "ModularGridScoringProfile",
    "TargetObservation",
    "grid.modular.target.componentFit.<targetRef> MetricResult",
    "grid.modular.system.localModularGridFit MetricResult",
    "ModularGridVariantEvaluation",
    "ModularGridRepairRequest[]",
    "ModularGridVariantComparison",
    "Topic9 consolidated regression tests"
  ],
  "owns_metrics": [
    "grid.modular.system.localModularGridFit"
  ],
  "descriptors_only": [
    "all observations adapted from 9.00–9.03",
    "variantKind",
    "target statuses",
    "hardFilter",
    "comparison rank"
  ],
  "variant_schema": {
    "variantRef": "stable explicit ref",
    "variantKind": "STRUCTURE_ONLY|WITH_REGIONS|WITH_RUNTIME_STATE|WITH_PLACEMENT_CANDIDATE",
    "modularGridRef": "required 9.00 root",
    "columnGeometryRef": "required exact 8.01 geometry lineage",
    "rowGeometryRef": "required exact 9.00 row lineage",
    "cellSetRef": "required exact 9.01 set",
    "regionSetRef": "optional by kind",
    "forbiddenRegistryRef": "optional by kind",
    "occupancyMapRef": "optional by kind",
    "candidateSetRef": "required only for candidate kind",
    "placementCandidateRef": "required only for candidate kind",
    "confidence": "0..1",
    "provenance": "STANDARD|EMPIRICAL|INITIAL_HEURISTIC|STYLE_PRESET|DERIVED",
    "mutationAllowed": false
  },
  "variant_kind_contract": {
    "STRUCTURE_ONLY": "no region/forbidden/occupancy/candidate refs",
    "WITH_REGIONS": "requires regionSetRef; optional forbiddenRegistryRef; no occupancy/candidate",
    "WITH_RUNTIME_STATE": "requires occupancyMapRef; optional region/forbidden; no placement candidate",
    "WITH_PLACEMENT_CANDIDATE": "requires candidateSetRef+placementCandidateRef; matching runtime refs optional"
  },
  "target_spec_schema": {
    "targetRef": "stable unique ref",
    "subjectKind": "MODULAR_GRID_VARIANT|WITH_REGIONS|WITH_RUNTIME_STATE|WITH_PLACEMENT_CANDIDATE",
    "observedSelector": "COLUMN_COUNT|ROW_COUNT|CELL_COUNT|REGION_COUNT|FORBIDDEN_CELL_FRACTION|OCCUPIED_CELL_FRACTION|FREE_CELL_FRACTION|UNKNOWN_CELL_FRACTION|MULTI_OCCUPIED_CELL_FRACTION|PLACEMENT_FOOTPRINT_CELL_COUNT|PLACEMENT_SOURCE_KIND|PLACEMENT_EVIDENCE_STATUS",
    "targetModel": "NUMERIC_INTERVAL|CATEGORICAL_ALLOWED",
    "minValue": "required numeric lower bound for NUMERIC_INTERVAL",
    "maxValue": "required numeric upper bound >= minValue",
    "allowedValues": "required unique non-empty values for CATEGORICAL_ALLOWED",
    "constraintKind": "HARD|SOFT",
    "mismatchFit": "required [0,1] only for SOFT categorical target",
    "missingEvidencePolicy": "N_A|INVALID",
    "confidence": "0..1",
    "provenance": "STANDARD|EMPIRICAL|INITIAL_HEURISTIC|STYLE_PRESET"
  },
  "target_applicability": {
    "MODULAR_GRID_VARIANT": "all variants",
    "WITH_REGIONS": "WITH_REGIONS, WITH_RUNTIME_STATE and WITH_PLACEMENT_CANDIDATE only when matching regionSetRef exists",
    "WITH_RUNTIME_STATE": "WITH_RUNTIME_STATE and WITH_PLACEMENT_CANDIDATE only when matching occupancyMapRef exists",
    "WITH_PLACEMENT_CANDIDATE": "WITH_PLACEMENT_CANDIDATE only",
    "mismatch": "resolve by explicit missingEvidencePolicy; do not silently evaluate"
  },
  "numeric_fit": {
    "inside_interval": "1",
    "below": "1-clamp((minValue-observed)/tolerance,0,1)",
    "above": "1-clamp((observed-maxValue)/tolerance,0,1)",
    "tolerance": "explicit target tolerance >0 for SOFT targets",
    "HARD": "only pass/fail; tolerance may be zero or positive if explicitly supplied but never yields numeric penalty"
  },
  "categorical_fit": {
    "allowed": "1",
    "SOFT mismatch": "explicit mismatchFit",
    "HARD mismatch": "REJECT",
    "implicit mismatch default": "FORBIDDEN"
  },
  "scoring_profile_schema": {
    "profileRef": "stable explicit ref",
    "requiredTargetRefs": "explicit SOFT target refs",
    "optionalTargetRefs": "explicit SOFT target refs disjoint from required",
    "weights": "positive finite map covering exactly profile targets",
    "aggregate": "WEIGHTED_MEAN",
    "missingRequiredPolicy": "N_A",
    "confidence": "0..1",
    "provenance": "STANDARD|EMPIRICAL|INITIAL_HEURISTIC|STYLE_PRESET"
  },
  "hard_filter_semantics": {
    "precedence": "INVALID > REJECT > N_A > KEEP",
    "INVALID": "variant/target/evidence contract invalid",
    "REJECT": "one or more evaluated HARD targets mismatch",
    "N_A": "required HARD target evidence unavailable under N_A policy and no INVALID/REJECT",
    "KEEP": "all applicable HARD targets satisfied",
    "separate_from_score": "never threshold localModularGridFit to create hard decision"
  },
  "metric_result_policy": {
    "component": {
      "key": "grid.modular.target.componentFit.<targetRef>",
      "owner": "Compo9.04",
      "componentOf": "grid.modular.system.localModularGridFit",
      "scoringGroup": "modular-grid-local",
      "independentVoteAllowed": false
    },
    "composite": {
      "key": "grid.modular.system.localModularGridFit",
      "owner": "Compo9.04",
      "composite": true,
      "componentOf": null,
      "scoringGroup": "modular-grid-local",
      "independentVoteAllowed": true
    },
    "no_profile": "value=N_A; status=N_A; not zero",
    "hard_targets": "never component fits"
  },
  "scoring_semantics": {
    "aggregate": "weighted mean of evaluated SOFT target component fits",
    "required_N_A": "composite N_A",
    "optional_N_A": "drop only optional target from denominator",
    "INVALID": "composite INVALID",
    "not_global_quality": true,
    "ranking_meaning": "EXPLICIT_TOPIC9_TARGET_FIT_ONLY"
  },
  "variant_comparison": {
    "eligible": "hardFilter=KEEP and composite metric status=OK",
    "profile_guard": "all evaluations must carry same profileRef",
    "target_set_guard": "all evaluations must carry same deterministic targetSetFingerprint",
    "tie": "same fit => same rank; variantRef lexical only for deterministic display order",
    "committedVariantRef": "null; comparison does not commit layout",
    "mutationAllowed": false
  },
  "repair_request_schema": {
    "repairRequestRef": "stable derived ref",
    "variantRef": "source variant",
    "reasonCode": "HARD_TARGET_MISMATCH|TARGET_EVIDENCE_N_A|INVALID_VARIANT_LINEAGE|INVALID_TARGET|INVALID_PROFILE",
    "targetOwnerRef": "Compo9.00|Compo9.01|Compo9.02|Compo9.03|profile_owner|target_owner|layout_orchestrator",
    "sourceEvidenceRefs": "explicit refs",
    "suggestedAction": "advisory string/code",
    "mutationAllowed": false,
    "provenance": "DERIVED"
  },
  "ownership_map": {
    "9.00": "ModularGrid root and row geometry",
    "9.01": "CellSet/Cell identity/address/geometry",
    "9.02": "RegionSet and forbidden constraints",
    "9.03": "occupancy/collision/reflow/candidates",
    "9.04": "explicit variants, target scoring, hard filter, repairs/comparison, consolidated regression",
    "future_global": "global balance/hierarchy/negative-space/eye-flow/typography/crop remain external"
  },
  "semantic_firewalls": {
    "variant_vs_generation": "9.04 explicit variants only; no hidden Cartesian generator",
    "hard_vs_score": "HARD mismatch rejects and never becomes numeric penalty",
    "descriptor_vs_score": "9.00–9.03 descriptors only vote when explicitly adapted by a SOFT target",
    "component_vs_independent_vote": "component fits independentVoteAllowed=false",
    "candidate_vs_layout_commit": "placement candidate remains evidence, not accepted final layout",
    "ranking_vs_beauty": "comparison rank means target fit only",
    "repair_vs_mutation": "repair request never mutates foreign state"
  },
  "metric_policy": {
    "primary_numeric_vote": "grid.modular.system.localModularGridFit only",
    "direct_raw_descriptor_votes": "FORBIDDEN",
    "hard_target_numeric_vote": "FORBIDDEN",
    "beautyScore": "FORBIDDEN"
  },
  "hard_constraints": [
    "9.04 owns explicit ModularGridVariant bundles, target observation adapters, Topic9 hard-filter interpretation, explicit-target local scoring, mutation-free repair requests, variant comparison and consolidated Topic9 regression.",
    "9.04 does not generate row/column geometry, cells, regions, occupancy maps or placement candidates.",
    "Variant construction is explicit only; no hidden Cartesian product over region sets, occupancy snapshots, candidates or style parameters.",
    "Every variant must reference one exact ModularGrid root, one exact columnGeometryRef, one exact rowGeometryRef and one exact cellSetRef.",
    "Optional regionSetRef, forbiddenRegistryRef, occupancyMapRef, candidateSetRef and placementCandidateRef must be lineage-consistent with the same CellSet.",
    "Baseline variant kinds are STRUCTURE_ONLY, WITH_REGIONS, WITH_RUNTIME_STATE and WITH_PLACEMENT_CANDIDATE.",
    "STRUCTURE_ONLY must not carry region, forbidden, occupancy or placement-candidate refs.",
    "WITH_REGIONS requires regionSetRef and may optionally carry forbiddenRegistryRef but not occupancy/candidate refs.",
    "WITH_RUNTIME_STATE requires occupancyMapRef and may carry regionSetRef/forbiddenRegistryRef but not placementCandidateRef.",
    "WITH_PLACEMENT_CANDIDATE requires candidateSetRef and placementCandidateRef; it may also carry matching occupancy/forbidden/region refs.",
    "Variant evidence is immutable and reference-based; child evidence is never copied into the variant as a new owner.",
    "All target specs are explicit and versioned.",
    "Target subjectKind is explicit and controls applicability.",
    "Baseline subject kinds are MODULAR_GRID_VARIANT, WITH_REGIONS, WITH_RUNTIME_STATE and WITH_PLACEMENT_CANDIDATE.",
    "A more specific subjectKind is N_A on a less specific variant rather than silently evaluated.",
    "Baseline target selectors are COLUMN_COUNT, ROW_COUNT, CELL_COUNT, REGION_COUNT, FORBIDDEN_CELL_FRACTION, OCCUPIED_CELL_FRACTION, FREE_CELL_FRACTION, UNKNOWN_CELL_FRACTION, MULTI_OCCUPIED_CELL_FRACTION, PLACEMENT_FOOTPRINT_CELL_COUNT, PLACEMENT_SOURCE_KIND and PLACEMENT_EVIDENCE_STATUS.",
    "Numeric target models use explicit inclusive interval [minValue,maxValue].",
    "Categorical target models use explicit allowedValues.",
    "SOFT categorical mismatch requires explicit mismatchFit in [0,1]; there is no implicit zero unless mismatchFit is explicitly zero.",
    "HARD categorical or numeric mismatch yields REJECT and never a numeric penalty.",
    "HARD target with missing evidence resolves by explicit missingEvidencePolicy INVALID or N_A; it never passes silently.",
    "SOFT target with missing evidence resolves by explicit missingEvidencePolicy INVALID or N_A; it never becomes numeric zero.",
    "No target means no score.",
    "No scoring profile means grid.modular.system.localModularGridFit = N_A.",
    "Only SOFT target components may enter the numeric profile.",
    "HARD targets are forbidden from profile weights and cannot also vote numerically.",
    "Scoring profile lists requiredTargetRefs and optionalTargetRefs explicitly.",
    "Every scored targetRef must exist exactly once in the target set.",
    "Weights must be explicit finite positive values for every required/optional target included by the profile.",
    "Undeclared target weights are invalid rather than guessed.",
    "Required target N_A makes local score N_A under baseline required-missing policy.",
    "Optional target N_A may drop from the denominator only when declared optional.",
    "INVALID component makes scoring INVALID.",
    "Component fit MetricResults are componentOf grid.modular.system.localModularGridFit and independentVoteAllowed=false.",
    "The only independent numeric Topic9 vote is grid.modular.system.localModularGridFit with scoringGroup modular-grid-local.",
    "Raw descriptors from 9.00–9.03 do not vote separately.",
    "Derived fractions sharing the same occupancy evidence are target observations; the profile controls their weights and no additional raw occupancy vote is added.",
    "Hard-filter precedence is INVALID > REJECT > N_A > KEEP.",
    "Hard filter and numeric scoring are separate channels.",
    "A REJECT variant is excluded from ranking and never assigned score zero as a substitute.",
    "N_A != 0.",
    "Variant comparison is valid only when all compared evaluations use the same profileRef and the same deterministic targetSetFingerprint.",
    "Variant comparison ranks only KEEP evaluations with OK local numeric metric.",
    "Equal numeric fit produces tied rank; lexical variantRef is deterministic tie ordering only.",
    "Ranking meaning is EXPLICIT_TOPIC9_TARGET_FIT_ONLY and is never beauty, global composition quality or final layout acceptance.",
    "Repair requests are mutationAllowed=false and target the appropriate owner; 9.04 never mutates geometry, regions, occupancy, constraints, candidates or content.",
    "No universal preferred row count, column count, cell count, region count, free fraction, occupied fraction, square-cell ratio or candidate footprint exists.",
    "No beautyScore.",
    "A WITH_PLACEMENT_CANDIDATE variant must reject mismatched candidateSet.modularGridRef when candidateSet carries that lineage.",
    "If both variant and candidateSet carry regionSetRef, occupancyMapRef or forbiddenRegistryRef, the refs must match exactly.",
    "Target-set fingerprinting must canonicalize set-like allowedValues so semantically identical categorical targets are order-invariant."
  ],
  "hard_rules": [
    "9.04 owns explicit ModularGridVariant bundles, target observation adapters, Topic9 hard-filter interpretation, explicit-target local scoring, mutation-free repair requests, variant comparison and consolidated Topic9 regression.",
    "9.04 does not generate row/column geometry, cells, regions, occupancy maps or placement candidates.",
    "Variant construction is explicit only; no hidden Cartesian product over region sets, occupancy snapshots, candidates or style parameters.",
    "Every variant must reference one exact ModularGrid root, one exact columnGeometryRef, one exact rowGeometryRef and one exact cellSetRef.",
    "Optional regionSetRef, forbiddenRegistryRef, occupancyMapRef, candidateSetRef and placementCandidateRef must be lineage-consistent with the same CellSet.",
    "Baseline variant kinds are STRUCTURE_ONLY, WITH_REGIONS, WITH_RUNTIME_STATE and WITH_PLACEMENT_CANDIDATE.",
    "STRUCTURE_ONLY must not carry region, forbidden, occupancy or placement-candidate refs.",
    "WITH_REGIONS requires regionSetRef and may optionally carry forbiddenRegistryRef but not occupancy/candidate refs.",
    "WITH_RUNTIME_STATE requires occupancyMapRef and may carry regionSetRef/forbiddenRegistryRef but not placementCandidateRef.",
    "WITH_PLACEMENT_CANDIDATE requires candidateSetRef and placementCandidateRef; it may also carry matching occupancy/forbidden/region refs.",
    "Variant evidence is immutable and reference-based; child evidence is never copied into the variant as a new owner.",
    "All target specs are explicit and versioned.",
    "Target subjectKind is explicit and controls applicability.",
    "Baseline subject kinds are MODULAR_GRID_VARIANT, WITH_REGIONS, WITH_RUNTIME_STATE and WITH_PLACEMENT_CANDIDATE.",
    "A more specific subjectKind is N_A on a less specific variant rather than silently evaluated.",
    "Baseline target selectors are COLUMN_COUNT, ROW_COUNT, CELL_COUNT, REGION_COUNT, FORBIDDEN_CELL_FRACTION, OCCUPIED_CELL_FRACTION, FREE_CELL_FRACTION, UNKNOWN_CELL_FRACTION, MULTI_OCCUPIED_CELL_FRACTION, PLACEMENT_FOOTPRINT_CELL_COUNT, PLACEMENT_SOURCE_KIND and PLACEMENT_EVIDENCE_STATUS.",
    "Numeric target models use explicit inclusive interval [minValue,maxValue].",
    "Categorical target models use explicit allowedValues.",
    "SOFT categorical mismatch requires explicit mismatchFit in [0,1]; there is no implicit zero unless mismatchFit is explicitly zero.",
    "HARD categorical or numeric mismatch yields REJECT and never a numeric penalty.",
    "HARD target with missing evidence resolves by explicit missingEvidencePolicy INVALID or N_A; it never passes silently.",
    "SOFT target with missing evidence resolves by explicit missingEvidencePolicy INVALID or N_A; it never becomes numeric zero.",
    "No target means no score.",
    "No scoring profile means grid.modular.system.localModularGridFit = N_A.",
    "Only SOFT target components may enter the numeric profile.",
    "HARD targets are forbidden from profile weights and cannot also vote numerically.",
    "Scoring profile lists requiredTargetRefs and optionalTargetRefs explicitly.",
    "Every scored targetRef must exist exactly once in the target set.",
    "Weights must be explicit finite positive values for every required/optional target included by the profile.",
    "Undeclared target weights are invalid rather than guessed.",
    "Required target N_A makes local score N_A under baseline required-missing policy.",
    "Optional target N_A may drop from the denominator only when declared optional.",
    "INVALID component makes scoring INVALID.",
    "Component fit MetricResults are componentOf grid.modular.system.localModularGridFit and independentVoteAllowed=false.",
    "The only independent numeric Topic9 vote is grid.modular.system.localModularGridFit with scoringGroup modular-grid-local.",
    "Raw descriptors from 9.00–9.03 do not vote separately.",
    "Derived fractions sharing the same occupancy evidence are target observations; the profile controls their weights and no additional raw occupancy vote is added.",
    "Hard-filter precedence is INVALID > REJECT > N_A > KEEP.",
    "Hard filter and numeric scoring are separate channels.",
    "A REJECT variant is excluded from ranking and never assigned score zero as a substitute.",
    "N_A != 0.",
    "Variant comparison is valid only when all compared evaluations use the same profileRef and the same deterministic targetSetFingerprint.",
    "Variant comparison ranks only KEEP evaluations with OK local numeric metric.",
    "Equal numeric fit produces tied rank; lexical variantRef is deterministic tie ordering only.",
    "Ranking meaning is EXPLICIT_TOPIC9_TARGET_FIT_ONLY and is never beauty, global composition quality or final layout acceptance.",
    "Repair requests are mutationAllowed=false and target the appropriate owner; 9.04 never mutates geometry, regions, occupancy, constraints, candidates or content.",
    "No universal preferred row count, column count, cell count, region count, free fraction, occupied fraction, square-cell ratio or candidate footprint exists.",
    "No beautyScore.",
    "A WITH_PLACEMENT_CANDIDATE variant must reject mismatched candidateSet.modularGridRef when candidateSet carries that lineage.",
    "If both variant and candidateSet carry regionSetRef, occupancyMapRef or forbiddenRegistryRef, the refs must match exactly.",
    "Target-set fingerprinting must canonicalize set-like allowedValues so semantically identical categorical targets are order-invariant."
  ],
  "soft_constraints": [],
  "preferences": [],
  "overrides_allowed_by": [
    "new explicit target set/profile creates a new evaluation context",
    "new variant lineage creates a new variantRef/evaluation",
    "historical evaluations remain immutable"
  ],
  "initial_heuristics": {},
  "style_preset_values": [],
  "candidate_generation": {
    "variant_cross_product": "FORBIDDEN",
    "placement_candidate_generation": "owned by Compo9.03",
    "9.04": "evaluates explicitly supplied variants only"
  },
  "correction_policy": {
    "foreign_content_mutation": "FORBIDDEN",
    "invalid geometry/cell lineage": "route to 9.00/9.01",
    "invalid region/forbidden lineage": "route to 9.02",
    "invalid occupancy/candidate lineage": "route to 9.03",
    "invalid target/profile": "route to target/profile owner",
    "hard mismatch": "emit repair request; never auto-adjust evidence"
  },
  "deferred_inputs": [
    "global composition scoring/selection",
    "multi-content global solver",
    "style coherence integration outside Topic9"
  ],
  "recompute_when": [
    "any variant evidence ref changes",
    "target set changes",
    "scoring profile changes",
    "explicit target confidence/provenance/model changes"
  ],
  "tests": [
    "variant kind/lineage validation",
    "subject applicability",
    "numeric/categorical target observation",
    "hard filter precedence",
    "HARD never numeric",
    "SOFT interval/categorical fit",
    "required/optional profile semantics",
    "no profile N_A",
    "component/composite MetricResult policy",
    "same profile/target-set comparison guards",
    "ties",
    "rejected variant excluded",
    "repair mutation false",
    "determinism",
    "no raw descriptor/double-count/global leakage"
  ],
  "finality": "TOPIC9_EXPLICIT_VARIANT_HARD_FILTER_LOCAL_SCORING_COMPARISON_AND_REGRESSION_OWNER",
  "corrective_lineage_rules": {
    "candidate_variant_runtime_lineage": "when a candidate set records regionSetRef, occupancyMapRef or forbiddenRegistryRef and the variant also carries that ref, they must match exactly",
    "candidate_modular_lineage": "candidateSet.modularGridRef must match variant.modularGridRef when present",
    "targetSetFingerprint": "canonicalizes set-like allowedValues before hashing"
  }
}
ARCHITECTURE CHECKPOINT · 9.04 OWNS EXPLICIT MODULARGRID VARIANTS, TARGET OBSERVATION ADAPTERS, TOPIC9 HARD FILTER, EXPLICIT-TARGET LOCAL SCORING, MUTATION-FREE REPAIRS, SAME-CONTEXT COMPARISON AND CONSOLIDATED REGRESSION. NO HIDDEN VARIANT CARTESIAN GENERATION. HARD TARGET MISMATCH → REJECT, NEVER NUMERIC PENALTY. HARD FILTER PRECEDENCE = INVALID > REJECT > N/A > KEEP. NO TARGET/PROFILE → LOCALMODULARGRIDFIT=N/A. ONLY SOFT TARGETS MAY BECOME COMPONENT FITS. COMPONENT FITS ARE COMPONENTOF GRID.MODULAR.SYSTEM.LOCALMODULARGRIDFIT AND INDEPENDENTVOTEALLOWED=FALSE. THE ONLY INDEPENDENT NUMERIC TOPIC9 VOTE IS GRID.MODULAR.SYSTEM.LOCALMODULARGRIDFIT, SCORINGGROUP MODULAR-GRID-LOCAL. REJECTED VARIANTS ARE EXCLUDED FROM RANKING, NOT SCORED AS ZERO. COMPARISON REQUIRES SAME PROFILEREF + SAME TARGETSETFINGERPRINT. RANKING MEANS EXPLICIT TOPIC9 TARGET FIT ONLY, NOT BEAUTY/GLOBAL QUALITY/FINAL ACCEPTANCE. REPAIR REQUEST != MUTATION. N/A != 0. NO BEAUTYSCORE.
VISITS / ...