Same binding. Same unit. Positive magnitudes.
Numeric ratio is descriptive evidence
Magnitude resolution
Owner-qualified positive scalar evidence under exact 16.00 binding.
Pairwise ratio
Observed larger/smaller/equal order and symmetric ratio descriptor.
Descriptive only
owns_metrics=[]. Near-equal band is not desirability.
ScaleMagnitudeEvidence
ScaleMagnitudeEvidence {
scaleMagnitudeEvidenceRef,
scopeRef,
subjectRef,
scaleMeasurementBindingRef,
value: finite > 0,
measurementUnitRef,
evidenceSourceRef,
evidenceSourceOwnerRef,
confidence,
provenance,
snapshotRef,
status,
mutationAllowed: false
}
Duplicate evidence is not averaged
| Evidence | Result |
|---|---|
| 0 records | N_A |
| 1 valid record | OK + RESOLVED |
| 2+ exact same value + unit | OK + RESOLVED |
| 2+ different value or unit | N_A + CONFLICT |
| Any invalid record | INVALID |
No averaging, median, source-order winner or automatic conversion is allowed.
Exact comparability
Observed order is not lexical order
| State | Meaning |
|---|---|
| A_LARGER | Observed magnitude A > B. |
| B_LARGER | Observed magnitude B > A. |
| EQUAL | Resolved magnitudes exactly equal. |
Symmetric ratio descriptor
largerToSmallerRatio = max(A,B) / min(A,B) domain [1,+∞) smallerToLargerRatio = min(A,B) / max(A,B) domain (0,1] ratioDeltaFromEquality = largerToSmallerRatio - 1 domain [0,+∞)
Reversing A/B request direction does not change the ratio. Numerator is defined by observed magnitude only.
Exact equality ≠ near equality
Near-equal policy is explicit
ScaleNearEqualPolicy {
mode:
DISABLED
or
RATIO_DELTA_MAX_INCLUSIVE,
maxRatioDeltaInclusive:
explicit finite >= 0,
source / owner / provenance,
status,
mutationAllowed: false
}
| Band | Meaning |
|---|---|
| EXACT_EQUAL | delta == 0 under enabled policy. |
| NEAR_EQUAL | 0 < delta ≤ explicit threshold. |
| DISTINCT | delta > explicit threshold. |
| N_A | Policy disabled or ratio unavailable. |
Near-equal is not a penalty
Derived attachment, immutable root
ScaleRelationRatioAttachment {
scaleRelationRef,
scalePairwiseOrderResolutionRef,
scaleRatioDescriptorRef,
scaleNearEqualDescriptorRef?,
status,
mutationAllowed: false
}
Topic16 ownership remains layered
| 16.00 | Scale subjects, measure binding and relation identity. |
| 16.01 | Magnitude evidence, observed order and pairwise ratio descriptors. |
| 16.02 | Large/Medium/Small classes. |
| 16.03 | Scale ladders and distributions. |
| 16.04 | Target scoring, MetricResult ownership and repair generator. |
| Topic17 | Aspect ratio and part-to-whole proportional systems. |
| Compo18 | Generic hierarchy/subordination. |
No golden ratio hiding in the model
1.618 target; universal near-equal threshold; ratio→quality; equality→hierarchy failure; area ratio→linear ratio.
Exact binding, exact unit, positive values, conflict preservation, symmetric ratio, explicit near-equal policy, N_A != 0.
CANON → LAB → DATA → IDEAS
16.01 regression suite
Tests cover positive magnitude validation, duplicate conflict preservation, exact-unit comparability, observed order, symmetric ratio math, request reversal invariance, explicit near-equal policy, immutable attachments and no-score firewalls.
DATA FOR LAYOUT ENGINE
{
"module": "Compo 16.01",
"name": "pairwise_size_ratios",
"version": "1.0-canonical",
"canonical_main_title": "Pairwise size ratios",
"topic": "16_МАСШТАБ_И_ОТНОШЕНИЕ_РАЗМЕРОВ",
"scope": "OWNER_QUALIFIED_POSITIVE_MAGNITUDE_EVIDENCE_EXACT_SAME_BINDING_PAIRWISE_ORDER_AND_SYMMETRIC_SIZE_RATIO_DESCRIPTORS_WITH_EXPLICIT_NEAR_EQUAL_POLICY_ONLY",
"main_topic_contract": {
"topic_title": "Масштаб и отношение размеров",
"topic_goal": "Считает отношения размеров между объектами и масштабные ступени. Нужна для выразительной дифференциации, scale ladders и контроля почти-равных размеров.",
"expected_output": "ScaleRelation[], size-ratio descriptors, scale classes",
"planned_files": [
"16.00 Scale relation model",
"16.01 Pairwise size ratios",
"16.02 Large/medium/small classes",
"16.03 Scale ladders and distributions",
"16.04 Candidates, scoring and tests"
]
},
"ownership": {
"owner": "Compo16.01",
"owns": [
"ScaleMagnitudeEvidence",
"ScaleMagnitudeResolution",
"ScalePairwiseOrderState taxonomy",
"ScalePairwiseOrderResolution",
"ScaleRatioDescriptor",
"ScaleNearEqualPolicy",
"ScaleNearEqualBandState taxonomy",
"ScaleNearEqualDescriptor",
"ScaleRelationRatioAttachment",
"ScaleRelationRatioSet",
"ScaleSystemRatioAttachment",
"same-binding / same-unit comparability enforcement",
"symmetric larger-to-smaller pairwise ratio",
"ratioDeltaFromEquality descriptor",
"identity/status/provenance rules for pairwise size-ratio layer",
"non-mutating correction request for magnitude evidence / unit / near-equal policy"
],
"does_not_own": [
"ScaleSubject eligibility / ScaleRelation identity — Compo16.00",
"raw geometry measurement — upstream geometry/measurement owners",
"measurement binding definition — Compo16.00",
"transform scale parameter — Compo3.05",
"format normalization / global scale invariance — Compo6.03",
"visual mass — Compo4",
"dominance / focal ranking — Compo13",
"microdetail size/contrast role-envelope semantics — Topic15",
"large/medium/small scale classes — Compo16.02",
"scale ladders / scale distributions — Compo16.03",
"target scoring / MetricResult / repair generation — Compo16.04",
"aspect ratio / part-to-whole proportions — Topic17",
"generic hierarchy/subordination — Compo18",
"global balance",
"semantic importance",
"foreign geometry/style/semantic mutation"
]
},
"consumes": [
"valid Compo16.00 ScaleSubjectSet",
"valid Compo16.00 ScaleRelationSet",
"exact Compo16.00 ScaleMeasurementBinding referenced by each relation",
"owner-qualified ScaleMagnitudeEvidence",
"optional explicit ScaleNearEqualPolicy"
],
"provides": [
"ScaleMagnitudeResolution[]",
"ScalePairwiseOrderResolution[]",
"ScaleRatioDescriptor[]",
"ScaleNearEqualDescriptor[]",
"ScaleRelationRatioAttachment[]",
"ScaleRelationRatioSet",
"ScaleSystemRatioAttachment",
"Topic16.01 observation record"
],
"owns_metrics": [],
"metric_ownership_note": "16.01 owns descriptive numeric ratio data only. ScaleRatioDescriptor is not a MetricResult, score, hierarchy vote or desirability judgment. No independent numeric vote.",
"scale_magnitude_evidence_schema": {
"scaleMagnitudeEvidenceRef": "stable identity",
"scopeRef": "Topic16 scope",
"subjectRef": "exact Compo16.00 ScaleSubject subjectRef",
"scaleMeasurementBindingRef": "exact Compo16.00 binding ref",
"value": "finite strictly positive scalar",
"measurementUnitRef": "explicit exact unit identity",
"evidenceSourceRef": "explicit source",
"evidenceSourceOwnerRef": "actual magnitude owner",
"confidence": "finite [0,1] source confidence only",
"provenance": "canonical provenance",
"snapshotRef": "exact snapshot",
"status": "OK|INVALID",
"mutationAllowed": false,
"firewall": "Magnitude evidence supplies a positive scalar under an existing 16.00 binding. It does not redefine channel, dimension, method, reference context, relation identity, class or score."
},
"scale_magnitude_resolution_schema": {
"scaleMagnitudeResolutionRef": "stable identity",
"scopeRef": "scope",
"subjectRef": "subject",
"scaleMeasurementBindingRef": "exact binding",
"measurementUnitRef": "exact unit when resolved",
"evidenceRefs": "canonical refs",
"value": "finite >0 or null",
"resolutionState": "RESOLVED|CONFLICT|null",
"confidence": "null in v1; confidence cannot break duplicate conflicts",
"status": "OK|N_A|INVALID",
"reasonCode": "explicit",
"mutationAllowed": false,
"rules": {
"noEvidence": "N_A",
"oneEvidence": "OK + RESOLVED",
"multipleExactAgreement": "OK + RESOLVED",
"multipleValueOrUnitDisagreement": "N_A + CONFLICT"
},
"firewall": "No fallback, averaging, median, confidence winner or unit conversion is performed in 16.01. Conflicting magnitude evidence remains N_A."
},
"scale_pairwise_order_state_taxonomy": {
"A_LARGER": "subjectRefA magnitude > subjectRefB magnitude",
"B_LARGER": "subjectRefB magnitude > subjectRefA magnitude",
"EQUAL": "magnitudes exactly equal under exact binding and unit"
},
"scale_pairwise_order_resolution_schema": {
"scalePairwiseOrderResolutionRef": "stable identity",
"scaleRelationRef": "exact 16.00 relation",
"subjectRefA": "canonical relation subject A",
"subjectRefB": "canonical relation subject B",
"orderState": "A_LARGER|B_LARGER|EQUAL|null",
"largerSubjectRef": "exact subject ref or null",
"smallerSubjectRef": "exact subject ref or null",
"equalSubjectRefs": "both refs only for EQUAL",
"magnitudeResolutionRefs": "exact two refs",
"measurementUnitRef": "shared exact unit",
"status": "OK|N_A|INVALID",
"reasonCode": "explicit",
"mutationAllowed": false,
"firewall": "Observed order is derived from resolved magnitudes, never lexical subject order. Exact equality is mathematical equality of the resolved positive scalars; near-equality is separate."
},
"scale_ratio_descriptor_schema": {
"scaleRatioDescriptorRef": "stable identity",
"scaleRelationRef": "exact relation",
"scalePairwiseOrderResolutionRef": "exact order resolution",
"largerToSmallerRatio": "finite >=1",
"smallerToLargerRatio": "finite >0 and <=1",
"ratioDeltaFromEquality": "largerToSmallerRatio - 1, finite >=0",
"isExactEquality": "boolean",
"measurementUnitRef": "shared unit identity",
"status": "OK|N_A|INVALID",
"provenance": "DERIVED",
"mutationAllowed": false,
"firewall": "Ratios are symmetric with respect to original request direction because numerator is defined by observed magnitude, not lexical pair order. Ratio is descriptive only."
},
"scale_near_equal_policy_schema": {
"scaleNearEqualPolicyRef": "stable identity",
"mode": "DISABLED|RATIO_DELTA_MAX_INCLUSIVE",
"maxRatioDeltaInclusive": "finite >=0 when enabled; null when disabled",
"policySourceRef": "explicit source",
"policySourceOwnerRef": "owner",
"provenance": "canonical provenance",
"status": "OK|INVALID",
"mutationAllowed": false,
"default": "NONE — no implicit near-equal threshold",
"firewall": "The threshold describes a policy-relative near-equal band only. It is not an ideal ratio, quality threshold, hierarchy rule or hard reject."
},
"scale_near_equal_band_state_taxonomy": {
"EXACT_EQUAL": "ratioDeltaFromEquality == 0 under an enabled policy",
"NEAR_EQUAL": "0 < ratioDeltaFromEquality <= explicit threshold",
"DISTINCT": "ratioDeltaFromEquality > explicit threshold",
"N_A": "policy disabled or ratio unavailable"
},
"scale_near_equal_descriptor_schema": {
"scaleNearEqualDescriptorRef": "stable identity",
"scaleRatioDescriptorRef": "exact ratio descriptor",
"scaleNearEqualPolicyRef": "exact explicit policy",
"bandState": "EXACT_EQUAL|NEAR_EQUAL|DISTINCT|N_A",
"thresholdUsed": "explicit numeric threshold or null",
"status": "OK|N_A|INVALID",
"reasonCode": "explicit",
"mutationAllowed": false,
"firewall": "EXACT_EQUAL / NEAR_EQUAL / DISTINCT are descriptive policy-relative bands only. NEAR_EQUAL != bad; DISTINCT != good; EXACT_EQUAL != hierarchy violation."
},
"scale_relation_ratio_attachment_schema": {
"scaleRelationRatioAttachmentRef": "stable identity",
"scaleRelationRef": "exact 16.00 relation",
"scalePairwiseOrderResolutionRef": "exact order resolution",
"scaleRatioDescriptorRef": "exact ratio descriptor",
"scaleNearEqualDescriptorRef": "descriptor ref or null when policy absent/disabled",
"status": "OK|N_A|INVALID",
"mutationAllowed": false,
"firewall": "Attachment is derived and immutable. It does not mutate the 16.00 ScaleRelation root record."
},
"scale_relation_ratio_set_schema": {
"scaleRelationRatioSetRef": "stable identity",
"scopeRef": "scope",
"scaleRelationSetRef": "exact 16.00 relation set",
"scaleNearEqualPolicyRef": "explicit policy ref or null",
"magnitudeResolutionRefs": "canonical refs used",
"pairwiseOrderResolutionRefs": "canonical refs",
"scaleRatioDescriptorRefs": "canonical refs",
"scaleNearEqualDescriptorRefs": "canonical refs",
"scaleRelationRatioAttachmentRefs": "canonical refs",
"status": "OK|N_A|INVALID",
"reasonCode": "explicit",
"mutationAllowed": false,
"firewall": "Ratio set is a descriptive attachment layer. Relation count, ratio magnitude and near-equal count are not scores."
},
"scale_system_ratio_attachment_schema": {
"scaleSystemRatioAttachmentRef": "stable identity",
"scaleSystemSeedRef": "exact 16.00 seed",
"scaleRelationRatioSetRef": "exact 16.01 ratio set",
"status": "OK|N_A|INVALID",
"mutationAllowed": false,
"firewall": "16.00 pairwiseRatioAttachmentRef remains null in the immutable seed. This attachment links downstream data without mutating the seed."
},
"comparability_contract": {
"requires": [
"same exact ScaleRelation.scaleMeasurementBindingRef for both subjects",
"same exact measurementUnitRef for both resolved magnitudes",
"both magnitudes finite and >0",
"compatible snapshot lineage",
"exact relation subject membership"
],
"forbids": [
"WIDTH versus HEIGHT comparison",
"VISIBLE_AREA versus BBOX_AREA_PROXY comparison",
"LINEAR versus AREA comparison",
"automatic unit conversion",
"method fallback",
"reference-context fallback",
"cross-binding ratio calculation",
"confidence-based evidence selection"
]
},
"ratio_math_contract": {
"largerToSmallerRatio": "max(valueA,valueB) / min(valueA,valueB)",
"smallerToLargerRatio": "min(valueA,valueB) / max(valueA,valueB)",
"ratioDeltaFromEquality": "largerToSmallerRatio - 1",
"domain": {
"largerToSmallerRatio": "[1,+∞)",
"smallerToLargerRatio": "(0,1]",
"ratioDeltaFromEquality": "[0,+∞)"
},
"exactEquality": "valueA === valueB after valid magnitude resolution",
"firewall": "No golden-ratio target, no logarithmic scale-step inference, no class boundary and no desirability transform."
},
"status_policy": {
"noMagnitudeEvidence": "N_A",
"invalidMagnitudeEvidence": "INVALID",
"duplicateExactAgreement": "OK + RESOLVED",
"duplicateMagnitudeConflict": "N_A + CONFLICT",
"nonPositiveMagnitude": "INVALID",
"unitMismatchAcrossPair": "N_A",
"bindingMismatchAcrossPair": "N_A",
"missingSubjectMagnitude": "N_A",
"validPairRatio": "OK",
"disabledNearEqualPolicy": "N_A band descriptor",
"enabledNearEqualPolicy": "OK + EXACT_EQUAL|NEAR_EQUAL|DISTINCT",
"N_A_not_zero": true
},
"identity_policy": {
"scaleMagnitudeEvidenceRef": "hash(scope, subject, binding, value, unit, source/owner, confidence, provenance, snapshot, status)",
"scaleMagnitudeResolutionRef": "hash(scope, subject, binding, unit/value, canonical evidence refs, resolution state/status)",
"scalePairwiseOrderResolutionRef": "hash(relation, exact subject refs, magnitude-resolution refs, order state, larger/smaller/equal refs, shared unit, status)",
"scaleRatioDescriptorRef": "hash(relation, order resolution, larger/smaller ratios, delta from equality, exact-equality flag, unit, status)",
"scaleNearEqualPolicyRef": "hash(mode, threshold, source/owner, provenance, status)",
"scaleNearEqualDescriptorRef": "hash(ratio descriptor, policy, band state, threshold, status)",
"scaleRelationRatioAttachmentRef": "hash(relation, order/ratio/near-equal refs, status)",
"scaleRelationRatioSetRef": "hash(scope, relation set, policy, canonical magnitude/order/ratio/near-equal/attachment refs, status)",
"scaleSystemRatioAttachmentRef": "hash(system seed, ratio set, status)",
"excluded_from_identity": [
"display label",
"display color",
"UI ordering",
"free-form comment"
]
},
"critical_firewalls": [
"16.01 consumes Compo16.00 relation identity; it does not redefine relation identity",
"16.01 consumes Compo16.00 measurement binding; it does not redefine binding semantics",
"16.01 owns descriptive pairwise ratio only",
"16.01 owns no MetricResult",
"16.01 owns no independent numeric vote",
"magnitude evidence must be owner-qualified",
"magnitude value must be finite and strictly positive",
"zero magnitude is INVALID",
"negative magnitude is INVALID",
"measurement unit must be explicit",
"same binding does not waive unit equality",
"different units are not silently converted",
"different bindings are not silently comparable",
"different methods are not silently comparable",
"different reference contexts are not silently comparable",
"confidence cannot resolve magnitude conflict",
"confidence != size rank",
"confidence != ratio quality",
"duplicate conflicting magnitudes => N_A",
"duplicate exact-agreement magnitudes may resolve",
"no averaging conflicting magnitude evidence",
"no median of conflicting magnitude evidence",
"no confidence winner for conflicting magnitude evidence",
"pairwise observed order comes from magnitude values",
"lexical pair order != observed size order",
"lexical pair order != numerator/denominator",
"lexical pair order != hierarchy order",
"request direction != ratio orientation",
"largerToSmallerRatio is symmetric under request reversal",
"ratio denominator is observed smaller positive magnitude",
"largerToSmallerRatio >= 1",
"smallerToLargerRatio > 0",
"smallerToLargerRatio <= 1",
"ratioDeltaFromEquality >= 0",
"ratio 1 means exact equality only",
"near-equal != exact equal",
"near-equal policy must be explicit",
"no implicit near-equal threshold",
"no universal near-equal threshold",
"NEAR_EQUAL != bad",
"DISTINCT != good",
"EXACT_EQUAL != hierarchy violation",
"ratio magnitude != desirability",
"ratioDeltaFromEquality != penalty",
"ratio descriptor != score",
"near-equal descriptor != score",
"near-equal band count != score",
"ratio set relation count != scale diversity score",
"ratio set ratio spread != hierarchy quality",
"no hard reject from near-equal state",
"no hard reject from exact equality",
"no golden-ratio default",
"no implicit 1.618 target",
"no universal ideal size ratio",
"no logarithmic scale-step inference in 16.01",
"no large/medium/small classes in 16.01",
"no scale ladders in 16.01",
"no scale distributions in 16.01",
"no target scoring in 16.01",
"no repair generator in 16.01",
"ScaleRatioDescriptor != MetricResult",
"ScaleNearEqualDescriptor != MetricResult",
"large/medium/small ownership remains Compo16.02",
"scale ladder/distribution ownership remains Compo16.03",
"scoring/generator ownership remains Compo16.04",
"ScaleSubject/ScaleRelation root ownership remains Compo16.00",
"visual mass ownership remains Compo4",
"dominance ownership remains Compo13",
"microdetail role-envelope ownership remains Topic15",
"aspect ratio / part-to-whole ownership remains Topic17",
"generic hierarchy/subordination remains Compo18 territory",
"transform scale factor ownership remains Compo3.05",
"format normalization / global scale invariance ownership remains Compo6.03",
"raw geometry measurement remains foreign-owned",
"size ratio != visual mass ratio",
"size ratio != dominance ratio",
"size ratio != contrast ratio",
"size ratio != spacing ratio",
"size ratio != aspect ratio",
"object-to-object size ratio != part-to-whole proportion",
"ratio attachment != root relation mutation",
"system ratio attachment != ScaleSystemSeed mutation",
"correction request != foreign mutation",
"N_A != 0",
"INVALID != 0",
"local != global",
"geometry != interpretation",
"descriptor != score",
"heuristic != law",
"one metric = one owner",
"module execution order != rule priority",
"no universal beautyScore",
"IDEA != CANON",
"EXPERIMENT != CANON"
],
"correction_request_schema": {
"scalePairwiseRatioCorrectionRequestRef": "stable identity",
"targetOwnerRef": "magnitude / unit / binding / near-equal-policy owner",
"reasonCode": "MAGNITUDE_WRONG|MAGNITUDE_CONFLICT_WRONG|UNIT_WRONG|BINDING_WRONG|MISSING_MAGNITUDE|NEAR_EQUAL_POLICY_WRONG|NEAR_EQUAL_THRESHOLD_WRONG",
"scaleRelationRef": "exact relation or null",
"subjectRefs": "canonical refs[]",
"evidenceRefs": "canonical refs[]",
"suggestedAction": "non-mutating review request",
"status": "OPEN|INVALID",
"mutationAllowed": false
},
"deferred_downstream": {
"16.02": [
"explicit scale-class profile",
"Large/Medium/Small class thresholds or clustering policy",
"class assignment descriptors",
"class ambiguity/conflict semantics",
"ScaleClassAttachment"
],
"16.03": [
"scale ladder construction from ratio/class evidence",
"scale-step descriptors",
"scale distribution descriptors",
"occupied level families",
"ladder gaps and repeated scale levels",
"ScaleLadderAttachment"
],
"16.04": [
"explicit target scale-relation profile",
"target desirability of near-equal relations",
"component/composite MetricResult ownership",
"exact independent-vote budget for Topic16",
"bounded deterministic repair candidates",
"final Topic16 regression tests"
]
},
"IDEAS_REFS": [
"IDEA-01 full human test after all 72 topics; compare perceived scale difference with ratio descriptors",
"IDEA-02 semantics before placement; comparison intent and scale-subject eligibility remain explicit",
"IDEA-03 explicit priorities; lexical pair order, evidence order and policy order never become conflict priority",
"IDEA-04 collect structured ratio data for future composition model",
"IDEA-05 preserve reasons for human corrections to magnitude and near-equal judgments",
"IDEA-06 structured machine-readable data layer for website",
"IDEA-07 graphics-for-post-text research remains downstream/separate"
],
"DATA_CAPTURE": [
"sceneRef",
"scopeRef",
"snapshotRef",
"scaleSubjectSetRef",
"scaleRelationSetRef",
"scaleMeasurementBindingRefs[]",
"scaleMagnitudeEvidenceRefs[]",
"magnitudeValueByEvidence",
"measurementUnitByEvidence",
"magnitudeOwnerByEvidence",
"magnitudeConfidenceByEvidence",
"scaleMagnitudeResolutionRefs[]",
"resolvedMagnitudeBySubjectBinding",
"magnitudeConflictBySubjectBinding",
"resolvedUnitBySubjectBinding",
"scalePairwiseOrderResolutionRefs[]",
"orderStateByRelation",
"largerSubjectByRelation",
"smallerSubjectByRelation",
"equalSubjectsByRelation",
"scaleRatioDescriptorRefs[]",
"largerToSmallerRatioByRelation",
"smallerToLargerRatioByRelation",
"ratioDeltaFromEqualityByRelation",
"exactEqualityByRelation",
"scaleNearEqualPolicyRef",
"nearEqualThreshold",
"scaleNearEqualDescriptorRefs[]",
"nearEqualBandByRelation",
"scaleRelationRatioAttachmentRefs[]",
"scaleRelationRatioSetRef",
"scaleSystemRatioAttachmentRef",
"humanReasonCodes[]",
"futureScaleClassRefs[]",
"futureScaleLadderRefs[]",
"futureMetricResultRefs[]"
],
"DEFERRED_SEMANTIC_INPUTS": [
"whether exact equality is desired in a target style",
"whether near-equal size is desirable or undesirable",
"desired ratio bands for expressive differentiation",
"desired number and semantics of scale classes",
"desired ladder progression",
"global hierarchy consequences of ratio patterns",
"final Topic16 target profile"
],
"HUMAN_FEEDBACK_HOOKS": [
"MAGNITUDE_WRONG",
"MAGNITUDE_SOURCE_WRONG",
"MAGNITUDE_CONFLICT_REAL",
"MAGNITUDE_CONFLICT_SHOULD_RESOLVE",
"UNIT_WRONG",
"UNIT_CONVERSION_SHOULD_BE_EXPLICIT",
"BINDING_WRONG",
"PAIR_ORDER_WRONG",
"EXACT_EQUAL_WRONG",
"RATIO_WRONG",
"RATIO_DELTA_WRONG",
"NEAR_EQUAL_POLICY_TOO_STRICT",
"NEAR_EQUAL_POLICY_TOO_PERMISSIVE",
"NEAR_EQUAL_FEELS_EXACT",
"NEAR_EQUAL_FEELS_DISTINCT",
"DISTINCT_FEELS_NEAR_EQUAL",
"EXACT_EQUAL_FEELS_INTENTIONAL",
"EXACT_EQUAL_FEELS_ACCIDENTAL",
"SIZE_DIFFERENCE_FEELS_TOO_STRONG",
"SIZE_DIFFERENCE_FEELS_TOO_WEAK",
"VISIBLE_AREA_RATIO_PREFERRED",
"BBOX_AREA_RATIO_PREFERRED",
"LINEAR_RATIO_PREFERRED",
"TEXT_EM_HEIGHT_RATIO_PREFERRED",
"STROKE_WIDTH_RATIO_PREFERRED"
],
"CONFLICT_PRIORITY_ASSUMPTIONS": [
"module execution order is not priority",
"magnitude evidence order is not priority",
"confidence is not conflict priority",
"lexical pair order is not size priority",
"ratio magnitude is not rule priority",
"near-equal policy threshold is not global hierarchy priority",
"future reviewed global conflict-priority owner remains authoritative"
],
"LAB_HOOKS": [
"human study: perceived difference versus larger-to-smaller linear ratio",
"human study: perceived difference versus area ratio",
"calibrate explicit near-equal thresholds by channel and style",
"compare visible-area and bbox-area ratio judgments",
"study exact equality as intentional versus accidental",
"study size-ratio perception for text versus generic shapes",
"collect cases where geometric ratio and visual mass ratio diverge",
"collect cases where ratio and dominance diverge",
"measure agreement on near-equal versus distinct judgments"
],
"observation_record": {
"moduleRef": "Compo16.01",
"metricResults": [],
"scaleRatioDescriptorRefs": [],
"scaleNearEqualDescriptorRefs": [],
"futureScaleClassRefs": [],
"futureScaleLadderRefs": []
},
"stop_condition": "STOP after 16.01. Do not create 16.02 in this module."
}