Topic 7 сводится без universal score
7.06 превращает уже вычисленные evidence 7.01–7.05 в violations, repair requests, hard-filter state и — только при explicit soft targets — локальный composite score.
Reject / keep, не numeric penalty.
Only explicit clearance target can score.
Request only; mutation=false.
Violation — owner-qualified constraint evidence
Violation сохраняет исходный policy/result ref и не пытается переписать источник.
EdgeViolation {
violationRef,
owner: "Compo7.06",
family:
HARD_SAFE |
BLEED_INTENT |
EDGE_CLEARANCE_TARGET |
POLICY_CONFIG |
DATA_QUALITY,
constraintKind:
HARD |
SOFT |
CONFIG |
DATA,
sourceModule,
sourceRef,
contentRef?,
edge?,
targetRef?,
observed,
expected,
confidence,
derivedFrom[],
provenance: DERIVED
}
7.01 / 7.02 / HARD target
Hard constraint evidence влияет на admissibility, а не на weighted mean.
Target только explicit
7.03 измеряет clearance; 7.06 интерпретирует его лишь при наличии target.
EdgeClearanceTargetSpec {
targetRef,
queryRef,
observedSelector:
MINIMUM_SIGNED_SHORT_N |
EDGE_SIGNED_SHORT_N,
edge?,
constraintKind:
HARD |
SOFT,
minShortN?,
maxShortN?,
softToleranceShortN?,
missingEvidencePolicy:
N_A |
INVALID,
confidence,
provenance
}
Interval, а не «чем больше — тем лучше»
Один target задаёт допустимый диапазон и — для soft — explicit tolerance за его пределами.
Required и optional target refs
Scoring profile обязан явно перечислить, какие soft targets формируют composite.
EdgeScoringProfile {
profileRef,
requiredTargetRefs[],
optionalTargetRefs[],
weights: {
targetRef: positiveNumber
},
aggregate:
WEIGHTED_MEAN,
missingRequiredPolicy:
N_A |
INVALID,
confidence,
provenance
}
Один numeric vote Topic 7
Soft target components существуют только как части одного composite.
Shared geometry ≠ duplicate score
Topic7 сознательно использует одну и ту же geometry lineage для разных hard/soft вопросов, но не голосует ею несколько раз.
7.01 + 7.03
Safe containment может быть hard filter, а clearance — soft target. Hard result не является numeric vote.
7.02 + 7.03
Trim crossing и signed clearance могут иметь общие extrema. Bleed breach не входит в weighted score.
7.03 variants
Raw / ShortN / absolute / tension — одна evidence family. Один target выбирает одну observed value.
Repair — это запрос, не изменение
7.06 может сказать, что нужно исправить, но не имеет права выполнить чужую мутацию.
EdgeRepairRequest {
repairRef,
sourceViolationRef,
requestKind:
REQUEST_KEEP_INSIDE_SAFE |
REQUEST_EDGE_EXIT_ADAPTATION |
REQUEST_CLEARANCE_ADAPTATION |
REQUEST_POLICY_CORRECTION |
REQUEST_EVIDENCE_RESOLUTION,
targetOwner,
contentRef?,
edge?,
targetRef?,
requiredDeltaShortN?,
alternatives?,
mutationAllowed: false,
provenance: DERIVED
}
Что именно можно запросить
Запрос сохраняет semantic family и не подменяет собой layout algorithm.
| Violation family | Repair request | Executor |
|---|---|---|
| HARD_SAFE | keep content inside safe reference | layout owner |
| BLEED_INTENT | adapt edge exit / depth / prohibition | layout/export owner |
| EDGE_CLEARANCE_TARGET | increase/decrease clearance by required delta | layout owner |
| POLICY_CONFIG | correct ambiguous/unsatisfiable policy | policy owner |
| DATA_QUALITY | resolve missing state/geometry | geometry/integration owner |
Missing evidence не становится нулём
Topic7 должен уметь оставаться неполным, не выдавая выдуманную уверенность.
7.05 PARTIAL
Data-quality diagnostic. Не design violation сам по себе.
Required target missing
`localEdgeFit = N_A` или evaluation `INVALID` согласно profile.
Optional target missing
Явно исключается из denominator. Вес не перераспределяется скрыто — denominator просто состоит из applicable declared optional/required targets.
Финальный локальный contract
Один объект хранит hard state, soft score, violations и repair requests раздельно.
Topic7Evaluation {
evaluationRef,
status:
OK |
PARTIAL |
N_A |
INVALID,
hardFilterDecision:
KEEP |
REJECT |
N_A |
INVALID,
violations[],
repairRequests[],
targetEvaluations[],
metricResults[],
localEdgeFit:
MetricResult,
diagnostics[],
confidence,
provenance
}
7.06 закрывает Topic 7, но не глобальную композицию
После этого edge subsystem готов отдавать hard/local evidence в общий engine.
Visual Lab
Hard failure и soft score показаны как разные каналы решения.
Topic 7 consolidated regression
Проверяем hard-filter, target evaluation, weighted composite, required/optional N/A, configuration diagnostics, repairs, de-duplication, lineage и отсутствие double counting.
DATA FOR LAYOUT ENGINE
Machine-readable 7.06 contract.
{
"module": "Compo 7.06",
"name": "violations_repair_scoring_and_tests",
"version": "1.1-final",
"canonical_main_title": "Violations, repair, scoring и tests",
"topic": "07_ПОЛЯ_SAFE_ZONES_И_BLEED",
"scope": "TOPIC7_VIOLATION_AGGREGATION_HARD_FILTER_MUTATION_FREE_REPAIR_EXPLICIT_TARGET_SCORING_AND_REGRESSION",
"consumes": [
"Compo7.01.HardSafeConstraintResult[]",
"Compo7.02.BleedIntentResult[]",
"Compo7.03.EdgeClearanceDescriptor[]",
"Compo7.04.RolePolicyResolutionSet? / diagnostics",
"Compo7.05.DynamicSafeZoneSnapshot? / change diagnostics",
"explicit EdgeClearanceTargetSpec[]",
"explicit EdgeScoringProfile?"
],
"provides": [
"EdgeViolation",
"EdgeViolationSet",
"EdgeRepairRequest",
"EdgeRepairRequestSet",
"EdgeClearanceTargetSpec",
"EdgeTargetEvaluation",
"MetricResult[edge.target.componentFit.*]",
"MetricResult[edge.system.localEdgeFit]",
"Topic7HardFilterDecision",
"Topic7Evaluation",
"Topic7RegressionManifest"
],
"owns_metrics": [
"edge.system.localEdgeFit"
],
"component_metrics": [
"edge.target.componentFit.<targetRef>"
],
"violation_schema": {
"violationRef": "stable identity derived from family + source/constraint/target identity",
"owner": "Compo7.06",
"family": "HARD_SAFE|BLEED_INTENT|EDGE_CLEARANCE_TARGET|POLICY_CONFIG|DATA_QUALITY",
"constraintKind": "HARD|SOFT|CONFIG|DATA",
"sourceModule": "Compo7.01|Compo7.02|Compo7.03|Compo7.04|Compo7.05",
"sourceRef": "owner-qualified evidence/result ref",
"contentRef": "optional",
"edge": "optional TOP|RIGHT|BOTTOM|LEFT|MINIMUM",
"targetRef": "optional",
"status": "OPEN|RESOLVED_BY_EVIDENCE|N_A|INVALID",
"observed": "structured evidence",
"expected": "explicit policy/target evidence",
"confidence": "0..1",
"derivedFrom": "owner-qualified evidence refs",
"provenance": "DERIVED",
"important": "severity is not guessed from aesthetics; hard/config/data/soft kind comes from explicit source semantics"
},
"repair_request_schema": {
"repairRef": "stable ref",
"sourceViolationRef": "EdgeViolation ref",
"requestKind": "REQUEST_KEEP_INSIDE_SAFE|REQUEST_EDGE_EXIT_ADAPTATION|REQUEST_CLEARANCE_ADAPTATION|REQUEST_POLICY_CORRECTION|REQUEST_EVIDENCE_RESOLUTION",
"targetOwner": "layout_owner|policy_owner|geometry_owner|integration_owner",
"contentRef": "optional",
"edge": "optional",
"requiredDeltaShortN": "optional signed/absolute requested delta for clearance target",
"targetRef": "optional",
"alternatives": "optional explicit alternative action families",
"mutationAllowed": false,
"provenance": "DERIVED",
"important": "request is advisory/routable; 7.06 does not execute mutation"
},
"edge_clearance_target_schema": {
"targetRef": "stable unique ref",
"queryRef": "must identify a 7.03 clearance result",
"observedSelector": "MINIMUM_SIGNED_SHORT_N|EDGE_SIGNED_SHORT_N",
"edge": "required for EDGE_SIGNED_SHORT_N",
"constraintKind": "HARD|SOFT",
"minShortN": "finite or null",
"maxShortN": "finite or null; at least one bound required; max>=min when both exist",
"softToleranceShortN": "required finite >0 only for SOFT",
"missingEvidencePolicy": "N_A|INVALID",
"confidence": "0..1",
"provenance": "STANDARD|EMPIRICAL|INITIAL_HEURISTIC|STYLE_PRESET",
"no_hidden_target": "7.06 does not infer a preferred clearance from tension class or role name"
},
"target_fit_semantics": {
"inside_interval": "distance=0",
"below_min": "distance=minShortN-observed",
"above_max": "distance=observed-maxShortN",
"HARD": "SATISFIED if distance=0 else BREACHED; no numeric vote",
"SOFT": "componentFit = 1 - clamp(distance/softToleranceShortN,0,1)",
"SOFT_inside_interval": "componentFit=1",
"important": "larger clearance is not inherently better; the interval defines the explicit target"
},
"edge_scoring_profile_schema": {
"profileRef": "stable explicit ref",
"requiredTargetRefs": "unique SOFT target refs",
"optionalTargetRefs": "unique SOFT target refs disjoint from required",
"weights": "map targetRef -> finite positive weight; keys must exactly cover declared required+optional target refs",
"aggregate": "WEIGHTED_MEAN",
"missingRequiredPolicy": "N_A|INVALID",
"confidence": "0..1",
"provenance": "STYLE_PRESET|EMPIRICAL|STANDARD|INITIAL_HEURISTIC",
"no_profile": "edge.system.localEdgeFit = N_A"
},
"metric_result_policy": {
"component": {
"key": "edge.target.componentFit.<targetRef>",
"owner": "Compo7.06",
"value": "0..1",
"componentOf": "edge.system.localEdgeFit",
"scoringGroup": "edge-system-local",
"independentVoteAllowed": false
},
"composite": {
"key": "edge.system.localEdgeFit",
"owner": "Compo7.06",
"value": "0..1 or N_A",
"composite": true,
"componentOf": null,
"scoringGroup": "edge-system-local",
"independentVoteAllowed": true
},
"hard_constraints": "never encoded as component score",
"raw_7_03_metrics": "do not cast independent votes in 7.06",
"tension_class": "descriptor only",
"no_scoring_profile": "localEdgeFit is N_A by applicability, but this alone does not make Topic7Evaluation PARTIAL"
},
"hard_filter_semantics": {
"REJECT": "at least one valid HARD violation from 7.01/7.02/HARD clearance target",
"KEEP": "no hard violation and no blocking invalid configuration",
"N_A": "one or more supplied hard constraints/targets are unresolved (N_A/PARTIAL) and no already-proven hard breach/config invalidity determines the decision",
"INVALID": "policy/configuration inputs are internally invalid or ambiguous",
"separate_from_score": "KEEP/REJECT is not derived by thresholding edge.system.localEdgeFit",
"precedence": "INVALID configuration > proven REJECT > unresolved hard evidence N_A > KEEP"
},
"source_mapping": {
"7.01_BREACHED": "HARD_SAFE / HARD violation",
"7.02_BREACHED": "BLEED_INTENT / HARD violation",
"7.02_POLICY_ZONE_UNSATISFIABLE": "POLICY_CONFIG / CONFIG violation",
"7.04_INVALID_AMBIGUOUS": "POLICY_CONFIG / CONFIG violation",
"7.05_PARTIAL": "DATA_QUALITY diagnostic unless downstream explicit target requires resolved geometry",
"7.05_INVALID": "POLICY_CONFIG or DATA_QUALITY invalid input depending source error",
"7.03_HARD_TARGET_BREACH": "EDGE_CLEARANCE_TARGET / HARD violation",
"7.03_SOFT_TARGET_DEVIATION": "EDGE_CLEARANCE_TARGET / SOFT violation plus one component fit"
},
"double_count_policy": {
"7.01_vs_7.03": "safe containment hard-filter evidence and a separate soft clearance target may coexist; the hard result is not a numeric vote, so it cannot numerically double-count the clearance score",
"7.02_vs_7.03": "bleed compliance may share trim extrema with signed clearance; bleed hard result does not enter numeric soft score",
"raw_vs_normalized_vs_absolute": "never separate component votes",
"tension_vs_clearance": "tension class never votes separately",
"same_target_duplicate": "INVALID profile/input",
"exact_duplicate_violation": "de-duplicate by violationRef while preserving derivedFrom lineage"
},
"repair_policy": {
"HARD_SAFE": "REQUEST_KEEP_INSIDE_SAFE; alternatives may include translate/resize/reflow but owning layout system decides",
"BLEED_INTENT": "REQUEST_EDGE_EXIT_ADAPTATION for require/prohibit/depth mismatch; exact operation remains layout/export owner",
"EDGE_CLEARANCE_TARGET": "REQUEST_CLEARANCE_ADAPTATION with direction hint INCREASE|DECREASE and minimum delta ShortN",
"POLICY_CONFIG": "REQUEST_POLICY_CORRECTION",
"DATA_QUALITY": "REQUEST_EVIDENCE_RESOLUTION",
"foreign_mutation": "FORBIDDEN"
},
"topic7_evaluation_schema": {
"evaluationRef": "stable ref",
"status": "OK|PARTIAL|N_A|INVALID",
"hardFilterDecision": "KEEP|REJECT|N_A|INVALID",
"violations": "EdgeViolation[]",
"repairRequests": "EdgeRepairRequest[]",
"targetEvaluations": "EdgeTargetEvaluation[]",
"metricResults": "component MetricResults + localEdgeFit",
"localEdgeFit": "MetricResult",
"diagnostics": "non-scoring config/data diagnostics",
"confidence": "aggregate evidence confidence",
"provenance": "DERIVED",
"status_semantics": {
"OK": "all supplied requested evidence is resolved enough for its declared purpose; localEdgeFit may still be N_A when no scoring profile was requested",
"PARTIAL": "supplied requested evidence is unresolved (e.g. hard evidence N_A, required target evidence N_A, or dynamic platform snapshot PARTIAL)",
"N_A": "reserved for evaluation-level non-applicability when integration owner explicitly declares Topic7 not applicable",
"INVALID": "configuration/schema ambiguity or invalid required evidence"
}
},
"ownership_map": {
"7.00": "neutral edge-zone geometry",
"7.01": "hard safe containment evidence",
"7.02": "bleed/edge-exit compliance evidence",
"7.03": "continuous clearance/tension evidence",
"7.04": "role-policy resolution/routing",
"7.05": "platform overlay lifecycle/dynamic safe geometry",
"7.06": "violations, repair requests, hard-filter decision, explicit-target local scoring and Topic7 regression"
},
"metric_policy": {
"hard_filter": "not a score",
"local_edge_fit": "one explicit-target composite score only",
"direct_global_score": "FORBIDDEN",
"more_clearance_is_better": "FORBIDDEN",
"more_safe_area_is_better": "FORBIDDEN",
"fewer_violations_is_beautiful": "FORBIDDEN as universal aesthetic metric",
"beautyScore": "FORBIDDEN"
},
"hard_constraints": [
"7.06 owns Topic7 violation objects, mutation-free repair requests, hard-filter decision, explicit-target local scoring and consolidated Topic7 regression only.",
"Hard-safe BREACHED evidence from 7.01 and hard bleed BREACHED evidence from 7.02 produce hard violations and candidate rejection; they do not become numeric aesthetic penalties.",
"7.04 policy-resolution INVALID/AMBIGUOUS states are configuration errors, not design-quality scores.",
"7.05 PARTIAL/INVALID dynamic safe geometry is data/configuration state; it is not silently converted into a content violation or zero score.",
"A 7.03 clearance value contributes to scoring only through an explicit EdgeClearanceTargetSpec.",
"No explicit clearance target means no clearance score.",
"Only SHORT_N target scoring is canonical in 7.06 baseline so cross-format comparisons remain scale-normalized through Compo6.03.",
"A HARD clearance target is evaluated as a hard constraint and does not also contribute a numeric soft vote.",
"A SOFT clearance target may produce one component fit score in [0,1] using its explicit tolerance; the observed raw/normalized/absolute metrics do not vote independently.",
"Tension class is descriptive evidence and never an independent scoring component beside the clearance value from which it was derived.",
"Required scoring-target evidence missing => localEdgeFit N_A or INVALID according explicit scoring profile; missing evidence is never zero-filled.",
"Optional scoring-target evidence may be excluded from the weighted denominator only when it is explicitly declared optional.",
"Weights for undeclared or HARD targets are INVALID.",
"Every soft target may appear at most once in the scoring profile; duplicate target refs are INVALID.",
"The local composite uses one scoringGroup: edge-system-local, and only edge.system.localEdgeFit may cast the independent Topic7 numeric vote.",
"Hard-filter state and numeric soft score are separate outputs and must not be merged into one universal quality number.",
"Violation de-duplication may collapse exact duplicate evidence for the same constraint identity, but different explicit constraints sharing geometry lineage remain separately traceable.",
"Repair output is always a request with mutationAllowed=false; 7.06 never moves/resizes/crops content itself.",
"Repair requests preserve source violation/evidence/target lineage and route to the owning layout/policy/geometry integration layer.",
"No repair is generated for N_A evidence unless the request is to resolve missing data/configuration.",
"No global balance/hierarchy/eye-flow/beauty scoring is owned here.",
"N/A != 0.",
"No beautyScore."
],
"hard_rules": [
"7.06 owns Topic7 violation objects, mutation-free repair requests, hard-filter decision, explicit-target local scoring and consolidated Topic7 regression only.",
"Hard-safe BREACHED evidence from 7.01 and hard bleed BREACHED evidence from 7.02 produce hard violations and candidate rejection; they do not become numeric aesthetic penalties.",
"7.04 policy-resolution INVALID/AMBIGUOUS states are configuration errors, not design-quality scores.",
"7.05 PARTIAL/INVALID dynamic safe geometry is data/configuration state; it is not silently converted into a content violation or zero score.",
"A 7.03 clearance value contributes to scoring only through an explicit EdgeClearanceTargetSpec.",
"No explicit clearance target means no clearance score.",
"Only SHORT_N target scoring is canonical in 7.06 baseline so cross-format comparisons remain scale-normalized through Compo6.03.",
"A HARD clearance target is evaluated as a hard constraint and does not also contribute a numeric soft vote.",
"A SOFT clearance target may produce one component fit score in [0,1] using its explicit tolerance; the observed raw/normalized/absolute metrics do not vote independently.",
"Tension class is descriptive evidence and never an independent scoring component beside the clearance value from which it was derived.",
"Required scoring-target evidence missing => localEdgeFit N_A or INVALID according explicit scoring profile; missing evidence is never zero-filled.",
"Optional scoring-target evidence may be excluded from the weighted denominator only when it is explicitly declared optional.",
"Weights for undeclared or HARD targets are INVALID.",
"Every soft target may appear at most once in the scoring profile; duplicate target refs are INVALID.",
"The local composite uses one scoringGroup: edge-system-local, and only edge.system.localEdgeFit may cast the independent Topic7 numeric vote.",
"Hard-filter state and numeric soft score are separate outputs and must not be merged into one universal quality number.",
"Violation de-duplication may collapse exact duplicate evidence for the same constraint identity, but different explicit constraints sharing geometry lineage remain separately traceable.",
"Repair output is always a request with mutationAllowed=false; 7.06 never moves/resizes/crops content itself.",
"Repair requests preserve source violation/evidence/target lineage and route to the owning layout/policy/geometry integration layer.",
"No repair is generated for N_A evidence unless the request is to resolve missing data/configuration.",
"No global balance/hierarchy/eye-flow/beauty scoring is owned here.",
"N/A != 0.",
"No beautyScore."
],
"soft_constraints": [],
"preferences": [],
"overrides_allowed_by": [
"a newer explicit EdgeClearanceTargetSpec/EdgeScoringProfile may supersede older future evaluations",
"hard violation evidence remains tied to its original source policy/result ref and is not retroactively reinterpreted"
],
"initial_heuristics": {
"numeric_epsilon": {
"value": 1e-12,
"provenance": "IMPLEMENTATION_HEURISTIC"
}
},
"style_preset_values": [],
"candidate_generation": {
"layout_candidates": "NONE",
"repair_requests": "YES, mutation-free requests only",
"reason": "candidate geometry is generated by downstream layout owners, not 7.06"
},
"correction_policy": {
"foreign_content_mutation": "FORBIDDEN",
"hard_safe_breach": "route mutation-free repair request to layout owner",
"bleed_breach": "route mutation-free edge-exit adaptation request",
"clearance_target_deviation": "route mutation-free clearance adaptation request",
"policy_ambiguity": "route to policy owner",
"missing_geometry/state": "route to geometry/integration owner",
"global_composition_issue": "defer to future global owners"
},
"deferred_inputs": [
"future global composition scoring owners",
"future layout solver/candidate generator executing repair requests",
"future semantic conflict resolver beyond Topic7 local policy"
],
"recompute_when": [
"any consumed 7.01–7.05 result/version changes",
"target specs change",
"scoring profile changes",
"hard-filter source policy changes",
"repair-source evidence changes"
],
"tests": [
"7.01 hard violation",
"7.02 hard violation",
"7.04 config ambiguity",
"7.05 partial diagnostic",
"hard clearance target",
"soft interval fit",
"no target N_A",
"required/optional missing target behavior",
"weights validation",
"composite-only numeric vote",
"hard filter separate from score",
"exact violation dedupe",
"repair request mutation=false",
"shared-lineage no double counting",
"deterministic integration"
],
"finality": "TOPIC7_LOCAL_VIOLATION_REPAIR_HARD_FILTER_AND_EXPLICIT_TARGET_SCORING_OWNER",
"descriptors_only": [
"edge.violation.family",
"edge.violation.constraintKind",
"edge.violation.status",
"edge.repair.requestKind",
"edge.repair.targetOwner",
"edge.repair.mutationAllowed",
"edge.target.status",
"edge.target.distanceShortN",
"edge.hardFilterDecision",
"edge.topic7.status",
"edge.topic7.diagnostic"
]
}