Judgement after descriptors, before scoring
Detect only the hierarchy conflict
18.03
Explicit evidence selection, categorical CLEAR / COMPETING / INVERTED relation verdicts, mathematical reversal findings and subordination-violation records.
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
| Source | May provide | 18.03 must not do |
|---|---|---|
| 18.01 | role-level envelope position for exact subject | recompute weight or redefine envelope |
| 18.02 | directed comparisonValue + BELOW/WITHIN/ABOVE for exact relation/channel | recompute raw size/contrast/isolation |
| 18.00 | exact superior→subordinate relation identity | change role or edge direction |
Inversion has a mathematical meaning
comparisonValue < 0
After upstream strength orientation, subordinate is stronger than superior on that selected channel.
comparisonValue < 1
After upstream orientation, subordinate strength exceeds superior strength. Equality is not inversion.
Competition is policy-bound
ABOVE по 18.02 constraint сам по себе не означает конкуренцию subordinate: superior может просто оказаться сильнее локального верхнего target.
Resolution is deterministic and local
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
| Verdict | Violation | Meaning |
|---|---|---|
| CLEAR | none | No selected evidence of lower-level challenge. |
| COMPETING | COMPETITION | Lower level pressures the declared superior under explicit local policy. |
| INVERTED | INVERSION | At least one selected directed channel shows subordinate stronger than superior. |
N_A stays unavailable
Valid observation
Not score 1 and not proof of a globally good hierarchy.
Evidence incomplete
Required selected evidence is missing/conflicting/unavailable. Never coerced to CLEAR.
Contract broken
Malformed policy, wrong relation lineage or invalid upstream descriptor.
Topic 18 ownership remains layered
| 18.00 | Declared roles, directed relations, SubordinationGraph. |
| 18.01 | Weight envelopes and envelope-position descriptors. |
| 18.02 | SIZE / CONTRAST / ISOLATION constraint descriptors. |
| 18.03 | Competition, inversion and subordination violations. |
| 18.04 | MetricResult scoring, correction requests and bounded generator. |
| Topic19 | Correlation-aware multi-signal observed hierarchy. |
Categorical conflict ≠ quality
CANON → LAB → DATA → IDEAS
18.03 regression suite
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.
DATA FOR LAYOUT ENGINE
{
"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."
}