COMPO · 18.03 · COMPETITION AND INVERSION DETECTION

Detect pressure.
Preserve the evidence.

18.03 получает уже объявленную иерархию из 18.00 и только явно выбранные descriptors из 18.01–18.02. Он фиксирует, когда subordinate начинает конкурировать с superior, и отдельно отмечает математическую инверсию по направленному каналу. Здесь нет числового quality score, final rank или автоматической коррекции.

ModuleCompo 18.03
Verdictscategorical
Evidenceexplicit only
Violationsrelation-scoped
Metricsnone
Next18.04

Judgement after descriptors, before scoring

00 / contract
18.00 directed HierarchyRelation + explicit selected 18.01 envelope descriptors + explicit selected 18.02 constraint descriptors + explicit 18.03 competition policy → HierarchyRelationCompetitionDescriptor → SubordinationViolation[] 18.03 stops here. NO raw signal measurement NO MetricResult NO numeric penalty NO repair mutation

Detect only the hierarchy conflict

01 / ownership
OWNS

18.03

Explicit evidence selection, categorical CLEAR / COMPETING / INVERTED relation verdicts, mathematical reversal findings and subordination-violation records.

DOES NOT OWN

Upstream + downstream

Roles/graph, weight envelopes, per-channel comparison math, raw measurements, dominance, MetricResult scoring, correction generator and final-layout ranking.

Only upstream descriptors may vote as evidence

02 / lineage
SourceMay provide18.03 must not do
18.01role-level envelope position for exact subjectrecompute weight or redefine envelope
18.02directed comparisonValue + BELOW/WITHIN/ABOVE for exact relation/channelrecompute raw size/contrast/isolation
18.00exact superior→subordinate relation identitychange role or edge direction
Explicit selection: no graph×channel Cartesian product and no automatic inclusion of every upstream descriptor.

Inversion has a mathematical meaning

03 / directed reversal
DIRECTED_DELTA

comparisonValue < 0

After upstream strength orientation, subordinate is stronger than superior on that selected channel.

DIRECTED_RATIO

comparisonValue < 1

After upstream orientation, subordinate strength exceeds superior strength. Equality is not inversion.

Evidence only: mathematical reversal is a categorical inversion finding, not an aesthetic penalty or final rejection.

Competition is policy-bound

04 / categorical detection
possible competition findings: 18.02 constraint position BELOW → only if constraintBelowMinimumMeansCompetition = true 18.01 superior envelope position BELOW → only if superiorEnvelopeBelowMeansCompetition = true 18.01 subordinate envelope position ABOVE → only if subordinateEnvelopeAboveMeansCompetition = true mathematical reversal → INVERTED when mathematicalReversalMeansInversion = true

ABOVE по 18.02 constraint сам по себе не означает конкуренцию subordinate: superior может просто оказаться сильнее локального верхнего target.

Resolution is deterministic and local

05 / policy
HierarchyCompetitionPolicy {
  selectionMode: EXPLICIT_RELATIONS_ONLY,
  selectedHierarchyRelationRefs[],
  selectedConstraintDescriptorRefsByRelation,
  selectedEnvelopeDescriptorRefsByRelation,
  requireCompleteSelectedEvidence,

  constraintBelowMinimumMeansCompetition,
  mathematicalReversalMeansInversion,
  superiorEnvelopeBelowMeansCompetition,
  subordinateEnvelopeAboveMeansCompetition,

  allowImplicitRelationExpansion: false,
  allowImplicitChannelAggregation: false,
  allowConfidenceWinner: false,

  verdictResolution:
    INVERTED_THEN_COMPETING_THEN_CLEAR
}

Violation is a record, not a score

06 / output
VerdictViolationMeaning
CLEARnoneNo selected evidence of lower-level challenge.
COMPETINGCOMPETITIONLower level pressures the declared superior under explicit local policy.
INVERTEDINVERSIONAt least one selected directed channel shows subordinate stronger than superior.
violation count != severity reason count != score INVERSION != automatic layout rejection

N_A stays unavailable

07 / status
CLEAR

Valid observation

Not score 1 and not proof of a globally good hierarchy.

N_A

Evidence incomplete

Required selected evidence is missing/conflicting/unavailable. Never coerced to CLEAR.

INVALID

Contract broken

Malformed policy, wrong relation lineage or invalid upstream descriptor.

Topic 18 ownership remains layered

08 / owners
18.00Declared roles, directed relations, SubordinationGraph.
18.01Weight envelopes and envelope-position descriptors.
18.02SIZE / CONTRAST / ISOLATION constraint descriptors.
18.03Competition, inversion and subordination violations.
18.04MetricResult scoring, correction requests and bounded generator.
Topic19Correlation-aware multi-signal observed hierarchy.

Categorical conflict ≠ quality

09 / firewalls
CLEAR != score 1 COMPETING != partial score INVERTED != score 0 competition != dominance competition != focal ranking inversion != global hierarchy inversion constraint BELOW != competition without explicit policy envelope BELOW/ABOVE != violation without explicit policy 18.02 ABOVE != subordinate competition 18.03 owns_metrics = [] 18.03 independent numeric votes = 0

CANON → LAB → DATA → IDEAS

10 / mandatory hooks
IDEAS_REFS[]Human competition perception remains research.
DATA_CAPTURE[]Selected evidence, findings, verdicts and violations.
DEFERRED_SEMANTIC_INPUTS[]Scoring and repair remain 18.04.
HUMAN_FEEDBACK_HOOKS[]False-positive/negative corrections.
CONFLICT_PRIORITY_ASSUMPTIONS[]Categorical resolution is local only.
LAB_HOOKS[]Cross-channel and reversal perception studies.

18.03 regression suite

11 / deterministic tests

Tests cover explicit relation selection, upstream lineage, delta/ratio reversal semantics, policy-gated competition, envelope pressure, categorical resolution, N_A/INVALID preservation, violation materialization, immutable attachment, zero metrics and 18.04/Topic19 firewalls.

Tests not run yet.

DATA FOR LAYOUT ENGINE

12 / machine contract
{
  "module": "Compo 18.03",
  "name": "competition_and_inversion_detection",
  "version": "1.0-canonical",
  "canonical_main_title": "Competition and inversion detection",
  "topic": "18_СУБОРДИНАЦИЯ_И_ПОДЧИНЕНИЕ_ЭЛЕМЕНТОВ",
  "scope": "EXPLICIT_RELATION_SCOPED_COMPETITION_INVERSION_AND_SUBORDINATION_VIOLATION_DETECTION_FROM_UPSTREAM_TOPIC18_DESCRIPTORS_WITHOUT_NUMERIC_SCORING_OR_REPAIR",
  "main_topic_contract": {
    "topic_title": "Субординация и подчинение элементов",
    "topic_goal": "Строит subordination graph для primary/secondary/tertiary/decorative roles и отслеживает случаи, когда нижний уровень начинает визуально спорить с верхним.",
    "expected_output": "HierarchyRelation graph, subordination violations, correction requests",
    "planned_files": [
      "18.00 Subordination graph",
      "18.01 Weight envelopes by hierarchy level",
      "18.02 Contrast/size/isolation constraints",
      "18.03 Competition and inversion detection",
      "18.04 Correction, scoring and tests"
    ]
  },
  "ownership": {
    "owner": "Compo18.03",
    "owns": [
      "HierarchyCompetitionVerdict taxonomy",
      "HierarchyCompetitionReasonCode taxonomy",
      "HierarchyCompetitionPolicy",
      "HierarchyCompetitionFinding",
      "HierarchyRelationCompetitionDescriptor",
      "SubordinationViolationKind taxonomy",
      "SubordinationViolation",
      "SubordinationViolationSet",
      "HierarchyCompetitionAttachment",
      "explicit relation-scoped selection of upstream hierarchy evidence",
      "mathematical reversal detection from valid directed 18.02 comparison values",
      "categorical competition detection from explicit 18.01/18.02 upstream descriptor states under explicit policy",
      "INVERTED-over-COMPETING-over-CLEAR categorical resolution within one relation",
      "subordination-violation materialization and relation-level aggregation",
      "identity/status/provenance rules for Topic18 competition/inversion layer",
      "non-mutating evidence correction request only for broken 18.03 selection/lineage"
    ],
    "does_not_own": [
      "HierarchyRole / HierarchySubject / HierarchyRelation / SubordinationGraph identity — Compo18.00",
      "weight channels / hierarchy-level envelopes / envelope-position descriptors — Compo18.01",
      "size/contrast/isolation bindings / constraints / comparison values / position descriptors — Compo18.02",
      "MetricResult ownership / numeric scoring / correction generation / bounded repair generation — Compo18.04",
      "raw visual mass measurement — Compo4",
      "dominance / focal ranking — Compo13",
      "attention-factor ownership — Compo13.01",
      "microdetail role-envelope semantics — Topic15",
      "object-to-object scale differentiation — Topic16",
      "aspect ratio / part-to-whole proportional systems — Topic17",
      "correlation-aware multi-signal visual hierarchy — Topic19",
      "semantic importance",
      "global balance",
      "final-layout ranking",
      "foreign geometry/style/semantic mutation"
    ]
  },
  "consumes": [
    "valid Compo18.00 HierarchyRelation / SubordinationGraph lineage",
    "valid Compo18.01 HierarchyWeightEnvelopeDescriptor[] when explicitly selected",
    "valid Compo18.02 HierarchyConstraintDescriptor[] when explicitly selected",
    "explicit HierarchyCompetitionPolicy"
  ],
  "provides": [
    "HierarchyCompetitionFinding[]",
    "HierarchyRelationCompetitionDescriptor[]",
    "SubordinationViolation[]",
    "SubordinationViolationSet",
    "HierarchyCompetitionAttachment"
  ],
  "owns_metrics": [],
  "metric_ownership_note": "18.03 emits categorical CLEAR/COMPETING/INVERTED verdicts and violation records only. Counts, reason-code multiplicity and upstream distances remain descriptors/evidence, not MetricResults, scores or independent numeric votes.",
  "verdict_taxonomy": {
    "CLEAR": "No selected valid evidence indicates a lower-level challenge to the declared superior under the explicit 18.03 policy.",
    "COMPETING": "Selected valid evidence indicates insufficient declared superior advantage or lower-level pressure, without mathematical reversal evidence.",
    "INVERTED": "At least one selected valid directed channel shows the subordinate stronger than the declared superior under the owner-qualified strength orientation.",
    "N_A": "Required selected upstream evidence is missing, conflicting or unavailable.",
    "INVALID": "Input contract, policy or lineage is malformed."
  },
  "reason_codes": [
    "CONSTRAINT_BELOW_MINIMUM",
    "MATHEMATICAL_REVERSAL",
    "SUPERIOR_WEIGHT_BELOW_ENVELOPE",
    "SUBORDINATE_WEIGHT_ABOVE_ENVELOPE",
    "NO_COMPETITION_SIGNAL",
    "MISSING_REQUIRED_EVIDENCE",
    "UPSTREAM_INVALID",
    "LINEAGE_MISMATCH"
  ],
  "competition_policy_schema": {
    "selectionMode": "EXPLICIT_RELATIONS_ONLY",
    "selectedHierarchyRelationRefs": "unique explicit refs[]",
    "selectedConstraintDescriptorRefsByRelation": "explicit mapping",
    "selectedEnvelopeDescriptorRefsByRelation": "explicit mapping",
    "requireCompleteSelectedEvidence": "boolean",
    "constraintBelowMinimumMeansCompetition": "boolean",
    "mathematicalReversalMeansInversion": "boolean",
    "superiorEnvelopeBelowMeansCompetition": "boolean",
    "subordinateEnvelopeAboveMeansCompetition": "boolean",
    "allowImplicitRelationExpansion": false,
    "allowImplicitChannelAggregation": false,
    "allowConfidenceWinner": false,
    "verdictResolution": "INVERTED_THEN_COMPETING_THEN_CLEAR",
    "mutationAllowed": false
  },
  "mathematical_reversal_contract": {
    "DIRECTED_DELTA": "comparisonValue < 0 means subordinate oriented strength > superior oriented strength",
    "DIRECTED_RATIO": "comparisonValue < 1 means subordinate oriented strength > superior oriented strength",
    "rules": [
      "reversal applies only to valid Compo18.02 descriptors",
      "comparisonMode and strength orientation remain owned upstream",
      "18.03 does not recompute raw signals",
      "exact equality is not inversion",
      "reversal finding is categorical evidence, not a numeric penalty"
    ]
  },
  "subordination_violation_schema": {
    "subordinationViolationRef": "stable identity",
    "hierarchyRelationRef": "exact Compo18.00 relation",
    "violationKind": "COMPETITION|INVERSION",
    "competitionDescriptorRef": "exact 18.03 descriptor",
    "evidenceRefs": "actual upstream refs[]",
    "reasonCodes": "unique reason codes[]",
    "status": "OPEN|INVALID",
    "severityScore": null,
    "metricResultRef": null,
    "mutationAllowed": false
  },
  "status_semantics": {
    "CLEAR": "valid categorical observation; not score 1",
    "COMPETING": "valid categorical violation; not partial score",
    "INVERTED": "valid categorical violation; not score 0",
    "N_A": "required selected evidence unavailable; not numeric zero",
    "INVALID": "malformed contract; not numeric zero"
  },
  "firewalls": [
    "competition verdict != dominance verdict",
    "inversion != focal ranking inversion",
    "constraint BELOW != automatically competition unless explicit 18.03 policy enables that interpretation",
    "envelope BELOW/ABOVE != automatically violation unless explicit 18.03 policy enables that interpretation",
    "ABOVE 18.02 constraint position does not by itself mean lower-level competition",
    "violation count != severity",
    "reason count != score",
    "INVERTED categorical priority != global rule priority",
    "CLEAR != good layout",
    "COMPETING != bad layout",
    "INVERTED != automatic final-layout rejection",
    "18.03 owns_metrics = []",
    "18.03 independent numeric votes = 0",
    "correction request != foreign mutation",
    "local != global",
    "descriptor != score",
    "one metric = one owner",
    "no universal beautyScore"
  ],
  "deferred_downstream": {
    "18.04": [
      "target/evaluation profile for subordination",
      "MetricResult component fits",
      "one composite Topic18 independent numeric vote",
      "correction requests routed to canonical owners",
      "bounded deterministic repair candidate generation",
      "final Topic18 regression/closing tests"
    ],
    "19": "correlation-aware observed visual hierarchy across size/tone/color/isolation/position/semantic signals"
  },
  "IDEAS_REFS": [
    "IDEA-01 compare declared graph competition verdicts with human perception after later topics are available",
    "IDEA-02 study relation-specific competition across style families without universal thresholds",
    "IDEA-03 preserve mathematical reversal as evidence separate from desirability",
    "IDEA-04 collect structured competition/inversion reasons for future composition model",
    "IDEA-05 preserve human correction reasons for false-positive and false-negative competition",
    "IDEA-06 expose machine-readable violation lineage to website/workbench",
    "IDEA-07 keep final aesthetic ranking downstream"
  ],
  "DATA_CAPTURE": [
    "sceneRef",
    "scopeRef",
    "snapshotRef",
    "subordinationGraphRef",
    "hierarchyCompetitionPolicyRef",
    "selectedHierarchyRelationRefs[]",
    "constraintDescriptorRefsByRelation",
    "envelopeDescriptorRefsByRelation",
    "competitionFindingRefs[]",
    "findingKindByRef",
    "findingReasonCodeByRef",
    "findingEvidenceRefsByRef",
    "hierarchyRelationCompetitionDescriptorRefs[]",
    "verdictByRelation",
    "reasonCodesByRelation",
    "subordinationViolationRefs[]",
    "violationKindByRelation",
    "subordinationViolationSetRef",
    "status",
    "reasonCode"
  ],
  "DEFERRED_SEMANTIC_INPUTS": [
    "18.04 numeric local target fit and repair generation",
    "Topic19 correlation-aware hierarchy aggregation",
    "global composition quality and final ranking"
  ],
  "HUMAN_FEEDBACK_HOOKS": [
    "mark competition false positive",
    "mark competition missed",
    "mark inversion false positive",
    "mark inversion missed",
    "correct selected upstream evidence",
    "correct relation lineage",
    "explain style-specific competition expectation"
  ],
  "CONFLICT_PRIORITY_ASSUMPTIONS": [
    "INVERTED then COMPETING then CLEAR is local categorical resolution, not global rule priority",
    "confidence does not choose among conflicting upstream evidence",
    "channel serialization order has no semantic priority",
    "reason count has no priority meaning",
    "module execution order does not imply hierarchy priority"
  ],
  "LAB_HOOKS": [
    "human competition threshold study",
    "cross-channel disagreement study",
    "role-gap competition study",
    "mathematical reversal perception study",
    "style-specific false-positive study"
  ],
  "next_module": "Compo 18.04 — Correction, scoring and tests",
  "hard_stop": "Do not implement 18.04 in this file."
}
VISITS / ...