Skip to content

Commit a693103

Browse files
committed
Lock harness edits and distinguish UX proof from probes
1 parent 29863c3 commit a693103

1 file changed

Lines changed: 59 additions & 10 deletions

File tree

automation/native-human-ux-policy.json

Lines changed: 59 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
{
2-
"version": 2,
2+
"version": 3,
33
"mode": "human-ux-observation-only",
4-
"purpose": "Native labs reproduce the real Nuvio user path and observe launch, player and playback failures without repairing Nuvio, the OS or the lab environment to improve outcomes.",
4+
"purpose": "Native labs reproduce the real Nuvio user path and observe launch, stream selection, player opening and playback failures without repairing Nuvio, the OS or the lab environment to improve outcomes.",
55
"immutable_principles": [
66
"The harness exists to observe the user path, not to improve it.",
77
"Do not modify Nuvio production runtime code to make tests pass or to gain visibility.",
88
"Do not modify the OS or emulator security/network/runtime policy to make playback easier.",
99
"Playback/player failures are evidence first; only a demonstrated NiakVIO-owned cause may become a Brain repair target.",
10-
"If the official Nuvio client or OS blocks faithful observation before playback, classify and retain the external limitation instead of repairing the environment."
10+
"If the official Nuvio client or OS blocks faithful observation before playback, classify and retain the external limitation instead of repairing the environment.",
11+
"A component-level player or provider probe is diagnostic evidence only and can never satisfy human-UX acceptance by itself."
1112
],
1213
"ownership": {
1314
"repairable": [
@@ -26,6 +27,52 @@
2627
"native player implementations owned by Nuvio"
2728
]
2829
},
30+
"harness_change_control": {
31+
"default": "locked-do-not-modify",
32+
"change_policy": "only-when-faithful-observation-is-blocked",
33+
"rule": "Do not improve, refactor, harden, tune or make the harness more permissive while it can still faithfully observe the real user path. If the harness itself prevents observation, apply only the smallest behavior-neutral change required to resume observation.",
34+
"required_before_change": [
35+
"identify the exact harness blocker",
36+
"show that the blocker prevents observation rather than merely producing a bad playback result",
37+
"show that the proposed change cannot make Nuvio, the player, networking or the OS more permissive",
38+
"keep the change outside Nuvio-owned runtime code whenever technically possible"
39+
],
40+
"forbidden_reasons": [
41+
"make CI green",
42+
"increase playback success rate",
43+
"work around a Nuvio player failure",
44+
"work around an OS or emulator playback/network limitation",
45+
"obtain richer evidence by changing Nuvio runtime semantics"
46+
]
47+
},
48+
"human_ux_acceptance_path": [
49+
"launch the official Nuvio client",
50+
"install or open the NiakVIO addon through a Nuvio-supported public flow",
51+
"open the target title through a Nuvio-supported public flow or equivalent external user input",
52+
"reach the real Nuvio stream-selection surface",
53+
"select the returned stream through the real Nuvio UI",
54+
"let the real Nuvio player attempt playback before any media transport diagnostic",
55+
"record first-frame success or the visible/native player failure",
56+
"classify the evidence before any NiakVIO repair is proposed"
57+
],
58+
"evidence_classes": {
59+
"human_ux_proof": {
60+
"can_gate_acceptance": true,
61+
"requires_real_ui_path": true,
62+
"requires_production_player": true,
63+
"may_patch_nuvio_runtime": false
64+
},
65+
"component_probe": {
66+
"can_gate_acceptance": false,
67+
"role": "diagnostic-only",
68+
"examples": [
69+
"direct provider runtime invocation",
70+
"direct production player component invocation",
71+
"transport probe",
72+
"generated instrumentation test"
73+
]
74+
}
75+
},
2976
"allowed_checkout_changes": {
3077
"mobile": [
3178
"composeApp/build.gradle.kts",
@@ -64,12 +111,12 @@
64111
"desktop": []
65112
},
66113
"allowed_change_intent": [
67-
"add or enable test source sets",
68-
"add instrumentation runner declarations",
69-
"add test-only dependencies",
114+
"add or enable test source sets for diagnostic probes only",
115+
"add instrumentation runner declarations for diagnostic probes only",
116+
"add test-only dependencies for diagnostic probes only",
70117
"use a debug signing configuration when hosted CI cannot access an official release signing key",
71-
"stage NiakVIO provider bundles as test assets",
72-
"add test code that invokes production Nuvio entry points without changing their semantics"
118+
"stage NiakVIO provider bundles as diagnostic test assets",
119+
"add test code that invokes production Nuvio entry points only as component diagnostics, never as human-UX acceptance proof"
73120
],
74121
"forbidden_checkout_tokens": [
75122
"android.permission.INTERNET",
@@ -100,9 +147,11 @@
100147
"patch Nuvio source code for logging or instrumentation",
101148
"patch Nuvio repository/network loaders to inject evidence interceptors",
102149
"patch OS permissions, security policy or runtime privileges",
103-
"classify an external Nuvio or OS limitation as a NiakVIO provider repair target"
150+
"classify an external Nuvio or OS limitation as a NiakVIO provider repair target",
151+
"count a direct player/provider component probe as human-UX acceptance",
152+
"retouch the harness merely because playback or player tests are failing"
104153
],
105-
"evidence_rule": "Production player behaviour is primary evidence. Diagnostics may observe from NiakVIO-owned test code, official logs already emitted by Nuvio, or external process output, but must not patch Nuvio production runtime code to gain visibility.",
154+
"evidence_rule": "Human-UX acceptance must come from the real Nuvio user path and production player. Component probes may supplement diagnosis but cannot replace that path. Diagnostics must not patch Nuvio production runtime code to gain visibility.",
106155
"failure_rule": "If faithful observation cannot reach playback because the official Nuvio client or OS blocks earlier, record the condition as external evidence. Do not repair the external environment merely to continue the test.",
107156
"brain_rule": "Brain may learn and repair only from complete evidence that demonstrates a NiakVIO-owned cause. External Nuvio/OS failures must not generate provider mutations.",
108157
"change_control": {

0 commit comments

Comments
 (0)