Model first, judgement later
Root declarations only
20.00
Subject eligibility, explicit requirement registry, explicit coverage claims, redundancy hypotheses, bounded model policy and immutable root seed.
Downstream + foreign
Semantic necessity, decorative value, marginal contribution, ablation, removal candidates, redundancy score, Topic19 hierarchy, dominance, visual mass or final-layout ranking.
Eligibility is explicit
Explicit evidence
An object enters Topic20 only after owner-qualified eligibility resolves true.
Conflict
Conflicting eligibility evidence remains N_A. Confidence and source order do not choose a winner.
Appearance
Small, decorative-looking, low-rank or low-mass objects are not automatically redundancy subjects or removable objects.
ObjectContributionSubject {
objectRef: foreign identity,
eligibilityResolutionRef: explicit,
semanticNecessityRef: null,
marginalContributionRef: null,
removalCandidateRef: null,
redundancyScore: null,
mutationAllowed: false
}Requirements keep their owners
| Kind | Meaning | 20.00 does not infer |
|---|---|---|
| MANDATORY_CONTENT | Explicit content that must remain represented. | Which single object is indispensable. |
| TASK_FUNCTION | Explicit task/function requirement. | Its semantic importance from appearance. |
| LEGAL_OR_STANDARD | Explicit compliance requirement. | Alternative compliant representations. |
| BRAND_OR_STYLE | Explicit project/brand/style requirement. | Universal aesthetic necessity. |
| ACCESSIBILITY | Explicit accessibility requirement. | Automatic removal safety. |
| OWNER_DEFINED | Opaque requirement with foreign semantics. | Meaning beyond declared lineage. |
Coverage claim is evidence, not verdict
ObjectContributionCoverageClaim {
objectContributionSubjectRef,
objectContributionRequirementRef,
coverageRole:
SOLE_DECLARED_PROVIDER |
CO_PROVIDER |
SUPPORTING |
UNSPECIFIED,
claimSourceRef,
claimSourceOwnerRef,
provenance,
mutationAllowed: false
}
Snapshot fact
Only one provider is currently declared in this model. Downstream may discover a valid substitute.
Multiple providers
Multiple objects covering one requirement does not prove redundancy. They may be jointly necessary or context-dependent.
Redundancy begins as a hypothesis
| Hypothesis kind | Allowed meaning | Forbidden shortcut |
|---|---|---|
| SHARED_REQUIREMENT | Subjects are declared to serve the same requirement. | One is removable. |
| SHARED_FUNCTION | Subjects may overlap functionally. | Function is fully duplicated. |
| POTENTIAL_SUBSTITUTE | Subjects should be tested as substitutes. | Substitution is already safe. |
| AUTHOR_DECLARED_OVERLAP | Project declares possible overlap. | Redundancy score exists. |
Explicit bounded model
Selection
Subjects, requirements, claims and hypotheses are all explicitly selected.
No truncation
Overflow is N_A. The model never silently drops obligations or subjects.
Redundancy graph
No O(n²) automatic pair generation and no inferred substitutes.
ObjectContributionSystemSeed {
objectContributionModelRef,
semanticNecessityAttachmentRef: null,
ablationAttachmentRef: null,
removalCandidateAttachmentRef: null,
scoringAttachmentRef: null,
metricResultRefs: [],
mutationAllowed: false
}N_A never becomes zero
| Case | Status |
|---|---|
| No eligibility evidence | N_A |
| Eligibility conflict | N_A |
| Malformed evidence / requirement / role | INVALID |
| Coverage references unknown subject/requirement | N_A |
| Hypothesis with fewer than two unique subjects | INVALID |
| Hypothesis references unknown subject/requirement | N_A |
| Valid model with zero hypotheses | OK |
| Future valid redundancy score 0 | Numeric zero, not N_A; owned downstream |
Downstream ownership is fixed
| 20.00 | Root subjects, requirements, coverage claims, redundancy hypotheses and immutable system seed. |
| 20.01 | Semantic necessity vs decorative contribution. |
| 20.02 | Marginal contribution / ablation and ObjectContributionDescriptor. |
| 20.03 | Removal candidates and clutter reduction. |
| 20.04 | Redundancy score, MetricResult scoring and final Topic20 tests. |
| Topic19 | Observed multi-signal visual hierarchy. |
| Topic18 | Declared hierarchy/subordination. |
| Compo13 / Compo4 | Dominance / visual mass. |
No deletion from appearance alone
CANON → LAB → DATA → IDEAS
20.00 regression suite
Tests cover explicit eligibility, requirement/protection taxonomies, exact coverage lineage, unordered redundancy-hypothesis membership, bounded policies, N_A/INVALID preservation, immutable seed, zero metrics and all 20.01–20.04 / Topic18–19 ownership firewalls.
DATA FOR LAYOUT ENGINE
{
"module": "Compo 20.00",
"name": "necessity_redundancy_model",
"version": "1.0-canonical",
"canonical_main_title": "Necessity/redundancy model",
"topic": "20_ЭКОНОМИЯ_И_УДАЛЕНИЕ_ЛИШНЕГО",
"scope": "EXPLICIT_OBJECT_CONTRIBUTION_SUBJECTS_OWNER_QUALIFIED_REQUIREMENTS_COVERAGE_CLAIMS_AND_REDUNDANCY_HYPOTHESES_ROOT_MODEL_ONLY_WITHOUT_NECESSITY_JUDGEMENT_ABLATION_REMOVAL_OR_SCORING",
"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.00",
"owns": [
"ObjectContributionSubjectEligibilityEvidence",
"ObjectContributionSubjectEligibilityResolution",
"ObjectContributionSubject",
"ObjectContributionSubjectSetPolicy",
"ObjectContributionSubjectSet",
"ObjectContributionRequirementKind taxonomy",
"ObjectContributionRemovalProtectionMode taxonomy",
"ObjectContributionRequirement",
"ObjectContributionCoverageRole taxonomy",
"ObjectContributionCoverageClaim",
"ObjectRedundancyHypothesisKind taxonomy",
"ObjectRedundancyHypothesis",
"ObjectContributionModelPolicy",
"ObjectContributionModel",
"ObjectContributionSystemSeed root identity",
"identity/status/provenance rules for Topic20 root contribution model",
"non-mutating correction request for root declaration/lineage errors"
],
"does_not_own": [
"semantic necessity / decorative contribution judgement — Compo20.01",
"marginal contribution / ablation experiment and ObjectContributionDescriptor — Compo20.02",
"removal candidate generation / clutter reduction — Compo20.03",
"redundancy score / MetricResult scoring / final Topic20 tests — Compo20.04",
"semantic meaning or task importance inference — foreign semantic owner",
"raw visual hierarchy — Topic19",
"generic subordination — Topic18",
"dominance / focal ranking — Compo13",
"visual mass — Compo4",
"global beautyScore",
"final-layout ranking",
"foreign geometry/content/style mutation"
]
},
"consumes": [
"explicit foreign object identities",
"explicit contribution-subject eligibility evidence",
"explicit owner-qualified content/task/legal/brand/accessibility/owner-defined requirement declarations",
"explicit subject-to-requirement coverage claims",
"explicit potential-overlap/redundancy hypotheses",
"optional upstream Topic18/19 refs as foreign context only"
],
"provides": [
"ObjectContributionSubjectSet",
"ObjectContributionRequirement[]",
"ObjectContributionCoverageClaim[]",
"ObjectRedundancyHypothesis[]",
"ObjectContributionModel",
"ObjectContributionSystemSeed"
],
"owns_metrics": [],
"metric_ownership_note": "20.00 owns no redundancy score, no necessity score, no marginal-contribution score, no MetricResult and no independent numeric vote. It registers root evidence and hypotheses only.",
"requirement_kind_taxonomy": {
"MANDATORY_CONTENT": "Explicit content that an owner declares must remain represented in the composition.",
"TASK_FUNCTION": "Explicit functional/task requirement supplied by a task owner.",
"LEGAL_OR_STANDARD": "Explicit legal, compliance or standards requirement.",
"BRAND_OR_STYLE": "Explicit brand/style requirement. Presence may be required by the declaring owner but is not a universal law.",
"ACCESSIBILITY": "Explicit accessibility requirement supplied by its owner.",
"OWNER_DEFINED": "Opaque explicit requirement whose semantics remain with the declaring owner."
},
"removal_protection_mode_taxonomy": {
"REQUIRED_PRESENCE": "The requirement itself must remain represented. This does not prove that any one particular subject is the only valid provider.",
"REVIEW_REQUIRED": "Removal affecting this requirement must be owner-reviewed downstream.",
"NO_DECLARED_PROTECTION": "No root protection declaration. This does not mean safe to remove."
},
"coverage_role_taxonomy": {
"SOLE_DECLARED_PROVIDER": "Explicit claim that this subject is the only currently declared provider for the requirement in this snapshot.",
"CO_PROVIDER": "Explicit claim that the subject is one of multiple declared providers.",
"SUPPORTING": "Explicit claim that the subject supports but does not independently satisfy the requirement.",
"UNSPECIFIED": "A coverage relation exists but its role is not further declared."
},
"redundancy_hypothesis_kind_taxonomy": {
"SHARED_REQUIREMENT": "Subjects are explicitly hypothesized to overlap because they serve the same requirement.",
"SHARED_FUNCTION": "Subjects are explicitly hypothesized to overlap in function.",
"POTENTIAL_SUBSTITUTE": "Subjects are explicitly declared as potential substitutes for downstream testing.",
"AUTHOR_DECLARED_OVERLAP": "Project/author declares a possible overlap with no automatic semantic conclusion."
},
"subject_schema": {
"objectContributionSubjectRef": "stable identity",
"scopeRef": "Topic20 scope",
"objectRef": "foreign-owned object identity",
"eligibilityResolutionRef": "exact resolved eligibility",
"semanticNecessityRef": null,
"marginalContributionRef": null,
"removalCandidateRef": null,
"redundancyScore": null,
"status": "OK|N_A|INVALID",
"mutationAllowed": false,
"firewall": "Visual smallness, decoration, low contrast, low hierarchy rank or low visual mass do not automatically make an object redundant."
},
"requirement_schema": {
"objectContributionRequirementRef": "stable identity",
"scopeRef": "scope",
"requirementKind": "one explicit taxonomy value",
"requirementRef": "foreign requirement identity",
"requirementOwnerRef": "semantic/task/legal/brand/accessibility owner",
"removalProtectionMode": "REQUIRED_PRESENCE|REVIEW_REQUIRED|NO_DECLARED_PROTECTION",
"requirementContextRef": "explicit context/snapshot",
"sourceRef": "explicit evidence source",
"sourceOwnerRef": "source owner",
"provenance": "canonical provenance",
"status": "OK|INVALID",
"mutationAllowed": false,
"firewall": "20.00 records the requirement but does not infer semantic necessity of a subject from the requirement alone."
},
"coverage_claim_schema": {
"objectContributionCoverageClaimRef": "stable identity",
"scopeRef": "scope",
"objectContributionSubjectRef": "exact root subject",
"objectContributionRequirementRef": "exact root requirement",
"coverageRole": "SOLE_DECLARED_PROVIDER|CO_PROVIDER|SUPPORTING|UNSPECIFIED",
"claimSourceRef": "explicit source",
"claimSourceOwnerRef": "owner",
"provenance": "canonical provenance",
"status": "OK|N_A|INVALID",
"mutationAllowed": false,
"firewall": "A coverage claim is evidence lineage, not a necessity verdict and not a removal decision."
},
"redundancy_hypothesis_schema": {
"objectRedundancyHypothesisRef": "stable identity",
"scopeRef": "scope",
"hypothesisKind": "SHARED_REQUIREMENT|SHARED_FUNCTION|POTENTIAL_SUBSTITUTE|AUTHOR_DECLARED_OVERLAP",
"subjectRefs": "canonical unique set of 2..64 exact root subjects",
"requirementRef": "optional exact root requirement ref or null",
"hypothesisSourceRef": "explicit source",
"hypothesisSourceOwnerRef": "owner",
"provenance": "canonical provenance",
"redundancyScore": null,
"status": "OK|N_A|INVALID",
"mutationAllowed": false,
"firewall": "Hypothesis != redundancy finding. No pair/group is removable until downstream semantic and ablation evidence exists."
},
"model_policy_schema": {
"subjectSelectionMode": "EXPLICIT_ELIGIBILITY_ONLY",
"requirementSelectionMode": "EXPLICIT_REQUIREMENTS_ONLY",
"coverageSelectionMode": "EXPLICIT_CLAIMS_ONLY",
"hypothesisSelectionMode": "EXPLICIT_HYPOTHESES_ONLY",
"duplicatePolicy": "DEDUP_EXACT_IDENTITY",
"missingReferencePolicy": "N_A_NO_GUESS",
"maxSubjects": "1..4096",
"maxRequirements": "0..4096",
"maxCoverageClaims": "0..16384",
"maxRedundancyHypotheses": "0..4096",
"overflowPolicy": "N_A_NO_TRUNCATION",
"autoAllPairsRedundancy": false,
"autoCoverageInference": false,
"autoRemovalCandidateGeneration": false
},
"system_seed_schema": {
"objectContributionSystemSeedRef": "stable identity",
"objectContributionModelRef": "exact root model",
"semanticNecessityAttachmentRef": null,
"ablationAttachmentRef": null,
"removalCandidateAttachmentRef": null,
"scoringAttachmentRef": null,
"metricResultRefs": [],
"mutationAllowed": false,
"firewall": "20.01–20.04 attach derived records. They do not rewrite the root model or foreign objects."
},
"status_policy": {
"missingEligibilityEvidence": "N_A",
"eligibilityConflict": "N_A; no confidence winner",
"invalidEligibilityEvidence": "INVALID",
"subjectOverflow": "N_A; no truncation",
"invalidRequirement": "INVALID",
"coverageUnknownSubjectOrRequirement": "N_A",
"coverageMalformedRole": "INVALID",
"hypothesisFewerThanTwoSubjects": "INVALID",
"hypothesisUnknownSubjectOrRequirement": "N_A",
"hypothesisDuplicateSubjects": "deduplicated before min-count validation",
"modelOverflow": "N_A; no truncation",
"validEmptyRequirementsOrHypotheses": "OK when subject set is valid",
"N_A_not_zero": true
},
"identity_policy": {
"eligibilityEvidenceRef": "hash(scope, object, eligible, source/owner, confidence, provenance, snapshot, status)",
"eligibilityResolutionRef": "hash(scope, object, canonical evidence refs, resolved eligible/null, status, reason)",
"objectContributionSubjectRef": "hash(scope, object, eligibility resolution, status)",
"subjectSetPolicyRef": "hash(selection/dedup/conflict/max/overflow/source/owner/provenance/status)",
"subjectSetRef": "hash(scope, snapshot, policy, canonical subject refs, status, reason)",
"requirementRef": "hash(scope, kind, foreign requirement, owner, protection mode, context, source/owner, provenance, status)",
"coverageClaimRef": "hash(scope, subject, requirement, coverage role, source/owner, provenance, status)",
"redundancyHypothesisRef": "hash(scope, kind, canonical unordered subject set, optional requirement, source/owner, provenance, status)",
"modelPolicyRef": "hash(explicit selection/bounds/no-guess/no-auto-pairs/source/owner/provenance/status)",
"modelRef": "hash(scope, snapshot, subject set, policy, canonical requirements/claims/hypotheses, status, reason)",
"systemSeedRef": "hash(root model, null downstream attachments, status)"
},
"critical_firewalls": [
"20.00 owns no MetricResult and no independent numeric vote",
"object eligibility != semantic necessity",
"requirement declaration != object necessity verdict",
"coverage claim != semantic necessity verdict",
"SOLE_DECLARED_PROVIDER != universally irreplaceable",
"redundancy hypothesis != redundancy score",
"shared function != safe removal",
"decorative appearance != redundant",
"small object != redundant",
"low hierarchy rank != redundant",
"low visual mass != redundant",
"N_A != 0",
"missing evidence != zero contribution",
"no automatic all-pairs redundancy graph",
"no automatic semantic coverage inference",
"no ablation in 20.00",
"no removal candidates in 20.00",
"no clutter score in 20.00",
"no final-layout ranking",
"root seed remains immutable",
"correction request != foreign mutation"
],
"IDEAS_REFS": [
"IDEA-01 study how human reviewers distinguish redundant from merely decorative elements",
"IDEA-02 collect requirement-coverage graphs before defining semantic necessity rules",
"IDEA-03 compare explicit redundancy hypotheses with ablation outcomes",
"IDEA-04 study multi-provider requirements and substitute sets",
"IDEA-05 collect false-positive removal proposals that break mandatory content"
],
"DATA_CAPTURE": [
"scopeRef",
"snapshotRef",
"objectContributionSubjectRefs[]",
"objectContributionRequirementRefs[]",
"objectContributionCoverageClaimRefs[]",
"objectRedundancyHypothesisRefs[]",
"requirementKindByRef",
"removalProtectionModeByRequirement",
"coverageRoleByClaim",
"hypothesisKindByRef",
"objectContributionModelRef",
"objectContributionSystemSeedRef",
"status",
"reasonCode"
],
"DEFERRED_SEMANTIC_INPUTS": [
"20.01 semantic necessity judgement",
"20.01 decorative contribution judgement",
"20.02 marginal contribution / ablation",
"20.02 ObjectContributionDescriptor",
"20.03 removal candidates and clutter reduction",
"20.04 redundancy score and MetricResult scoring",
"global quality and final-layout ranking"
],
"HUMAN_FEEDBACK_HOOKS": [
"correct object eligibility",
"correct requirement declaration",
"correct requirement owner",
"correct removal protection mode",
"correct coverage claim",
"correct coverage role",
"mark redundancy hypothesis missing",
"mark redundancy hypothesis extraneous",
"correct hypothesis membership"
],
"CONFLICT_PRIORITY_ASSUMPTIONS": [
"eligibility confidence does not choose a winner",
"requirement serialization order has no priority",
"coverage claim order has no priority",
"hypothesis order has no priority",
"module execution order does not imply semantic priority"
],
"LAB_HOOKS": [
"requirement coverage study",
"semantic necessity study",
"redundancy-hypothesis precision study",
"ablation validation study",
"protected-content false-removal study",
"human correction reason taxonomy"
],
"topic20ProgressAfterThisModule": "1/5 local",
"next_module": "Compo 20.01 — Semantic necessity vs decorative contribution",
"hard_stop": "Do not implement 20.01, 20.02, 20.03 or 20.04 in this file."
}