claude-dev-env 8.89.0 → 8.90.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/pr-visual/README.md +29 -0
- package/.agents/skills/pr-visual/SKILL.md +62 -0
- package/.agents/skills/pr-visual/assets/icons.symbols +27 -0
- package/.agents/skills/pr-visual/assets/viewer.html +147 -0
- package/.agents/skills/pr-visual/fixtures/bar.scene.json +193 -0
- package/.agents/skills/pr-visual/fixtures/flow.scene.json +201 -0
- package/.agents/skills/pr-visual/fixtures/head/metrics.json +16 -0
- package/.agents/skills/pr-visual/fixtures/integrated.scene.json +239 -0
- package/.agents/skills/pr-visual/fixtures/line.scene.json +193 -0
- package/.agents/skills/pr-visual/fixtures/scatter.scene.json +193 -0
- package/.agents/skills/pr-visual/fixtures/snapshot.json +21 -0
- package/.agents/skills/pr-visual/references/evidence.md +9 -0
- package/.agents/skills/pr-visual/references/formats.md +30 -0
- package/.agents/skills/pr-visual/references/scene-contract.md +48 -0
- package/.agents/skills/pr-visual/references/visual-contract.md +23 -0
- package/.agents/skills/pr-visual/scripts/collect.py +111 -0
- package/.agents/skills/pr-visual/scripts/metrics.py +99 -0
- package/.agents/skills/pr-visual/scripts/render.py +133 -0
- package/.agents/skills/pr-visual/scripts/test_collect.py +58 -0
- package/.agents/skills/pr-visual/scripts/test_metrics.py +47 -0
- package/.agents/skills/pr-visual/scripts/test_render.py +77 -0
- package/.agents/skills/pr-visual/scripts/verify.py +218 -0
- package/.agents/skills/pr-visual/scripts/visual_config/config/constants.py +104 -0
- package/bin/codex-skill-load-block.mjs +0 -25
- package/bin/codex-skill-load-block.test.mjs +5 -17
- package/bin/codex-trimmed-sol.test.mjs +0 -1
- package/bin/cursor-native-hooks.test.mjs +3 -3
- package/bin/ever-shipped-skills.mjs +1 -0
- package/bin/install-deepstack-plugin.mjs +42 -25
- package/bin/install-deepstack-plugin.test.mjs +37 -11
- package/bin/install-pstack-plugin.mjs +58 -11
- package/bin/install-pstack-plugin.test.mjs +54 -21
- package/bin/install.agents-home.test.mjs +0 -1
- package/bin/install.codex-rules.test.mjs +0 -2
- package/bin/install.cursor-rules.test.mjs +90 -26
- package/bin/install.mjs +30 -36
- package/bin/install.pr-visual.test.mjs +40 -0
- package/bin/install.prompt-context.test.mjs +3 -4
- package/bin/install.prune.test.mjs +0 -1
- package/bin/install.question-presentation.test.mjs +0 -4
- package/bin/install.settings-defaults.test.mjs +0 -1
- package/bin/install.shared-settings.test.mjs +0 -1
- package/bin/install.test.mjs +14 -44
- package/bin/install.transaction.test.mjs +0 -8
- package/bin/install.uninstall-transaction.test.mjs +0 -2
- package/bin/install.update-keeps-hooks.test.mjs +0 -1
- package/docs/BDD_SCENARIO_QUALITY.md +1 -1
- package/docs/BDD_TEST_LAYOUT.md +1 -1
- package/docs/CODE_RULES.md +1 -1
- package/docs/rule-guides/deepstack-wording.md +3 -5
- package/docs/rule-guides/session-title.md +5 -4
- package/hooks/blocking/session_title_turn_gate.py +287 -0
- package/hooks/blocking/test_session_title_format_gate.py +5 -0
- package/hooks/blocking/test_session_title_turn_gate.py +264 -0
- package/hooks/features/conduct-gates.md +3 -0
- package/hooks/features/session-context.md +0 -4
- package/hooks/hooks.json +5 -5
- package/hooks/hooks_constants/mod_handoff_constants.py +0 -2
- package/hooks/hooks_constants/session_title_constants.py +41 -3
- package/hooks/lifecycle/nested_project_hooks.py +2 -2
- package/hooks/lifecycle/test_nested_project_hooks.py +2 -2
- package/hooks/session/compaction_user_messages.py +2 -2
- package/package.json +2 -2
- package/rules/deepstack-wording.md +3 -3
- package/scripts/ci/install-playtest.mjs +58 -314
- package/scripts/ci/install-playtest.test.mjs +24 -6
- package/scripts/policy_lint/adapter_configuration.py +1 -0
- package/scripts/policy_lint/config/constants.py +1 -0
- package/scripts/test_deepstack_review_criterion.py +2 -3
- package/scripts/test_deepstack_wording_rule.py +6 -4
- package/scripts/tests/test_adapter_configuration.py +8 -0
- package/.agents/skills/deepen/SKILL.md +0 -26
- package/commands/deepen.md +0 -14
- package/docs/decisions/deepstack-gate.md +0 -32
- package/hooks/hooks_constants/deepen_first_prompt_constants.py +0 -187
- package/hooks/session/deepen_default_rewrite.py +0 -128
- package/hooks/session/deepen_first_prompt.py +0 -383
- package/hooks/session/deepen_role_gate.py +0 -171
- package/hooks/session/deepen_turn_marker.py +0 -75
- package/hooks/session/fixtures/deepstack_replay.json +0 -15
- package/hooks/session/grade_deepstack_replay.py +0 -78
- package/hooks/session/test_deepen_default_rewrite.py +0 -90
- package/hooks/session/test_deepen_first_prompt.py +0 -452
- package/hooks/session/test_deepen_role_gate.py +0 -83
- package/hooks/session/test_deepen_turn_marker.py +0 -59
- package/hooks/session/test_grade_deepstack_replay.py +0 -47
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
{
|
|
2
|
+
"snapshot": "snapshot.json",
|
|
3
|
+
"tab": "Flow",
|
|
4
|
+
"title": "Follow the captured measurements",
|
|
5
|
+
"subtitle": "Synthetic fixture: source-backed views of the same data.",
|
|
6
|
+
"before": "BEFORE: Measurements stored as JSON.",
|
|
7
|
+
"after": "AFTER: Inspect each sample and its source.",
|
|
8
|
+
"alt": "Three synthetic samples; click a sample to inspect its captured JSON.",
|
|
9
|
+
"nodes": [
|
|
10
|
+
{
|
|
11
|
+
"id": "sample-0",
|
|
12
|
+
"x": 300,
|
|
13
|
+
"y": 430,
|
|
14
|
+
"label": [
|
|
15
|
+
"Sample 1"
|
|
16
|
+
],
|
|
17
|
+
"icon": "ledger",
|
|
18
|
+
"kind": "green",
|
|
19
|
+
"detail": [
|
|
20
|
+
"Synthetic fixture data, not a performance claim."
|
|
21
|
+
],
|
|
22
|
+
"sources": [
|
|
23
|
+
{
|
|
24
|
+
"path": "metrics.json",
|
|
25
|
+
"line": 4,
|
|
26
|
+
"end": 5
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"drilldown": {
|
|
30
|
+
"title": "Inspect the recorded measurement",
|
|
31
|
+
"steps": [
|
|
32
|
+
{
|
|
33
|
+
"label": [
|
|
34
|
+
"Captured",
|
|
35
|
+
"JSON"
|
|
36
|
+
],
|
|
37
|
+
"icon": "code"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"label": [
|
|
41
|
+
"Measured",
|
|
42
|
+
"duration"
|
|
43
|
+
],
|
|
44
|
+
"icon": "ledger"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
"metrics": {
|
|
49
|
+
"x": {
|
|
50
|
+
"source": 0,
|
|
51
|
+
"pointer": "/samples/0/size"
|
|
52
|
+
},
|
|
53
|
+
"y": {
|
|
54
|
+
"source": 0,
|
|
55
|
+
"pointer": "/samples/0/duration_ms"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "sample-1",
|
|
61
|
+
"x": 700,
|
|
62
|
+
"y": 430,
|
|
63
|
+
"label": [
|
|
64
|
+
"Sample 2"
|
|
65
|
+
],
|
|
66
|
+
"icon": "ledger",
|
|
67
|
+
"kind": "green",
|
|
68
|
+
"detail": [
|
|
69
|
+
"Synthetic fixture data, not a performance claim."
|
|
70
|
+
],
|
|
71
|
+
"sources": [
|
|
72
|
+
{
|
|
73
|
+
"path": "metrics.json",
|
|
74
|
+
"line": 8,
|
|
75
|
+
"end": 9
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"drilldown": {
|
|
79
|
+
"title": "Inspect the recorded measurement",
|
|
80
|
+
"steps": [
|
|
81
|
+
{
|
|
82
|
+
"label": [
|
|
83
|
+
"Captured",
|
|
84
|
+
"JSON"
|
|
85
|
+
],
|
|
86
|
+
"icon": "code"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"label": [
|
|
90
|
+
"Measured",
|
|
91
|
+
"duration"
|
|
92
|
+
],
|
|
93
|
+
"icon": "ledger"
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
"metrics": {
|
|
98
|
+
"x": {
|
|
99
|
+
"source": 0,
|
|
100
|
+
"pointer": "/samples/1/size"
|
|
101
|
+
},
|
|
102
|
+
"y": {
|
|
103
|
+
"source": 0,
|
|
104
|
+
"pointer": "/samples/1/duration_ms"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"id": "sample-2",
|
|
110
|
+
"x": 1100,
|
|
111
|
+
"y": 430,
|
|
112
|
+
"label": [
|
|
113
|
+
"Sample 3"
|
|
114
|
+
],
|
|
115
|
+
"icon": "ledger",
|
|
116
|
+
"kind": "green",
|
|
117
|
+
"detail": [
|
|
118
|
+
"Synthetic fixture data, not a performance claim."
|
|
119
|
+
],
|
|
120
|
+
"sources": [
|
|
121
|
+
{
|
|
122
|
+
"path": "metrics.json",
|
|
123
|
+
"line": 12,
|
|
124
|
+
"end": 13
|
|
125
|
+
}
|
|
126
|
+
],
|
|
127
|
+
"drilldown": {
|
|
128
|
+
"title": "Inspect the recorded measurement",
|
|
129
|
+
"steps": [
|
|
130
|
+
{
|
|
131
|
+
"label": [
|
|
132
|
+
"Captured",
|
|
133
|
+
"JSON"
|
|
134
|
+
],
|
|
135
|
+
"icon": "code"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"label": [
|
|
139
|
+
"Measured",
|
|
140
|
+
"duration"
|
|
141
|
+
],
|
|
142
|
+
"icon": "ledger"
|
|
143
|
+
}
|
|
144
|
+
]
|
|
145
|
+
},
|
|
146
|
+
"metrics": {
|
|
147
|
+
"x": {
|
|
148
|
+
"source": 0,
|
|
149
|
+
"pointer": "/samples/2/size"
|
|
150
|
+
},
|
|
151
|
+
"y": {
|
|
152
|
+
"source": 0,
|
|
153
|
+
"pointer": "/samples/2/duration_ms"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
],
|
|
158
|
+
"edges": [
|
|
159
|
+
{
|
|
160
|
+
"from": "sample-0",
|
|
161
|
+
"to": "sample-1",
|
|
162
|
+
"path": "M343 430 L657 430",
|
|
163
|
+
"kind": "green"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"from": "sample-1",
|
|
167
|
+
"to": "sample-2",
|
|
168
|
+
"path": "M743 430 L1057 430",
|
|
169
|
+
"kind": "green"
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"notes": [
|
|
173
|
+
{
|
|
174
|
+
"label": "SOURCE",
|
|
175
|
+
"text": [
|
|
176
|
+
"Captured JSON",
|
|
177
|
+
"Immutable source links"
|
|
178
|
+
]
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"label": "INTERACTION",
|
|
182
|
+
"text": [
|
|
183
|
+
"Select a sample",
|
|
184
|
+
"Inspect its source"
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"label": "SCOPE",
|
|
189
|
+
"text": [
|
|
190
|
+
"Synthetic data only",
|
|
191
|
+
"No benchmark claim"
|
|
192
|
+
]
|
|
193
|
+
}
|
|
194
|
+
],
|
|
195
|
+
"comparison": [
|
|
196
|
+
"The fixture description and rendered samples use the same captured JSON."
|
|
197
|
+
],
|
|
198
|
+
"review": [
|
|
199
|
+
"This fixture checks the renderer, not a PR correctness verdict."
|
|
200
|
+
]
|
|
201
|
+
}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
{
|
|
2
|
+
"snapshot": "snapshot.json",
|
|
3
|
+
"tab": "Flow",
|
|
4
|
+
"title": "Follow the captured measurements",
|
|
5
|
+
"subtitle": "Synthetic fixture: source-backed views of the same data.",
|
|
6
|
+
"before": "BEFORE: Measurements stored as JSON.",
|
|
7
|
+
"after": "AFTER: Inspect each sample and its source.",
|
|
8
|
+
"alt": "Three synthetic samples; click a sample to inspect its captured JSON.",
|
|
9
|
+
"nodes": [
|
|
10
|
+
{
|
|
11
|
+
"id": "sample-0",
|
|
12
|
+
"x": 300,
|
|
13
|
+
"y": 430,
|
|
14
|
+
"label": [
|
|
15
|
+
"Sample 1"
|
|
16
|
+
],
|
|
17
|
+
"icon": "ledger",
|
|
18
|
+
"kind": "green",
|
|
19
|
+
"detail": [
|
|
20
|
+
"Synthetic fixture data, not a performance claim."
|
|
21
|
+
],
|
|
22
|
+
"sources": [
|
|
23
|
+
{
|
|
24
|
+
"path": "metrics.json",
|
|
25
|
+
"line": 1,
|
|
26
|
+
"end": 16
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"drilldown": {
|
|
30
|
+
"title": "Inspect the recorded measurement",
|
|
31
|
+
"steps": [
|
|
32
|
+
{
|
|
33
|
+
"label": [
|
|
34
|
+
"Captured",
|
|
35
|
+
"JSON"
|
|
36
|
+
],
|
|
37
|
+
"icon": "code"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"label": [
|
|
41
|
+
"Measured",
|
|
42
|
+
"duration"
|
|
43
|
+
],
|
|
44
|
+
"icon": "ledger"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
"metrics": {
|
|
49
|
+
"x": {
|
|
50
|
+
"source": 0,
|
|
51
|
+
"pointer": "/samples/0/size"
|
|
52
|
+
},
|
|
53
|
+
"y": {
|
|
54
|
+
"source": 0,
|
|
55
|
+
"pointer": "/samples/0/duration_ms"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"chart": {
|
|
59
|
+
"kind": "bar",
|
|
60
|
+
"title": "Captured fixture durations",
|
|
61
|
+
"basis": "source-example",
|
|
62
|
+
"caption": "Synthetic fixture values for renderer verification.",
|
|
63
|
+
"x_label": "Sample",
|
|
64
|
+
"y_label": "Duration (ms)",
|
|
65
|
+
"points": [
|
|
66
|
+
{
|
|
67
|
+
"label": "Sample 1",
|
|
68
|
+
"metrics": {
|
|
69
|
+
"y": {
|
|
70
|
+
"source": 0,
|
|
71
|
+
"pointer": "/samples/0/duration_ms"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"label": "Sample 2",
|
|
77
|
+
"metrics": {
|
|
78
|
+
"y": {
|
|
79
|
+
"source": 0,
|
|
80
|
+
"pointer": "/samples/1/duration_ms"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"label": "Sample 3",
|
|
86
|
+
"metrics": {
|
|
87
|
+
"y": {
|
|
88
|
+
"source": 0,
|
|
89
|
+
"pointer": "/samples/2/duration_ms"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"unit": "ms"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "sample-1",
|
|
99
|
+
"x": 700,
|
|
100
|
+
"y": 430,
|
|
101
|
+
"label": [
|
|
102
|
+
"Sample 2"
|
|
103
|
+
],
|
|
104
|
+
"icon": "ledger",
|
|
105
|
+
"kind": "green",
|
|
106
|
+
"detail": [
|
|
107
|
+
"Synthetic fixture data, not a performance claim."
|
|
108
|
+
],
|
|
109
|
+
"sources": [
|
|
110
|
+
{
|
|
111
|
+
"path": "metrics.json",
|
|
112
|
+
"line": 8,
|
|
113
|
+
"end": 9
|
|
114
|
+
}
|
|
115
|
+
],
|
|
116
|
+
"drilldown": {
|
|
117
|
+
"title": "Inspect the recorded measurement",
|
|
118
|
+
"steps": [
|
|
119
|
+
{
|
|
120
|
+
"label": [
|
|
121
|
+
"Captured",
|
|
122
|
+
"JSON"
|
|
123
|
+
],
|
|
124
|
+
"icon": "code"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"label": [
|
|
128
|
+
"Measured",
|
|
129
|
+
"duration"
|
|
130
|
+
],
|
|
131
|
+
"icon": "ledger"
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
},
|
|
135
|
+
"metrics": {
|
|
136
|
+
"x": {
|
|
137
|
+
"source": 0,
|
|
138
|
+
"pointer": "/samples/1/size"
|
|
139
|
+
},
|
|
140
|
+
"y": {
|
|
141
|
+
"source": 0,
|
|
142
|
+
"pointer": "/samples/1/duration_ms"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": "sample-2",
|
|
148
|
+
"x": 1100,
|
|
149
|
+
"y": 430,
|
|
150
|
+
"label": [
|
|
151
|
+
"Sample 3"
|
|
152
|
+
],
|
|
153
|
+
"icon": "ledger",
|
|
154
|
+
"kind": "green",
|
|
155
|
+
"detail": [
|
|
156
|
+
"Synthetic fixture data, not a performance claim."
|
|
157
|
+
],
|
|
158
|
+
"sources": [
|
|
159
|
+
{
|
|
160
|
+
"path": "metrics.json",
|
|
161
|
+
"line": 12,
|
|
162
|
+
"end": 13
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"drilldown": {
|
|
166
|
+
"title": "Inspect the recorded measurement",
|
|
167
|
+
"steps": [
|
|
168
|
+
{
|
|
169
|
+
"label": [
|
|
170
|
+
"Captured",
|
|
171
|
+
"JSON"
|
|
172
|
+
],
|
|
173
|
+
"icon": "code"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"label": [
|
|
177
|
+
"Measured",
|
|
178
|
+
"duration"
|
|
179
|
+
],
|
|
180
|
+
"icon": "ledger"
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
},
|
|
184
|
+
"metrics": {
|
|
185
|
+
"x": {
|
|
186
|
+
"source": 0,
|
|
187
|
+
"pointer": "/samples/2/size"
|
|
188
|
+
},
|
|
189
|
+
"y": {
|
|
190
|
+
"source": 0,
|
|
191
|
+
"pointer": "/samples/2/duration_ms"
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
],
|
|
196
|
+
"edges": [
|
|
197
|
+
{
|
|
198
|
+
"from": "sample-0",
|
|
199
|
+
"to": "sample-1",
|
|
200
|
+
"path": "M343 430 L657 430",
|
|
201
|
+
"kind": "green"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"from": "sample-1",
|
|
205
|
+
"to": "sample-2",
|
|
206
|
+
"path": "M743 430 L1057 430",
|
|
207
|
+
"kind": "green"
|
|
208
|
+
}
|
|
209
|
+
],
|
|
210
|
+
"notes": [
|
|
211
|
+
{
|
|
212
|
+
"label": "SOURCE",
|
|
213
|
+
"text": [
|
|
214
|
+
"Captured JSON",
|
|
215
|
+
"Immutable source links"
|
|
216
|
+
]
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"label": "INTERACTION",
|
|
220
|
+
"text": [
|
|
221
|
+
"Select a sample",
|
|
222
|
+
"Inspect its source"
|
|
223
|
+
]
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"label": "SCOPE",
|
|
227
|
+
"text": [
|
|
228
|
+
"Synthetic data only",
|
|
229
|
+
"No benchmark claim"
|
|
230
|
+
]
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"comparison": [
|
|
234
|
+
"The fixture description and rendered samples use the same captured JSON."
|
|
235
|
+
],
|
|
236
|
+
"review": [
|
|
237
|
+
"This fixture checks the renderer, not a PR correctness verdict."
|
|
238
|
+
]
|
|
239
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
{
|
|
2
|
+
"snapshot": "snapshot.json",
|
|
3
|
+
"tab": "Line",
|
|
4
|
+
"title": "Line chart with source evidence",
|
|
5
|
+
"subtitle": "Synthetic fixture: source-backed views of the same data.",
|
|
6
|
+
"before": "BEFORE: Measurements stored as JSON.",
|
|
7
|
+
"after": "AFTER: Inspect each sample and its source.",
|
|
8
|
+
"alt": "Three synthetic samples; click a sample to inspect its captured JSON.",
|
|
9
|
+
"nodes": [
|
|
10
|
+
{
|
|
11
|
+
"id": "sample-0",
|
|
12
|
+
"x": 300,
|
|
13
|
+
"y": 430,
|
|
14
|
+
"label": [
|
|
15
|
+
"Sample 1"
|
|
16
|
+
],
|
|
17
|
+
"icon": "ledger",
|
|
18
|
+
"kind": "green",
|
|
19
|
+
"detail": [
|
|
20
|
+
"Synthetic fixture data, not a performance claim."
|
|
21
|
+
],
|
|
22
|
+
"sources": [
|
|
23
|
+
{
|
|
24
|
+
"path": "metrics.json",
|
|
25
|
+
"line": 4,
|
|
26
|
+
"end": 5
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"drilldown": {
|
|
30
|
+
"title": "Inspect the recorded measurement",
|
|
31
|
+
"steps": [
|
|
32
|
+
{
|
|
33
|
+
"label": [
|
|
34
|
+
"Captured",
|
|
35
|
+
"JSON"
|
|
36
|
+
],
|
|
37
|
+
"icon": "code"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"label": [
|
|
41
|
+
"Measured",
|
|
42
|
+
"duration"
|
|
43
|
+
],
|
|
44
|
+
"icon": "ledger"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
"metrics": {
|
|
49
|
+
"x": {
|
|
50
|
+
"source": 0,
|
|
51
|
+
"pointer": "/samples/0/size"
|
|
52
|
+
},
|
|
53
|
+
"y": {
|
|
54
|
+
"source": 0,
|
|
55
|
+
"pointer": "/samples/0/duration_ms"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "sample-1",
|
|
61
|
+
"x": 700,
|
|
62
|
+
"y": 430,
|
|
63
|
+
"label": [
|
|
64
|
+
"Sample 2"
|
|
65
|
+
],
|
|
66
|
+
"icon": "ledger",
|
|
67
|
+
"kind": "green",
|
|
68
|
+
"detail": [
|
|
69
|
+
"Synthetic fixture data, not a performance claim."
|
|
70
|
+
],
|
|
71
|
+
"sources": [
|
|
72
|
+
{
|
|
73
|
+
"path": "metrics.json",
|
|
74
|
+
"line": 8,
|
|
75
|
+
"end": 9
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"drilldown": {
|
|
79
|
+
"title": "Inspect the recorded measurement",
|
|
80
|
+
"steps": [
|
|
81
|
+
{
|
|
82
|
+
"label": [
|
|
83
|
+
"Captured",
|
|
84
|
+
"JSON"
|
|
85
|
+
],
|
|
86
|
+
"icon": "code"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"label": [
|
|
90
|
+
"Measured",
|
|
91
|
+
"duration"
|
|
92
|
+
],
|
|
93
|
+
"icon": "ledger"
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
"metrics": {
|
|
98
|
+
"x": {
|
|
99
|
+
"source": 0,
|
|
100
|
+
"pointer": "/samples/1/size"
|
|
101
|
+
},
|
|
102
|
+
"y": {
|
|
103
|
+
"source": 0,
|
|
104
|
+
"pointer": "/samples/1/duration_ms"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"id": "sample-2",
|
|
110
|
+
"x": 1100,
|
|
111
|
+
"y": 430,
|
|
112
|
+
"label": [
|
|
113
|
+
"Sample 3"
|
|
114
|
+
],
|
|
115
|
+
"icon": "ledger",
|
|
116
|
+
"kind": "green",
|
|
117
|
+
"detail": [
|
|
118
|
+
"Synthetic fixture data, not a performance claim."
|
|
119
|
+
],
|
|
120
|
+
"sources": [
|
|
121
|
+
{
|
|
122
|
+
"path": "metrics.json",
|
|
123
|
+
"line": 12,
|
|
124
|
+
"end": 13
|
|
125
|
+
}
|
|
126
|
+
],
|
|
127
|
+
"drilldown": {
|
|
128
|
+
"title": "Inspect the recorded measurement",
|
|
129
|
+
"steps": [
|
|
130
|
+
{
|
|
131
|
+
"label": [
|
|
132
|
+
"Captured",
|
|
133
|
+
"JSON"
|
|
134
|
+
],
|
|
135
|
+
"icon": "code"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"label": [
|
|
139
|
+
"Measured",
|
|
140
|
+
"duration"
|
|
141
|
+
],
|
|
142
|
+
"icon": "ledger"
|
|
143
|
+
}
|
|
144
|
+
]
|
|
145
|
+
},
|
|
146
|
+
"metrics": {
|
|
147
|
+
"x": {
|
|
148
|
+
"source": 0,
|
|
149
|
+
"pointer": "/samples/2/size"
|
|
150
|
+
},
|
|
151
|
+
"y": {
|
|
152
|
+
"source": 0,
|
|
153
|
+
"pointer": "/samples/2/duration_ms"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
],
|
|
158
|
+
"edges": [],
|
|
159
|
+
"notes": [
|
|
160
|
+
{
|
|
161
|
+
"label": "SOURCE",
|
|
162
|
+
"text": [
|
|
163
|
+
"Captured JSON",
|
|
164
|
+
"Immutable source links"
|
|
165
|
+
]
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"label": "INTERACTION",
|
|
169
|
+
"text": [
|
|
170
|
+
"Select a sample",
|
|
171
|
+
"Inspect its source"
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"label": "SCOPE",
|
|
176
|
+
"text": [
|
|
177
|
+
"Synthetic data only",
|
|
178
|
+
"No benchmark claim"
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
],
|
|
182
|
+
"comparison": [
|
|
183
|
+
"The fixture description and rendered samples use the same captured JSON."
|
|
184
|
+
],
|
|
185
|
+
"review": [
|
|
186
|
+
"This fixture checks the renderer, not a PR correctness verdict."
|
|
187
|
+
],
|
|
188
|
+
"chart": {
|
|
189
|
+
"kind": "line",
|
|
190
|
+
"x_label": "Sample size (items)",
|
|
191
|
+
"y_label": "Duration (ms)"
|
|
192
|
+
}
|
|
193
|
+
}
|