Observed levels, not preferred levels
Ladder structure is descriptive
Exact levels
Unique observed class-basis ratios become ascending scale levels.
Distributions
Class frequencies and exact-level occupancy over one explicit selection.
Structure only
owns_metrics=[]. More levels and even distributions are not preferred.
Selection is explicit
ScaleLadderDistributionPolicy {
scaleClassAssignmentSetRef,
scaleClassProfileRef,
selectionMode:
ALL_ASSIGNMENT_SUBJECTS
or
EXPLICIT_SUBJECT_REFS,
explicitSubjectRefs[],
subjectMultiplicityPolicy:
REQUIRE_UNIQUE_OK_ASSIGNMENT_PER_SUBJECT,
zeroSelectedPolicy:
N_A,
maxSelectedSubjects: 1..4096,
overflowPolicy:
N_A_NO_TRUNCATION
}
Exact basis ratios define levels
No epsilon, clustering or near-equal merge is introduced in 16.03.
ScaleLadderLevelDescriptor
ScaleLadderLevelDescriptor {
levelIndex,
basisRatio,
classKind,
subjectRefs[],
assignmentRefs[],
basisDescriptorRefs[],
subjectCount,
status: OK,
provenance: DERIVED,
mutationAllowed: false
}
Adjacent scale steps
higherToLowerStepRatio
= higherBasisRatio
/ lowerBasisRatio
> 1
stepRatioDeltaFromEquality
= higherToLowerStepRatio - 1
> 0
ScaleLadderDescriptor
occupiedLevelCount selectedSubjectCount minBasisRatio maxBasisRatio overallSpanRatio = max / min isSingleLevel levelRefs[] stepRefs[]
Class-frequency distribution
| Class | Fields |
|---|---|
| SMALL | count, proportion, subjectRefs[] |
| MEDIUM | count, proportion, subjectRefs[] |
| LARGE | count, proportion, subjectRefs[] |
Exact-level occupancy distribution
Even occupancy is not automatically good; concentrated occupancy is not automatically bad.
Scale distribution ≠ spatial distribution
No hidden target progression
Golden ratio, 1.618 step, modular scale, logarithmic regularity, preferred number of levels, ideal class balance.
Exact occupied ratios, ascending order, adjacent observed steps, counts and proportions.
Immutable downstream attachment
ScaleSystemLadderDistributionAttachment {
scaleSystemClassAttachmentRef,
scaleLadderDistributionSetRef,
status,
mutationAllowed: false
}
Scoring remains 16.04
| 16.00 | Relation identity and measurement binding. |
| 16.01 | Magnitude resolution, pairwise ratios, near-equal descriptors. |
| 16.02 | Profile-relative SMALL/MEDIUM/LARGE classes. |
| 16.03 | Observed ladders, steps and distributions. |
| 16.04 | Explicit target fit, MetricResult ownership and bounded repair candidates. |
Descriptor ≠ target fit
CANON → LAB → DATA → IDEAS
16.03 regression suite
Tests cover explicit selection, duplicate-subject N_A, exact-ratio level grouping, near-equal non-merging, ascending ladder order, adjacent step math, single-level semantics, class and level distribution invariants, immutable attachments and no-score firewalls.
DATA FOR LAYOUT ENGINE
{
"module": "Compo 16.03",
"name": "scale_ladders_and_distributions",
"version": "1.0-canonical",
"canonical_main_title": "Scale ladders and distributions",
"topic": "16_МАСШТАБ_И_ОТНОШЕНИЕ_РАЗМЕРОВ",
"scope": "EXPLICIT_SUBJECT_SELECTION_EXACT_BASIS_RATIO_LEVELS_ADJACENT_SCALE_LADDER_STEPS_AND_NONSCORING_CLASS_LEVEL_DISTRIBUTIONS_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.03",
"owns": [
"ScaleLadderDistributionSelectionMode taxonomy",
"ScaleLadderDistributionPolicy",
"ScaleDistributionSelection",
"ScaleClassFrequencyEntry",
"ScaleClassDistributionDescriptor",
"ScaleLadderLevelDescriptor",
"ScaleLadderStepDescriptor",
"ScaleLadderDescriptor",
"ScaleLevelOccupancyEntry",
"ScaleLevelDistributionDescriptor",
"ScaleLadderDistributionSet",
"ScaleSystemLadderDistributionAttachment",
"exact-basis-ratio ladder-level construction",
"adjacent higher-to-lower ladder-step ratios",
"class-frequency and exact-level occupancy distributions",
"identity/status/provenance rules for Topic16 ladder/distribution layer",
"non-mutating correction request for selection / ladder-distribution policy / upstream class lineage"
],
"does_not_own": [
"ScaleSubject eligibility / ScaleRelation identity — Compo16.00",
"raw magnitude evidence / magnitude resolution — Compo16.01",
"pairwise numeric size ratios — Compo16.01",
"near-equal policy / near-equal bands — Compo16.01",
"ScaleClassProfile / SMALL-MEDIUM-LARGE assignment — Compo16.02",
"class boundaries — Compo16.02",
"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",
"target desirability of ladder steps / class distributions — Compo16.04",
"MetricResult ownership / independent vote / repair generation — Compo16.04",
"aspect ratio / part-to-whole proportions — Topic17",
"generic hierarchy/subordination — Compo18",
"semantic importance",
"global balance",
"foreign geometry/style/semantic mutation"
]
},
"consumes": [
"valid Compo16.02 ScaleClassAssignmentSet",
"valid Compo16.02 ScaleClassProfile lineage",
"ScaleClassBasisDescriptor records referenced by assignments",
"ScaleClassAssignment records",
"explicit ScaleLadderDistributionPolicy"
],
"provides": [
"ScaleDistributionSelection",
"ScaleClassDistributionDescriptor",
"ScaleLadderLevelDescriptor[]",
"ScaleLadderStepDescriptor[]",
"ScaleLadderDescriptor",
"ScaleLevelDistributionDescriptor",
"ScaleLadderDistributionSet",
"ScaleSystemLadderDistributionAttachment",
"Topic16.03 observation record"
],
"owns_metrics": [],
"metric_ownership_note": "16.03 owns descriptive distributions and ladder structure only. Counts, proportions, occupied-level count, span ratio and adjacent-step ratios are descriptors, not MetricResult values, scores, quality judgments or independent numeric votes.",
"selection_mode_taxonomy": {
"ALL_ASSIGNMENT_SUBJECTS": "Use every unique OK assignment subject in the exact 16.02 assignment set.",
"EXPLICIT_SUBJECT_REFS": "Use exactly the explicit subject refs supplied by the policy."
},
"scale_ladder_distribution_policy_schema": {
"scaleLadderDistributionPolicyRef": "stable identity",
"scopeRef": "Topic16 scope",
"scaleClassAssignmentSetRef": "exact Compo16.02 assignment set",
"scaleClassProfileRef": "exact Compo16.02 class profile",
"selectionMode": "ALL_ASSIGNMENT_SUBJECTS|EXPLICIT_SUBJECT_REFS",
"explicitSubjectRefs": "empty for ALL_ASSIGNMENT_SUBJECTS; unique non-empty refs for EXPLICIT_SUBJECT_REFS",
"subjectMultiplicityPolicy": "REQUIRE_UNIQUE_OK_ASSIGNMENT_PER_SUBJECT",
"zeroSelectedPolicy": "N_A",
"levelMergeMode": "EXACT_BASIS_RATIO_ONLY",
"stepMode": "ADJACENT_HIGHER_TO_LOWER_RATIO",
"maxSelectedSubjects": "integer 1..4096",
"maxLevels": "integer 1..4096",
"overflowPolicy": "N_A_NO_TRUNCATION",
"levelOrdering": "BASIS_RATIO_ASCENDING",
"subjectOrderingWithinLevel": "LEXICAL_SERIALIZATION_ONLY",
"policySourceRef": "explicit source",
"policySourceOwnerRef": "owner",
"provenance": "canonical provenance",
"status": "OK|INVALID",
"mutationAllowed": false,
"default": "NONE — no implicit distribution policy",
"firewall": "Selection and level construction are explicit. Near-equal values are not merged in v1; class labels do not define ladder levels; lexical subject order never defines scale order."
},
"scale_distribution_selection_schema": {
"scaleDistributionSelectionRef": "stable identity",
"scaleLadderDistributionPolicyRef": "exact policy",
"scaleClassAssignmentSetRef": "exact assignment set",
"selectedSubjectRefs": "canonical unique refs",
"selectedAssignmentRefs": "one exact assignment per selected subject",
"selectedBasisDescriptorRefs": "one exact basis descriptor per selected subject",
"selectedSubjectCount": "integer >0 when OK",
"status": "OK|N_A|INVALID",
"reasonCode": "explicit",
"mutationAllowed": false,
"firewall": "Selection count is denominator provenance only. It is not scale diversity, hierarchy quality or composition score."
},
"scale_class_frequency_entry_schema": {
"scaleClassFrequencyEntryRef": "stable identity",
"scaleClassDistributionDescriptorRef": "parent descriptor identity context",
"classKind": "SMALL|MEDIUM|LARGE",
"count": "integer >=0",
"proportion": "finite [0,1]",
"subjectRefs": "canonical refs in this class",
"status": "OK",
"mutationAllowed": false,
"firewall": "Class count/proportion is descriptive only. Zero count is valid numeric zero, not N_A."
},
"scale_class_distribution_descriptor_schema": {
"scaleClassDistributionDescriptorRef": "stable identity",
"scaleDistributionSelectionRef": "exact selection",
"scaleClassProfileRef": "exact profile",
"selectedSubjectCount": "positive denominator",
"entries": "exactly SMALL, MEDIUM, LARGE entries",
"occupiedClassKinds": "classes with count >0",
"occupiedClassCount": "integer 1..3",
"status": "OK|N_A|INVALID",
"provenance": "DERIVED",
"mutationAllowed": false,
"invariants": [
"sum(count) = selectedSubjectCount",
"sum(proportion) = 1 within numeric tolerance",
"count == subjectRefs.length for every class"
],
"firewall": "Uniform class proportions are not automatically good; skewed proportions are not automatically bad. No class-balance score is owned here."
},
"scale_ladder_level_descriptor_schema": {
"scaleLadderLevelDescriptorRef": "stable identity",
"scaleDistributionSelectionRef": "exact selection",
"scaleClassProfileRef": "exact profile",
"levelIndex": "1-based ascending by exact basisRatio",
"basisRatio": "finite strictly positive exact observed class-basis ratio",
"classKind": "SMALL|MEDIUM|LARGE",
"subjectRefs": "all selected subjects with exactly this basisRatio",
"assignmentRefs": "matching assignment refs",
"basisDescriptorRefs": "matching basis refs",
"subjectCount": "integer >=1",
"status": "OK",
"provenance": "DERIVED",
"mutationAllowed": false,
"firewall": "A ladder level is an exact observed size level under one class profile. Same class may contain multiple levels. Near-equal-but-not-equal basis ratios remain distinct levels."
},
"scale_ladder_step_descriptor_schema": {
"scaleLadderStepDescriptorRef": "stable identity",
"lowerLevelRef": "exact lower adjacent level",
"higherLevelRef": "exact higher adjacent level",
"lowerBasisRatio": "finite >0",
"higherBasisRatio": "finite > lowerBasisRatio",
"higherToLowerStepRatio": "higherBasisRatio / lowerBasisRatio, finite >1",
"stepRatioDeltaFromEquality": "higherToLowerStepRatio - 1, finite >0",
"lowerClassKind": "class at lower level",
"higherClassKind": "class at higher level",
"crossesClassBoundary": "boolean",
"status": "OK",
"provenance": "DERIVED",
"mutationAllowed": false,
"firewall": "Adjacent step ratio describes spacing between occupied exact levels. It is not an ideal progression, preferred modular scale, quality score or hierarchy vote."
},
"scale_ladder_descriptor_schema": {
"scaleLadderDescriptorRef": "stable identity",
"scaleDistributionSelectionRef": "exact selection",
"scaleClassProfileRef": "exact profile",
"levelRefs": "ascending exact observed levels",
"stepRefs": "adjacent steps; count=max(levelCount-1,0)",
"occupiedLevelCount": "integer >=1",
"selectedSubjectCount": "integer >=1",
"minBasisRatio": "lowest level ratio",
"maxBasisRatio": "highest level ratio",
"overallSpanRatio": "maxBasisRatio/minBasisRatio, finite >=1",
"isSingleLevel": "boolean",
"status": "OK|N_A|INVALID",
"provenance": "DERIVED",
"mutationAllowed": false,
"firewall": "Occupied-level count and span ratio are descriptive. More levels != better; fewer levels != worse; span ratio != expressiveness score."
},
"scale_level_occupancy_entry_schema": {
"scaleLevelOccupancyEntryRef": "stable identity",
"scaleLevelDistributionDescriptorRef": "parent descriptor identity context",
"scaleLadderLevelRef": "exact level",
"basisRatio": "exact level basis ratio",
"classKind": "level class",
"count": "level subject count",
"proportion": "count / selectedSubjectCount",
"subjectRefs": "exact occupants",
"status": "OK",
"mutationAllowed": false,
"firewall": "Level occupancy is a distribution statistic, not salience, attention, importance or quality."
},
"scale_level_distribution_descriptor_schema": {
"scaleLevelDistributionDescriptorRef": "stable identity",
"scaleLadderDescriptorRef": "exact ladder",
"scaleDistributionSelectionRef": "exact selection",
"selectedSubjectCount": "positive denominator",
"entries": "one entry per occupied ladder level",
"occupiedLevelCount": "same as ladder",
"status": "OK|N_A|INVALID",
"provenance": "DERIVED",
"mutationAllowed": false,
"invariants": [
"sum(count) = selectedSubjectCount",
"sum(proportion) = 1 within numeric tolerance",
"entries ordered by basisRatio ascending"
],
"firewall": "Even level occupancy is not automatically good and concentrated occupancy is not automatically bad. No entropy, regularity, diversity or balance score is owned here."
},
"scale_ladder_distribution_set_schema": {
"scaleLadderDistributionSetRef": "stable identity",
"scopeRef": "scope",
"scaleClassAssignmentSetRef": "exact upstream assignment set",
"scaleClassProfileRef": "exact class profile",
"scaleLadderDistributionPolicyRef": "exact explicit policy",
"scaleDistributionSelectionRef": "exact selection",
"scaleClassDistributionDescriptorRef": "class distribution",
"scaleLadderLevelRefs": "canonical ordered levels",
"scaleLadderStepRefs": "canonical ordered steps",
"scaleLadderDescriptorRef": "exact ladder",
"scaleLevelDistributionDescriptorRef": "level occupancy distribution",
"status": "OK|N_A|INVALID",
"reasonCode": "explicit",
"mutationAllowed": false,
"firewall": "This set is descriptive only. It does not select a target distribution, evaluate ladder regularity, score differentiation or generate repairs."
},
"scale_system_ladder_distribution_attachment_schema": {
"scaleSystemLadderDistributionAttachmentRef": "stable identity",
"scaleSystemClassAttachmentRef": "exact 16.02 system class attachment",
"scaleLadderDistributionSetRef": "exact 16.03 set",
"status": "OK|N_A|INVALID",
"mutationAllowed": false,
"firewall": "16.00 ScaleSystemSeed.scaleLadderAttachmentRef remains null. 16.03 attaches derived ladder/distribution data without mutating 16.00–16.02 records."
},
"comparability_contract": {
"ladder_or_distribution_comparison_requires": [
"same exact ScaleClassProfileRef",
"same exact ScaleLadderDistributionPolicyRef",
"same exact scaleMeasurementBindingRef through the class profile",
"same exact referenceSubjectRef through the class profile",
"compatible assignment/magnitude snapshot lineage"
],
"forbids": [
"cross-profile occupied-level-count ranking",
"cross-policy distribution comparison",
"cross-reference-subject span comparison",
"cross-binding ladder-step comparison",
"near-equal-band merging into exact ladder levels",
"class count comparison as hierarchy comparison",
"distribution comparison as global quality comparison"
],
"firewall": "Different profile/policy ladders are not canonically rank-comparable. A larger occupiedLevelCount under another profile is not evidence of better differentiation."
},
"ladder_math_contract": {
"levelMerge": "exact numeric basisRatio equality only",
"levelOrder": "strictly ascending basisRatio",
"adjacentStep": "higherBasisRatio / lowerBasisRatio",
"stepDelta": "higherToLowerStepRatio - 1",
"overallSpan": "maxBasisRatio / minBasisRatio",
"singleLevel": {
"stepCount": 0,
"overallSpanRatio": 1
},
"domains": {
"basisRatio": "(0,+∞)",
"higherToLowerStepRatio": "(1,+∞)",
"stepRatioDeltaFromEquality": "(0,+∞)",
"overallSpanRatio": "[1,+∞)"
},
"firewall": "No logarithmic-step regularity score, no modular-scale target, no golden-ratio target, no preferred occupied-level count and no distribution desirability transform."
},
"status_policy": {
"invalidPolicy": "INVALID",
"invalidAssignmentSet": "INVALID",
"policyAssignmentSetMismatch": "N_A",
"policyProfileMismatch": "N_A",
"zeroSelectedSubjects": "N_A",
"selectedSubjectMissing": "N_A",
"selectedSubjectDuplicateAssignment": "N_A",
"selectedAssignmentN_A": "N_A",
"selectedAssignmentInvalid": "INVALID",
"selectedBasisMissing": "N_A",
"selectedBasisN_A": "N_A",
"selectedBasisInvalid": "INVALID",
"selectedBasisProfileMismatch": "N_A",
"selectedSubjectOverflow": "N_A; no truncation",
"levelOverflow": "N_A; no truncation",
"zeroClassCount": "valid numeric 0",
"singleOccupiedLevel": "OK ladder with zero steps and span ratio 1",
"validDistributionSet": "OK",
"N_A_not_zero": true
},
"identity_policy": {
"scaleLadderDistributionPolicyRef": "hash(scope, assignment set, profile, selection mode/refs, multiplicity/zero/merge/step/max/overflow/order policies, source/owner, provenance, status)",
"scaleDistributionSelectionRef": "hash(policy, assignment set, canonical selected subject/assignment/basis refs, selected count, status)",
"scaleClassFrequencyEntryRef": "hash(parent distribution identity context, class, count, proportion, canonical subject refs, status)",
"scaleClassDistributionDescriptorRef": "hash(selection, profile, denominator, class counts/proportions/subjects, occupied classes, status)",
"scaleLadderLevelDescriptorRef": "hash(selection, profile, level index, exact basis ratio, class, canonical subject/assignment/basis refs, count, status)",
"scaleLadderStepDescriptorRef": "hash(lower/higher levels, exact ratios, step ratio/delta, classes, boundary-cross flag, status)",
"scaleLadderDescriptorRef": "hash(selection, profile, ordered level/step refs, counts, min/max/span/single flag, status)",
"scaleLevelOccupancyEntryRef": "hash(parent level-distribution context, level, ratio, class, count/proportion/subjects, status)",
"scaleLevelDistributionDescriptorRef": "hash(ladder, selection, denominator, ordered occupancy entries, occupied count, status)",
"scaleLadderDistributionSetRef": "hash(scope, assignment set, profile, policy, selection, class distribution, ordered levels/steps, ladder, level distribution, status)",
"scaleSystemLadderDistributionAttachmentRef": "hash(system class attachment, ladder-distribution set, status)",
"excluded_from_identity": [
"display label",
"display color",
"UI ordering outside canonical basis/lexical serialization",
"free-form comment"
]
},
"critical_firewalls": [
"16.03 consumes Compo16.02 assignments; it does not redefine class assignment ownership",
"16.03 consumes Compo16.02 basis ratios; it does not redefine class-basis ownership",
"16.03 owns descriptive scale ladders and distributions only",
"16.03 owns no MetricResult",
"16.03 owns no independent numeric vote",
"ladder/distribution policy must be explicit",
"no implicit distribution policy",
"selection mode must be explicit",
"explicit subset subject refs must be unique",
"zero selected subjects => N_A",
"selected subject must have exactly one OK assignment",
"duplicate subject assignments are not silently counted twice",
"duplicate subject assignments => N_A",
"selection count is denominator provenance only",
"selection count != scale diversity",
"selection count != score",
"level merge mode = EXACT_BASIS_RATIO_ONLY",
"exact basis-ratio equality may share one ladder level",
"near-equal-but-not-equal basis ratios remain distinct levels",
"near-equal policy from 16.01 does not merge ladder levels",
"class labels do not define ladder levels",
"same class may occupy multiple exact ladder levels",
"different classes cannot share one exact level under one valid deterministic class profile",
"ladder level order comes from basisRatio ascending",
"ladder level order != hierarchy order",
"ladder level order != dominance order",
"ladder level order != importance order",
"ladder level order != quality order",
"subject lexical order != scale order",
"subject lexical order within level is serialization only",
"occupiedLevelCount != scale quality",
"more occupied levels != better",
"fewer occupied levels != worse",
"single occupied level != failure",
"single occupied level has zero steps",
"single occupied level has overallSpanRatio 1",
"overallSpanRatio != expressiveness score",
"larger overallSpanRatio != automatically better",
"smaller overallSpanRatio != automatically worse",
"adjacent ladder step uses higherBasisRatio/lowerBasisRatio",
"adjacent ladder step ratio > 1",
"step ratio != preferred progression",
"step ratio != hierarchy strength",
"step ratio != score",
"step delta != penalty",
"equal adjacent step ratios != automatically good",
"irregular adjacent step ratios != automatically bad",
"no logarithmic regularity score in 16.03",
"no modular scale target in 16.03",
"no golden-ratio ladder target",
"no implicit 1.618 ladder step",
"no preferred occupied-level count",
"class distribution denominator = selectedSubjectCount",
"class count sum = selectedSubjectCount",
"class proportions sum = 1",
"zero class count is valid numeric 0",
"zero class count != N_A",
"uniform class distribution != automatically good",
"skewed class distribution != automatically bad",
"class proportion != target fit",
"class distribution != score",
"class distribution != hierarchy",
"level occupancy denominator = selectedSubjectCount",
"level occupancy count sum = selectedSubjectCount",
"level occupancy proportions sum = 1",
"even level occupancy != automatically good",
"concentrated level occupancy != automatically bad",
"level occupancy != salience",
"level occupancy != attention",
"level occupancy != importance",
"level occupancy != score",
"no entropy score in 16.03",
"no diversity score in 16.03",
"no balance score in 16.03",
"no ladder regularity score in 16.03",
"no target scoring in 16.03",
"no repair generator in 16.03",
"ScaleClassDistributionDescriptor != MetricResult",
"ScaleLadderDescriptor != MetricResult",
"ScaleLevelDistributionDescriptor != MetricResult",
"ScaleSubject/ScaleRelation ownership remains Compo16.00",
"magnitude/ratio/near-equal ownership remains Compo16.01",
"ScaleClassProfile/class assignment ownership remains Compo16.02",
"scoring/generator ownership remains Compo16.04",
"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",
"ladder span != visual mass range",
"ladder span != dominance range",
"ladder level != hierarchy level",
"ladder level != semantic importance level",
"scale distribution != spatial distribution",
"scale distribution != density map",
"scale ladder != typographic modular scale target",
"ladder/distribution attachment != upstream mutation",
"system ladder attachment != ScaleSystemSeed mutation",
"system ladder attachment != ratio-set mutation",
"system ladder attachment != class-assignment-set 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": {
"scaleLadderDistributionCorrectionRequestRef": "stable identity",
"targetOwnerRef": "selection-policy / class-assignment / class-profile / basis-lineage owner",
"reasonCode": "SELECTION_POLICY_WRONG|SUBJECT_SELECTION_WRONG|DUPLICATE_SUBJECT_ASSIGNMENT_WRONG|CLASS_ASSIGNMENT_WRONG|BASIS_RATIO_WRONG|CLASS_PROFILE_WRONG|LADDER_LEVEL_CONSTRUCTION_WRONG|CLASS_DISTRIBUTION_WRONG|LEVEL_DISTRIBUTION_WRONG",
"scaleLadderDistributionPolicyRef": "exact policy or null",
"subjectRefs": "canonical refs[]",
"evidenceRefs": "canonical refs[]",
"suggestedAction": "non-mutating review request",
"status": "OPEN|INVALID",
"mutationAllowed": false
},
"deferred_downstream": {
"16.04": [
"explicit target scale-relation / class / ladder / distribution profile",
"target desirability of near-equal relations",
"target desirability of class proportions",
"target desirability of occupied level count / ladder span / step pattern",
"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 hierarchy/differentiation with ladder descriptors without promoting perception to canon automatically",
"IDEA-02 semantics before placement; subject selection and profile lineage remain explicit",
"IDEA-03 explicit priorities; ladder order is size order only and never hidden global priority",
"IDEA-04 collect structured ladder/distribution data for future composition model",
"IDEA-05 preserve reasons for human corrections to ladder levels, distributions and selected subjects",
"IDEA-06 structured machine-readable data layer for website",
"IDEA-07 graphics-for-post-text research remains downstream/separate"
],
"DATA_CAPTURE": [
"sceneRef",
"scopeRef",
"snapshotRef",
"scaleClassAssignmentSetRef",
"scaleClassProfileRef",
"scaleMeasurementBindingRef",
"referenceSubjectRef",
"scaleLadderDistributionPolicyRef",
"selectionMode",
"explicitSubjectRefs[]",
"selectedSubjectRefs[]",
"selectedAssignmentRefs[]",
"selectedBasisDescriptorRefs[]",
"selectedSubjectCount",
"scaleDistributionSelectionRef",
"scaleClassDistributionDescriptorRef",
"classCountByKind",
"classProportionByKind",
"occupiedClassKinds[]",
"occupiedClassCount",
"scaleLadderLevelRefs[]",
"basisRatioByLevel",
"classKindByLevel",
"subjectRefsByLevel",
"subjectCountByLevel",
"scaleLadderStepRefs[]",
"higherToLowerStepRatioByStep",
"stepRatioDeltaByStep",
"crossesClassBoundaryByStep",
"scaleLadderDescriptorRef",
"occupiedLevelCount",
"minBasisRatio",
"maxBasisRatio",
"overallSpanRatio",
"isSingleLevel",
"scaleLevelDistributionDescriptorRef",
"levelOccupancyCountByLevel",
"levelOccupancyProportionByLevel",
"scaleLadderDistributionSetRef",
"scaleSystemLadderDistributionAttachmentRef",
"humanReasonCodes[]",
"futureMetricResultRefs[]"
],
"DEFERRED_SEMANTIC_INPUTS": [
"whether more or fewer occupied scale levels are desirable",
"desired class-frequency distribution",
"desired level-occupancy distribution",
"desired ladder span",
"desired adjacent-step pattern",
"whether equal step ratios are desirable",
"whether near-equal occupied levels should be discouraged",
"global hierarchy consequences of ladder structure",
"final Topic16 target profile"
],
"HUMAN_FEEDBACK_HOOKS": [
"SUBJECT_SELECTION_WRONG",
"SUBJECT_SHOULD_BE_INCLUDED",
"SUBJECT_SHOULD_BE_EXCLUDED",
"DUPLICATE_SUBJECT_ASSIGNMENT_REAL",
"DUPLICATE_SUBJECT_ASSIGNMENT_SHOULD_RESOLVE",
"LADDER_LEVEL_SHOULD_MERGE",
"LADDER_LEVEL_SHOULD_REMAIN_DISTINCT",
"EXACT_LEVEL_GROUPING_WRONG",
"LADDER_ORDER_WRONG",
"STEP_RATIO_WRONG",
"SPAN_RATIO_WRONG",
"CLASS_DISTRIBUTION_WRONG",
"LEVEL_DISTRIBUTION_WRONG",
"CLASS_PROPORTIONS_FEEL_TOO_EVEN",
"CLASS_PROPORTIONS_FEEL_TOO_SKEWED",
"LEVEL_OCCUPANCY_FEELS_TOO_EVEN",
"LEVEL_OCCUPANCY_FEELS_TOO_CONCENTRATED",
"LADDER_FEELS_TOO_COMPRESSED",
"LADDER_FEELS_TOO_EXPANDED",
"TOO_MANY_SCALE_LEVELS",
"TOO_FEW_SCALE_LEVELS",
"STEP_PATTERN_FEELS_TOO_REGULAR",
"STEP_PATTERN_FEELS_TOO_IRREGULAR",
"NEAR_EQUAL_LEVELS_FEEL_SAME",
"NEAR_EQUAL_LEVELS_FEEL_DISTINCT"
],
"CONFLICT_PRIORITY_ASSUMPTIONS": [
"module execution order is not priority",
"basis-ratio ascending order is size order only",
"ladder level index is not global hierarchy priority",
"class order is size order only",
"subject lexical order is serialization only",
"policy list order is not desirability priority",
"distribution proportions are not rule priority",
"future reviewed global conflict-priority owner remains authoritative"
],
"LAB_HOOKS": [
"human study: perceived number of scale levels versus exact occupied basis-ratio levels",
"study whether near-equal exact levels are perceived as one level",
"study preferred ladder spans by style without canonizing preference",
"study regular versus irregular adjacent-step perception",
"compare class-frequency and perceived differentiation",
"compare level occupancy and perceived balance",
"collect successful compositions with one occupied scale level",
"collect successful compositions with highly skewed class distributions",
"collect cases where scale ladder and semantic hierarchy diverge"
],
"observation_record": {
"moduleRef": "Compo16.03",
"metricResults": [],
"scaleClassDistributionDescriptorRefs": [],
"scaleLadderDescriptorRefs": [],
"scaleLevelDistributionDescriptorRefs": [],
"futureMetricResultRefs": []
},
"stop_condition": "STOP after 16.03. Do not create 16.04 in this module."
}