COMPO · 11.04 · CANDIDATES / SCORING / TESTS

Landmark
candidates
and fit.

Final local layer of Topic 11. Explicitly applicable landmarks can become bounded deterministic candidate anchors; AVOID landmarks do not become candidate anchors. Numeric fit exists only under an explicit common metric context and explicit ATTRACT/AVOID target parameters. HARD avoidance rejects before scoring. No family receives a hidden bonus. The sole independent numeric Topic11 vote is landmark.system.localLandmarkFit.

ModuleCompo 11.04
Candidatesbounded + seeded
Hardavoidance filter
Vote1 independent
ScoringGrouplandmark-local
NextSTOP

Candidate + target + local fit

00 / final local layer

11.04 is the only Topic11 module allowed to generate candidate anchors and numeric landmark-fit votes.

BOUNDED

seeded candidate anchors

HARD

avoidance filter first

1 VOTE

localLandmarkFit

Eligible references only

01 / candidate generation

Candidate anchors are exact references to applicable non-AVOID landmarks. They are not moved positions or final layout choices.

eligible: status = OK decision = APPLICABLE AND useIntent explicitly included: ATTRACT NEUTRAL UNSPECIFIED excluded: NOT_APPLICABLE AVOID one candidate anchor per unique landmarkRef NO CARTESIAN PRODUCT

Preserve source geometry

02 / anchor schema

Point stays point, line stays line, boundary stays boundary.

LandmarkCandidateAnchor {
  candidateAnchorRef,
  generationProfileRef,

  landmarkRef,
  familyRef,
  familyMemberRef,

  geometryKind,
  anchorGeometry,

  sourceEvaluationRefs[],
  sourcePolicyRefs[],
  roleEvidenceRef,

  confidence,

  candidateMeaning:
    LANDMARK_REFERENCE_ONLY,

  score: null,
  mutationAllowed: false
}

Deduplicate, then prune

03 / bounded diversity

If a budget is exceeded, pruning is deterministic and family-diverse rather than based on hidden quality.

1. filter eligible 2. family allowlist 3. dedupe landmarkRef 4. bucket by familyRef 5. seeded stable-hash order inside each family 6. seeded family traversal 7. round-robin until maxCandidateAnchors family traversal != preference pruning != rejection by quality

Intent determines target mode

04 / explicit targets

11.04 never invents a numeric target from the family name.

11.03 intent11.04 targetEffect
ATTRACT / SOFTATTRACT_DISTANCEsoft fit
AVOID / SOFTAVOID_DISTANCE_SOFTsoft fit
AVOID / HARDAVOID_CLEARANCE_HARDhard reject/pass
NEUTRAL / nullnoneno numeric vote

Explicit near-target fit

05 / ATTRACT

Nearness becomes desirable only because an explicit target says so.

errorDistance = max( 0, metricDistance - deadbandDistance ) fit = 1 - clamp( errorDistance / falloffDistance, 0, 1 )

Soft clearance or hard exclusion

06 / AVOID

Controlled avoidance uses explicit clearance.

SOFT: deficitDistance = max( 0, clearanceDistance - metricDistance ) if deficitDistance = 0: fit = 1 else: fit = 1 - clamp( deficitDistance / falloffDistance, 0, 1 ) HARD: metricDistance >= clearanceDistance → PASS else → REJECT → no numeric component

One common metric context

07 / scoring space

Canonical scoring v1.0 does not mix raw axis fractions.

required for every scored target: metricDistanceStatus = OK same: metricContextRef distanceSpaceRef metricUnitRef axis-fraction-only descriptor: diagnostic NOT a scoring vote

Required and optional are explicit

08 / profile

A missing required target remains N_A.

LandmarkFitProfile {
  profileRef,

  requiredTargetRefs[],
  optionalTargetRefs[],

  weightsByTargetRef,

  requiredMetricContextRef,
  requiredDistanceSpaceRef,
  requiredMetricUnitRef,

  confidencePolicy:
    MIN_INCLUDED_COMPONENTS_LOCAL,

  semanticConstraintRefs[]?
}

One independent Topic11 vote

09 / metric ownership

Per-target numeric fits are already components of the composite.

landmark.system.localLandmarkFit owner = Compo11.04 composite = true scoringGroup = landmark-local independentVoteAllowed = true landmark.target.componentFit.<targetRef> owner = Compo11.04 componentOf = landmark.system.localLandmarkFit scoringGroup = landmark-local independentVoteAllowed = false

INVALID > REJECT > N_A > KEEP

10 / status

Status is never synthesized from numeric zero.

INVALID malformed/incompatible evidence REJECT explicit HARD avoidance fails N_A required evidence unavailable or no numeric SOFT components KEEP valid + hard filter passed + numeric composite available

Same target context only

11 / comparison

Ranking is local explicit landmark-target fit, nothing more.

compare only if: profileRef A = profileRef B AND targetSetFingerprint A = targetSetFingerprint B rankable: KEEP + composite.status = OK meaning: EXPLICIT_TOPIC11_ LANDMARK_TARGET_FIT_ONLY not: beauty final layout quality global acceptance

No hidden thirds bias

12 / family firewall

Family names never become weights.

THIRDS no automatic multiplier QUARTERS no automatic multiplier CENTER no automatic multiplier EDGE no automatic multiplier candidate count no vote nearest landmark no automatic preference

Request, never mutate

13 / corrections

Candidate or target disagreement creates a linked correction record.

LandmarkCorrectionRequest {
  correctionRequestRef,
  resultRef?,
  candidateAnchorRef?,
  targetRef?,
  reasonCode,
  targetOwnerRef,
  evidenceRefs[],
  suggestedAction,

  mutationAllowed: false
}

Candidates, rejects and scores become evidence

14 / IDEAS + DATA

Topic11 now emits enough structured evidence for future human calibration and model training.

DATA: candidate eligibility dedupe pruning target parameters hard decisions soft components composite N_A rankings corrections human reasons LAB: thresholds pruning family comparisons disagreement capture BUT: EXPERIMENT != CANON

Same landmark, opposite explicit intent

15 / Visual Lab

Geometry does not change; explicit policy/target changes how local fit is interpreted.

A · ATTRACT explicit ATTRACT target → near can score high B · AVOID SOFT explicit clearance → farther can score high C · AVOID HARD inside clearance → REJECT, not score 0 D · CANDIDATE GENERATION eligible → dedupe landmarkRef → family buckets → seeded order → round-robin → bounded set NO Cartesian product · NO family quality ranking only independent Topic11 vote: landmark.system.localLandmarkFit target components are componentOf composite · independentVoteAllowed=false local fit != beauty != global quality != final layout selection

11.04 regression

16 / deterministic tests

Tests cover bounded candidate generation, dedupe/diversity pruning, explicit target modes, hard filtering, N/A semantics, single-vote ownership and comparison guards.

Tests not run yet.

DATA FOR LAYOUT ENGINE

17 / machine contract

Machine-readable 11.04 contract.

{
  "module": "Compo 11.04",
  "name": "candidate_generation_scoring_tests",
  "version": "1.0-canonical",
  "canonical_main_title": "Candidate generation, scoring/tests",
  "topic": "11_СИЛЬНЫЕ_ТОЧКИ_ПОЛЯ_И_ПРАВИЛО_ТРЕТЕЙ",
  "scope": "BOUNDED_CANDIDATE_ANCHORS_EXPLICIT_DISTANCE_TARGETS_HARD_FILTER_LOCAL_LANDMARK_SCORING_COMPARISON_AND_TESTS",
  "review_basis": {
    "previous_modules": [
      "Compo11.00 FieldLandmark schema",
      "Compo11.01 Thirds/quarters/center/edge landmarks",
      "Compo11.02 Distance-to-landmark descriptors",
      "Compo11.03 Role applicability and controlled avoidance"
    ],
    "cross_cutting_instruction": "COMPO project instruction v2.0 IDEAS/LAB/DATA-aware"
  },
  "consumes": [
    "Compo11.00/11.01 FieldLandmark evidence",
    "Compo11.02 LandmarkDistanceDescriptor",
    "Compo11.03 LandmarkApplicabilityEvaluation",
    "LandmarkCandidateGenerationProfile",
    "LandmarkFitProfile",
    "LandmarkFitTargetSpec[]",
    "optional opaque semanticConstraintRefs[]"
  ],
  "provides": [
    "LandmarkCandidateAnchor[]",
    "LandmarkCandidateGenerationResult",
    "LandmarkFitTargetEvaluation[]",
    "LandmarkHardFilterResult",
    "landmark.system.localLandmarkFit",
    "LandmarkFitEvaluationResult",
    "LandmarkCorrectionRequest",
    "same-context Topic11 comparison/ranking"
  ],
  "owns_metrics": [
    "landmark.system.localLandmarkFit",
    "landmark.target.componentFit.<targetRef>"
  ],
  "descriptors_only": [
    "landmark.candidate.candidateAnchorRef",
    "landmark.candidate.pruningStatus",
    "landmark.candidate.sourceEvaluationRefs",
    "landmark.target.errorDistance",
    "landmark.target.deficitDistance",
    "landmark.target.hardDecision",
    "landmark.evaluation.status",
    "landmark.evaluation.targetSetFingerprint"
  ],
  "candidate_generation_profile_schema": {
    "generationProfileRef": "stable explicit profile",
    "includeUseIntents": "non-empty subset of ATTRACT|NEUTRAL|UNSPECIFIED",
    "familyAllowlist": "optional exact familyRef set; empty/null means no family restriction",
    "maxCandidateAnchors": "positive integer",
    "seed": "integer",
    "dedupeKey": "landmarkRef",
    "diversityPruning": "SEEDED_FAMILY_ROUND_ROBIN",
    "mutationAllowed": false
  },
  "candidate_anchor_schema": {
    "candidateAnchorRef": "stable identity from generation profile + landmarkRef + canonical anchor geometry",
    "generationProfileRef": "exact profile",
    "landmarkRef": "exact source landmark",
    "familyRef": "source family",
    "familyMemberRef": "source member",
    "geometryKind": "POINT_UV|U_CONST_LINE|V_CONST_LINE|BOUNDARY_FEATURE_REF",
    "anchorGeometry": "exact source geometry; no conversion",
    "sourceEvaluationRefs": "all compatible applicability evaluation refs merged by dedupe",
    "sourcePolicyRefs": "policy lineage",
    "roleEvidenceRef": "coherent subject-role context",
    "confidence": "minimum source evidence confidence",
    "candidateMeaning": "LANDMARK_REFERENCE_ONLY",
    "score": "not owned by candidate record",
    "mutationAllowed": false
  },
  "target_modes": {
    "ATTRACT_DISTANCE": {
      "requiresUseIntent": "ATTRACT",
      "requiresDirectiveMode": "SOFT",
      "fields": [
        "deadbandDistance",
        "falloffDistance"
      ],
      "formula": "1-clamp(max(0,distance-deadbandDistance)/falloffDistance,0,1)"
    },
    "AVOID_DISTANCE_SOFT": {
      "requiresUseIntent": "AVOID",
      "requiresDirectiveMode": "SOFT",
      "fields": [
        "clearanceDistance",
        "falloffDistance"
      ],
      "formula": "1 if distance>=clearance; else 1-clamp((clearance-distance)/falloffDistance,0,1)"
    },
    "AVOID_CLEARANCE_HARD": {
      "requiresUseIntent": "AVOID",
      "requiresDirectiveMode": "HARD",
      "fields": [
        "clearanceDistance"
      ],
      "hardPass": "metricDistance>=clearanceDistance"
    }
  },
  "fit_profile_schema": {
    "profileRef": "stable explicit scoring profile",
    "requiredTargetRefs": "unique set-like refs",
    "optionalTargetRefs": "unique set-like refs",
    "weightsByTargetRef": "positive finite weights for SOFT numeric targets only",
    "requiredMetricContextRef": "exact metric context",
    "requiredDistanceSpaceRef": "exact distance space",
    "requiredMetricUnitRef": "exact common metric unit",
    "confidencePolicy": "MIN_INCLUDED_COMPONENTS_LOCAL",
    "semanticConstraintRefs": "opaque optional refs"
  },
  "metric_contract": {
    "composite": {
      "key": "landmark.system.localLandmarkFit",
      "owner": "Compo11.04",
      "composite": true,
      "componentOf": null,
      "scoringGroup": "landmark-local",
      "independentVoteAllowed": true
    },
    "component": {
      "key": "landmark.target.componentFit.<targetRef>",
      "owner": "Compo11.04",
      "composite": false,
      "componentOf": "landmark.system.localLandmarkFit",
      "scoringGroup": "landmark-local",
      "independentVoteAllowed": false
    }
  },
  "status_precedence": [
    "INVALID",
    "REJECT",
    "N_A",
    "KEEP"
  ],
  "comparison_policy": {
    "requires_same_profileRef": true,
    "requires_same_targetSetFingerprint": true,
    "rankable": "KEEP + composite MetricResult status=OK only",
    "ties": "same numeric rank",
    "lexical_order": "presentation only",
    "meaning": "EXPLICIT_TOPIC11_LANDMARK_TARGET_FIT_ONLY"
  },
  "confidence_policy": {
    "candidate": "MIN_SOURCE_EVIDENCE_LOCAL",
    "component": "MIN_RELEVANT_INPUTS_LOCAL",
    "composite": "MIN_INCLUDED_COMPONENTS_LOCAL",
    "provenance": "IMPLEMENTATION_HEURISTIC",
    "scope": "Compo11.04 only; not a universal COMPO confidence law"
  },
  "metric_policy": {
    "no_profile": "composite N_A",
    "hard_mismatch": "REJECT; no numeric target vote",
    "required_N_A": "composite N_A unless INVALID/REJECT",
    "optional_N_A": "drop denominator only because optional is explicit",
    "no_soft_components": "composite N_A",
    "family_auto_weights": "FORBIDDEN",
    "candidate_count_vote": "FORBIDDEN",
    "beautyScore": "FORBIDDEN"
  },
  "hard_constraints": [
    "11.04 owns Topic11 candidate-anchor generation, explicit distance-target interpretation, hard filtering, local landmark-fit components, the single independent Topic11 composite score, same-context comparison and consolidated Topic11 scoring tests.",
    "11.04 consumes FieldLandmark from 11.00/11.01, distance descriptors from 11.02 and applicability/use-intent evaluations from 11.03; it does not recompute their geometry, distance or policy matching.",
    "11.04 does not redefine THIRDS, QUARTERS, CENTER or EDGE coordinates.",
    "11.04 does not infer subject roles or semantic meaning.",
    "11.04 does not mutate object/text/grid/canvas/domain geometry.",
    "Candidate generation is bounded, deterministic, seeded, deduplicated, lineage-aware and diversity-pruned.",
    "Candidate generation is O(number of supplied applicability evaluations); no Cartesian product is generated.",
    "Candidate generation accepts only 11.03 evaluations with status OK and decision APPLICABLE.",
    "NOT_APPLICABLE evaluations never generate candidate anchors.",
    "AVOID evaluations never generate candidate anchors.",
    "ATTRACT evaluations may generate candidate anchors only when the generation profile explicitly includes ATTRACT.",
    "NEUTRAL evaluations may generate candidate anchors only when the generation profile explicitly includes NEUTRAL.",
    "APPLICABLE evaluations with no useIntent may generate candidate anchors only when the generation profile explicitly includes UNSPECIFIED.",
    "Candidate generation from a landmark is an exact reference candidate; it does not move a subject.",
    "POINT_UV candidate anchor preserves exact landmark point geometry.",
    "U_CONST_LINE and V_CONST_LINE candidate anchors preserve exact line-reference geometry and are not converted to points.",
    "BOUNDARY_FEATURE_REF candidate anchors preserve exact boundary feature references and are not converted to numeric edges.",
    "CandidateAnchor existence is not a score and does not imply final selection.",
    "CandidateAnchor confidence is evidence confidence only.",
    "Candidate generation profile must explicitly declare includeUseIntents and maxCandidateAnchors.",
    "maxCandidateAnchors must be a positive integer.",
    "If deduplicated candidate anchors exceed maxCandidateAnchors, 11.04 applies deterministic diversity pruning by family.",
    "Diversity pruning uses family buckets and seeded stable-hash order within each bucket; round-robin family traversal does not imply family preference.",
    "Family traversal order for pruning is seeded/deterministic and presentation-only; it is not a score.",
    "Candidate anchors with the same canonical landmarkRef are deduplicated and aggregate evidence refs.",
    "Candidate generation requires one coherent roleEvidenceRef and policyRef across supplied applicability evaluations.",
    "Mixed roleEvidenceRef or policyRef in one generation request is INVALID.",
    "Candidate generation profile familyAllowlist is optional; when present it is exact and explicit.",
    "No default family is universally preferred.",
    "11.04 scoring requires explicit LandmarkFitTargetSpec records.",
    "No LandmarkFitProfile means local landmark composite is N_A.",
    "A target binds to an exact applicabilityEvaluationRef and exact distanceDescriptorRef.",
    "The applicability evaluation and distance descriptor must refer to the same landmarkRef and compatible subject evidence lineage.",
    "Only 11.03 decision APPLICABLE can enter target scoring.",
    "NOT_APPLICABLE target input is N_A/INVALID according to explicit profile policy and never numeric zero.",
    "A target with useIntent ATTRACT must use ATTRACT_DISTANCE target mode.",
    "A target with useIntent AVOID and directiveMode SOFT must use AVOID_DISTANCE_SOFT target mode.",
    "A target with useIntent AVOID and directiveMode HARD must use AVOID_CLEARANCE_HARD target mode.",
    "NEUTRAL or null useIntent produces no numeric target vote in v1.0.",
    "11.04 does not silently invent a target for NEUTRAL or unspecified applicability.",
    "All numeric target scoring requires distanceDescriptor.metricDistanceStatus=OK.",
    "Axis-fraction-only distance descriptors are diagnostic but do not enter the canonical Topic11 composite score in v1.0.",
    "All scored targets in one LandmarkFitProfile must share the same metricContextRef, distanceSpaceRef and metricUnitRef.",
    "ATTRACT_DISTANCE requires deadbandDistance>=0 and falloffDistance>0.",
    "ATTRACT_DISTANCE errorDistance = max(0, metricDistance - deadbandDistance).",
    "ATTRACT_DISTANCE fit = 1 - clamp(errorDistance/falloffDistance,0,1).",
    "AVOID_DISTANCE_SOFT requires clearanceDistance>=0 and falloffDistance>0.",
    "AVOID_DISTANCE_SOFT deficitDistance = max(0, clearanceDistance - metricDistance).",
    "AVOID_DISTANCE_SOFT fit = 1 when deficitDistance=0, otherwise 1-clamp(deficitDistance/falloffDistance,0,1).",
    "AVOID_CLEARANCE_HARD requires clearanceDistance>=0.",
    "AVOID_CLEARANCE_HARD passes when metricDistance>=clearanceDistance.",
    "AVOID_CLEARANCE_HARD failure produces REJECT and no numeric component vote.",
    "Hard rejection is not numeric score 0.",
    "Distance zero under ATTRACT may score 1 only because an explicit target profile defines that target; zero is not universally good.",
    "Distance zero under AVOID may score poorly or reject only because an explicit target profile defines avoidance clearance; zero is not universally bad.",
    "Target weights are explicit positive finite values for SOFT numeric targets only.",
    "HARD targets must not have voting weight.",
    "Profile requiredTargetRefs and optionalTargetRefs are unique, disjoint and set-like.",
    "Every target in an evaluation request must be explicitly listed as required or optional in the profile.",
    "Required target N_A makes the composite N_A unless INVALID or REJECT has higher precedence.",
    "Optional target N_A may be omitted from the numeric denominator only because optionality is explicit.",
    "INVALID > REJECT > N_A > KEEP is the bundle status precedence.",
    "Rejected, invalid and N_A results are never converted to numeric zero.",
    "If no applicable SOFT numeric components remain, the local composite is N_A.",
    "The only independent numeric Topic11 vote is landmark.system.localLandmarkFit.",
    "landmark.system.localLandmarkFit is owned by Compo11.04 with scoringGroup landmark-local.",
    "Per-target components use landmark.target.componentFit.<targetRef>.",
    "Per-target components have componentOf=landmark.system.localLandmarkFit and independentVoteAllowed=false.",
    "Raw distances, family identity, applicability, ATTRACT/AVOID labels, candidate counts and pruning outcomes do not vote independently.",
    "No family gets an automatic multiplier because it is THIRDS, CENTER, QUARTERS or EDGE.",
    "No universal rule says more landmark candidates are better.",
    "No universal rule says fewer landmark candidates are better.",
    "No universal rule says nearest landmark is better.",
    "No universal rule says center is better.",
    "No universal rule says thirds are better.",
    "No universal beautyScore is introduced.",
    "Comparison/ranking requires the same profileRef and same targetSetFingerprint.",
    "Only KEEP results with composite MetricResult status OK participate in numeric ranking.",
    "Ties share rank; lexical resultRef is display order only.",
    "Ranking means EXPLICIT_TOPIC11_LANDMARK_TARGET_FIT_ONLY, not beauty, global quality or final acceptance.",
    "Candidate anchors and local fit are local evidence; final layout selection remains outside Topic11.",
    "Correction requests are owner-qualified and mutationAllowed=false.",
    "SemanticConstraintRefs remain separate evidence and cannot be converted into hidden priority.",
    "Module execution order is not rule priority.",
    "IDEA != CANON.",
    "EXPERIMENT != CANON.",
    "All profiles, targets, candidate lineage, pruning decisions, hard decisions, components, composite metrics, corrections and human feedback hooks must be serializable.",
    "N/A != 0."
  ],
  "hard_rules": [
    "11.04 owns Topic11 candidate-anchor generation, explicit distance-target interpretation, hard filtering, local landmark-fit components, the single independent Topic11 composite score, same-context comparison and consolidated Topic11 scoring tests.",
    "11.04 consumes FieldLandmark from 11.00/11.01, distance descriptors from 11.02 and applicability/use-intent evaluations from 11.03; it does not recompute their geometry, distance or policy matching.",
    "11.04 does not redefine THIRDS, QUARTERS, CENTER or EDGE coordinates.",
    "11.04 does not infer subject roles or semantic meaning.",
    "11.04 does not mutate object/text/grid/canvas/domain geometry.",
    "Candidate generation is bounded, deterministic, seeded, deduplicated, lineage-aware and diversity-pruned.",
    "Candidate generation is O(number of supplied applicability evaluations); no Cartesian product is generated.",
    "Candidate generation accepts only 11.03 evaluations with status OK and decision APPLICABLE.",
    "NOT_APPLICABLE evaluations never generate candidate anchors.",
    "AVOID evaluations never generate candidate anchors.",
    "ATTRACT evaluations may generate candidate anchors only when the generation profile explicitly includes ATTRACT.",
    "NEUTRAL evaluations may generate candidate anchors only when the generation profile explicitly includes NEUTRAL.",
    "APPLICABLE evaluations with no useIntent may generate candidate anchors only when the generation profile explicitly includes UNSPECIFIED.",
    "Candidate generation from a landmark is an exact reference candidate; it does not move a subject.",
    "POINT_UV candidate anchor preserves exact landmark point geometry.",
    "U_CONST_LINE and V_CONST_LINE candidate anchors preserve exact line-reference geometry and are not converted to points.",
    "BOUNDARY_FEATURE_REF candidate anchors preserve exact boundary feature references and are not converted to numeric edges.",
    "CandidateAnchor existence is not a score and does not imply final selection.",
    "CandidateAnchor confidence is evidence confidence only.",
    "Candidate generation profile must explicitly declare includeUseIntents and maxCandidateAnchors.",
    "maxCandidateAnchors must be a positive integer.",
    "If deduplicated candidate anchors exceed maxCandidateAnchors, 11.04 applies deterministic diversity pruning by family.",
    "Diversity pruning uses family buckets and seeded stable-hash order within each bucket; round-robin family traversal does not imply family preference.",
    "Family traversal order for pruning is seeded/deterministic and presentation-only; it is not a score.",
    "Candidate anchors with the same canonical landmarkRef are deduplicated and aggregate evidence refs.",
    "Candidate generation requires one coherent roleEvidenceRef and policyRef across supplied applicability evaluations.",
    "Mixed roleEvidenceRef or policyRef in one generation request is INVALID.",
    "Candidate generation profile familyAllowlist is optional; when present it is exact and explicit.",
    "No default family is universally preferred.",
    "11.04 scoring requires explicit LandmarkFitTargetSpec records.",
    "No LandmarkFitProfile means local landmark composite is N_A.",
    "A target binds to an exact applicabilityEvaluationRef and exact distanceDescriptorRef.",
    "The applicability evaluation and distance descriptor must refer to the same landmarkRef and compatible subject evidence lineage.",
    "Only 11.03 decision APPLICABLE can enter target scoring.",
    "NOT_APPLICABLE target input is N_A/INVALID according to explicit profile policy and never numeric zero.",
    "A target with useIntent ATTRACT must use ATTRACT_DISTANCE target mode.",
    "A target with useIntent AVOID and directiveMode SOFT must use AVOID_DISTANCE_SOFT target mode.",
    "A target with useIntent AVOID and directiveMode HARD must use AVOID_CLEARANCE_HARD target mode.",
    "NEUTRAL or null useIntent produces no numeric target vote in v1.0.",
    "11.04 does not silently invent a target for NEUTRAL or unspecified applicability.",
    "All numeric target scoring requires distanceDescriptor.metricDistanceStatus=OK.",
    "Axis-fraction-only distance descriptors are diagnostic but do not enter the canonical Topic11 composite score in v1.0.",
    "All scored targets in one LandmarkFitProfile must share the same metricContextRef, distanceSpaceRef and metricUnitRef.",
    "ATTRACT_DISTANCE requires deadbandDistance>=0 and falloffDistance>0.",
    "ATTRACT_DISTANCE errorDistance = max(0, metricDistance - deadbandDistance).",
    "ATTRACT_DISTANCE fit = 1 - clamp(errorDistance/falloffDistance,0,1).",
    "AVOID_DISTANCE_SOFT requires clearanceDistance>=0 and falloffDistance>0.",
    "AVOID_DISTANCE_SOFT deficitDistance = max(0, clearanceDistance - metricDistance).",
    "AVOID_DISTANCE_SOFT fit = 1 when deficitDistance=0, otherwise 1-clamp(deficitDistance/falloffDistance,0,1).",
    "AVOID_CLEARANCE_HARD requires clearanceDistance>=0.",
    "AVOID_CLEARANCE_HARD passes when metricDistance>=clearanceDistance.",
    "AVOID_CLEARANCE_HARD failure produces REJECT and no numeric component vote.",
    "Hard rejection is not numeric score 0.",
    "Distance zero under ATTRACT may score 1 only because an explicit target profile defines that target; zero is not universally good.",
    "Distance zero under AVOID may score poorly or reject only because an explicit target profile defines avoidance clearance; zero is not universally bad.",
    "Target weights are explicit positive finite values for SOFT numeric targets only.",
    "HARD targets must not have voting weight.",
    "Profile requiredTargetRefs and optionalTargetRefs are unique, disjoint and set-like.",
    "Every target in an evaluation request must be explicitly listed as required or optional in the profile.",
    "Required target N_A makes the composite N_A unless INVALID or REJECT has higher precedence.",
    "Optional target N_A may be omitted from the numeric denominator only because optionality is explicit.",
    "INVALID > REJECT > N_A > KEEP is the bundle status precedence.",
    "Rejected, invalid and N_A results are never converted to numeric zero.",
    "If no applicable SOFT numeric components remain, the local composite is N_A.",
    "The only independent numeric Topic11 vote is landmark.system.localLandmarkFit.",
    "landmark.system.localLandmarkFit is owned by Compo11.04 with scoringGroup landmark-local.",
    "Per-target components use landmark.target.componentFit.<targetRef>.",
    "Per-target components have componentOf=landmark.system.localLandmarkFit and independentVoteAllowed=false.",
    "Raw distances, family identity, applicability, ATTRACT/AVOID labels, candidate counts and pruning outcomes do not vote independently.",
    "No family gets an automatic multiplier because it is THIRDS, CENTER, QUARTERS or EDGE.",
    "No universal rule says more landmark candidates are better.",
    "No universal rule says fewer landmark candidates are better.",
    "No universal rule says nearest landmark is better.",
    "No universal rule says center is better.",
    "No universal rule says thirds are better.",
    "No universal beautyScore is introduced.",
    "Comparison/ranking requires the same profileRef and same targetSetFingerprint.",
    "Only KEEP results with composite MetricResult status OK participate in numeric ranking.",
    "Ties share rank; lexical resultRef is display order only.",
    "Ranking means EXPLICIT_TOPIC11_LANDMARK_TARGET_FIT_ONLY, not beauty, global quality or final acceptance.",
    "Candidate anchors and local fit are local evidence; final layout selection remains outside Topic11.",
    "Correction requests are owner-qualified and mutationAllowed=false.",
    "SemanticConstraintRefs remain separate evidence and cannot be converted into hidden priority.",
    "Module execution order is not rule priority.",
    "IDEA != CANON.",
    "EXPERIMENT != CANON.",
    "All profiles, targets, candidate lineage, pruning decisions, hard decisions, components, composite metrics, corrections and human feedback hooks must be serializable.",
    "N/A != 0."
  ],
  "soft_constraints": [],
  "preferences": [],
  "overrides_allowed_by": [
    "a different explicit generation profile creates a different candidate context",
    "a different explicit LandmarkFitProfile creates a different local scoring context",
    "new upstream landmark/distance/applicability evidence creates new lineage",
    "future global/context owners may consume the local score but do not change 11.04 ownership"
  ],
  "initial_heuristics": {
    "candidate_diversity_pruning": {
      "value": "seeded family round-robin after dedupe when budget is exceeded",
      "provenance": "IMPLEMENTATION_HEURISTIC",
      "warning": "budget/diversity mechanism only; family traversal is not preference"
    },
    "confidence_policy": {
      "value": "MIN_RELEVANT_INPUTS_LOCAL / MIN_INCLUDED_COMPONENTS_LOCAL",
      "provenance": "IMPLEMENTATION_HEURISTIC",
      "warning": "local conservative propagation only"
    }
  },
  "style_preset_values": [],
  "candidate_generation": {
    "input_complexity": "O(n evaluations)",
    "cartesian_generation": "FORBIDDEN",
    "deduplication": "landmarkRef",
    "bounded": true,
    "seeded": true,
    "diversity_pruned": true,
    "lineage_aware": true,
    "final_layout_selection": "NOT_OWNED"
  },
  "correction_policy": {
    "foreign_mutation": "FORBIDDEN",
    "candidate_disagreement": "owner-qualified correction request to generation profile/policy owner",
    "wrong_target": "correction request to scoring profile owner",
    "wrong_threshold": "correction request to scoring profile owner",
    "wrong_upstream_distance": "correction request to 11.02 evidence owner",
    "wrong_applicability": "correction request to 11.03 policy owner",
    "semantic_conflict": "defer; do not invent priority"
  },
  "deferred_inputs": [
    "global composition aggregation outside Topic11",
    "future canonical cross-rule priority/relaxation owner"
  ],
  "ideas_refs": [
    "IDEA-01",
    "IDEA-02",
    "IDEA-03",
    "IDEA-04",
    "IDEA-05",
    "IDEA-06",
    "IDEA-07"
  ],
  "ideas_impact": {
    "IDEA-01": "human tests can compare candidate/scoring outputs against perception",
    "IDEA-02": "semantic refs remain explicit inputs and can block downstream use through their owner",
    "IDEA-03": "local hard filter is not global rule priority",
    "IDEA-04": "candidate/reject/component/composite data becomes training evidence",
    "IDEA-05": "human corrections preserve disagreement reasons",
    "IDEA-06": "candidate/scoring results are serialization-ready",
    "IDEA-07": "future graphics-for-post-text pipeline can consume Topic11 candidate anchors in LAB/downstream integration"
  },
  "data_capture": [
    "generationProfileRef/includeUseIntents/familyAllowlist/maxCandidateAnchors/seed",
    "eligible/deduped/pruned candidate refs",
    "candidate sourceEvaluationRefs/policy refs/roleEvidenceRef",
    "pruning bucket/family decisions and deterministic order evidence",
    "fit profile/target refs/modes/weights",
    "metric context/distance space/unit",
    "distance descriptor refs and metricDistance",
    "deadband/clearance/falloff",
    "hard decisions",
    "component fits",
    "composite metric",
    "required/optional N_A",
    "comparison context/ranks",
    "repair refs",
    "human feedback reasons"
  ],
  "deferred_semantic_inputs": [
    "semanticConstraintRefs[]",
    "semanticSensitiveZoneRef?",
    "intentRef?",
    "contentRoleRef?",
    "readingOrderRef?"
  ],
  "human_feedback_hooks": [
    "CANDIDATE_ANCHOR_WRONG",
    "CANDIDATE_MISSING",
    "CANDIDATE_SHOULD_HAVE_BEEN_PRUNED",
    "CANDIDATE_SHOULD_NOT_HAVE_BEEN_PRUNED",
    "LANDMARK_TARGET_WRONG",
    "ATTRACT_THRESHOLD_WRONG",
    "AVOID_CLEARANCE_WRONG",
    "TARGET_WEIGHT_WRONG",
    "LOCAL_LANDMARK_SCORE_MISLEADING",
    "WRONG_RANKING_FOR_CONTEXT",
    "SEMANTIC_CONFLICT",
    "OTHER"
  ],
  "conflict_priority_assumptions": [
    "module execution order is not priority",
    "11.04 hard filtering precedes 11.04 soft aggregation only within the explicit Topic11 local pipeline",
    "local landmark score does not override foreign hard safe-zone/semantic constraints",
    "HARD AVOID does not establish global priority outside Topic11",
    "candidate generation is not final layout selection",
    "family identity does not create implicit weight"
  ],
  "lab_hooks": [
    "LAB: human calibration of attract deadband/falloff",
    "LAB: human calibration of avoidance clearance/falloff",
    "LAB: candidate diversity pruning experiments",
    "LAB: compare thirds/quarters/center/edge under equal weights",
    "LAB: intentional avoidance cases",
    "LAB: local ranking disagreement capture",
    "LAB: downstream text-to-graphic candidate experiments as EXPERIMENT only"
  ],
  "recompute_when": [
    "landmark evidence changes",
    "distance descriptor changes",
    "applicability/use-intent evaluation changes",
    "generation profile/budget/seed changes",
    "fit profile/targets/weights/thresholds change",
    "metric context changes"
  ],
  "tests": [
    "candidate eligibility",
    "candidate exact geometry",
    "dedupe",
    "seeded diversity pruning",
    "candidate budget",
    "mixed-context rejection",
    "target validation",
    "intent/mode compatibility",
    "metric-context guards",
    "attract soft fit",
    "avoid soft fit",
    "avoid hard reject/pass",
    "N_A precedence",
    "optional denominator",
    "one independent composite vote",
    "componentOf/no double counting",
    "target-set fingerprint invariance",
    "same-context comparison/ties",
    "repair mutation false",
    "semantic/data/human/LAB hooks",
    "N_A != 0",
    "no beautyScore"
  ],
  "finality": "TOPIC11_CANDIDATE_ANCHORS_EXPLICIT_LOCAL_LANDMARK_TARGET_EVALUATION_AND_SCORE_ONLY"
}
ARCHITECTURE CHECKPOINT · 11.04 OWNS BOUNDED/SEEDED/DEDUPED/DIVERSITY-PRUNED LANDMARK CANDIDATE ANCHORS + EXPLICIT DISTANCE TARGETS + HARD AVOIDANCE FILTER + LOCAL COMPONENT FITS + THE SINGLE INDEPENDENT TOPIC11 COMPOSITE landmark.system.localLandmarkFit + SAME-CONTEXT COMPARISON. NO CARTESIAN PRODUCT. AVOID NEVER GENERATES CANDIDATE ANCHOR. ATTRACT/NEUTRAL/UNSPECIFIED REQUIRE EXPLICIT GENERATION PROFILE. ALL NUMERIC SCORING REQUIRES COMMON metricContextRef / distanceSpaceRef / metricUnitRef. HARD FAIL → REJECT, NEVER SCORE 0. REQUIRED N_A REMAINS N_A. OPTIONAL N_A MAY DROP DENOMINATOR ONLY EXPLICITLY. COMPONENTS ARE componentOf COMPOSITE AND independentVoteAllowed=false. THIRDS/CENTER/QUARTERS/EDGE GET NO AUTOMATIC WEIGHTS. CANDIDATE COUNT != VOTE. LOCAL RANK != BEAUTY/GLOBAL QUALITY/FINAL LAYOUT. NO FOREIGN MUTATION. MODULE ORDER != PRIORITY. IDEA != CANON. EXPERIMENT != CANON. N/A != 0. NO BEAUTYSCORE.
VISITS / ...