COMPO · 14.03 · COMPETITION DETECTION / SUBORDINATION

Flag competition.
Do not score it yet.

14.03 получает descriptors 14.01–14.02 и классифицирует secondary как SUBORDINATED, COMPETING или INVERTED только относительно явной competition policy. Ни ratio, ни semantic conflict, ни echo similarity не имеют встроенного значения «конкурирует» без конкретного rule.

ModuleCompo 14.03
Policyexplicit
Flagspreserved
Stateobserved
Metricsnone
NextSTOP

Descriptors become flags only through explicit rules

00 / contract
14.01 ratio descriptor + 14.02 spatial / semantic / echo descriptors → SecondaryCompetitionSignalBundle explicit CompetitionPolicy { explicit rules explicit thresholds explicit operators explicit effects explicit required/optional signals } bundle + policy → RuleResult[] → CompetitionFlag[] → observedState NOT YET: target desirability support score candidate generation final correction synthesis → 14.04

Observed policy-relative classification only

01 / ownership
CONSUMES

Upstream descriptors

Weight, spatial, semantic and echo evidence stay owned by 14.01–14.02.

OWNS

Flags + state

Explicit competition rules, triggered flags and observed subordination classification.

NO SCORE

No target judgment

owns_metrics=[]. Desired state and scoring are deferred to 14.04.

SecondaryCompetitionSignalBundle

02 / adapters only
SignalSource
WEIGHT_RATIO14.01 ratio
DIRECTION_OPPOSITION_COSINE14.02 spatial counterweight
RADIAL_LEVERAGE_RATIO14.02 spatial counterweight
SEMANTIC_CONFLICT_FLAG14.02 semantic resolution
SEMANTIC_RELATION_PRESENTNamed relation kind from 14.02 semantic resolution
ECHO_SIMILARITYNamed featureKind from 14.02 echo descriptor
SecondaryCompetitionSignalBundle {
  secondaryCompetitionSignalBundleRef,

  secondaryMassRelationSeedRef,
  secondarySubjectRef,
  dominantSubjectRefs[],

  weightRatioDescriptorRef?,
  weightRatio?,

  spatialCounterweightDescriptorRef?,
  directionOppositionCosine?,
  radialLeverageRatio?,

  semanticSupportResolutionRef?,
  semanticConflict?,
  semanticRelationKinds[],

  echoRepetitionSupportDescriptorRef?,
  echoSimilarityByFeatureKind {},

  statusBySignalFamily {},
  status,
  reasonCode,
  mutationAllowed: false
}

SecondaryCompetitionRule

03 / explicit interpretation
SecondaryCompetitionRule {
  secondaryCompetitionRuleRef,

  ruleSourceRef,
  ruleSourceOwnerRef,

  signalKey,

  featureKind?,
  semanticRelationKind?,

  operator,

  threshold?,
  low?,
  high?,

  effect:
    COMPETITION | INVERSION,

  required,

  provenance,
  status,
  mutationAllowed: false
}
Examples of allowed explicit policy: WEIGHT_RATIO GTE 0.85 → COMPETITION WEIGHT_RATIO GTE 1.20 → INVERSION SEMANTIC_CONFLICT_FLAG IS_TRUE → COMPETITION ECHO_SIMILARITY(feature="shape") GTE 0.95 → COMPETITION These are examples only. No numbers are canonical defaults.

SecondaryCompetitionPolicy

04 / no hidden defaults
SecondaryCompetitionPolicy {
  secondaryCompetitionPolicyRef,

  policySourceRef,
  policySourceOwnerRef,

  rules[],

  requiredSignalCompleteness,

  statePrecedence:
    INVERTED
    > COMPETING
    > SUBORDINATED,

  provenance,
  status,
  mutationAllowed: false
}
No universal competition law.

Policy is explicit. Rule serialization order is not priority. Thresholds belong to the policy source, not to 14.03 as universal constants.

RuleResult is boolean, not numeric quality

05 / evaluation
SecondaryCompetitionRuleResult {
  secondaryCompetitionRuleResultRef,

  secondaryMassRelationSeedRef,
  secondaryCompetitionRuleRef,

  signalKey,
  observedValue,

  triggered,

  effect,
  required,

  status,
  reasonCode,

  dependsOn[],
  mutationAllowed: false
}
required signal missing: rule = N_A descriptor = N_A optional signal missing: rule = N_A classification may continue only because required=false triggered: true | false never a score

Preserve every trigger

06 / competition flags
SecondaryCompetitionFlag {
  secondaryCompetitionFlagRef,

  secondaryMassRelationSeedRef,
  secondaryCompetitionRuleResultRef,

  flagKind:
    COMPETITION | INVERSION,

  signalKey,
  evidenceRefs[],

  status: OPEN,
  mutationAllowed: false
}

Flags are not averaged into a hidden pressure score. If several rules trigger, all flags remain available for audit and human feedback.

SecondarySubordinationState

07 / observed classification
StateObserved meaning
SUBORDINATEDAll required rules resolved; no competition/inversion trigger fired.
COMPETINGAt least one COMPETITION trigger; no INVERSION trigger.
INVERTEDAt least one INVERSION trigger. Simultaneous competition flags remain preserved.
IMPORTANT: SUBORDINATED != support score 1 != globally good COMPETING != support score 0 != automatic failure INVERTED != hard reject != numeric penalty observedState != targetState Target desirability belongs to 14.04.

SecondaryCompetitionSubordinationSet

08 / one descriptor per relation
SecondaryCompetitionSubordinationSet {
  secondaryCompetitionSubordinationSetRef,

  dominanceScopeRef,
  dominanceAnchorBindingRef,
  secondaryCandidateSetRef,

  secondaryCompetitionPolicyRef,

  descriptorRefs[],
  secondarySubjectRefs[],

  stateBySecondarySubject {},

  competitionFlagRefs[],
  inversionFlagRefs[],

  status,
  reasonCode,
  mutationAllowed: false
}

Derived attachments, never seed mutation

09 / immutable chain
SecondaryMassRelationCompetitionAttachment {
  secondaryMassRelationCompetitionAttachmentRef,

  secondaryMassRelationSeedRef,
  secondaryCompetitionSubordinationDescriptorRef,

  status,
  mutationAllowed: false
}

SecondarySupportSystemCompetitionAttachment {
  secondarySupportSystemCompetitionAttachmentRef,

  secondarySupportSystemSeedRef,
  secondaryCompetitionSubordinationSetRef,
  relationCompetitionAttachmentRefs[],

  status,
  mutationAllowed: false
}

Observed state is policy-relative

10 / comparability
Comparable only under: same scope same dominant anchor same competition policy compatible upstream lineage same snapshot lineage Forbidden: cross-policy state ranking state → support score state → global hierarchy rule order → priority

Missing required evidence is not subordination

11 / status semantics
CaseResult
Missing required signalN_A
Missing optional signalRule N_A; may be ignored because policy explicitly says optional
Invalid upstream signalINVALID
No policy rulesINVALID
All required resolved, no triggerOK + SUBORDINATED
Competition triggerOK + COMPETING unless inversion also triggers
Inversion triggerOK + INVERTED

Rule meaning is identity-bearing

12 / deterministic lineage
ruleRef = hash( source/owner + signal key + selector + operator + thresholds + effect + required + provenance ) policyRef = hash( source/owner + canonical rule refs + provenance ) ruleResultRef = hash( relation + rule + observed value + triggered + status + lineage refs ) descriptorRef = hash( relation + candidate + policy + signal bundle + rule results + all flags + observedState )

No signal has built-in competition meaning

13 / firewalls
Forbidden shortcuts

ratio≈1→competing; ratio>1→inverted; CONFLICTS→competition; echo=1→competition; missing required signal→SUBORDINATED; flag count→score.

Preserved

explicit rules; preserved multi-flags; N_A != SUBORDINATED; observed != target; no score; no foreign mutation; generic hierarchy remains Compo18.

Topic14 ownership chain

14 / integration
OwnerRole
Compo4Visual mass.
Topic13Observed dominance.
14.00Secondary roles / relation seeds.
14.01Weight ratios.
14.02Spatial / semantic / echo descriptors.
14.03Explicit competition rules, flags and observed subordination state.
14.04Target profiles, support scoring, candidates and final tests.
Compo18Generic hierarchy/subordination graph remains separate.

Wrong flag → review rule or upstream evidence

15 / correction
SecondaryCompetitionCorrectionRequest {
  requestRef,

  targetOwnerRef,
  reasonCode,

  subjectRef?,

  evidenceRefs[],
  suggestedAction,

  status,
  mutationAllowed: false
}

CANON → LAB → DATA → IDEAS

16 / mandatory hooks
IDEAS_REFS[]7 current R&D directions retained.
DATA_CAPTURE[]signals, rules, triggers, flags and observed states.
DEFERRED_SEMANTIC_INPUTS[]desirability and penalties remain 14.04/global.
HUMAN_FEEDBACK_HOOKS[]threshold/effect/state corrections.
CONFLICT_PRIORITY_ASSUMPTIONS[]rule order and confidence are not priority.
LAB_HOOKS[]human competition perception studies.

Visual laboratory hook

17 / same evidence, different policies
SAME OBSERVATION · DIFFERENT EXPLICIT POLICIES DOMINANT SECONDARY Policy A ratio ≥ 0.80 → COMPETING observed: COMPETING Policy B ratio ≥ 1.10 → COMPETING observed: SUBORDINATED Neither threshold is universal. The state is policy-relative and still not a support score.

14.03 regression suite

18 / deterministic tests

Tests cover signal extraction, numeric/boolean/presence operators, explicit thresholds, required versus optional signals, simultaneous competition/inversion flags, state precedence, no-score semantics, cross-policy identity, immutable attachments and upstream ownership.

Tests not run yet.

DATA FOR LAYOUT ENGINE

19 / machine contract
{
  "module": "Compo 14.03",
  "name": "competition_detection_subordination",
  "version": "1.0-canonical",
  "canonical_main_title": "Competition detection / subordination",
  "topic": "14_ВТОРИЧНЫЕ_МАССЫ_И_ПОДДЕРЖКА",
  "scope": "EXPLICIT_COMPETITION_SIGNAL_ADAPTER_RULE_POLICY_TRIGGER_FLAGS_AND_OBSERVED_SECONDARY_SUBORDINATION_CLASSIFICATION_ONLY",
  "main_topic_contract": {
    "topic_title": "Вторичные массы и поддержка",
    "topic_goal": "Описывает вторичные массы как поддержку доминанты: counterweight, spatial support, echo/repetition и контроль конкуренции с главным элементом.",
    "expected_output": "SecondaryMassRelation[], support score, competition flags",
    "planned_files": [
      "14.00 Secondary role system",
      "14.01 Secondary-to-dominant weight ratios",
      "14.02 Spatial counterweight and semantic support",
      "14.03 Competition detection / subordination",
      "14.04 Scoring, candidates and tests"
    ]
  },
  "ownership": {
    "owner": "Compo14.03",
    "owns": [
      "SecondaryCompetitionSignalKey taxonomy",
      "SecondaryCompetitionSignalBundle",
      "SecondaryCompetitionRuleOperator taxonomy",
      "SecondaryCompetitionEffect taxonomy",
      "SecondaryCompetitionRule",
      "SecondaryCompetitionPolicy",
      "SecondaryCompetitionRuleResult",
      "SecondaryCompetitionFlag",
      "SecondarySubordinationState taxonomy",
      "SecondaryCompetitionSubordinationDescriptor",
      "SecondaryCompetitionSubordinationSet",
      "SecondaryMassRelationCompetitionAttachment",
      "SecondarySupportSystemCompetitionAttachment",
      "same-policy observed classification contract",
      "identity/status/provenance rules for Topic14 competition/subordination layer",
      "non-mutating correction request for competition policy or upstream evidence"
    ],
    "does_not_own": [
      "visual mass calculation — Compo4",
      "secondary role evidence / support intent / relation seed — Compo14.00",
      "secondary-to-dominant weight ratio calculation — Compo14.01",
      "spatial counterweight / semantic support / echo evidence calculation — Compo14.02",
      "observed dominance / focal ranking / leader-set identity — Compo13",
      "generic hierarchy/subordination graph — Compo18",
      "global hierarchy priority",
      "global balance ownership",
      "target desirability of SUBORDINATED/COMPETING/INVERTED states — Compo14.04",
      "support scoring / candidate generation / final correction synthesis — Compo14.04",
      "foreign geometry / semantic / feature evidence mutation"
    ]
  },
  "consumes": [
    "valid Compo14.00 SecondaryMassRelationSeed[] and SecondarySupportSystemSeed",
    "valid Compo14.01 SecondaryWeightRatioSet / ratio descriptors when policy references WEIGHT_RATIO",
    "valid Compo14.02 SpatialSemanticSupportSet and underlying spatial/semantic/echo descriptors when referenced",
    "explicit SecondaryCompetitionPolicy"
  ],
  "provides": [
    "SecondaryCompetitionSignalBundle",
    "SecondaryCompetitionRule",
    "SecondaryCompetitionPolicy",
    "SecondaryCompetitionRuleResult",
    "SecondaryCompetitionFlag",
    "SecondaryCompetitionSubordinationDescriptor",
    "SecondaryCompetitionSubordinationSet",
    "SecondaryMassRelationCompetitionAttachment",
    "SecondarySupportSystemCompetitionAttachment",
    "Topic14.03 observation record"
  ],
  "owns_metrics": [],
  "metric_ownership_note": "14.03 owns boolean/ordinal observed competition descriptors and flags, but no MetricResult score, no support score, no target-fit score and no independent numeric vote.",
  "signal_key_taxonomy": {
    "WEIGHT_RATIO": "numeric signal from Compo14.01 SecondaryToDominantWeightRatioDescriptor.ratio",
    "DIRECTION_OPPOSITION_COSINE": "numeric signal from Compo14.02 SpatialCounterweightDescriptor.directionOppositionCosine",
    "RADIAL_LEVERAGE_RATIO": "numeric signal from Compo14.02 SpatialCounterweightDescriptor.radialLeverageRatio",
    "SEMANTIC_CONFLICT_FLAG": "boolean signal from Compo14.02 SemanticSupportResolution.conflict",
    "SEMANTIC_RELATION_PRESENT": "boolean presence of an explicitly named semantic relation kind in Compo14.02 SemanticSupportResolution",
    "ECHO_SIMILARITY": "numeric signal for one explicit featureKind from Compo14.02 EchoRepetitionSupportDescriptor"
  },
  "signal_bundle_schema": {
    "secondaryCompetitionSignalBundleRef": "stable identity",
    "secondaryMassRelationSeedRef": "14.00 relation",
    "secondarySubjectRef": "subject",
    "dominantSubjectRefs": "full anchor set",
    "weightRatioDescriptorRef": "14.01 descriptor or null",
    "weightRatio": "numeric or null",
    "spatialCounterweightDescriptorRef": "14.02 descriptor or null",
    "directionOppositionCosine": "numeric or null",
    "radialLeverageRatio": "numeric or null",
    "semanticSupportResolutionRef": "14.02 descriptor or null",
    "semanticConflict": "boolean or null",
    "semanticRelationKinds": "canonical set",
    "echoRepetitionSupportDescriptorRef": "14.02 descriptor or null",
    "echoSimilarityByFeatureKind": "map featureKind -> numeric similarity",
    "statusBySignalFamily": "explicit per-family OK|N_A|INVALID",
    "status": "OK|N_A|INVALID",
    "reasonCode": "explicit",
    "mutationAllowed": false,
    "firewall": "bundle adapts existing descriptors only and does not reinterpret them before an explicit competition rule is applied"
  },
  "rule_operator_taxonomy": {
    "GT": "value > threshold",
    "GTE": "value >= threshold",
    "LT": "value < threshold",
    "LTE": "value <= threshold",
    "BETWEEN_INCLUSIVE": "low <= value <= high",
    "OUTSIDE_EXCLUSIVE": "value < low or value > high",
    "IS_TRUE": "boolean true",
    "IS_FALSE": "boolean false",
    "PRESENT": "named semantic relation is present",
    "ABSENT": "named semantic relation is absent"
  },
  "effect_taxonomy": {
    "COMPETITION": "trigger creates an observed competition flag",
    "INVERSION": "trigger creates an observed inversion flag"
  },
  "competition_rule_schema": {
    "secondaryCompetitionRuleRef": "stable identity",
    "ruleSourceRef": "explicit source",
    "ruleSourceOwnerRef": "owner",
    "signalKey": "one signal key from taxonomy",
    "featureKind": "required only for ECHO_SIMILARITY",
    "semanticRelationKind": "required only for SEMANTIC_RELATION_PRESENT",
    "operator": "compatible operator",
    "threshold": "finite numeric for GT/GTE/LT/LTE",
    "low": "finite numeric for BETWEEN/OUTSIDE",
    "high": "finite numeric > low for BETWEEN/OUTSIDE",
    "effect": "COMPETITION|INVERSION",
    "required": "boolean; missing required signal propagates N_A, missing optional signal yields rule N_A but may be omitted from classification",
    "provenance": "canonical provenance class",
    "status": "OK|INVALID",
    "mutationAllowed": false,
    "firewall": "threshold/operator/effect are explicit policy data; no threshold is universal"
  },
  "competition_policy_schema": {
    "secondaryCompetitionPolicyRef": "stable identity",
    "policySourceRef": "explicit source",
    "policySourceOwnerRef": "owner",
    "rules": "non-empty canonical set of valid SecondaryCompetitionRule",
    "requiredSignalCompleteness": "required rules must resolve; optional rules may be N_A",
    "statePrecedence": "fixed v1 semantic specificity INVERTED > COMPETING > SUBORDINATED",
    "provenance": "canonical provenance class",
    "status": "OK|INVALID",
    "mutationAllowed": false,
    "default": "NONE — no implicit thresholds, no implicit signal meanings, no implicit ratio competition law"
  },
  "rule_result_schema": {
    "secondaryCompetitionRuleResultRef": "stable identity",
    "secondaryMassRelationSeedRef": "relation",
    "secondaryCompetitionRuleRef": "rule",
    "signalKey": "rule signal",
    "observedValue": "numeric/boolean/relation-presence result or null",
    "triggered": "boolean or null when N_A",
    "effect": "copied rule effect",
    "required": "copied rule required flag",
    "status": "OK|N_A|INVALID",
    "reasonCode": "explicit",
    "dependsOn": "exact upstream descriptor refs used",
    "mutationAllowed": false,
    "firewall": "rule result is a boolean condition result, not a score or vote"
  },
  "competition_flag_schema": {
    "secondaryCompetitionFlagRef": "stable identity",
    "secondaryMassRelationSeedRef": "relation",
    "secondaryCompetitionRuleResultRef": "triggered rule result",
    "flagKind": "COMPETITION|INVERSION",
    "signalKey": "source signal",
    "evidenceRefs": "exact lineage refs",
    "status": "OPEN|INVALID",
    "mutationAllowed": false,
    "firewall": "flag records an observed policy trigger only; it is not a target violation score"
  },
  "subordination_state_taxonomy": {
    "SUBORDINATED": "all required rules resolved and no COMPETITION/INVERSION rule triggered",
    "COMPETING": "at least one COMPETITION rule triggered and no INVERSION rule triggered",
    "INVERTED": "at least one INVERSION rule triggered; any simultaneous competition flags remain preserved"
  },
  "competition_descriptor_schema": {
    "secondaryCompetitionSubordinationDescriptorRef": "stable identity",
    "secondaryMassRelationSeedRef": "relation",
    "secondaryCandidateRef": "candidate",
    "secondarySubjectRef": "subject",
    "dominantSubjectRefs": "full anchor set",
    "secondaryCompetitionPolicyRef": "explicit policy",
    "secondaryCompetitionSignalBundleRef": "signal bundle",
    "ruleResultRefs": "one result per policy rule",
    "triggeredCompetitionFlagRefs": "all triggered COMPETITION flags",
    "triggeredInversionFlagRefs": "all triggered INVERSION flags",
    "observedState": "SUBORDINATED|COMPETING|INVERTED",
    "status": "OK|N_A|INVALID",
    "reasonCode": "explicit",
    "mutationAllowed": false,
    "firewall": "observedState is policy-relative classification only; SUBORDINATED is not automatically good and INVERTED is not a numeric penalty"
  },
  "competition_set_schema": {
    "secondaryCompetitionSubordinationSetRef": "stable identity",
    "dominanceScopeRef": "scope",
    "dominanceAnchorBindingRef": "anchor",
    "secondaryCandidateSetRef": "candidate set",
    "secondaryCompetitionPolicyRef": "shared policy",
    "descriptorRefs": "one competition descriptor per relation",
    "secondarySubjectRefs": "candidate subjects",
    "stateBySecondarySubject": "subject -> observedState",
    "competitionFlagRefs": "all competition flags",
    "inversionFlagRefs": "all inversion flags",
    "status": "OK|N_A|INVALID",
    "reasonCode": "explicit",
    "mutationAllowed": false,
    "firewall": "set is observed classification only; no support-score aggregation and no cross-policy ranking"
  },
  "relation_competition_attachment_schema": {
    "secondaryMassRelationCompetitionAttachmentRef": "stable identity",
    "secondaryMassRelationSeedRef": "exact 14.00 relation",
    "secondaryCompetitionSubordinationDescriptorRef": "exact 14.03 descriptor",
    "status": "OK",
    "mutationAllowed": false,
    "firewall": "derived attachment never mutates competitionSubordinationRef on the 14.00 relation seed"
  },
  "system_competition_attachment_schema": {
    "secondarySupportSystemCompetitionAttachmentRef": "stable identity",
    "secondarySupportSystemSeedRef": "exact 14.00 system seed",
    "secondaryCompetitionSubordinationSetRef": "exact 14.03 set",
    "relationCompetitionAttachmentRefs": "canonical set",
    "status": "OK",
    "mutationAllowed": false,
    "firewall": "derived attachment never mutates competitionSubordinationSetRef on the 14.00 system seed"
  },
  "classification_policy": {
    "requiredRuleNA": "descriptor N_A; do not silently classify SUBORDINATED from incomplete required evidence",
    "optionalRuleNA": "rule result N_A; classification may proceed only because policy explicitly marked that rule optional",
    "anyInversion": "observedState INVERTED",
    "noInversionAnyCompetition": "observedState COMPETING",
    "noTriggeredFlags": "observedState SUBORDINATED",
    "firewall": "state precedence is semantic specificity inside this module, not global design-rule priority"
  },
  "status_policy": {
    "missingRequiredSignal": "N_A",
    "missingOptionalSignal": "rule-level N_A; may be ignored only because rule.required=false",
    "invalidUpstreamSignal": "INVALID",
    "policyInvalid": "INVALID",
    "noRules": "INVALID",
    "allRequiredResolvedNoTrigger": "OK + SUBORDINATED",
    "competitionTrigger": "OK + COMPETING unless any inversion trigger also exists",
    "inversionTrigger": "OK + INVERTED",
    "setIncomplete": "N_A; no silent partial set",
    "N_A_not_zero": true
  },
  "comparability_contract": {
    "requires": [
      "same dominanceScopeRef",
      "same dominanceAnchorBindingRef",
      "same secondaryCompetitionPolicyRef",
      "same upstream ratio/spatial/semantic/echo lineage for compared observations",
      "same snapshot lineage through upstream descriptors"
    ],
    "allows": "within-policy observed-state comparison only",
    "forbids": [
      "cross-policy state ranking as if thresholds were universal",
      "cross-snapshot classification comparison without explicit study contract",
      "state-to-support-score conversion",
      "state-to-global-hierarchy conversion",
      "using lexical rule order as severity or priority"
    ]
  },
  "critical_firewalls": [
    "competition policy must be explicit",
    "no universal competition threshold",
    "no universal inversion threshold",
    "no implicit weight-ratio threshold",
    "no implicit opposition threshold",
    "no implicit leverage threshold",
    "no implicit semantic-conflict competition law",
    "no implicit echo-similarity competition law",
    "weight ratio != competition flag without explicit rule",
    "ratio near 1 != automatically competing",
    "ratio above 1 != automatically inverted",
    "directionOppositionCosine != competition flag without explicit rule",
    "radialLeverageRatio != competition flag without explicit rule",
    "semantic relation CONFLICTS != competition flag without explicit rule",
    "semantic relation SUPPORTS != subordination proof",
    "echo similarity != competition flag without explicit rule",
    "echo similarity 1 != automatic competition",
    "rule result != score",
    "competition flag != numeric penalty",
    "inversion flag != numeric penalty",
    "SUBORDINATED != support score 1",
    "COMPETING != support score 0",
    "INVERTED != automatic hard reject",
    "observedState != target state",
    "observedState is policy-relative",
    "optional missing rule can be ignored only when explicitly optional",
    "missing required signal => N_A, not SUBORDINATED",
    "N_A != SUBORDINATED",
    "N_A != 0",
    "rule order != priority",
    "state precedence != global rule priority",
    "signal confidence != trigger threshold",
    "signal confidence != state severity",
    "candidate count != competition pressure",
    "flag count != competition score",
    "multiple flags are preserved and not averaged",
    "INVERTED may preserve simultaneous COMPETITION flags",
    "cross-policy state ranking is not canonical",
    "visual mass ownership remains Compo4",
    "secondary role ownership remains Compo14.00",
    "weight-ratio ownership remains Compo14.01",
    "spatial/semantic/echo ownership remains Compo14.02",
    "dominance ownership remains Compo13",
    "generic hierarchy/subordination graph remains Compo18 territory",
    "target desirability is deferred to 14.04",
    "support scoring is deferred to 14.04",
    "candidate generation/variation is deferred to 14.04",
    "14.03 owns no MetricResult",
    "14.03 owns no independent numeric vote",
    "relation attachment != relation-seed mutation",
    "system attachment != system-seed mutation",
    "global hierarchy is not owned by 14.03",
    "global balance is not owned by 14.03",
    "local != global",
    "descriptor != score",
    "module execution order != rule priority",
    "correction request != foreign mutation",
    "no universal beautyScore",
    "IDEA != CANON",
    "EXPERIMENT != CANON"
  ],
  "identity_policy": {
    "secondaryCompetitionSignalBundleRef": "hash(relation, exact upstream descriptor refs, extracted signal payload, family statuses)",
    "secondaryCompetitionRuleRef": "hash(source/owner, signal key, feature/relation selector, operator, thresholds, effect, required, provenance)",
    "secondaryCompetitionPolicyRef": "hash(source/owner, canonical rule refs, provenance)",
    "secondaryCompetitionRuleResultRef": "hash(relation, rule, observed value, triggered, status, lineage refs)",
    "secondaryCompetitionFlagRef": "hash(relation, rule result, flag kind, signal key, evidence refs)",
    "secondaryCompetitionSubordinationDescriptorRef": "hash(relation, candidate, policy, signal bundle, rule results, flags, observedState, status)",
    "secondaryCompetitionSubordinationSetRef": "hash(scope, anchor, candidate set, policy, descriptor refs, state map, flag refs)",
    "secondaryMassRelationCompetitionAttachmentRef": "hash(relation seed, competition descriptor)",
    "secondarySupportSystemCompetitionAttachmentRef": "hash(system seed, competition set, relation attachments)",
    "excluded_from_identity": [
      "display label",
      "display color",
      "free-form comment"
    ]
  },
  "correction_request_schema": {
    "requestRef": "stable identity",
    "targetOwnerRef": "competition-policy owner or upstream evidence owner",
    "reasonCode": "COMPETITION_RULE_WRONG|COMPETITION_THRESHOLD_WRONG|COMPETITION_EFFECT_WRONG|REQUIRED_SIGNAL_POLICY_WRONG|WEIGHT_SIGNAL_WRONG|SPATIAL_SIGNAL_WRONG|SEMANTIC_SIGNAL_WRONG|ECHO_SIGNAL_WRONG|OBSERVED_STATE_WRONG",
    "subjectRef": "secondary subject or null for policy issue",
    "evidenceRefs": "canonical refs",
    "suggestedAction": "non-mutating review request",
    "status": "OPEN|INVALID",
    "mutationAllowed": false
  },
  "deferred_downstream": {
    "14.04": [
      "desired target support/subordination profiles",
      "component and composite support scoring",
      "mapping observed SUBORDINATED/COMPETING/INVERTED to target fit",
      "candidate generation/variation",
      "final Topic14 correction synthesis",
      "consolidated Topic14 tests"
    ]
  },
  "IDEAS_REFS": [
    "IDEA-01 full human test after all 72 topics; compare human competition judgments with explicit policy triggers",
    "IDEA-02 semantics needed before placement; semantic conflict remains owner-qualified evidence rather than self-interpreting truth",
    "IDEA-03 explicit rule priorities; competition rule order never becomes hidden global 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",
    "dominanceAnchorBindingRef",
    "secondaryCandidateSetRef",
    "secondarySupportSystemSeedRef",
    "secondaryMassRelationSeedRefs[]",
    "secondaryCompetitionPolicyRef",
    "secondaryCompetitionRuleRefs[]",
    "secondaryCompetitionSignalBundleRefs[]",
    "weightRatioSignalsBySubject",
    "directionOppositionSignalsBySubject",
    "radialLeverageSignalsBySubject",
    "semanticConflictSignalsBySubject",
    "semanticRelationKindsBySubject",
    "echoSimilaritiesBySubjectAndFeature",
    "ruleResultRefs[]",
    "triggeredCompetitionFlagRefs[]",
    "triggeredInversionFlagRefs[]",
    "observedStateBySecondarySubject",
    "secondaryCompetitionSubordinationDescriptorRefs[]",
    "secondaryCompetitionSubordinationSetRef",
    "humanReasonCodes[]",
    "future targetProfileRef",
    "future secondaryEvaluationRefs[]"
  ],
  "DEFERRED_SEMANTIC_INPUTS": [
    "whether SUBORDINATED is desirable for a specific style",
    "whether deliberate secondary competition is desired",
    "whether inversion is intentionally allowed",
    "target competition/subordination profile",
    "global hierarchy priority",
    "style-specific penalties/rewards for each observed state"
  ],
  "HUMAN_FEEDBACK_HOOKS": [
    "COMPETITION_RULE_WRONG",
    "COMPETITION_THRESHOLD_TOO_LOW",
    "COMPETITION_THRESHOLD_TOO_HIGH",
    "INVERSION_THRESHOLD_TOO_LOW",
    "INVERSION_THRESHOLD_TOO_HIGH",
    "RULE_EFFECT_WRONG",
    "RULE_REQUIRED_FLAG_WRONG",
    "WEIGHT_RATIO_SIGNAL_WRONG",
    "OPPOSITION_SIGNAL_WRONG",
    "LEVERAGE_SIGNAL_WRONG",
    "SEMANTIC_CONFLICT_SIGNAL_WRONG",
    "SEMANTIC_RELATION_SIGNAL_WRONG",
    "ECHO_SIGNAL_WRONG",
    "SECONDARY_READS_SUBORDINATED",
    "SECONDARY_READS_COMPETING",
    "SECONDARY_READS_INVERTED",
    "MULTIPLE_FLAGS_SHOULD_BE_PRESERVED",
    "OPTIONAL_SIGNAL_SHOULD_BE_REQUIRED",
    "REQUIRED_SIGNAL_SHOULD_BE_OPTIONAL",
    "OBSERVED_STATE_SHOULD_NOT_BE_SCORE"
  ],
  "CONFLICT_PRIORITY_ASSUMPTIONS": [
    "module execution order is not priority",
    "rule serialization order is not rule priority",
    "signal confidence is not trigger priority",
    "INVERTED > COMPETING > SUBORDINATED is local state specificity, not global design priority",
    "simultaneous flags remain preserved rather than averaged",
    "future reviewed global conflict-priority owner remains authoritative"
  ],
  "LAB_HOOKS": [
    "human study: weight-ratio thresholds versus perceived competition",
    "human study: perceived inversion versus ratio above one",
    "test whether semantic CONFLICTS actually reads as visual competition",
    "test whether high echo similarity increases or reduces competition in different styles",
    "compare optional versus required signal policies",
    "collect scenes where SUBORDINATED is undesirable because deliberate tension is intended",
    "collect scenes with simultaneous competition and inversion flags"
  ],
  "observation_record": {
    "moduleRef": "Compo14.03",
    "metricResults": [],
    "secondaryEvaluationRefs": []
  },
  "stop_condition": "STOP after 14.03. Do not create 14.04 in this module."
}
VISITS / ...