Score evidence after ablation and removal assessment
+ 20.01 semantic necessity / decoration
+ 20.02 controlled ablation / marginal effects
+ 20.03 reviewable removal assessments
+ explicit local scoring profile
+ explicit local target profile
→ ObjectRedundancyScoreDescriptor[]
→ diagnostic redundancy score
→ 3 dependent MetricResults
→ 1 composite target-fit vote
NO automatic deletion
NO beautyScore
NO final-layout ranking
Scoring owner, not content owner
Evidence scoring
Explicit profile-relative semantic, marginal and overlap components plus diagnostic redundancyScore.
Target fit
Three dependent component MetricResults and one composite Topic20 vote.
Deletion
20.03 candidates remain review requests. Foreign object/content mutation is never performed here.
No universal redundancy formula
Evidence → local redundancy
Explicit values for semantic verdicts, marginal effect classes and redundancy-hypothesis kinds. Explicit component weights only.
Local expected band
Inclusive target bands for semantic, marginal, overlap and system redundancy. Target mismatch is a valid zero fit, not N_A.
Diagnostic redundancy score
semanticComponent explicit mapping of 20.01 semanticNecessityVerdict marginalComponent mean of explicitly selected 20.02 marginalEffectClass values overlapComponent mean of explicitly selected 20.00 redundancy-hypothesis-kind values redundancyScore = weighted mean of the three applicable components candidate state / candidate ordinal / decorative state are NOT numeric inputs
diagnostic descriptor ≠ MetricResult
higher redundancyScore ≠ permission to delete
Composite-first MetricResult discipline
3 component MetricResults: redundancy.target.componentFit.semanticDispensability redundancy.target.componentFit.marginalEvidence redundancy.target.componentFit.overlapEvidence owner = Compo20.04 componentOf = redundancy.system.localTargetProfileFit scoringGroup = redundancy-local independentVoteAllowed = false 1 composite MetricResult: key = redundancy.system.localTargetProfileFit owner = Compo20.04 composite = true componentOf = null scoringGroup = redundancy-local independentVoteAllowed = true
Diagnostic redundancyScore values do not vote independently. Upstream 20.00–20.03 descriptors and removal candidates do not vote.
Zero, N_A and INVALID stay different
| Complete evidence + target match | OK, fit 1 |
| Complete evidence + target mismatch | OK, fit 0, KEEP |
| Valid redundancyScore = 0 | OK; zero is observed value |
| Missing required marginal/overlap evidence | N_A; no imputation |
| Lineage mismatch | N_A; no guessing |
| Malformed profile/upstream invalid | INVALID |
20.03 candidate is lineage, not score input
does NOT raise redundancyScore
candidate blocked
does NOT lower redundancyScore
candidateOrdinal
does NOT rank redundancy
decorative loss flag
remains visible for review
but is not silently converted into a penalty
Topic20 ownership chain closes cleanly
| 20.00 | Root objects, requirements, coverage and redundancy hypotheses. |
| 20.01 | Semantic necessity and decorative contribution. |
| 20.02 | Controlled ablation, marginal effects and ObjectContributionDescriptor. |
| 20.03 | Reviewable removal candidates and clutter-reduction proposal set. |
| 20.04 | Diagnostic redundancy score, local target fit and final Topic20 tests. |
| Topic21+ | Balance/symmetry and later global composition concerns remain downstream. |
Local redundancy is not global quality
redundancyScore != beautyScore
redundancyScore != final-layout rank
candidate != score
candidate ordinal != score
decorative != redundant
negative marginal != universal redundancy
zero change != universal redundancy
overlap hypothesis != proof
high local target fit != global winner
N_A != 0
INVALID != 0
local != global
heuristic != law
correction request != foreign mutation
CANON → LAB → DATA → IDEAS
20.04 final regression suite
Tests cover profile validity, exact 20.00–20.03 lineage, explicit semantic/marginal/overlap mapping, zero/N_A/INVALID separation, anti-circular candidate handling, diagnostic redundancy score bounds, target-band fit, MetricResult ownership, exactly one independent vote and Topic21/global-quality firewalls.
DATA FOR LAYOUT ENGINE
{
"module": "Compo 20.04",
"name": "scoring_and_tests",
"version": "1.0-canonical",
"canonical_main_title": "Scoring and tests",
"topic": "20_ЭКОНОМИЯ_И_УДАЛЕНИЕ_ЛИШНЕГО",
"scope": "EXPLICIT_LOCAL_REDUNDANCY_EVIDENCE_SCORING_TARGET_PROFILE_FIT_AND_FINAL_TOPIC20_TESTS_FROM_VALID_20_00_TO_20_03_LINEAGE_WITHOUT_AUTOMATIC_REMOVAL_GLOBAL_QUALITY_OR_FOREIGN_MUTATION",
"main_topic_contract": {
"topic_title": "Экономия и удаление лишнего",
"topic_goal": "Проверяет необходимость каждого элемента через semantic necessity и marginal contribution. Позволяет предлагать удаление лишнего без разрушения обязательного content.",
"expected_output": "ObjectContributionDescriptor, redundancy score, removal candidates",
"planned_files": [
"20.00 Necessity/redundancy model",
"20.01 Semantic necessity vs decorative contribution",
"20.02 Marginal contribution / ablation",
"20.03 Removal candidates and clutter reduction",
"20.04 Scoring and tests"
]
},
"ownership": {
"owner": "Compo20.04",
"owns": [
"ObjectRedundancyScoringProfile",
"ObjectRedundancyTargetProfile",
"ObjectRedundancyScoreDescriptor",
"ObjectRedundancyEvaluationSet",
"Topic20 component MetricResults",
"Topic20 composite MetricResult redundancy.system.localTargetProfileFit",
"ObjectRedundancyScoringAttachment",
"local target evaluation semantics",
"final Topic20 regression tests"
],
"does_not_own": [
"20.00 subjects, requirements, coverage claims or redundancy hypotheses",
"20.01 semantic-necessity or decorative-contribution truth",
"20.02 ablation experiments, marginal math or ObjectContributionDescriptor identity",
"20.03 removal assessment/candidate identity or physical removal",
"foreign content, geometry, style, semantics or task ownership",
"global beautyScore",
"final-layout ranking"
]
},
"consumes": [
"valid Compo20.00 ObjectContributionSystemSeed lineage",
"valid Compo20.02 ObjectContributionDescriptor per explicitly selected subject",
"valid Compo20.02 ObjectMarginalContributionDescriptor records named by the object descriptor",
"valid Compo20.00 ObjectRedundancyHypothesis records named by the object descriptor or 20.03 assessment",
"optional valid Compo20.03 ObjectRemovalAssessment / ObjectRemovalCandidate lineage",
"explicit ObjectRedundancyScoringProfile",
"explicit ObjectRedundancyTargetProfile"
],
"provides": [
"ObjectRedundancyScoreDescriptor[]",
"ObjectRedundancyEvaluationSet",
"redundancy score",
"3 dependent component MetricResults",
"1 composite MetricResult redundancy.system.localTargetProfileFit",
"ObjectRedundancyScoringAttachment"
],
"owns_metrics": [
"redundancy.target.componentFit.semanticDispensability",
"redundancy.target.componentFit.marginalEvidence",
"redundancy.target.componentFit.overlapEvidence",
"redundancy.system.localTargetProfileFit"
],
"metric_ownership": {
"owner": "Compo20.04",
"component_keys": [
"redundancy.target.componentFit.semanticDispensability",
"redundancy.target.componentFit.marginalEvidence",
"redundancy.target.componentFit.overlapEvidence"
],
"composite_key": "redundancy.system.localTargetProfileFit",
"scoringGroup": "redundancy-local",
"component_independentVoteAllowed": false,
"composite_independentVoteAllowed": true,
"independent_numeric_vote_count": 1
},
"redundancy_scoring_profile_schema": {
"objectRedundancyScoringProfileRef": "stable identity",
"scopeRef": "Topic20 scope",
"semanticValueByVerdict": "explicit mapping for LOCALLY_REQUIRED / UNRESOLVED / NOT_ESTABLISHED_IN_DECLARED_MODEL to finite [0,1]",
"marginalValueByEffectClass": "explicit mapping for POSITIVE_CONTRIBUTION / NO_OBSERVED_CHANGE / NEGATIVE_CONTRIBUTION / CHANGE_OBSERVED to finite [0,1] or null",
"hypothesisValueByKind": "explicit mapping for four 20.00 hypothesis kinds to finite [0,1]",
"rawComponentWeights": "explicit non-negative weights for semanticDispensability / marginalEvidence / overlapEvidence",
"requireCompleteMarginalEvidence": "boolean",
"requireExplicitOverlapEvidence": "boolean",
"marginalAggregation": "MEAN_SELECTED_MARGINAL_VALUES",
"hypothesisAggregation": "MEAN_SELECTED_HYPOTHESIS_VALUES",
"subjectAggregation": "MEAN_SELECTED_SUBJECT_SCORES",
"profileSourceRef": "explicit source",
"profileSourceOwnerRef": "owner",
"provenance": "canonical provenance; heuristic/style values remain explicit and non-universal",
"status": "OK|INVALID",
"mutationAllowed": false
},
"redundancy_target_profile_schema": {
"objectRedundancyTargetProfileRef": "stable identity",
"scopeRef": "scope",
"selectedSubjectRefs[]": "explicit only",
"semanticTargetBand": "inclusive finite [0,1] min/max",
"marginalTargetBand": "inclusive finite [0,1] min/max",
"overlapTargetBand": "inclusive finite [0,1] min/max",
"systemRedundancyTargetBand": "inclusive finite [0,1] min/max; diagnostic redundancy amount target",
"componentFitWeights": "explicit non-negative weights for the three component fits",
"fitMode": "BINARY_INCLUSIVE_BAND_V1",
"requireCompleteSelectedSubjects": true,
"targetSourceRef": "explicit source",
"targetSourceOwnerRef": "owner",
"provenance": "canonical provenance; target is local/style/task-specific, never universal",
"status": "OK|INVALID",
"mutationAllowed": false
},
"object_redundancy_score_descriptor_schema": {
"objectRedundancyScoreDescriptorRef": "stable identity",
"objectContributionSystemSeedRef": "exact 20.00 seed",
"objectContributionSubjectRef": "exact selected subject",
"objectContributionDescriptorRef": "exact 20.02 descriptor",
"objectRemovalAssessmentRef": "optional exact 20.03 assessment or null",
"semanticComponent": "finite [0,1] when OK",
"marginalComponent": "finite [0,1] when OK",
"overlapComponent": "finite [0,1] when OK",
"redundancyScore": "explicit weighted local evidence score in [0,1]; diagnostic, not a MetricResult and not an independent vote",
"selectedMarginalRefs[]": "exact evidence lineage",
"selectedHypothesisRefs[]": "exact evidence lineage",
"removalCandidateRef": "optional 20.03 lineage only; excluded from numeric score",
"decorativeContributionState": "copied lineage only; excluded from numeric score",
"status": "OK|N_A|INVALID",
"reasonCode": "SCORED|MISSING_REQUIRED_EVIDENCE|LINEAGE_MISMATCH|UPSTREAM_INVALID|INVALID_PROFILE",
"provenance": "DERIVED",
"mutationAllowed": false
},
"evaluation_set_schema": {
"objectRedundancyEvaluationSetRef": "stable identity",
"objectContributionSystemSeedRef": "exact root seed",
"scoringProfileRef": "exact scoring profile",
"targetProfileRef": "exact target profile",
"selectedSubjectRefs[]": "explicit selected subjects",
"scoreDescriptorRefs[]": "per-subject score descriptors",
"systemRedundancyScore": "mean selected subject redundancyScore when complete; null on N_A/INVALID",
"semanticAggregate": "mean subject semantic components",
"marginalAggregate": "mean subject marginal components",
"overlapAggregate": "mean subject overlap components",
"componentMetricResultRefs[]": "three dependent MetricResults",
"compositeMetricResultRef": "one composite MetricResult",
"evaluationOutcome": "KEEP|N_A|INVALID",
"status": "OK|N_A|INVALID",
"mutationAllowed": false
},
"metric_result_schema": {
"key": "metric key",
"owner": "Compo20.04",
"value": "finite [0,1] when applicable, null for N_A/INVALID",
"applicability": "APPLICABLE|N_A|INVALID",
"confidence": "finite [0,1] or null; 20.04 uses 1 only for complete deterministic local evaluation",
"status": "OK|N_A|INVALID",
"provenance": "DERIVED",
"composite": "boolean",
"componentOf": "redundancy.system.localTargetProfileFit or null",
"dependsOn[]": "computational/recompute dependencies",
"derivedFrom[]": "actual evidence lineage",
"scoringGroup": "redundancy-local",
"independentVoteAllowed": "false for components, true only for composite",
"evidence": "structured local evidence summary",
"repairHints[]": "diagnostic hints only; no automatic mutation"
},
"scoring_rules": [
"Raw redundancyScore is profile-relative diagnostic evidence, not universal object quality.",
"20.03 candidate eligibility and candidate ordinal are excluded from numeric redundancyScore to prevent circular scoring.",
"Decorative contribution is preserved in lineage but excluded from redundancyScore by default; decorative != redundant.",
"Semantic, marginal and overlap components are separately normalized only by explicit profile mappings.",
"Missing required evidence yields N_A, never zero.",
"Invalid upstream data yields INVALID, never zero.",
"Zero redundancyScore is a valid observed score under an explicit complete profile.",
"Target mismatch yields component fit 0 with status OK and evaluationOutcome KEEP.",
"Exactly one Topic20 independent numeric vote exists: redundancy.system.localTargetProfileFit.",
"Higher redundancyScore does not automatically authorize deletion and does not imply worse global quality."
],
"status_policy": {
"invalidScoringOrTargetProfile": "INVALID",
"unknownSelectedSubject": "N_A",
"objectDescriptorN_A": "N_A",
"objectDescriptorInvalid": "INVALID",
"marginalLineageMismatch": "N_A",
"missingRequiredMarginalEvidence": "N_A",
"missingRequiredOverlapEvidence": "N_A",
"invalidMarginalOrHypothesisEvidence": "INVALID",
"completeScore": "OK",
"validScoreZero": "OK",
"targetMismatch": "OK + KEEP + fit 0",
"N_A_not_zero": true,
"INVALID_not_zero": true
},
"critical_firewalls": [
"redundancyScore != removal permission",
"removal candidate != redundancyScore",
"candidate ordinal != score",
"decorative != redundant",
"low hierarchy rank != redundant",
"negative marginal contribution != universal redundancy",
"zero observed change != universal redundancy",
"explicit redundancy hypothesis != redundancy proof",
"high redundancyScore != automatic delete",
"high local target fit != final-layout winner",
"N_A != 0",
"INVALID != 0",
"local != global",
"descriptor != MetricResult",
"heuristic != law",
"correction request != foreign mutation",
"module execution order != rule priority",
"no universal beautyScore"
],
"IDEAS_REFS": [
"IDEA-01 calibrate redundancy evidence mappings against human removal review",
"IDEA-02 compare high redundancyScore with accepted versus rejected removal candidates",
"IDEA-03 study whether decorative loss should ever enter scoring in style-specific profiles",
"IDEA-04 evaluate false positives caused by overlap hypotheses without ablation support",
"IDEA-05 collect cases where high local redundancy improves or harms global composition"
],
"DATA_CAPTURE": [
"scopeRef",
"objectContributionSystemSeedRef",
"scoringProfileRef",
"targetProfileRef",
"selectedSubjectRefs[]",
"objectRedundancyScoreDescriptorRefs[]",
"semanticComponentBySubject",
"marginalComponentBySubject",
"overlapComponentBySubject",
"redundancyScoreBySubject",
"systemRedundancyScore",
"componentMetricResultRefs[]",
"compositeMetricResultRef",
"removalAssessmentRefs[]",
"removalCandidateRefs[]",
"status",
"reasonCode"
],
"DEFERRED_SEMANTIC_INPUTS": [
"global composition quality",
"final-layout ranking",
"actual content deletion or mutation",
"human approval of reviewable removal candidates",
"cross-topic balance/symmetry interactions from Topic21+"
],
"HUMAN_FEEDBACK_HOOKS": [
"correct redundancy scoring profile",
"correct local target band",
"correct semantic mapping",
"correct marginal mapping",
"correct overlap mapping",
"mark false-positive redundancy score",
"mark false-negative redundancy score",
"approve removal candidate",
"reject removal candidate",
"mark decorative loss unacceptable"
],
"CONFLICT_PRIORITY_ASSUMPTIONS": [
"component order does not define importance; explicit weights do",
"candidate order does not define quality",
"confidence does not resolve evidence conflict",
"hypothesis serialization order does not define authority",
"module execution order does not imply rule priority",
"future reviewed global conflict-priority owner remains authoritative"
],
"LAB_HOOKS": [
"human redundancy-score calibration study",
"ablation-vs-human-removal agreement study",
"decorative-loss acceptability study",
"requirement protection false-positive study",
"local redundancy versus global quality study",
"profile sensitivity and stability study"
],
"topic20ProgressAfterThisModule": "5/5 local",
"next_step": "TOPIC20_CLOSING_AUDIT_SEPARATE_STEP",
"hard_stop": "Do not implement Topic21 in this file."
}