Class is relative to an explicit profile
Categorical scale, not hierarchy
Class profile
Explicit reference subject, binding and two deterministic boundaries.
Assignment
Reference-normalized basis descriptor and profile-relative class.
Category only
owns_metrics=[]. LARGE is not a vote for importance.
SMALL / MEDIUM / LARGE
| Class | Explicit profile rule |
|---|---|
| SMALL | ratio < smallToMediumBoundary |
| MEDIUM | smallToMediumBoundary ≤ ratio < mediumToLargeBoundary |
| LARGE | ratio ≥ mediumToLargeBoundary |
Explicit ScaleClassProfile
ScaleClassProfile {
scaleClassProfileRef,
scopeRef,
scaleSubjectSetRef,
scaleRelationRatioSetRef,
scaleMeasurementBindingRef,
basisKind:
REFERENCE_SUBJECT_RATIO,
referenceSubjectRef,
smallToMediumBoundary: finite > 0,
mediumToLargeBoundary:
finite > smallToMediumBoundary,
source / owner / provenance,
status,
mutationAllowed: false
}
No equal thirds, quantiles, clustering, golden ratio or implicit 1.618 boundary.
Reference subject is normalization only
Reference-normalized basis
basisRatio
= subjectMagnitude
/ referenceMagnitude
Required:
exact same binding
exact same unit
both magnitudes resolved OK
both magnitudes > 0
exact ratio-set lineage
Domain:
(0,+∞)
This directional basis does not replace the general symmetric ScaleRatioDescriptor owned by 16.01.
Explicit assignment requests only
ScaleClassAssignmentSetPolicy {
selectionMode:
EXPLICIT_REQUESTS_ONLY,
duplicatePolicy:
DEDUP_EXACT_IDENTITY,
missingSubjectPolicy:
N_A_NO_GUESS,
missingMagnitudePolicy:
N_A_NO_GUESS,
magnitudeConflictPolicy:
N_A_NO_GUESS,
maxAssignments:
1..4096,
overflowPolicy:
N_A_NO_TRUNCATION
}
Boundary cases are deterministic
| basisRatio | Class | Boundary case |
|---|---|---|
| < S→M | SMALL | BELOW_SMALL_TO_MEDIUM |
| = S→M | MEDIUM | AT_SMALL_TO_MEDIUM |
| between | MEDIUM | BETWEEN |
| = M→L | LARGE | AT_MEDIUM_TO_LARGE |
| > M→L | LARGE | ABOVE_MEDIUM_TO_LARGE |
Class label is not role or importance
Different profiles may disagree legitimately
Attachments do not mutate roots
ScaleSystemClassAttachment {
scaleSystemRatioAttachmentRef,
scaleClassAssignmentSetRef,
status,
mutationAllowed: false
}
Distribution and scoring remain downstream
| 16.00 | Relation identity and measurement binding. |
| 16.01 | Magnitude resolution, pairwise ratios, near-equal descriptors. |
| 16.02 | Profile-relative SMALL/MEDIUM/LARGE assignments. |
| 16.03 | Scale ladders, class frequencies and distributions. |
| 16.04 | Target scoring, MetricResult ownership and repair candidates. |
No hidden distribution algorithm
Quantiles, k-means, equal thirds, golden-ratio bands, class→dominance, class counts→quality.
Explicit profile, explicit reference, exact lineage, deterministic boundaries, N_A != class, no metrics.
CANON → LAB → DATA → IDEAS
16.02 regression suite
Tests cover exact profile validation, positive ordered boundaries, exact reference/magnitude lineage, deterministic boundary inclusion, explicit requests, overflow N_A, cross-profile independence, immutable attachments and no-score/no-hierarchy firewalls.
DATA FOR LAYOUT ENGINE
{
"module": "Compo 16.02",
"name": "large_medium_small_classes",
"version": "1.0-canonical",
"canonical_main_title": "Large/medium/small classes",
"topic": "16_МАСШТАБ_И_ОТНОШЕНИЕ_РАЗМЕРОВ",
"scope": "EXPLICIT_REFERENCE_NORMALIZED_PROFILE_RELATIVE_LARGE_MEDIUM_SMALL_CLASS_ASSIGNMENT_OVER_EXACT_16_01_MAGNITUDE_LINEAGE_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.02",
"owns": [
"ScaleClassKind taxonomy",
"ScaleClassBasisKind taxonomy",
"ScaleClassProfile",
"ScaleClassAssignmentRequest",
"ScaleClassAssignmentSetPolicy",
"ScaleClassBasisDescriptor",
"ScaleClassAssignment",
"ScaleClassAssignmentSet",
"ScaleRelationClassAttachment",
"ScaleSystemClassAttachment",
"profile-relative size-order semantics SMALL<MEDIUM<LARGE",
"exact reference-normalized class-basis computation",
"identity/status/provenance rules for Topic16 class layer",
"non-mutating correction request for class profile / assignment request / magnitude 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",
"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",
"scale ladders / scale distributions — Compo16.03",
"class-frequency distribution ownership — Compo16.03",
"target scoring / MetricResult / 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.00 ScaleSubjectSet identity",
"valid Compo16.01 ScaleRelationRatioSet",
"resolved Compo16.01 ScaleMagnitudeResolution records",
"explicit ScaleClassProfile",
"explicit ScaleClassAssignmentRequest records",
"explicit ScaleClassAssignmentSetPolicy"
],
"provides": [
"ScaleClassBasisDescriptor[]",
"ScaleClassAssignment[]",
"ScaleClassAssignmentSet",
"ScaleRelationClassAttachment[] where exact supporting relation exists",
"ScaleSystemClassAttachment",
"Topic16.02 observation record"
],
"owns_metrics": [],
"metric_ownership_note": "16.02 owns profile-relative class assignments only. SMALL/MEDIUM/LARGE are categorical descriptors, not MetricResult values, scores, hierarchy votes or independent numeric votes.",
"scale_class_kind_taxonomy": {
"SMALL": "Reference-normalized basis ratio below explicit small→medium boundary.",
"MEDIUM": "Basis ratio at/above explicit small→medium boundary and below explicit medium→large boundary.",
"LARGE": "Basis ratio at/above explicit medium→large boundary."
},
"scale_class_size_order": {
"order": [
"SMALL",
"MEDIUM",
"LARGE"
],
"semantics": "SIZE_ORDER_ONLY",
"firewall": "Class order is only ordinal size-category order inside one explicit profile. It is not importance, hierarchy, dominance, score, priority or quality order."
},
"scale_class_basis_kind_taxonomy": {
"REFERENCE_SUBJECT_RATIO": "subjectMagnitude / explicitReferenceSubjectMagnitude under the exact same Compo16.00 binding and exact same Compo16.01 measurement unit."
},
"scale_class_profile_schema": {
"scaleClassProfileRef": "stable identity",
"scopeRef": "Topic16 scope",
"scaleSubjectSetRef": "exact Compo16.00 subject set",
"scaleRelationRatioSetRef": "exact Compo16.01 ratio set",
"scaleMeasurementBindingRef": "exact binding used for all class-basis magnitudes",
"basisKind": "REFERENCE_SUBJECT_RATIO",
"referenceSubjectRef": "explicit reference subject in scaleSubjectSet",
"smallToMediumBoundary": "finite strictly positive",
"mediumToLargeBoundary": "finite strictly greater than smallToMediumBoundary",
"boundarySemantics": {
"SMALL": "basisRatio < smallToMediumBoundary",
"MEDIUM": "smallToMediumBoundary <= basisRatio < mediumToLargeBoundary",
"LARGE": "basisRatio >= mediumToLargeBoundary"
},
"profileSourceRef": "explicit source",
"profileSourceOwnerRef": "owner",
"provenance": "canonical provenance",
"status": "OK|INVALID",
"mutationAllowed": false,
"default": "NONE — no implicit class profile and no universal L/M/S boundaries",
"firewall": "The reference subject is a normalization reference, not automatically MEDIUM, dominant, focal, semantically important or ideal. Whether ratio=1 lands in SMALL/MEDIUM/LARGE is entirely determined by the explicit profile boundaries."
},
"scale_class_assignment_request_schema": {
"scaleClassAssignmentRequestRef": "stable identity",
"scopeRef": "scope",
"scaleClassProfileRef": "exact class profile",
"subjectRef": "explicit subject to classify",
"requestSourceRef": "explicit source",
"requestSourceOwnerRef": "owner",
"provenance": "canonical provenance",
"status": "OK|INVALID",
"mutationAllowed": false,
"firewall": "Classification is explicit-request-only in v1. 16.02 does not silently classify every subject in every profile."
},
"scale_class_assignment_set_policy_schema": {
"scaleClassAssignmentSetPolicyRef": "stable identity",
"selectionMode": "EXPLICIT_REQUESTS_ONLY",
"duplicatePolicy": "DEDUP_EXACT_IDENTITY",
"missingSubjectPolicy": "N_A_NO_GUESS",
"missingMagnitudePolicy": "N_A_NO_GUESS",
"magnitudeConflictPolicy": "N_A_NO_GUESS",
"maxAssignments": "integer 1..4096",
"overflowPolicy": "N_A_NO_TRUNCATION",
"ordering": "LEXICAL_SERIALIZATION_ONLY",
"policySourceRef": "explicit source",
"policySourceOwnerRef": "owner",
"provenance": "canonical provenance",
"status": "OK|INVALID",
"mutationAllowed": false,
"firewall": "No hidden all-subject/profile Cartesian product. Lexical order is serialization only, not class rank or visual priority."
},
"scale_class_basis_descriptor_schema": {
"scaleClassBasisDescriptorRef": "stable identity",
"scaleClassProfileRef": "exact profile",
"subjectRef": "classified subject",
"referenceSubjectRef": "profile reference subject",
"subjectMagnitudeResolutionRef": "exact Compo16.01 magnitude resolution",
"referenceMagnitudeResolutionRef": "exact Compo16.01 magnitude resolution",
"scaleMeasurementBindingRef": "exact shared binding",
"measurementUnitRef": "exact shared unit",
"basisKind": "REFERENCE_SUBJECT_RATIO",
"basisRatio": "finite strictly positive subjectMagnitude/referenceMagnitude",
"status": "OK|N_A|INVALID",
"provenance": "DERIVED",
"mutationAllowed": false,
"firewall": "basisRatio is a class-normalization helper owned only for 16.02 classification. It does not replace or redefine the general pairwise ScaleRatioDescriptor owned by 16.01."
},
"scale_class_assignment_schema": {
"scaleClassAssignmentRef": "stable identity",
"scaleClassAssignmentRequestRef": "exact request",
"scaleClassProfileRef": "exact profile",
"scaleClassBasisDescriptorRef": "exact basis descriptor",
"subjectRef": "classified subject",
"classKind": "SMALL|MEDIUM|LARGE",
"boundaryCase": "BELOW_SMALL_TO_MEDIUM|AT_SMALL_TO_MEDIUM|BETWEEN|AT_MEDIUM_TO_LARGE|ABOVE_MEDIUM_TO_LARGE",
"status": "OK|N_A|INVALID",
"provenance": "DERIVED",
"mutationAllowed": false,
"firewall": "Class assignment is profile-relative categorical interpretation. LARGE != dominant; SMALL != microdetail; MEDIUM != support; classKind != score."
},
"scale_class_assignment_set_schema": {
"scaleClassAssignmentSetRef": "stable identity",
"scopeRef": "scope",
"scaleClassProfileRef": "exact single profile in v1 set",
"scaleRelationRatioSetRef": "exact upstream ratio set",
"scaleClassAssignmentSetPolicyRef": "explicit policy",
"scaleClassBasisDescriptorRefs": "canonical refs",
"scaleClassAssignmentRefs": "canonical refs",
"status": "OK|N_A|INVALID",
"reasonCode": "explicit",
"mutationAllowed": false,
"firewall": "Assignment set does not own class-frequency distribution, ladder quality, balance, hierarchy or scoring. Assignment count and class counts are not scores."
},
"scale_relation_class_attachment_schema": {
"scaleRelationClassAttachmentRef": "stable identity",
"scaleRelationRef": "exact supporting relation when one exists between classified subject and reference subject under exact binding",
"scaleClassProfileRef": "exact profile",
"subjectRef": "classified subject",
"referenceSubjectRef": "reference subject",
"scaleClassAssignmentRef": "exact assignment",
"status": "OK|N_A|INVALID",
"mutationAllowed": false,
"firewall": "This is an optional relation-local attachment. Missing exact supporting relation does not erase a valid class assignment derived from exact magnitude lineage."
},
"scale_system_class_attachment_schema": {
"scaleSystemClassAttachmentRef": "stable identity",
"scaleSystemRatioAttachmentRef": "exact 16.01 system ratio attachment",
"scaleClassAssignmentSetRef": "exact 16.02 assignment set",
"status": "OK|N_A|INVALID",
"mutationAllowed": false,
"firewall": "16.00 ScaleSystemSeed.scaleClassAttachmentRef remains null. Downstream class attachment never mutates the root seed or 16.01 ratio set."
},
"comparability_contract": {
"assignment_comparison_requires": [
"same exact ScaleClassProfileRef",
"same exact scaleMeasurementBindingRef",
"same exact referenceSubjectRef",
"same exact scaleRelationRatioSetRef",
"compatible snapshot lineage"
],
"forbids": [
"cross-profile SMALL/MEDIUM/LARGE equivalence assumption",
"cross-reference-subject class equivalence assumption",
"cross-binding class equivalence assumption",
"cross-unit implicit conversion",
"class label comparison as hierarchy comparison",
"class order comparison as quality comparison"
],
"firewall": "Two subjects classified LARGE under different profiles are not canonically equivalent in magnitude. Different-profile class disagreement is not a conflict."
},
"class_math_contract": {
"basisRatio": "subjectMagnitude / referenceMagnitude",
"domain": "(0,+∞)",
"SMALL": "basisRatio < smallToMediumBoundary",
"MEDIUM": "smallToMediumBoundary <= basisRatio < mediumToLargeBoundary",
"LARGE": "basisRatio >= mediumToLargeBoundary",
"boundaryDeterminism": {
"exactSmallToMediumBoundary": "MEDIUM",
"exactMediumToLargeBoundary": "LARGE"
},
"firewall": "No quantile inference, k-means, equal-third partition, golden-ratio partition, distribution-derived threshold or universal threshold in 16.02."
},
"status_policy": {
"invalidClassProfile": "INVALID",
"subjectNotInScaleSubjectSet": "N_A",
"referenceSubjectNotInScaleSubjectSet": "N_A",
"missingSubjectMagnitude": "N_A",
"missingReferenceMagnitude": "N_A",
"magnitudeResolutionConflict": "N_A",
"bindingMismatch": "N_A",
"unitMismatch": "N_A",
"validBasisRatio": "OK",
"validClassAssignment": "OK",
"duplicateExactAssignmentRequest": "deduplicated by identity",
"assignmentSetOverflow": "N_A; no truncation",
"missingSupportingRelationAttachment": "N_A attachment only; valid class assignment may remain OK",
"N_A_not_zero": true
},
"identity_policy": {
"scaleClassProfileRef": "hash(scope, subject set, ratio set, binding, basis kind, reference subject, exact boundaries, source/owner, provenance, status)",
"scaleClassAssignmentRequestRef": "hash(scope, profile, subject, source/owner, provenance, status)",
"scaleClassAssignmentSetPolicyRef": "hash(selection/duplicate/missing/conflict/max/overflow/ordering policy, source/owner, provenance, status)",
"scaleClassBasisDescriptorRef": "hash(profile, subject/reference, magnitude-resolution refs, binding, unit, basis kind/value, status)",
"scaleClassAssignmentRef": "hash(request, profile, basis descriptor, subject, class kind, boundary case, status)",
"scaleClassAssignmentSetRef": "hash(scope, profile, ratio set, policy, canonical basis/assignment refs, status)",
"scaleRelationClassAttachmentRef": "hash(relation, profile, subject/reference, assignment, status)",
"scaleSystemClassAttachmentRef": "hash(system ratio attachment, assignment set, status)",
"excluded_from_identity": [
"display label",
"display color",
"UI ordering outside lexical serialization",
"free-form comment"
]
},
"critical_firewalls": [
"16.02 consumes Compo16.01 magnitude resolutions; it does not own raw magnitude evidence",
"16.02 consumes Compo16.01 ratio-set lineage; it does not redefine pairwise ratio ownership",
"16.02 owns profile-relative scale classes only",
"16.02 owns no MetricResult",
"16.02 owns no independent numeric vote",
"class profile must be explicit",
"no implicit class profile",
"no universal LARGE/MEDIUM/SMALL thresholds",
"no implicit equal-third thresholds",
"no quantile-derived thresholds in 16.02",
"no k-means class inference in 16.02",
"no golden-ratio class boundaries",
"no implicit 1.618 class boundary",
"reference subject must be explicit",
"reference subject != automatically MEDIUM",
"reference subject != dominant",
"reference subject != focal",
"reference subject != semantically important",
"reference subject != ideal size",
"basis kind = REFERENCE_SUBJECT_RATIO only in v1",
"basisRatio = subjectMagnitude / referenceMagnitude",
"basisRatio must be finite and strictly positive",
"basisRatio != ScaleRatioDescriptor ownership transfer",
"basisRatio != score",
"basisRatio != desirability",
"exact same binding required",
"exact same measurement unit required",
"different units are not silently converted",
"different bindings are not silently comparable",
"missing magnitude => N_A",
"magnitude conflict => N_A",
"N_A != SMALL",
"N_A != MEDIUM",
"N_A != LARGE",
"SMALL boundary is strict upper",
"MEDIUM includes exact small-to-medium boundary",
"MEDIUM excludes exact medium-to-large boundary",
"LARGE includes exact medium-to-large boundary",
"class boundary semantics are deterministic",
"SMALL < MEDIUM < LARGE is size order only",
"class size order != hierarchy order",
"class size order != dominance order",
"class size order != importance order",
"class size order != score order",
"class size order != quality order",
"LARGE != dominant",
"LARGE != focal",
"LARGE != semantically important",
"MEDIUM != support role",
"SMALL != microdetail",
"SMALL != decorative role",
"SMALL != unimportant",
"classKind != score",
"classKind != MetricResult",
"class assignment != hierarchy vote",
"class assignment != visual-mass vote",
"cross-profile class disagreement != conflict",
"cross-profile class labels are not silently comparable",
"cross-reference-subject class labels are not silently comparable",
"cross-binding class labels are not silently comparable",
"assignment request must be explicit",
"assignment selection mode = EXPLICIT_REQUESTS_ONLY",
"no implicit classify-all-subjects operation",
"no profile×subject Cartesian product",
"assignment set overflow => N_A without truncation",
"assignment count != scale distribution",
"SMALL count != scale distribution score",
"MEDIUM count != scale distribution score",
"LARGE count != scale distribution score",
"class-frequency distribution ownership remains Compo16.03",
"no scale ladder in 16.02",
"no scale distribution descriptor in 16.02",
"no target scoring in 16.02",
"no repair generator in 16.02",
"ScaleClassAssignment != MetricResult",
"ScaleClassAssignmentSet != MetricResult",
"ScaleSubject/ScaleRelation ownership remains Compo16.00",
"magnitude/ratio/near-equal ownership remains Compo16.01",
"scale ladder/distribution ownership remains Compo16.03",
"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",
"size class != visual mass class",
"size class != dominance class",
"size class != semantic importance class",
"size class != aspect-ratio class",
"size class != part-to-whole proportion class",
"relation class attachment != root relation mutation",
"system class attachment != ScaleSystemSeed mutation",
"system class attachment != ratio-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": {
"scaleClassCorrectionRequestRef": "stable identity",
"targetOwnerRef": "class-profile / magnitude / binding / request owner",
"reasonCode": "CLASS_PROFILE_WRONG|REFERENCE_SUBJECT_WRONG|SMALL_MEDIUM_BOUNDARY_WRONG|MEDIUM_LARGE_BOUNDARY_WRONG|MAGNITUDE_LINEAGE_WRONG|UNIT_WRONG|BINDING_WRONG|ASSIGNMENT_REQUEST_WRONG|CLASS_ASSIGNMENT_WRONG",
"scaleClassProfileRef": "exact profile or null",
"subjectRefs": "canonical refs[]",
"evidenceRefs": "canonical refs[]",
"suggestedAction": "non-mutating review request",
"status": "OPEN|INVALID",
"mutationAllowed": false
},
"deferred_downstream": {
"16.03": [
"scale ladder construction from class and ratio evidence",
"class-frequency distributions",
"occupied scale-level descriptors",
"ladder step descriptors",
"ladder gaps",
"repeated scale-level families",
"ScaleLadderAttachment"
],
"16.04": [
"explicit target scale-class profile fit",
"target desirability of class proportions",
"target desirability of near-equal relations",
"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 explicit class profiles with perceived large/medium/small judgments",
"IDEA-02 semantics before placement; class reference/context remains explicit",
"IDEA-03 explicit priorities; class order is size order only and never hidden global priority",
"IDEA-04 collect structured class-assignment data for future composition model",
"IDEA-05 preserve reasons for human corrections to class boundaries and assignments",
"IDEA-06 structured machine-readable data layer for website",
"IDEA-07 graphics-for-post-text research remains downstream/separate"
],
"DATA_CAPTURE": [
"sceneRef",
"scopeRef",
"snapshotRef",
"scaleSubjectSetRef",
"scaleRelationRatioSetRef",
"scaleMeasurementBindingRef",
"scaleClassProfileRef",
"referenceSubjectRef",
"smallToMediumBoundary",
"mediumToLargeBoundary",
"scaleClassAssignmentRequestRefs[]",
"requestedSubjectByRef",
"scaleClassAssignmentSetPolicyRef",
"subjectMagnitudeResolutionRefBySubject",
"referenceMagnitudeResolutionRef",
"measurementUnitRef",
"scaleClassBasisDescriptorRefs[]",
"basisRatioBySubject",
"scaleClassAssignmentRefs[]",
"classKindBySubject",
"boundaryCaseBySubject",
"scaleClassAssignmentSetRef",
"scaleRelationClassAttachmentRefs[]",
"scaleSystemClassAttachmentRef",
"classProfileSourceRef",
"classProfileOwnerRef",
"humanReasonCodes[]",
"futureScaleLadderRefs[]",
"futureClassDistributionRefs[]",
"futureMetricResultRefs[]"
],
"DEFERRED_SEMANTIC_INPUTS": [
"desired frequency of SMALL/MEDIUM/LARGE classes",
"whether one class should dominate numerically",
"desired scale-ladder progression",
"desired gaps between scale classes",
"desired class balance",
"global hierarchy consequences of class assignments",
"final Topic16 target profile"
],
"HUMAN_FEEDBACK_HOOKS": [
"CLASS_PROFILE_WRONG",
"REFERENCE_SUBJECT_WRONG",
"REFERENCE_SUBJECT_SHOULD_BE_DIFFERENT",
"SMALL_MEDIUM_BOUNDARY_TOO_LOW",
"SMALL_MEDIUM_BOUNDARY_TOO_HIGH",
"MEDIUM_LARGE_BOUNDARY_TOO_LOW",
"MEDIUM_LARGE_BOUNDARY_TOO_HIGH",
"SUBJECT_FEELS_SMALLER",
"SUBJECT_FEELS_LARGER",
"SUBJECT_FEELS_MEDIUM",
"LARGE_ASSIGNMENT_FEELS_WRONG",
"MEDIUM_ASSIGNMENT_FEELS_WRONG",
"SMALL_ASSIGNMENT_FEELS_WRONG",
"BOUNDARY_CASE_FEELS_WRONG",
"MAGNITUDE_LINEAGE_WRONG",
"UNIT_WRONG",
"BINDING_WRONG",
"CLASS_REQUEST_MISSING",
"CLASS_REQUEST_SHOULD_NOT_EXIST",
"CROSS_PROFILE_DIFFERENCE_IS_EXPECTED",
"CROSS_PROFILE_DIFFERENCE_SHOULD_BE_REVIEWED"
],
"CONFLICT_PRIORITY_ASSUMPTIONS": [
"module execution order is not priority",
"class taxonomy order is size order only",
"SMALL/MEDIUM/LARGE order is not global hierarchy priority",
"assignment request order is not class priority",
"profile list order is not preferred-profile priority",
"reference subject is not hierarchy priority",
"future reviewed global conflict-priority owner remains authoritative"
],
"LAB_HOOKS": [
"human study: perceived SMALL/MEDIUM/LARGE versus explicit reference-normalized ratio",
"compare class judgments under different explicit reference subjects",
"calibrate profile-specific class boundaries by style",
"collect cases where LARGE is not dominant",
"collect cases where SMALL is not microdetail",
"collect cross-profile class disagreements that are both valid",
"study boundary sensitivity around exact class cut points",
"compare class judgments across linear versus area bindings",
"measure agreement on reference-subject choice"
],
"observation_record": {
"moduleRef": "Compo16.02",
"metricResults": [],
"scaleClassAssignmentRefs": [],
"futureScaleLadderRefs": [],
"futureClassDistributionRefs": []
},
"stop_condition": "STOP after 16.02. Do not create 16.03 in this module."
}