yam-flow 0.1.3 → 0.1.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yam-flow",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Progressive proof-first agent flow: start fast, deepen deliberately, stay honest by design.",
5
5
  "type": "module",
6
6
  "author": "0kim0bos",
@@ -16,7 +16,7 @@
16
16
  "node": ">=18"
17
17
  },
18
18
  "bin": {
19
- "yam": "dist/bin/yam.js"
19
+ "yam": "./dist/bin/yam.js"
20
20
  },
21
21
  "types": "dist/lib/trust-kernel.d.ts",
22
22
  "exports": {
@@ -27,6 +27,7 @@
27
27
  },
28
28
  "files": [
29
29
  "AGENTS.md",
30
+ "CHANGELOG.md",
30
31
  "COMMANDS.md",
31
32
  "DECISIONS.md",
32
33
  "LICENSE",
@@ -4,10 +4,10 @@ Use current docs proof only when stale knowledge is a realistic risk.
4
4
 
5
5
  ## Require Current Docs Proof
6
6
 
7
- Use Context7, official docs, or primary sources when the task depends on current behavior for:
7
+ Use official docs or primary sources when the task depends on current behavior for:
8
8
 
9
9
  - modern SDK/API syntax
10
- - cloud services such as Supabase, Vercel, OpenAI, Stripe, or auth providers
10
+ - cloud services, model APIs, payment providers, or auth providers
11
11
  - framework version behavior, migration, deprecation, or breaking changes
12
12
  - CLI flags, deployment behavior, pricing/limits, security rules, or platform integrations
13
13
  - user wording such as latest, current, recently changed, new version, official docs, migration, or upgrade
@@ -27,7 +27,7 @@ Do not force current-docs proof for:
27
27
  Use one concise line:
28
28
 
29
29
  ```text
30
- Current-docs proof: Context7/official docs checked for <SDK/service>; result applied to <decision>.
30
+ Current-docs proof: official docs checked for <SDK/service>; result applied to <decision>.
31
31
  ```
32
32
 
33
33
  Or:
@@ -53,4 +53,23 @@ Doctor scan:
53
53
  - Runtime/cleanup:
54
54
  - Truth status:
55
55
  - Fix-first:
56
+ - Diagnostic next action:
56
57
  ```
58
+
59
+ ## Structured Diagnostic Next Action
60
+
61
+ Use this shape for doctor or release diagnostics that need a concrete follow-up:
62
+
63
+ - `status`: pass / needs_action / blocked / skipped
64
+ - `severity`: P0 / P1 / P2 / P3
65
+ - `owner_route`: quick / ueye / question / scout / deep / mission
66
+ - `priority`: fix_first / next / later / none
67
+ - `fix_first`: true / false
68
+ - `blocks_release`: true / false
69
+ - `observation`
70
+ - `evidence`
71
+ - `next_action.kind`: read_file / run_command / inspect_ui / update_docs / ask_user / none
72
+ - `next_action.command` or `next_action.files`, when relevant
73
+ - `truth_status`
74
+
75
+ Keep it singular. If there are several issues, list the fix-first item that most affects the next run.
@@ -10,6 +10,7 @@ Include these when they are useful and keep them short:
10
10
  - What verification ran.
11
11
  - What was not checked.
12
12
  - Truth status, when verification or runtime claims matter.
13
+ - Structured diagnostic next action, when a check found a concrete next step.
13
14
  - Remaining tasks.
14
15
  - Fix-first items before planned tasks.
15
16
 
@@ -59,3 +60,23 @@ For `$deep` and `$mission`, include evidence, remaining risks, remaining tasks,
59
60
  Do not pad the final answer when there are no meaningful remaining tasks or fix-first items.
60
61
 
61
62
  When budget drift matters, include or run `yam measure <route>` with approximate files, commands, report lines, and seconds.
63
+
64
+ ## Diagnostic Next Action
65
+
66
+ When a report says something needs attention, include one concrete next action instead of a vague warning.
67
+
68
+ Compact shape:
69
+
70
+ ```text
71
+ Diagnostic next action:
72
+ - severity:
73
+ - owner route:
74
+ - priority:
75
+ - fix first:
76
+ - blocks release:
77
+ - evidence:
78
+ - next action:
79
+ - truth status:
80
+ ```
81
+
82
+ Use `none` when there is no meaningful next action.
@@ -14,7 +14,7 @@ Allowed:
14
14
  - Remind the agent not to overclaim verification, cleanup, or visual evidence.
15
15
  - Suggest `$quick`, `$ueye`, `$question`, `$scout`, `$deep`, or `$mission` based on obvious prompt signals.
16
16
  - Mention a project pack or memory summary when present.
17
- - Warn when conflicting proof-harness surfaces are active in the current project.
17
+ - Warn when conflicting proof surfaces are active in the current project.
18
18
 
19
19
  Not allowed:
20
20
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  `yam memory` is an opt-in, project-local memory layer.
4
4
 
5
- It keeps only the lightest useful parts from heavier harness patterns:
5
+ It keeps only the lightest useful parts from heavier workflow patterns:
6
6
 
7
7
  - Sparse records, one file per durable claim, and deliberate forgetting instead of injecting every old claim.
8
8
  - Wrongness memory for repeated mistakes, wrong decisions, stale assumptions, and overconfident claims.
@@ -49,6 +49,31 @@ Use a small envelope when a real mission lane changes code:
49
49
 
50
50
  This is only a record shape. It is not a queue, lock manager, or parallel apply engine.
51
51
 
52
+ Patch queue lite:
53
+
54
+ Use this only when two or more real mission lanes produce patches, apply order matters, or rollback needs a clearer handoff.
55
+ Persist it with `--out` only when a later run needs to resume or audit the queue. Otherwise keep it in the report.
56
+
57
+ Each item records:
58
+
59
+ - `status`: pending / applied / verified / reverted / blocked
60
+ - `lane_id`
61
+ - `depends_on`: lane ids that must land first, or empty
62
+ - `assigned_scope`
63
+ - `changed_files`
64
+ - `verification_hint`
65
+ - `rollback_hint`
66
+ - `truth_status`
67
+ - `next_action`
68
+
69
+ Keep it lite:
70
+
71
+ - No automatic merge engine.
72
+ - No persistent locks.
73
+ - No required queue file for single-pass missions.
74
+ - No parallel apply worker.
75
+ - No broad runtime orchestration unless mission evidence already needs it.
76
+
52
77
  Rollback hint:
53
78
 
54
79
  Record:
@@ -41,11 +41,35 @@ Runtime proof should include:
41
41
  - Goal.
42
42
  - Steps run.
43
43
  - Commands/processes started.
44
- - PIDs, ports, sessions, or panes when available.
44
+ - PID, port, URL, session, pane, screenshot id, started_at, stopped_at, and exit_code when available.
45
45
  - Checks before and after.
46
46
  - Cleanup result.
47
47
  - Truth status: proven, verified, partial, fixture_only, fixture_instrumented_real, integration_optional, real_required_missing, skipped, blocked, assumed.
48
48
 
49
+ ## Runtime Evidence Mini
50
+
51
+ Use the mini shape when a final report, release report, or doctor scan needs runtime evidence without a full runtime proof artifact.
52
+
53
+ Minimum fields:
54
+
55
+ - `kind`: `runtime_evidence_mini`
56
+ - `route`: `deep` or `mission`
57
+ - `required`: true / false
58
+ - `command` or check name
59
+ - `target`: URL, port, process, or service
60
+ - `pid`, `port`, `url`, `exit_code`, `screenshot_id`, `started_at`, `stopped_at`
61
+ - `process`: session, pane, or `unknown` when process detail is unavailable
62
+ - `observation`: before and after notes
63
+ - `cleanup`: status and evidence
64
+ - `truth_status`
65
+ - `next_action`: one concrete follow-up when status is not fully proven
66
+
67
+ Truth caps:
68
+
69
+ - Missing process/target evidence cannot support `proven`.
70
+ - Missing cleanup evidence cannot support a cleanup-complete claim.
71
+ - Optional runtime checks may be `integration_optional`; required but unavailable runtime checks should be `real_required_missing`, `blocked`, or `partial`.
72
+
49
73
  ## Cleanup Rule
50
74
 
51
75
  Do not claim cleanup succeeded unless one of these is true:
@@ -25,13 +25,13 @@ Then depth increases by route:
25
25
 
26
26
  ## Surfaces To Wrap
27
27
 
28
- - Codex CLI/App readiness.
29
- - Browser and Computer Use availability.
28
+ - Local CLI/app readiness.
29
+ - Browser and screen-control availability.
30
30
  - tmux and long-running process lifecycle.
31
31
  - Subagent/team availability for `$mission`.
32
32
  - imagegen or screenshot evidence for `$ueye`.
33
- - Context7 or official docs for current package/API questions.
34
- - codex-lb or provider routing health when configured.
33
+ - Current official docs for package/API questions.
34
+ - provider routing health when configured.
35
35
  - DB/Supabase safety for destructive or migration work.
36
36
  - Research, QA, wiki/context, proof, and release-gate workflows.
37
37
 
@@ -66,7 +66,7 @@ On demand:
66
66
  - Tool readiness checks.
67
67
  - Hook status and trust reporting.
68
68
  - DB/Supabase destructive-operation gate thinking.
69
- - Computer Use and screenshot evidence caps.
69
+ - Screen-control and screenshot evidence caps.
70
70
  - tmux/process cleanup truth.
71
71
  - Source-intelligence proof for current docs.
72
72
  - Destructive DB/Supabase command detection and production-write caution.
@@ -92,7 +92,7 @@ On demand:
92
92
  - Always-on hook enforcement.
93
93
  - Release gates for normal coding.
94
94
  - Mandatory generated image review for every UI task.
95
- - Broad MCP/tool scans before small work.
95
+ - Broad connector/tool scans before small work.
96
96
  - Provider config mutation without explicit user approval.
97
97
 
98
98
  ## Implemented Shape
@@ -106,14 +106,26 @@ On demand:
106
106
  - suggest route and proof level
107
107
  - do not install, configure, or mutate
108
108
 
109
+ Tool intent labels stay advisory and route-scoped:
110
+
111
+ - `read_only`: inspect, list, or report.
112
+ - `write`: edit workspace files or local generated artifacts.
113
+ - `destructive`: delete, reset, overwrite, publish irreversible data, or mutate production-like state.
114
+ - `runtime`: start, stop, probe, or depend on a live process.
115
+ - `visual`: capture, compare, or inspect screen evidence.
116
+ - `publish`: package, release, push, deploy, or expose artifacts.
117
+
109
118
  `yam proof` should summarize what actually ran:
110
119
 
111
120
  - command evidence
112
121
  - browser/screenshot evidence
113
122
  - visual provenance for reference-based UI work
114
123
  - mission patch envelopes for real team lanes
124
+ - runtime evidence mini for route-level runtime claims
125
+ - patch queue lite when mission lane apply/verify order matters
115
126
  - rollback hints for risky changes
116
127
  - runtime/tmux/process cleanup evidence
128
+ - structured diagnostic next action
117
129
  - truth status
118
130
  - skipped/blocked/assumed items
119
131
 
@@ -125,4 +137,86 @@ On demand:
125
137
  - registry status
126
138
  - CLI smoke
127
139
  - dist freshness
140
+ - release tarball provenance: package name/version, tarball path, sha256, generated_at, source commit/tree state, included files summary
141
+ - diagnostics with structured next action
128
142
  - final truth status
143
+
144
+ ## Compact Artifact Contracts
145
+
146
+ Runtime evidence mini:
147
+
148
+ ```json
149
+ {
150
+ "kind": "runtime_evidence_mini",
151
+ "route": "deep",
152
+ "required": true,
153
+ "command": "npm run dev",
154
+ "target": "http://localhost:3000",
155
+ "pid": "unknown",
156
+ "port": "3000",
157
+ "url": "http://localhost:3000",
158
+ "exit_code": null,
159
+ "screenshot_id": "",
160
+ "started_at": "",
161
+ "stopped_at": "",
162
+ "process": {
163
+ "session": "",
164
+ "pane": ""
165
+ },
166
+ "observation": {
167
+ "before": "",
168
+ "after": ""
169
+ },
170
+ "cleanup": {
171
+ "status": "checked_stopped",
172
+ "evidence": ""
173
+ },
174
+ "truth_status": "partial",
175
+ "next_action": {
176
+ "kind": "run_check",
177
+ "summary": ""
178
+ }
179
+ }
180
+ ```
181
+
182
+ Patch queue lite:
183
+
184
+ ```json
185
+ {
186
+ "kind": "patch_queue_lite",
187
+ "items": [
188
+ {
189
+ "status": "pending",
190
+ "lane_id": "",
191
+ "depends_on": [],
192
+ "assigned_scope": "",
193
+ "changed_files": [],
194
+ "verification_hint": "",
195
+ "rollback_hint": "",
196
+ "truth_status": "partial",
197
+ "next_action": ""
198
+ }
199
+ ]
200
+ }
201
+ ```
202
+
203
+ Structured diagnostic next action:
204
+
205
+ ```json
206
+ {
207
+ "status": "needs_action",
208
+ "severity": "P2",
209
+ "owner_route": "quick",
210
+ "priority": "fix_first",
211
+ "fix_first": true,
212
+ "blocks_release": false,
213
+ "observation": "",
214
+ "evidence": "",
215
+ "next_action": {
216
+ "kind": "run_command",
217
+ "command": "",
218
+ "reason": ""
219
+ },
220
+ "truth_status": "partial"
221
+ }
222
+ ```
@@ -29,9 +29,10 @@ yam ueye compare --reference ./reference.png --actual .yam/screens/home.png --js
29
29
  yam ueye report --reference ./reference.png --actual .yam/screens/home.png --design-quality needs-polish --json
30
30
  ```
31
31
 
32
- - `capture` uses a Playwright install from the current project when present, then reports `blocked` instead of installing dependencies or pretending a screenshot exists.
32
+ - `capture` uses a project-local capture backend when present, then reports `blocked` instead of installing dependencies or pretending a screenshot exists.
33
33
  - `compare` is local-only and dependency-free. It records hashes, dimensions, comparison result, and visual provenance. Different screenshots stay `partial`; exact file matches can be `verified`.
34
34
  - `report` records the Ueye run as reference sources, implementation sources, comparison result, design quality, blocked reason, next action, and truth status.
35
+ - `report` may include continuity fields when a previous review or screenshot is being rechecked.
35
36
  - Without capture or user-provided screenshots, report implementation/source review separately from visual verification and cap the visual claim.
36
37
 
37
38
  ### Media Generation Proof
@@ -54,10 +55,10 @@ Record:
54
55
 
55
56
  ### Browser Preference
56
57
 
57
- - Prefer the Codex in-app Browser plugin for local pages, localhost, file URLs, and ordinary visual QA.
58
- - Do not silently switch to the user's Chrome browser when the in-app Browser cannot capture or inspect.
59
- - Use Chrome only when the user explicitly asks for it, or when the task requires existing Chrome cookies, sessions, extensions, or profile state.
60
- - If the in-app Browser is unavailable and Chrome was not explicitly requested or required, cap the visual claim at `partial` or `blocked`.
58
+ - Prefer the in-app browser for local pages, localhost, file URLs, and ordinary visual QA.
59
+ - Do not silently switch to a profile-dependent browser when the in-app browser cannot capture or inspect.
60
+ - Use a profile-dependent browser only when the user explicitly asks for it, or when the task requires existing cookies, sessions, extensions, or profile state.
61
+ - If the in-app browser is unavailable and a profile-dependent browser was not explicitly requested or required, cap the visual claim at `partial` or `blocked`.
61
62
 
62
63
  ### Visual Evidence Inventory
63
64
 
@@ -92,6 +93,8 @@ Record these fields when a reference or screenshot materially affects the claim:
92
93
  - `source_hash`
93
94
  - `reference_id`
94
95
  - `screenshot_id`
96
+ - `viewport`
97
+ - `state`
95
98
  - `local_only`
96
99
  - `redacted`
97
100
  - `operator_provided`
@@ -160,6 +163,32 @@ Dimensions:
160
163
  Report findings as P0-P3. Keep P2/P3 short unless the user requested a full polish pass.
161
164
  For each relevant design dimension, use `pass`, `needs-polish`, or `fails`.
162
165
 
166
+ ### Review Continuity And Comparison Report
167
+
168
+ Use this when a Ueye task continues a previous visual review, rechecks a fix, or compares two review runs.
169
+
170
+ Minimum fields:
171
+
172
+ - `previous_report_id` or `previous_report_path`
173
+ - `previous_screenshot_id`, when available
174
+ - `previous_source_hash`, when available
175
+ - `current_report_id` or `current_source_path`
176
+ - `current_screenshot_id`, when available
177
+ - `current_source_hash`, when available
178
+ - `viewport`
179
+ - `state`
180
+ - `changed_surface`
181
+ - `comparison_result`: improved / regressed / unchanged / not-verified
182
+ - `regression`: true / false / not-verified
183
+ - `resolved_findings`
184
+ - `new_findings`
185
+ - `still_open_findings`
186
+ - `design_quality`
187
+ - `truth_status`
188
+ - `next_action`
189
+
190
+ Do not claim continuity from memory alone. Link it to a previous report, screenshot, source path/hash, or an explicit user-provided prior finding.
191
+
163
192
  ## Truth Caps
164
193
 
165
194
  - Full visual verification requires real implementation evidence and relevant recheck.
@@ -65,6 +65,7 @@ Use these when the task depends on visual truth, reference matching, or design q
65
65
  2. Reference Read Proof.
66
66
  3. Reference vs Implementation Matrix.
67
67
  4. Design Quality Review.
68
+ 5. Review Continuity and Comparison Report.
68
69
 
69
70
  Default bound:
70
71
 
@@ -145,6 +146,26 @@ Review dimensions:
145
146
  For each relevant dimension, record `pass`, `needs-polish`, or `fails`.
146
147
  Keep actionable findings in P0-P3 order. Prefer fixing P0/P1 and cheap local P2 issues before broad polish.
147
148
 
149
+ ### Review Continuity and Comparison Report
150
+
151
+ Use when a screen has more than one visual pass, a reference needs follow-up, or a previous Ueye report should stay connected to the next one.
152
+
153
+ Record:
154
+
155
+ - `review_session_id` for the current pass.
156
+ - previous report path or previous session id when available.
157
+ - reference sources and implementation screenshot sources.
158
+ - comparison result.
159
+ - previous and current screenshot ids when available.
160
+ - viewport and state.
161
+ - similar, different, and missing items.
162
+ - resolved findings, new findings, still-open findings, and regression status.
163
+ - design quality result.
164
+ - next visual action.
165
+ - truth status.
166
+
167
+ Use `yam ueye report --previous-report previous.json --review-session-id current-pass --similar "..." --different "..." --missing "..." --json` when you need a compact continuity record.
168
+
148
169
  ## P0-P3 Ledger
149
170
 
150
171
  - P0: blocker, unusable, impossible to complete primary workflow, severe accessibility or responsive failure.
@@ -162,8 +183,9 @@ Keep actionable findings in P0-P3 order. Prefer fixing P0/P1 and cheap local P2
162
183
  6. Screenshot/browser recheck when feasible.
163
184
  7. Reference vs Implementation Matrix when reference fidelity matters.
164
185
  8. Design Quality Review.
165
- 9. P0/P1 closeout.
166
- 10. Truth status.
186
+ 9. Review Continuity and Comparison Report when the work spans multiple passes.
187
+ 10. P0/P1 closeout.
188
+ 11. Truth status.
167
189
 
168
190
  ## Truth Caps
169
191
 
@@ -8,7 +8,7 @@ description: Very-light Q&A route. Use when the user invokes $question or asks a
8
8
  Use for:
9
9
  - Simple conceptual explanations.
10
10
  - "What is X?" or "Can I do Y?" questions.
11
- - Local harness/project usage questions.
11
+ - Local workflow/project usage questions.
12
12
  - Clarifying a decision that does not need fresh source gathering.
13
13
 
14
14
  Do not use for:
@@ -37,8 +37,9 @@ Do not use for:
37
37
  - Design quality judgment belongs after implementation/review: compare to the reference first, then judge whether the result is good design.
38
38
  - Keep Ueye as one route: start fast, then opt into `yam ueye capture` and `yam ueye compare` only when a `verified` visual claim needs real screen evidence.
39
39
  - Use `yam ueye report` when reference, implementation screenshot, comparison result, design quality, and next action should be recorded as one compact run report.
40
+ - For follow-up visual reviews, keep continuity explicit: previous report/source, current report/source, comparison delta, resolved findings, new findings, and next action.
40
41
  - Generated media can guide direction, but it cannot verify the implemented screen without implementation screenshot evidence.
41
- - Prefer the Codex in-app Browser plugin for interactive visual checks. Do not switch to the user's Chrome browser unless the user explicitly asks for Chrome or the task requires existing Chrome cookies, sessions, extensions, or profile state.
42
+ - Prefer the in-app browser for interactive visual checks. Do not switch to a profile-dependent browser unless the user explicitly asks or the task requires existing cookies, sessions, extensions, or profile state.
42
43
 
43
44
  ## Workflow
44
45
 
@@ -56,11 +57,12 @@ Do not use for:
56
57
  6. Implement the smallest coherent design improvement when implementation is requested.
57
58
  7. Check default, loading, error, empty, disabled, hover/focus, and mobile states when relevant.
58
59
  8. Run browser/screenshot verification when feasible.
59
- - Prefer the Codex in-app Browser plugin for local pages, localhost, file URLs, and ordinary visual QA.
60
- - Do not silently use Chrome as a fallback. If the in-app Browser cannot capture or inspect, report the visual cap as `partial` or `blocked`.
61
- - Use `yam ueye capture --url URL --out path.png` when a local Playwright install is available and the claim needs real browser evidence.
60
+ - Prefer the in-app browser for local pages, localhost, file URLs, and ordinary visual QA.
61
+ - Do not silently use a profile-dependent browser as a fallback. If the in-app browser cannot capture or inspect, report the visual cap as `partial` or `blocked`.
62
+ - Use `yam ueye capture --url URL --out path.png` when a project-local capture backend is available and the claim needs real browser evidence.
62
63
  - Use `yam ueye compare --reference ref.png --actual shot.png` when reference fidelity needs a proof-ready local comparison record.
63
64
  - Use `yam ueye report --reference ref.png --actual shot.png --design-quality needs-polish --json` to preserve the run-level visual provenance and next action.
65
+ - When continuing a prior review, include previous/current report or screenshot identifiers and mark the comparison as improved, regressed, unchanged, or not-verified.
64
66
  9. Compare reference and implementation when reference fidelity was requested:
65
67
  - matched, similar, different, not-applicable, or not-verified.
66
68
  - Separate "faithful to reference" from "good design."
@@ -98,7 +100,9 @@ Use these artifacts for reference-led implementation or serious visual review. K
98
100
  5. Design Quality Review:
99
101
  - judge whether the result is good UI/UX/design after reference comparison.
100
102
  - use pass, needs-polish, or fails for each relevant design dimension.
101
- 6. Media Generation Proof, when generated images are part of the task:
103
+ 6. Review Continuity and Comparison Report, when this is a follow-up review:
104
+ - record previous source/report, current source/report, comparison delta, resolved findings, new findings, still-open findings, truth status, and next action.
105
+ 7. Media Generation Proof, when generated images are part of the task:
102
106
  - record whether generation was requested, attempted, blocked, or produced an output.
103
107
  - use `yam media proof --requested --attempted --output path.png --wait-loop --json` when a generated image materially affects the design direction.
104
108
  - never use generated media proof as a substitute for implemented screen evidence.
@@ -142,6 +146,7 @@ Report:
142
146
  - Source evidence used.
143
147
  - Reference Read Proof and reference comparison result when a reference was used.
144
148
  - Design Quality Review result when implementation or serious visual review was requested.
149
+ - Review continuity/comparison result when this continues a prior Ueye run.
145
150
  - P0-P3 issues or confirmation that no blockers were found.
146
151
  - States/viewports checked.
147
152
  - Truth status and visual verification cap.