yam-flow 0.1.3 → 0.1.5

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.
@@ -56,6 +56,11 @@ export interface UeyeVisualProvenance {
56
56
  source_hash: string;
57
57
  reference_id: string;
58
58
  screenshot_id: string;
59
+ provider_context: string;
60
+ provider_badge: string;
61
+ execution_surface: string;
62
+ app_surface: string;
63
+ browser_surface: string;
59
64
  local_only: boolean;
60
65
  redacted: boolean;
61
66
  operator_provided: boolean;
@@ -63,6 +68,26 @@ export interface UeyeVisualProvenance {
63
68
  truth_status: TruthStatus;
64
69
  }
65
70
 
71
+ export interface UeyeSurfaceContext {
72
+ schema: 'yam.ueye-surface-context.v1';
73
+ provider_context: string;
74
+ provider_badge: string;
75
+ execution_surface: string;
76
+ app_surface: string;
77
+ browser_surface: string;
78
+ control_mode: string;
79
+ route: string;
80
+ mode: string;
81
+ url: string;
82
+ viewport: string;
83
+ screenshot_id: string;
84
+ evidence_id: string;
85
+ preserved_state: boolean;
86
+ preserved_url: string;
87
+ local_only: boolean;
88
+ truth_status: TruthStatus;
89
+ }
90
+
66
91
  export interface RollbackHint {
67
92
  schema: 'yam.rollback-hint.v1';
68
93
  touched_files: string[];
@@ -96,6 +121,7 @@ export interface UeyeRunReport {
96
121
  schema: 'yam.ueye-run-report.v1';
97
122
  reference_sources: UeyeVisualProvenance[];
98
123
  implementation_sources: UeyeVisualProvenance[];
124
+ surface_context: UeyeSurfaceContext;
99
125
  comparison_result: string;
100
126
  design_quality: string;
101
127
  blocked_reason: string;
@@ -201,6 +227,11 @@ export function buildUeyeVisualProvenance(input: Partial<UeyeVisualProvenance> =
201
227
  source_hash: String(input.source_hash || 'unknown'),
202
228
  reference_id: String(input.reference_id || ''),
203
229
  screenshot_id: String(input.screenshot_id || ''),
230
+ provider_context: String(input.provider_context || 'not-recorded'),
231
+ provider_badge: String(input.provider_badge || 'not-recorded'),
232
+ execution_surface: String(input.execution_surface || 'not-recorded'),
233
+ app_surface: String(input.app_surface || 'not-recorded'),
234
+ browser_surface: String(input.browser_surface || 'not-recorded'),
204
235
  local_only: Boolean(input.local_only),
205
236
  redacted: Boolean(input.redacted),
206
237
  operator_provided: Boolean(input.operator_provided),
@@ -209,6 +240,28 @@ export function buildUeyeVisualProvenance(input: Partial<UeyeVisualProvenance> =
209
240
  };
210
241
  }
211
242
 
243
+ export function buildUeyeSurfaceContext(input: Partial<UeyeSurfaceContext> = {}): UeyeSurfaceContext {
244
+ return {
245
+ schema: 'yam.ueye-surface-context.v1',
246
+ provider_context: String(input.provider_context || 'not-recorded'),
247
+ provider_badge: String(input.provider_badge || input.provider_context || 'not-recorded'),
248
+ execution_surface: String(input.execution_surface || 'not-recorded'),
249
+ app_surface: String(input.app_surface || 'not-recorded'),
250
+ browser_surface: String(input.browser_surface || 'not-recorded'),
251
+ control_mode: String(input.control_mode || 'not-recorded'),
252
+ route: String(input.route || 'ueye'),
253
+ mode: String(input.mode || 'report'),
254
+ url: String(input.url || ''),
255
+ viewport: String(input.viewport || ''),
256
+ screenshot_id: String(input.screenshot_id || ''),
257
+ evidence_id: String(input.evidence_id || ''),
258
+ preserved_state: Boolean(input.preserved_state),
259
+ preserved_url: String(input.preserved_url || ''),
260
+ local_only: input.local_only !== undefined ? Boolean(input.local_only) : true,
261
+ truth_status: isTruthStatus(input.truth_status) ? input.truth_status : 'partial'
262
+ };
263
+ }
264
+
212
265
  export function buildRollbackHint(input: Partial<RollbackHint> = {}): RollbackHint {
213
266
  return {
214
267
  schema: 'yam.rollback-hint.v1',
@@ -268,6 +321,10 @@ export function buildUeyeRunReport(input: Partial<UeyeRunReport> = {}): UeyeRunR
268
321
  schema: 'yam.ueye-run-report.v1',
269
322
  reference_sources: references,
270
323
  implementation_sources: implementations,
324
+ surface_context: buildUeyeSurfaceContext({
325
+ ...input.surface_context,
326
+ truth_status: isTruthStatus(input.surface_context?.truth_status) ? input.surface_context?.truth_status : derivedTruth
327
+ }),
271
328
  comparison_result: comparisonResult,
272
329
  design_quality: String(input.design_quality || 'not-checked'),
273
330
  blocked_reason: blockedReason,
@@ -36,6 +36,18 @@ Patch envelope:
36
36
  - verification_hint:
37
37
  - truth_status: verified / partial / skipped / blocked / assumed
38
38
 
39
+ Patch queue lite:
40
+ - status: pending / applied / verified / reverted / blocked
41
+ - lane_id:
42
+ - depends_on:
43
+ - assigned_scope:
44
+ - changed_files:
45
+ - verification_hint:
46
+ - rollback_hint:
47
+ - truth_status:
48
+ - next_action:
49
+ - --out optional persistence path:
50
+
39
51
  Rollback hint:
40
52
  - touched_files:
41
53
  - generated_files:
@@ -13,8 +13,11 @@
13
13
  - Command:
14
14
  - PID/session/pane:
15
15
  - Port:
16
- - Started:
17
- - Stopped:
16
+ - URL:
17
+ - Screenshot id:
18
+ - Started at:
19
+ - Stopped at:
20
+ - Exit code:
18
21
  - Exit/closure verified:
19
22
 
20
23
  ## tmux
@@ -32,6 +35,42 @@
32
35
  - During:
33
36
  - After:
34
37
 
38
+ ## Runtime Evidence Mini
39
+
40
+ ```json
41
+ {
42
+ "kind": "runtime_evidence_mini",
43
+ "route": "deep",
44
+ "required": true,
45
+ "command": "",
46
+ "target": "",
47
+ "pid": "unknown",
48
+ "port": "",
49
+ "url": "",
50
+ "exit_code": null,
51
+ "screenshot_id": "",
52
+ "started_at": "",
53
+ "stopped_at": "",
54
+ "process": {
55
+ "session": "",
56
+ "pane": ""
57
+ },
58
+ "observation": {
59
+ "before": "",
60
+ "after": ""
61
+ },
62
+ "cleanup": {
63
+ "status": "not-checked",
64
+ "evidence": ""
65
+ },
66
+ "truth_status": "partial",
67
+ "next_action": {
68
+ "kind": "",
69
+ "summary": ""
70
+ }
71
+ }
72
+ ```
73
+
35
74
  ## Verification
36
75
 
37
76
  - Command/check:
@@ -25,7 +25,17 @@ Use this to tune route wording from real use.
25
25
  - Seconds:
26
26
  - Budget result:
27
27
 
28
- ## Fix To Harness
28
+ ## Benchmark Optimization Loop Lite
29
+
30
+ - Baseline command: yam measure <route> --files --commands --report-lines --seconds
31
+ - Baseline result:
32
+ - One route wording or doc change:
33
+ - Rerun command:
34
+ - Rerun result:
35
+ - Decision: keep / revert / retry once / stop
36
+ - Stop condition:
37
+
38
+ ## Fix To yam
29
39
 
30
40
  - Skill to edit:
31
41
  - Proposed wording:
@@ -23,12 +23,32 @@
23
23
  | source_hash | unknown |
24
24
  | reference_id | |
25
25
  | screenshot_id | |
26
+ | viewport | |
27
+ | state | |
26
28
  | local_only | true / false |
27
29
  | redacted | true / false |
28
30
  | operator_provided | true / false |
29
31
  | comparison_result | matched / similar / different / not-verified / not-applicable |
30
32
  | truth_status | verified / partial / skipped / blocked / assumed |
31
33
 
34
+ ## Surface Context
35
+
36
+ | Field | Value |
37
+ | --- | --- |
38
+ | provider_context | not-recorded |
39
+ | provider_badge | not-recorded |
40
+ | execution_surface | not-recorded |
41
+ | app_surface | not-recorded |
42
+ | browser_surface | not-recorded |
43
+ | control_mode | not-recorded |
44
+ | url | |
45
+ | viewport | |
46
+ | screenshot_id | |
47
+ | evidence_id | |
48
+ | preserved_state | true / false |
49
+ | preserved_url | |
50
+ | truth_status | verified / partial / skipped / blocked / assumed |
51
+
32
52
  ## Reference Read Proof
33
53
 
34
54
  - Layout:
@@ -56,6 +76,26 @@ Use `matched`, `similar`, `different`, `not-verified`, or `not-applicable`.
56
76
  | Accessibility visuals | not-verified | | |
57
77
  | Brand and mood fit | not-verified | | |
58
78
 
79
+ ## Review Continuity
80
+
81
+ | Field | Value |
82
+ | --- | --- |
83
+ | previous_report_id/path | |
84
+ | previous_screenshot_id | |
85
+ | previous_source_hash | unknown |
86
+ | current_report_id/path | |
87
+ | current_screenshot_id | |
88
+ | current_source_hash | unknown |
89
+ | viewport | |
90
+ | state | |
91
+ | changed_surface | |
92
+ | continuity_result | improved / regressed / unchanged / not-verified |
93
+ | regression | true / false / not-verified |
94
+ | resolved_findings | |
95
+ | new_findings | |
96
+ | still_open_findings | |
97
+ | next_action | |
98
+
59
99
  ## Design Quality Review
60
100
 
61
101
  Use `pass`, `needs-polish`, or `fails` for each relevant design dimension before listing actionable issues.
@@ -91,3 +131,36 @@ Use `pass`, `needs-polish`, or `fails` for each relevant design dimension before
91
131
  ## Truth Status
92
132
 
93
133
  - verified / partial / skipped / blocked / assumed:
134
+
135
+ ## Comparison Report JSON
136
+
137
+ ```json
138
+ {
139
+ "kind": "ueye_comparison_report",
140
+ "previous_report_id": "",
141
+ "previous_screenshot_id": "",
142
+ "current_report_id": "",
143
+ "current_screenshot_id": "",
144
+ "surface_context": {
145
+ "provider_context": "not-recorded",
146
+ "provider_badge": "not-recorded",
147
+ "execution_surface": "not-recorded",
148
+ "app_surface": "not-recorded",
149
+ "browser_surface": "not-recorded",
150
+ "control_mode": "not-recorded",
151
+ "preserved_state": false,
152
+ "preserved_url": "",
153
+ "truth_status": "partial"
154
+ },
155
+ "viewport": "",
156
+ "state": "",
157
+ "comparison_result": "not-verified",
158
+ "regression": "not-verified",
159
+ "resolved_findings": [],
160
+ "new_findings": [],
161
+ "still_open": [],
162
+ "design_quality": "needs-polish",
163
+ "truth_status": "partial",
164
+ "next_action": ""
165
+ }
166
+ ```
@@ -34,12 +34,32 @@
34
34
  | source_hash | unknown |
35
35
  | reference_id | |
36
36
  | screenshot_id | |
37
+ | viewport | |
38
+ | state | |
37
39
  | local_only | true / false |
38
40
  | redacted | true / false |
39
41
  | operator_provided | true / false |
40
42
  | comparison_result | matched / similar / different / not-verified / not-applicable |
41
43
  | truth_status | verified / partial / skipped / blocked / assumed |
42
44
 
45
+ ## Surface Context
46
+
47
+ | Field | Value |
48
+ | --- | --- |
49
+ | provider_context | not-recorded |
50
+ | provider_badge | not-recorded |
51
+ | execution_surface | not-recorded |
52
+ | app_surface | not-recorded |
53
+ | browser_surface | not-recorded |
54
+ | control_mode | not-recorded |
55
+ | url | |
56
+ | viewport | |
57
+ | screenshot_id | |
58
+ | evidence_id | |
59
+ | preserved_state | true / false |
60
+ | preserved_url | |
61
+ | truth_status | verified / partial / skipped / blocked / assumed |
62
+
43
63
  ## Reference Read Proof
44
64
 
45
65
  - Layout:
@@ -67,6 +87,26 @@
67
87
 
68
88
  Status values: matched / similar / different / not-verified / not-applicable.
69
89
 
90
+ ## Review Continuity
91
+
92
+ | Field | Value |
93
+ | --- | --- |
94
+ | previous_report_id/path | |
95
+ | previous_screenshot_id | |
96
+ | previous_source_hash | unknown |
97
+ | current_report_id/path | |
98
+ | current_screenshot_id | |
99
+ | current_source_hash | unknown |
100
+ | viewport | |
101
+ | state | |
102
+ | changed_surface | |
103
+ | continuity_result | improved / regressed / unchanged / not-verified |
104
+ | regression | true / false / not-verified |
105
+ | resolved_findings | |
106
+ | new_findings | |
107
+ | still_open_findings | |
108
+ | next_action | |
109
+
70
110
  ## Design Quality Review
71
111
 
72
112
  | Dimension | Result | Evidence |
@@ -123,3 +163,36 @@ Result values: pass / needs-polish / fails.
123
163
  ## Truth Status
124
164
 
125
165
  - verified / partial / skipped / blocked / assumed:
166
+
167
+ ## Review Report JSON
168
+
169
+ ```json
170
+ {
171
+ "kind": "ueye_review_report",
172
+ "previous_report_id": "",
173
+ "previous_screenshot_id": "",
174
+ "current_report_id": "",
175
+ "current_screenshot_id": "",
176
+ "surface_context": {
177
+ "provider_context": "not-recorded",
178
+ "provider_badge": "not-recorded",
179
+ "execution_surface": "not-recorded",
180
+ "app_surface": "not-recorded",
181
+ "browser_surface": "not-recorded",
182
+ "control_mode": "not-recorded",
183
+ "preserved_state": false,
184
+ "preserved_url": "",
185
+ "truth_status": "partial"
186
+ },
187
+ "viewport": "",
188
+ "state": "",
189
+ "comparison_result": "not-verified",
190
+ "regression": "not-verified",
191
+ "resolved_findings": [],
192
+ "new_findings": [],
193
+ "still_open": [],
194
+ "design_quality": "needs-polish",
195
+ "truth_status": "partial",
196
+ "next_action": ""
197
+ }
198
+ ```
@@ -44,7 +44,7 @@
44
44
  - UI changes:
45
45
  - Feature changes:
46
46
  - Risky changes:
47
- - Public/release changes: scan for external harness/tool names, comparison wording, and origin-credit wording; remove those hits unless the user explicitly approves keeping them.
47
+ - Public/release changes: scan for external tool names, comparison wording, and attribution wording; remove those hits unless the user explicitly approves keeping them.
48
48
 
49
49
  ## Known Risks
50
50
 
@@ -62,7 +62,7 @@
62
62
 
63
63
  - Do not:
64
64
  - Avoid:
65
- - Do not leave external harness/tool/project comparison, attribution, or origin-credit language in public-facing source, docs, npm metadata, release notes, or GitHub repository text.
65
+ - Do not leave external tool/project comparison or attribution language in public-facing source, docs, npm metadata, release notes, or GitHub repository text.
66
66
 
67
67
  ## MD Management
68
68
 
package/yam.manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yam",
3
- "version": "0.1.0",
3
+ "version": "0.1.5",
4
4
  "principles": [
5
5
  "Direction before execution.",
6
6
  "Start fast.",
@@ -22,7 +22,7 @@
22
22
  {
23
23
  "id": "ueye",
24
24
  "stage": "v0.3",
25
- "purpose": "Tight UI/UX/design implementation and visual review with visual provenance, reference-read proof, visual comparison, design quality review, and P0-P3 issue tracking."
25
+ "purpose": "Tight UI/UX/design implementation and visual review with visual provenance, surface context, reference-read proof, visual comparison, design quality review, and P0-P3 issue tracking."
26
26
  },
27
27
  {
28
28
  "id": "question",