-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbase.json
More file actions
138 lines (138 loc) · 5.52 KB
/
Copy pathbase.json
File metadata and controls
138 lines (138 loc) · 5.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
{
"$id": "before-the-component:base@0.1.0",
"name": "Before the Component shared prototype contract",
"version": "0.1.0",
"authority": {
"type": "adopted_for_prototype",
"recordId": "btc-adoption-2026-08-17",
"label": "Independent prototype adoption"
},
"truthLabel": "Prototype rules, not Netflix policy",
"supportedLocales": ["en-US"],
"contextFields": ["domain", "surface", "locale", "audience", "goal", "object", "state", "risk", "mode"],
"extensionPoints": ["experience_kind", "scoped_rule", "scoped_terminology"],
"experienceKinds": [
{
"id": "discovery.collection_row",
"purpose": "Help people scan a meaningful collection.",
"match": {
"domain": "streaming",
"surface": "home",
"goal": "browse",
"object": "collection",
"mode": "conform"
},
"component": "collection-row"
},
{
"id": "decision.destructive_confirmation",
"purpose": "Make an irreversible choice legible before it happens.",
"match": {
"domain": "account",
"surface": "profile-management",
"goal": "remove",
"object": "profile",
"state": "destructive",
"mode": "conform"
},
"component": "destructive-confirmation"
}
],
"rules": [
{
"id": "public-design-reference",
"version": "0.1.0",
"family": "evidence",
"authority": {
"type": "public_observation",
"label": "Third-party reverse-engineered reference"
},
"treatment": "inform",
"predicate": "record_observation",
"scope": { "locales": ["en-US"] },
"params": { "referenceId": "designmd-netflix-download" },
"message": "The visual reference is evidence only and cannot set conformance status.",
"source": { "kind": "third_party_public_reference", "ref": "contracts/design-reference.json" }
},
{
"id": "required-response-slots",
"version": "0.1.0",
"family": "response_shape",
"authority": {
"type": "adopted_for_prototype",
"recordId": "btc-response-shape-2026-08-17",
"label": "Shared prototype rule"
},
"treatment": "enforce",
"predicate": "required_slots",
"scope": { "experienceKinds": ["discovery.collection_row", "decision.destructive_confirmation"] },
"params": { "required": ["component", "language", "interaction", "accessibility"] },
"message": "A governed response must bind component, language, interaction, and accessibility together.",
"source": { "kind": "authored_prototype_rule", "ref": "spec/FRAMEWORK.md#the-combined-response" }
},
{
"id": "tv-uppercase",
"version": "1.0.2",
"family": "terminology",
"authority": {
"type": "adopted_for_prototype",
"recordId": "btc-tv-uppercase-2026-08-17",
"label": "Bounded prototype terminology rule"
},
"treatment": "enforce",
"predicate": "exact_term_case",
"scope": { "experienceKinds": ["discovery.collection_row"], "locales": ["en-US"] },
"params": { "path": "/draft/rowTitle", "term": "TV", "repair": true, "repairTransform": "title_case_preserve_tv" },
"message": "Use title case and keep the system term TV in uppercase.",
"source": { "kind": "authored_prototype_rule", "ref": "Derived from an exact public-demo casing predicate; broadened and adopted only for this fictional collection label." }
},
{
"id": "destructive-object-explicit",
"version": "0.1.0",
"family": "decision_copy",
"authority": {
"type": "adopted_for_prototype",
"recordId": "btc-destructive-object-2026-08-17",
"label": "Exact prototype copy rule"
},
"treatment": "enforce",
"predicate": "explicit_object",
"scope": { "experienceKinds": ["decision.destructive_confirmation"], "locales": ["en-US"] },
"params": { "object": "profile", "paths": ["/language/title", "/language/destructiveAction"] },
"message": "The title and destructive action must name the object.",
"source": { "kind": "authored_prototype_rule", "ref": "spec/FRAMEWORK.md#decisiondestructive_confirmation" }
},
{
"id": "destructive-safe-focus",
"version": "0.1.0",
"family": "accessibility",
"authority": {
"type": "adopted_for_prototype",
"recordId": "btc-safe-focus-2026-08-17",
"label": "Exact prototype interaction rule"
},
"treatment": "enforce",
"predicate": "safe_initial_focus",
"scope": { "experienceKinds": ["decision.destructive_confirmation"] },
"params": { "expected": "safeAction" },
"message": "Initial focus must not land on the destructive action.",
"source": { "kind": "authored_prototype_rule", "ref": "spec/FRAMEWORK.md#decisiondestructive_confirmation" }
},
{
"id": "minor-account-delete-human-review",
"version": "0.1.0",
"family": "risk_boundary",
"authority": {
"type": "human_required",
"recordId": "btc-human-gate-2026-08-17",
"label": "Demonstration review gate"
},
"treatment": "review",
"predicate": "context_review_gate",
"scope": { "experienceKinds": ["decision.destructive_confirmation"] },
"params": { "audience": "minor", "risk": "high", "requiredReviewerRoles": ["account-domain-content-owner"] },
"message": "This prototype routes a high-risk minor-audience deletion to accountable human review.",
"source": { "kind": "authored_demo_gate", "ref": "This is a prototype decision, not Netflix practice." }
}
]
}