COMPO · 17.04 · TOLERANCE, SCORING AND TESTS

Explicit tolerance.
One local vote.

17.04 завершает Topic 17: применяет только явно объявленные tolerance profiles к ordered ratios, оценивает explicit style/context targets через canonical MetricResult и создаёт bounded owner-routed repair requests. Никаких универсальных «красивых» пропорций или второго независимого score здесь нет.

ModuleCompo 17.04
Toleranceexplicit only
Components4 dependent
Independent1 composite
Generatorbounded
Topic 175/5 local

Tolerance is declared, never assumed

00 / contract
17.00 reference ratios + 17.01 / 17.02 ordered observations + 17.03 exact families / repeated systems + explicit 17.04 tolerance + target + evaluation profiles → component MetricResults → ONE local composite vote → bounded repair requests Topic 17 stops here.

Evaluation owner, not geometry owner

01 / ownership
OWNS

Tolerance

Explicit tolerance profiles and ordered-ratio deviation evaluation.

OWNS

Local scoring

Four dependent component metrics and one composite Topic17 vote.

DOES NOT OWN

Upstream truth

Geometry, observations, relation identity and exact families stay immutable.

No hidden epsilon

02 / tolerance
ProportionToleranceProfile {
  distanceKind: ABSOLUTE_RATIO_DELTA | RELATIVE_RATIO_DELTA | LOG_RATIO_DISTANCE,
  threshold: finite >= 0,
  orderedRatioSemantics: true,
  reciprocalAutoMatch: false,
  mutationAllowed: false
}
Near-equal ≠ exact.

17.03 exact families remain exact. 17.04 only evaluates closeness under an explicit profile.

Explicit deviation models

03 / deviation

Absolute

|observed − reference|

Relative

|observed − reference| / |reference|

Log

|ln(observed / reference)|

fit = max(0, 1 − distance / threshold) threshold = 0 → exact match only fit is local target fit, not beauty.

Four explicit target components

04 / target profile
ComponentOwner input
shapeAspectReference17.01 observations + explicit 17.00 reference
partToWholeReference17.02 observations + explicit 17.00 reference
ratioFamilySystem17.03 exact family/system descriptors
repeatedSystem17.03 repeated-system descriptors

Components do not vote independently

05 / MetricResult
MetricResult {
  key, owner, value, applicability, confidence, status, provenance,
  composite, componentOf, dependsOn[], derivedFrom[],
  scoringGroup, independentVoteAllowed, evidence, repairHints[]
}

Exactly one independent numeric vote

06 / composite
4 dependent component metrics → weighted mean over included components → proportion.system.localTargetProfileFit Topic17 independent vote count = exactly 1
P0 firewall.

A second independent numeric vote inside Topic17 is forbidden.

Like-for-like comparison only

07 / comparison
same targetProfileRef + same evaluationProfileRef + same observed lineage → local fit delta allowed otherwise → N_A

Repair requests, never silent mutation

08 / generator
generationMode = FAILED_APPLICABLE_COMPONENTS_ONLY
evaluationOutcomeRequired = KEEP
seed = EXPLICIT
maxCandidates = 1..64
fullCartesianProductAllowed = false
generationOnNA = false
generationOnInvalid = false

Local fit ≠ universal quality

09 / firewalls
tolerance match != universal ideal localTargetProfileFit != beautyScore localTargetProfileFit != global layout quality localTargetProfileFit != generic hierarchy localTargetProfileFit != final-layout rank higher local fit != automatic winner

Topic 17 closes here

10 / boundaries
17.00Root schema and references
17.01Shape aspect observations
17.02Part-to-whole semantics and observations
17.03Exact ratio families and repeated systems
17.04Tolerance, local scoring, repair candidates, final tests

CANON → LAB → DATA → IDEAS

11 / hooks
IDEAS_REFS[]Human studies downstream.
DATA_CAPTURE[]Tolerance and fit lineage.
DEFERRED_SEMANTIC_INPUTS[]Preference learning separate.
HUMAN_FEEDBACK_HOOKS[]Threshold corrections.
CONFLICT_PRIORITY_ASSUMPTIONS[]Fit is not priority.
LAB_HOOKS[]Distance calibration.

17.04 regression suite

12 / deterministic tests

Tests cover tolerance math, ordered orientation, explicit targets, N_A/INVALID, MetricResult constitution, one-vote budget, comparison, bounded repair and ownership firewalls.

Tests not run yet.

DATA FOR LAYOUT ENGINE

13 / machine contract
{
  "module": "Compo 17.04",
  "name": "tolerance_scoring_and_tests",
  "version": "1.0-canonical",
  "canonical_main_title": "Tolerance, scoring and tests",
  "topic": "17_ПРОПОРЦИИ_ФОРМ_И_ЧАСТЕЙ_К_ЦЕЛОМУ",
  "scope": "EXPLICIT_ORDERED_RATIO_TOLERANCE_REFERENCE_DEVIATION_LOCAL_TARGET_SCORING_AND_BOUNDED_OWNER_ROUTED_REPAIR_ONLY",
  "main_topic_contract": {
    "topic_title": "Пропорции форм и частей к целому",
    "topic_goal": "Формализует пропорции формы и part-to-whole relations: aspect ratios, повторяемые ratio families, допустимые отклонения и style-specific пропорциональные системы.",
    "expected_output": "ProportionRelation[], ratio families, tolerance profiles",
    "planned_files": [
      "17.00 Proportion schema and reference ratios",
      "17.01 Shape aspect ratios",
      "17.02 Part-to-whole ratios",
      "17.03 Repeated proportional systems",
      "17.04 Tolerance, scoring and tests"
    ]
  },
  "ownership": {
    "owner": "Compo17.04",
    "owns": [
      "ProportionToleranceProfile",
      "RatioToleranceEvaluation",
      "ProportionTargetProfile",
      "ProportionEvaluationProfile",
      "Topic17 component MetricResults",
      "Topic17 composite MetricResult proportion.system.localTargetProfileFit",
      "ProportionRepairRoute",
      "ProportionRepairCandidateSetPolicy",
      "ProportionRepairRequest",
      "ProportionRepairCandidateSet",
      "explicit ordered-ratio deviation math",
      "explicit style/context target fit",
      "Topic17 independent numeric vote budget",
      "bounded deterministic owner-routed repair candidate generation",
      "final Topic17 regression tests"
    ],
    "does_not_own": [
      "ProportionSubject / ProportionMeasureBinding / ProportionRelation identity — Compo17.00",
      "reference-ratio declaration identity — Compo17.00",
      "shape-axis measurements / observed shape aspect ratios — Compo17.01",
      "part/whole membership / observed part-to-whole ratios — Compo17.02",
      "exact ratio families / repeated proportional systems — Compo17.03",
      "raw geometry measurement — upstream geometry/measurement owners",
      "object-to-object scale differentiation — Topic16",
      "transform scale parameter — Compo3.05",
      "visual mass — Compo4",
      "format normalization / global scale invariance — Compo6.03",
      "dominance / focal ranking — Compo13",
      "microdetail size/contrast role envelopes — Topic15",
      "generic hierarchy/subordination — Compo18",
      "semantic importance",
      "global balance",
      "final-layout ranking",
      "universal beautyScore",
      "foreign geometry/style/semantic mutation"
    ]
  },
  "consumes": [
    "valid Compo17.00 ReferenceRatioDefinition[] and ordered ProportionRelation lineage",
    "valid Compo17.01 ShapeAspectRatioDescriptor[]",
    "valid Compo17.02 PartToWholeRatioDescriptor[]",
    "valid Compo17.03 RatioFamilyDefinition / RatioFamilyMembership / RepeatedProportionalSystemDescriptor",
    "explicit ProportionToleranceProfile",
    "explicit ProportionTargetProfile",
    "explicit ProportionEvaluationProfile"
  ],
  "provides": [
    "ProportionToleranceProfile[]",
    "RatioToleranceEvaluation[]",
    "Topic17 component MetricResult[]",
    "proportion.system.localTargetProfileFit composite MetricResult",
    "ProportionRepairCandidateSet",
    "Topic17.04 final evaluation record"
  ],
  "metric_keys": {
    "components": [
      "proportion.target.componentFit.shapeAspectReference",
      "proportion.target.componentFit.partToWholeReference",
      "proportion.target.componentFit.ratioFamilySystem",
      "proportion.target.componentFit.repeatedSystem"
    ],
    "composite": "proportion.system.localTargetProfileFit",
    "owner": "Compo17.04",
    "scoringGroup": "proportion-local",
    "independentNumericVoteCount": 1
  },
  "metric_result_constitution": [
    "key",
    "owner",
    "value",
    "applicability",
    "confidence",
    "status",
    "provenance",
    "composite",
    "componentOf",
    "dependsOn[]",
    "derivedFrom[]",
    "scoringGroup",
    "independentVoteAllowed",
    "evidence",
    "repairHints[]"
  ],
  "tolerance_profile_schema": {
    "selection": "EXPLICIT_ONLY",
    "distanceKind": "ABSOLUTE_RATIO_DELTA|RELATIVE_RATIO_DELTA|LOG_RATIO_DISTANCE",
    "threshold": "finite >= 0",
    "orderedRatioSemantics": true,
    "reciprocalAutoMatch": false,
    "crossContextMatch": false,
    "crossRelationKindMatch": false,
    "universalDefault": false,
    "mutationAllowed": false
  },
  "evaluation_profile_schema": {
    "componentWeights": "explicit nonnegative weights",
    "zeroWeightPolicy": "EXCLUDE_FROM_DENOMINATOR",
    "missingObservedPolicy": "COMPOSITE_N_A",
    "lineageMismatchPolicy": "COMPOSITE_N_A",
    "invalidPolicy": "COMPOSITE_INVALID",
    "mismatchPolicy": "SOFT_ZERO_KEEP",
    "normalization": "WEIGHTED_MEAN_OVER_INCLUDED_COMPONENTS",
    "mutationAllowed": false
  },
  "generator_policy_schema": {
    "generationMode": "FAILED_APPLICABLE_COMPONENTS_ONLY",
    "evaluationOutcomeRequired": "KEEP",
    "componentSelectionOrder": "EXPLICIT_LIST",
    "seed": "EXPLICIT",
    "maxCandidates": "1..64",
    "hardFilterInvalidRoutes": true,
    "deduplication": "IDENTITY_EQUIVALENT_REPAIR_REQUEST",
    "diversityPruning": "MAX_ONE_PER_COMPONENT_REPAIR_KIND_IN_V1",
    "fullCartesianProductAllowed": false,
    "generationOnNA": false,
    "generationOnInvalid": false,
    "candidateIsRepairedLayout": false,
    "mutationAllowed": false
  },
  "critical_firewalls": [
    "tolerance is explicit; no implicit epsilon",
    "ordered ratio orientation is preserved through tolerance evaluation",
    "ratio may be <1, =1 or >1",
    "no automatic ratio inversion",
    "no reciprocal match unless separately declared as a reference",
    "reference ratio != universal ideal",
    "no universal golden ratio",
    "no implicit 1.618 preference",
    "no universal 4:3 preference",
    "no universal 3:2 preference",
    "no universal square preference",
    "near-equal matching exists only through an explicit tolerance profile",
    "tolerance match != desirability unless an explicit target requests that reference",
    "distance descriptor != score",
    "component fit != global quality",
    "localTargetProfileFit != beautyScore",
    "localTargetProfileFit != global layout quality",
    "localTargetProfileFit != generic hierarchy score",
    "localTargetProfileFit != final-layout rank",
    "higher local fit != automatic final-layout winner",
    "cross-target comparison forbidden",
    "cross-evaluation-profile comparison forbidden",
    "target does not redefine upstream observed ratios",
    "target does not redefine exact ratio families",
    "target does not redefine part/whole semantics",
    "target does not redefine shape-axis semantics",
    "component MetricResults are not independent numeric votes",
    "exactly one independent numeric vote in Topic17",
    "one metric = one owner",
    "N_A != 0",
    "INVALID != 0",
    "local != global",
    "geometry != interpretation",
    "descriptor != score",
    "heuristic != law",
    "correction request != foreign mutation",
    "module execution order != rule priority",
    "no universal beautyScore",
    "composite-first scoring",
    "candidate generation is bounded, seeded, deterministic and reproducible",
    "no full Cartesian product",
    "generator runs only under KEEP with failed applicable components",
    "no generation on N_A",
    "no generation on INVALID",
    "repair candidate != repaired layout",
    "generator ordinal != score",
    "repair request != foreign mutation",
    "generator cannot mutate geometry",
    "generator cannot mutate semantics",
    "generator cannot mutate 17.01 observations",
    "generator cannot mutate 17.02 observations",
    "generator cannot mutate 17.03 family/system observations",
    "generator cannot mutate 17.00 reference identity",
    "IDEA != CANON",
    "EXPERIMENT != CANON"
  ],
  "topic16_firewall": {
    "Topic16": "unordered object-to-object scale differentiation and larger-to-smaller ratios",
    "Topic17_04": "ordered proportion target/tolerance evaluation",
    "reusedScaleRatioDescriptor": false,
    "largerToSmallerCanonicalizationImported": false,
    "scaleClassesImported": false,
    "scaleLaddersImported": false
  },
  "hook_families": {
    "IDEAS_REFS": [
      "human tests after all 72 topics",
      "study tolerance perception by style/context",
      "calibrate target profiles empirically"
    ],
    "DATA_CAPTURE": [
      "scopeRef",
      "targetProfileRef",
      "evaluationProfileRef",
      "toleranceProfileRefs[]",
      "ratioEvaluationRefs[]",
      "componentMetricResultRefs[]",
      "compositeMetricResultRef",
      "repairCandidateRefs[]"
    ],
    "DEFERRED_SEMANTIC_INPUTS": [
      "human preference labels",
      "style-specific target desirability beyond explicit declared profiles"
    ],
    "HUMAN_FEEDBACK_HOOKS": [
      "tolerance too strict/loose",
      "reference target correction",
      "repair-route usefulness"
    ],
    "CONFLICT_PRIORITY_ASSUMPTIONS": [
      "module order is not priority",
      "higher fit is not global winner",
      "tolerance source owner remains explicit"
    ],
    "LAB_HOOKS": [
      "compare absolute vs relative vs log distance",
      "fit calibration",
      "repair candidate acceptance rate"
    ]
  },
  "data_for_layout_engine": {
    "module": "Compo17.04",
    "topic17ProgressAfterThisModule": "5/5 local",
    "ownsMetrics": true,
    "componentMetricCount": 4,
    "independentNumericVotes": 1,
    "independentVoteKey": "proportion.system.localTargetProfileFit",
    "scoringGroup": "proportion-local",
    "generatorBounded": true,
    "nextOwner": null,
    "topicCompleteAfterThisModule": true,
    "stopAfterThisModule": true
  }
}
VISITS / ...