COMPO · 13.01 · ATTENTION FACTORS

Measure factors.
Do not crown a winner.

13.01 формализует четыре локальных attention factors — size, contrast, isolation и position — как owner-qualified measurements плюс явные response contexts. Результат — сопоставимые factor-local responses для focal candidates. Здесь нет factor weighting, aggregate attention, focal rank, dominance margin или dominance score.

ModuleCompo 13.01
Factors4
Responseexplicit 0..1
Weightsnone
Rankdeferred
NextSTOP

Factor response is not dominance

00 / contract

13.01 measures only factor-local evidence. A candidate may be large but low-contrast, isolated but peripheral under one explicit position model, or visually strong on one factor and weak on another. No hidden aggregation is allowed here.

SIZE

Explicit visible/projected extent.

CONTRAST

Explicit subject-vs-surround evidence.

ISOLATION

Explicit peer/neighborhood separation.

POSITION

Explicit attractor/model response.

raw source evidence → explicit response context → factorResponse ∈ [0,1] NO: factor weighting factor sum aggregate attention focal rank dominance margin winner selection

13.01 owns descriptors, not votes

01 / ownership
OWNS

Measurement adapters

Factor/method taxonomy and owner-qualified source evidence.

OWNS

Response contexts

Explicit monotonic normalization into factor-local 0..1 response.

DEFERS

13.02+

Aggregation, focal rank, dominance margin, co-dominance, target profiles and scoring.

No MetricResult vote.

owns_metrics=[]. A normalized factor response is a descriptor, not an independent scoring vote.

Four factor kinds

02 / closed v1 taxonomy
FactorCanonical meaningExplicit firewall
SIZEProjected/visible extent under an explicit method.Largest != dominant.
CONTRASTDifference against an explicit local surround/reference.Highest contrast != dominant.
ISOLATIONSeparation from an explicit peer or neighborhood.Most isolated != dominant.
POSITIONResponse to an explicit position model/attractor.Center != universal attractor.

Method identity stays explicit

03 / source methods

Different measurement methods are not silently treated as equivalent.

FactorAllowed v1 methods
SIZEPROJECTED_VISIBLE_AREA_METRIC
VISIBLE_AREA_RATIO_TO_SCOPE
BBOX_AREA_RATIO_TO_SCOPE_PROXY
CONTRASTLOCAL_LUMINANCE_CONTRAST
LOCAL_COLOR_DELTA
LOCAL_EDGE_CONTRAST
ISOLATIONNEAREST_PEER_CLEARANCE_METRIC
NEAREST_PEER_CLEARANCE_RATIO
EMPTY_NEIGHBORHOOD_RATIO
POSITIONDISTANCE_TO_EXPLICIT_ATTRACTOR
EXPLICIT_POSITION_MODEL_RESPONSE
Proxy label is structural.

BBOX_AREA_RATIO_TO_SCOPE_PROXY is explicitly marked as a proxy. It may be useful operationally, but it is never silently promoted to visible-area truth.

AttentionFactorSourceEvidence

04 / owner-qualified raw evidence
AttentionFactorSourceEvidence {
  factorEvidenceRef,

  dominanceScopeRef,
  focalCandidateSetRef,
  focalCandidateRef,
  subjectRef,
  snapshotRef,

  factorKind,
  methodKind,

  measurementSourceRef,
  measurementSourceOwnerRef,

  rawValue,
  rawUnit,
  metricContextRef?,

  referenceRefs[],

  confidence,
  provenance,
  status,

  mutationAllowed: false
}
Explicit references

Contrast requires an explicit surround/reference; isolation requires an explicit peer/neighborhood; position requires an explicit attractor/model.

No hidden measurement

13.01 never chooses nearest peers, center points, visual surround or silhouettes implicitly.

AttentionFactorResponseContext

05 / explicit normalization

Raw values become factor-local responses only through an explicit monotonic transform. There is no universal threshold set.

AttentionFactorResponseContext {
  responseContextRef,

  factorKind,
  methodKind,

  contextSourceRef,
  contextSourceOwnerRef,

  inputUnit,

  responseDirection:
    HIGHER_MORE_ATTENTION
    LOWER_MORE_ATTENTION,

  lowAnchor,
  highAnchor,

  clamp: true,
  outputRange: [0,1],

  provenance,
  status,
  mutationAllowed: false
}
HIGHER_MORE_ATTENTION: response = clamp( (raw - lowAnchor) / (highAnchor - lowAnchor), 0, 1 ) LOWER_MORE_ATTENTION: response = clamp( (highAnchor - raw) / (highAnchor - lowAnchor), 0, 1 ) No default anchors. No default direction. No universal center bias.

AttentionFactorDescriptor

06 / factor-local response
AttentionFactorDescriptor {
  factorDescriptorRef,

  factorEvidenceRef,
  responseContextRef,

  dominanceScopeRef,
  focalCandidateSetRef,
  focalCandidateRef,
  subjectRef,

  factorKind,
  methodKind,

  rawValue,
  rawUnit,
  factorResponse,

  isProxy,

  confidence,
  status,
  provenance: "DERIVED",

  derivedFrom[],
  mutationAllowed: false
}
factorResponse 1 != dominant factorResponse 0 != N_A confidence != factorResponse raw value != normalized response

CandidateAttentionFactorVector

07 / four slots, no aggregation

The vector stores one factor descriptor per kind. It deliberately has no aggregateAttention field.

CandidateAttentionFactorVector {
  candidateFactorVectorRef,

  dominanceScopeRef,
  focalCandidateSetRef,
  focalCandidateRef,
  subjectRef,

  factorDescriptorRefsByKind {
    SIZE,
    CONTRAST,
    ISOLATION,
    POSITION
  },

  factorResponsesByKind {
    SIZE,
    CONTRAST,
    ISOLATION,
    POSITION
  },

  availableFactorKinds[],
  missingFactorKinds[],

  status,
  reasonCode,
  mutationAllowed: false
}

AttentionFactorSet

08 / comparable matrix

Cross-candidate comparison is valid only when every candidate uses the same response context for the same factor.

AttentionFactorSet {
  attentionFactorSetRef,

  dominanceScopeRef,
  focalCandidateSetRef,

  candidateFactorVectorRefs[],

  responseContextRefByKind {
    SIZE,
    CONTRAST,
    ISOLATION,
    POSITION
  },

  status,
  reasonCode,
  mutationAllowed: false
}
same factor + same responseContextRef → comparable across candidates same factor + different responseContextRef → N_A for canonical cross-candidate comparison SIZE response vs CONTRAST response → no canonical cross-factor preference Factor set != rank != dominance score

Derived attachment, not seed mutation

09 / descriptor evolution

13.00's immutable seed remains unchanged. 13.01 creates a derived attachment that points to both artifacts.

DominanceDescriptorAttentionAttachment {
  attentionAttachmentRef,

  descriptorSeedRef,
  attentionFactorSetRef,

  status,
  mutationAllowed: false
}

Comparability contract

10 / same-context only
Comparable factor values require: same factorKind same methodKind same responseContextRef same dominanceScopeRef same focalCandidateSetRef same snapshot lineage 13.01 permits: factor-local candidate comparison 13.01 forbids: cross-factor winner selection factor aggregation focal rank dominance margin

Response policy is identity-bearing

11 / deterministic lineage
factorEvidenceRef = hash( scope + candidate set + candidate + subject + snapshot, factor + method, source + owner, raw value + unit + metric context, canonical reference refs, provenance ) responseContextRef = hash( factor + method, source + owner, input unit, direction, anchors, clamp, provenance ) factorDescriptorRef = hash( factorEvidenceRef, responseContextRef ) attentionFactorSetRef = hash( candidate set, canonical vector refs, shared factor response contexts )

No hidden attention formula

12 / firewalls
Forbidden

size+contrast+isolation+position implicit sum; equal implicit weights; center bonus; largest-object winner; nearest-peer auto-selection; cross-context ranking.

Preserved

candidate eligibility unchanged; factor response is descriptor; 0 != N_A; local != global; module order != priority; no beautyScore.

Topic13 ownership chain

13 / integration
OwnerRole
13.00scope, role evidence/resolution, focal candidate set
13.01size/contrast/isolation/position descriptors + same-context factor matrix
13.02focal rank, dominance margin, competing/co-dominant cases
13.03target dominance profiles
13.04scoring, correction, final tests

Bad factor evidence → owner-qualified correction

14 / repair
AttentionFactorCorrectionRequest {
  requestRef,
  targetOwnerRef,

  reasonCode,
  evidenceRefs[],
  suggestedAction,

  status,
  mutationAllowed: false
}

CANON → LAB → DATA → IDEAS

15 / cross-cutting hooks

Factor responses are explicit current contracts. Human attention experiments may later calibrate transforms, but LAB results do not auto-mutate canon.

IDEAS_REFS[]7 R&D refs retained.
DATA_CAPTURE[]raw values, methods, contexts and responses.
DEFERRED_SEMANTIC_INPUTS[]semantic attention meaning remains external.
HUMAN_FEEDBACK_HOOKS[]factor/method/context corrections.
CONFLICT_PRIORITY_ASSUMPTIONS[]factor order/response never becomes hidden priority.
LAB_HOOKS[]controlled A/B calibration studies.

Human correction reasons

16 / evidence
Reason familyExamples
Factor responseSIZE/CONTRAST/ISOLATION/POSITION factor too high or too low
Method/contextFACTOR_METHOD_WRONG, FACTOR_RESPONSE_CONTEXT_WRONG
Proxy/referenceBBOX_PROXY_MISLEADING, CONTRAST_REFERENCE_WRONG, ISOLATION_REFERENCE_WRONG
PositionPOSITION_ATTRACTOR_WRONG
ComparabilityCROSS_CANDIDATE_CONTEXT_MISMATCH

Visual laboratory hook

17 / four independent axes

Four responses remain separate. The illustration intentionally does not sum them or select a winner.

ONE FOCAL CANDIDATE · FOUR SEPARATE FACTOR RESPONSES CANDIDATE SIZE CONTRAST ISOLATION POSITION NO SUM · NO WEIGHTS · NO RANK · NO DOMINANCE MARGIN ranking and competing/co-dominant logic → 13.02

13.01 regression suite

18 / deterministic tests

Tests cover method-specific evidence requirements, explicit response transforms, factor-local zero/N_A distinction, no implicit center/peer selection, candidate vectors, cross-candidate context compatibility, deterministic identity and ownership firewalls.

Tests not run yet.

DATA FOR LAYOUT ENGINE

19 / machine contract

Machine-readable 13.01 canonical contract.

{
  "module": "Compo 13.01",
  "name": "attention_factors_size_contrast_isolation_position",
  "version": "1.0-canonical",
  "canonical_main_title": "Attention factors: size, contrast, isolation, position",
  "topic": "13_ДОМИНАНТА_И_ГЛАВНЫЙ_ФОКУС",
  "scope": "FOCAL_CANDIDATE_ATTENTION_FACTOR_MEASUREMENT_EXPLICIT_RESPONSE_NORMALIZATION_AND_CROSS_CANDIDATE_COMPARABILITY_ONLY",
  "main_topic_contract": {
    "topic_title": "Доминанта и главный фокус",
    "topic_goal": "Define dominance as a measurable leader of attention through focal candidates, dominance margin and competing/co-dominant cases without assuming a universal mandatory single focal center.",
    "expected_output": "DominanceDescriptor, focal rank, dominance margin, target profiles",
    "planned_files": [
      "13.00 Dominant role / focal candidate model",
      "13.01 Attention factors: size, contrast, isolation, position",
      "13.02 Dominance margin и competing dominants",
      "13.03 Target dominance profiles",
      "13.04 Scoring, correction и tests"
    ]
  },
  "ownership": {
    "owner": "Compo13.01",
    "owns": [
      "AttentionFactorKind taxonomy",
      "AttentionFactorMethodRegistry v1",
      "AttentionFactorSourceEvidence adapter schema",
      "AttentionFactorResponseContext",
      "AttentionFactorDescriptor",
      "CandidateAttentionFactorVector",
      "AttentionFactorSet",
      "DominanceDescriptorAttentionAttachment",
      "cross-candidate same-context comparability contract",
      "non-mutating attention-factor correction request"
    ],
    "does_not_own": [
      "DominanceScope / focal candidate eligibility — Compo13.00",
      "foreign geometry, rendered-pixel analysis or source measurements",
      "focal ranking — Compo13.02",
      "dominance margin — Compo13.02",
      "competing/co-dominant classification — Compo13.02",
      "target dominance profiles — Compo13.03",
      "factor weighting for target dominance scoring — Compo13.03/13.04 explicit owner",
      "final dominance scoring/correction synthesis — Compo13.04",
      "global hierarchy semantics",
      "global conflict priority"
    ]
  },
  "consumes": [
    "valid Compo13.00 DominanceScope",
    "valid Compo13.00 FocalCandidateSet",
    "valid Compo13.00 FocalCandidate[]",
    "valid Compo13.00 DominanceDescriptorSeed",
    "owner-qualified raw attention-factor source evidence",
    "explicit response contexts"
  ],
  "provides": [
    "AttentionFactorSourceEvidence",
    "AttentionFactorResponseContext",
    "AttentionFactorDescriptor",
    "CandidateAttentionFactorVector",
    "AttentionFactorSet",
    "DominanceDescriptorAttentionAttachment",
    "Topic13.01 observation record"
  ],
  "owns_metrics": [],
  "metric_ownership_note": "13.01 owns numeric factor descriptors and explicit 0..1 factor responses, but no MetricResult scoring metric, no factor aggregation and no independent numeric vote.",
  "factor_kind_taxonomy": {
    "SIZE": "projected/visible extent evidence under an explicit method",
    "CONTRAST": "subject-versus-explicit-surround contrast evidence under an explicit method",
    "ISOLATION": "subject-versus-explicit-peer/neighborhood separation evidence under an explicit method",
    "POSITION": "response to an explicit position model/attractor; no universal center bias"
  },
  "method_registry": {
    "SIZE": {
      "PROJECTED_VISIBLE_AREA_METRIC": {
        "rawDomain": "NON_NEGATIVE",
        "requiresMetricContext": true,
        "requiresReferenceRefsMin": 0,
        "proxy": false,
        "note": "owner-qualified projected visible area; 13.01 does not derive silhouette"
      },
      "VISIBLE_AREA_RATIO_TO_SCOPE": {
        "rawDomain": "UNIT_INTERVAL",
        "rawUnit": "RATIO",
        "requiresMetricContext": false,
        "requiresReferenceRefsMin": 1,
        "proxy": false,
        "note": "referenceRefs must include explicit scope/region area evidence"
      },
      "BBOX_AREA_RATIO_TO_SCOPE_PROXY": {
        "rawDomain": "UNIT_INTERVAL",
        "rawUnit": "RATIO",
        "requiresMetricContext": false,
        "requiresReferenceRefsMin": 1,
        "proxy": true,
        "note": "bounding-box area is an explicit proxy, never silently equivalent to visible area"
      }
    },
    "CONTRAST": {
      "LOCAL_LUMINANCE_CONTRAST": {
        "rawDomain": "NON_NEGATIVE",
        "rawUnit": "RATIO",
        "requiresMetricContext": false,
        "requiresReferenceRefsMin": 1,
        "proxy": false,
        "note": "explicit local surround/reference required"
      },
      "LOCAL_COLOR_DELTA": {
        "rawDomain": "NON_NEGATIVE",
        "rawUnit": "DELTA",
        "requiresMetricContext": false,
        "requiresReferenceRefsMin": 1,
        "proxy": false,
        "note": "color-difference model/version must be owner-qualified in measurementSourceRef/evidenceRefs"
      },
      "LOCAL_EDGE_CONTRAST": {
        "rawDomain": "NON_NEGATIVE",
        "rawUnit": "RATIO",
        "requiresMetricContext": false,
        "requiresReferenceRefsMin": 1,
        "proxy": false,
        "note": "explicit local edge/surround evidence required"
      }
    },
    "ISOLATION": {
      "NEAREST_PEER_CLEARANCE_METRIC": {
        "rawDomain": "NON_NEGATIVE",
        "requiresMetricContext": true,
        "requiresReferenceRefsExact": 1,
        "proxy": false,
        "note": "nearest peer must be explicit; 13.01 never selects one implicitly"
      },
      "NEAREST_PEER_CLEARANCE_RATIO": {
        "rawDomain": "NON_NEGATIVE",
        "rawUnit": "RATIO",
        "requiresMetricContext": false,
        "requiresReferenceRefsExact": 1,
        "proxy": false,
        "note": "ratio denominator/context must be owner-qualified"
      },
      "EMPTY_NEIGHBORHOOD_RATIO": {
        "rawDomain": "UNIT_INTERVAL",
        "rawUnit": "RATIO",
        "requiresMetricContext": false,
        "requiresReferenceRefsMin": 1,
        "proxy": false,
        "note": "explicit neighborhood region/model required"
      }
    },
    "POSITION": {
      "DISTANCE_TO_EXPLICIT_ATTRACTOR": {
        "rawDomain": "NON_NEGATIVE",
        "requiresMetricContext": true,
        "requiresReferenceRefsMin": 1,
        "proxy": false,
        "note": "attractor is explicit; center/corner/landmark is never chosen automatically"
      },
      "EXPLICIT_POSITION_MODEL_RESPONSE": {
        "rawDomain": "UNIT_INTERVAL",
        "rawUnit": "UNIT_INTERVAL",
        "requiresMetricContext": false,
        "requiresReferenceRefsMin": 1,
        "proxy": false,
        "note": "owner-qualified position-attention model response; model semantics are not re-owned by 13.01"
      }
    }
  },
  "source_evidence_schema": {
    "factorEvidenceRef": "stable identity",
    "dominanceScopeRef": "exact 13.00 scope",
    "focalCandidateSetRef": "exact 13.00 candidate set",
    "focalCandidateRef": "exact 13.00 candidate",
    "subjectRef": "must equal candidate subject",
    "snapshotRef": "must match scope snapshot",
    "factorKind": "SIZE|CONTRAST|ISOLATION|POSITION",
    "methodKind": "closed method compatible with factorKind",
    "measurementSourceRef": "owner-qualified source/model identity",
    "measurementSourceOwnerRef": "source owner",
    "rawValue": "finite value when status OK; null allowed when N_A",
    "rawUnit": "explicit unit/token",
    "metricContextRef": "required only by methods that require metric geometry",
    "referenceRefs": "explicit scope/surround/peer/attractor/model refs according to method",
    "confidence": "0..1 evidence quality only",
    "provenance": "canonical provenance class",
    "status": "OK|N_A|INVALID",
    "mutationAllowed": false
  },
  "response_context_schema": {
    "responseContextRef": "stable identity",
    "factorKind": "exact factor",
    "methodKind": "exact method",
    "contextSourceRef": "explicit response-transform source",
    "contextSourceOwnerRef": "owner",
    "inputUnit": "must equal evidence rawUnit",
    "responseDirection": "HIGHER_MORE_ATTENTION|LOWER_MORE_ATTENTION",
    "lowAnchor": "finite",
    "highAnchor": "finite > lowAnchor",
    "clamp": true,
    "outputRange": "[0,1]",
    "provenance": "canonical provenance class",
    "status": "OK|INVALID",
    "mutationAllowed": false,
    "default": "NONE — no universal factor thresholds, weights or center bias"
  },
  "response_formula": {
    "HIGHER_MORE_ATTENTION": "response=clamp((raw-lowAnchor)/(highAnchor-lowAnchor),0,1)",
    "LOWER_MORE_ATTENTION": "response=clamp((highAnchor-raw)/(highAnchor-lowAnchor),0,1)",
    "zero": "0 is a valid factor response when status OK; it is not N_A",
    "one": "1 is a valid factor response; it does not mean dominant",
    "firewall": "response is factor-local normalization only, not a dominance score or vote"
  },
  "descriptor_schema": {
    "factorDescriptorRef": "stable identity",
    "factorEvidenceRef": "source evidence",
    "responseContextRef": "explicit transform",
    "dominanceScopeRef": "scope",
    "focalCandidateSetRef": "candidate set",
    "focalCandidateRef": "candidate",
    "subjectRef": "candidate subject",
    "factorKind": "factor",
    "methodKind": "method",
    "rawValue": "copied descriptor value",
    "rawUnit": "copied source unit",
    "factorResponse": "0..1 when OK; null when N_A/INVALID",
    "isProxy": "explicit method-registry proxy flag",
    "confidence": "source evidence confidence only",
    "status": "OK|N_A|INVALID",
    "provenance": "DERIVED",
    "derivedFrom": "evidence + response context refs",
    "mutationAllowed": false
  },
  "candidate_factor_vector_schema": {
    "candidateFactorVectorRef": "stable identity",
    "dominanceScopeRef": "scope",
    "focalCandidateSetRef": "candidate set",
    "focalCandidateRef": "candidate",
    "subjectRef": "candidate subject",
    "factorDescriptorRefsByKind": "SIZE/CONTRAST/ISOLATION/POSITION -> descriptor ref or null",
    "factorResponsesByKind": "factor -> 0..1 or null",
    "availableFactorKinds": "OK descriptors",
    "missingFactorKinds": "N_A/missing descriptors",
    "status": "OK only when all four factors OK; N_A when incomplete; INVALID on incompatible/duplicate descriptors",
    "mutationAllowed": false,
    "firewall": "vector has no aggregateAttention, rank or factor weight"
  },
  "attention_factor_set_schema": {
    "attentionFactorSetRef": "stable identity",
    "dominanceScopeRef": "scope",
    "focalCandidateSetRef": "candidate set",
    "candidateFactorVectorRefs": "one exact vector per focal candidate",
    "responseContextRefByKind": "one shared context per factor across candidates",
    "status": "OK only when every candidate vector is complete and each factor uses one shared context; N_A when incomplete or cross-context incomparable; INVALID on lineage conflict",
    "reasonCode": "explicit",
    "mutationAllowed": false,
    "firewall": "set is a comparable factor matrix, not a rank or aggregate score"
  },
  "dominance_descriptor_attention_attachment_schema": {
    "attentionAttachmentRef": "stable identity",
    "descriptorSeedRef": "exact Compo13.00 seed",
    "attentionFactorSetRef": "13.01 factor set",
    "status": "OK|N_A|INVALID",
    "mutationAllowed": false,
    "firewall": "13.01 creates a derived attachment; it never mutates DominanceDescriptorSeed.attentionFactorSetRef in place"
  },
  "identity_policy": {
    "factorEvidenceRef": "hash(scope/candidate set/candidate/subject/snapshot/factor/method/source+owner/raw value+unit/metric context/canonical refs/provenance)",
    "responseContextRef": "hash(factor/method/source+owner/input unit/direction/anchors/clamp/provenance)",
    "factorDescriptorRef": "hash(factor evidence ref + response context ref)",
    "candidateFactorVectorRef": "hash(candidate identity + four factor descriptor refs/statuses)",
    "attentionFactorSetRef": "hash(candidate set + canonical vector refs + shared response context refs)",
    "attentionAttachmentRef": "hash(descriptorSeedRef + attentionFactorSetRef)",
    "excluded_from_identity": [
      "display label",
      "display color",
      "free-form comment",
      "confidence"
    ]
  },
  "status_policy": {
    "sourceEvidence": "OK|N_A|INVALID",
    "factorDescriptor": "OK|N_A|INVALID",
    "candidateVector": "OK|N_A|INVALID",
    "factorSet": "OK|N_A|INVALID",
    "missingRawMeasurement": "N_A, not zero",
    "crossContextComparison": "N_A, not silently rescaled",
    "factorResponseZero": "valid OK response, distinct from N_A",
    "N_A_not_zero": true
  },
  "comparison_policy": {
    "comparableFactorValuesRequire": [
      "same factorKind",
      "same methodKind",
      "same responseContextRef",
      "same dominanceScopeRef",
      "same focalCandidateSetRef",
      "same snapshotRef lineage"
    ],
    "13.01Output": "factor-local comparable responses only",
    "forbidden": [
      "cross-factor comparison such as SIZE response > CONTRAST response implies more importance",
      "cross-context candidate comparison",
      "factor aggregation",
      "focal ranking"
    ]
  },
  "critical_firewalls": [
    "focal candidate != dominant",
    "candidate eligibility is not inferred from attention factors",
    "13.01 cannot add or remove focal candidates",
    "SIZE factor != dominance",
    "CONTRAST factor != dominance",
    "ISOLATION factor != dominance",
    "POSITION factor != dominance",
    "factorResponse != dominance score",
    "factorResponse != independent numeric vote",
    "factorResponse 1 != dominant",
    "factorResponse 0 != N_A",
    "N_A != 0",
    "higher factorResponse != automatic focal winner",
    "factor responses are not aggregated in 13.01",
    "no implicit equal factor weights",
    "no universal factor weights",
    "no universal factor thresholds",
    "no universal center bias",
    "canvas center != automatic position attractor",
    "position attractor/model must be explicit",
    "BBOX area proxy != visible area",
    "contrast reference/surround must be explicit",
    "isolation peer/neighborhood must be explicit",
    "nearest isolation peer is never selected implicitly by 13.01",
    "position model semantics remain owned by its source",
    "cross-context factor values are incomparable",
    "confidence != factorResponse",
    "confidence != attention strength",
    "raw factor value != normalized factor response",
    "candidate count != attention strength",
    "candidate lexical order != focal rank",
    "single candidate != proven dominant",
    "focal rank and dominance margin are deferred to 13.02",
    "competing/co-dominant classification is deferred to 13.02",
    "target dominance profiles are deferred to 13.03",
    "dominance scoring is deferred to 13.04",
    "attention attachment != final DominanceDescriptor",
    "local != global",
    "descriptor != score",
    "module execution order != rule priority",
    "correction request != foreign mutation",
    "no universal beautyScore",
    "IDEA != CANON",
    "EXPERIMENT != CANON"
  ],
  "correction_request_schema": {
    "requestRef": "stable identity",
    "targetOwnerRef": "owner whose measurement/context evidence should be reviewed",
    "reasonCode": "explicit",
    "evidenceRefs": "canonical refs",
    "suggestedAction": "non-mutating suggestion",
    "status": "OPEN|INVALID",
    "mutationAllowed": false
  },
  "deferred_downstream": {
    "13.02": [
      "factor aggregation policy for ranking if canonically justified",
      "focal rank",
      "dominance margin",
      "competing dominants",
      "co-dominant cases",
      "minimum candidate requirements for margin"
    ],
    "13.03": [
      "target dominance profiles",
      "desired single/competing/co-dominant structures",
      "profile applicability and factor expectations"
    ],
    "13.04": [
      "dominance scoring",
      "correction synthesis",
      "independent Topic13 vote if canonically justified",
      "consolidated Topic13 tests"
    ]
  },
  "IDEAS_REFS": [
    "IDEA-01 full human test after all 72 topics; calibrate which factor measurements predict human attention",
    "IDEA-02 semantics needed before placement; semantic role meaning remains external to factor measurement",
    "IDEA-03 rule priorities explicit; factor order and response magnitude must not become hidden priority",
    "IDEA-04 collect structured data for future composition model",
    "IDEA-05 preserve reasons for human corrections",
    "IDEA-06 structured machine-readable layer for website",
    "IDEA-07 graphics-for-post-text research remains downstream/separate"
  ],
  "DATA_CAPTURE": [
    "sceneRef",
    "dominanceScopeRef",
    "focalCandidateSetRef",
    "focalCandidateRef",
    "subjectRef",
    "factorKind",
    "methodKind",
    "factorEvidenceRef",
    "rawValue",
    "rawUnit",
    "metricContextRef",
    "referenceRefs[]",
    "responseContextRef",
    "responseDirection",
    "lowAnchor",
    "highAnchor",
    "factorResponse",
    "isProxy",
    "candidateFactorVectorRef",
    "availableFactorKinds[]",
    "missingFactorKinds[]",
    "attentionFactorSetRef",
    "humanReasonCodes[]",
    "future focalRankingRef",
    "future dominanceMarginRef",
    "future dominanceProfileRef",
    "future dominanceEvaluationRef"
  ],
  "DEFERRED_SEMANTIC_INPUTS": [
    "semantic meaning of focal importance",
    "semantic meaning of contrast",
    "role-dependent attention interpretation",
    "brand/editorial position-bias meaning",
    "future global conflict-priority refs"
  ],
  "HUMAN_FEEDBACK_HOOKS": [
    "SIZE_FACTOR_TOO_HIGH",
    "SIZE_FACTOR_TOO_LOW",
    "CONTRAST_FACTOR_TOO_HIGH",
    "CONTRAST_FACTOR_TOO_LOW",
    "ISOLATION_FACTOR_TOO_HIGH",
    "ISOLATION_FACTOR_TOO_LOW",
    "POSITION_FACTOR_TOO_HIGH",
    "POSITION_FACTOR_TOO_LOW",
    "FACTOR_METHOD_WRONG",
    "FACTOR_RESPONSE_CONTEXT_WRONG",
    "BBOX_PROXY_MISLEADING",
    "CONTRAST_REFERENCE_WRONG",
    "ISOLATION_REFERENCE_WRONG",
    "POSITION_ATTRACTOR_WRONG",
    "CROSS_CANDIDATE_CONTEXT_MISMATCH"
  ],
  "CONFLICT_PRIORITY_ASSUMPTIONS": [
    "module execution order is not priority",
    "factor enumeration order SIZE/CONTRAST/ISOLATION/POSITION is non-semantic",
    "response magnitude does not create global priority",
    "13.01 owns no factor weights",
    "confidence does not resolve factor conflicts",
    "future reviewed global conflict-priority owner remains authoritative"
  ],
  "LAB_HOOKS": [
    "human A/B: raw size versus perceived attention under controlled contrast",
    "human A/B: contrast with matched size/isolation/position",
    "human A/B: isolation with matched size/contrast/position",
    "human A/B: explicit position models without assuming universal center bias",
    "compare visible-area measurement against bbox proxy",
    "measure which response transforms predict human fixation/rank without auto-writing thresholds into canon"
  ],
  "observation_record": {
    "moduleRef": "Compo13.01",
    "metricResults": [],
    "focalRankRefs": [],
    "dominanceMarginRefs": [],
    "dominanceProfileRefs": [],
    "dominanceEvaluationRefs": []
  },
  "stop_condition": "STOP after 13.01. Do not create 13.02 in this module."
}
VISITS / ...