yam-flow 2.2.1 → 2.3.1
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.md +18 -0
- package/CHANGELOG.md +36 -0
- package/COMMANDS.md +8 -1
- package/README.md +18 -12
- package/ROADMAP.md +27 -0
- package/dist/bin/yam.js +293 -111
- package/dist/lib/skill-installation.d.ts +76 -0
- package/dist/lib/skill-installation.js +554 -0
- package/dist/lib/trust-kernel.d.ts +54 -0
- package/dist/lib/trust-kernel.js +194 -0
- package/dist/lib/ueye-artifacts.d.ts +98 -0
- package/dist/lib/ueye-artifacts.js +317 -0
- package/package.json +3 -2
- package/references/final-report.md +2 -0
- package/references/honest-completion.md +1 -0
- package/references/mission.md +16 -0
- package/references/tool-trust-layer.md +3 -0
- package/references/trust-kernel.md +3 -0
- package/references/truth-matrix.md +2 -0
- package/references/ueye-proof.md +6 -0
- package/references/ueye.md +12 -0
- package/references/verification-levels.md +2 -1
- package/skills/mission/SKILL.md +19 -4
- package/skills/ueye/SKILL.md +11 -0
- package/src/bin/yam.ts +282 -106
- package/src/lib/skill-installation.ts +638 -0
- package/src/lib/trust-kernel.ts +239 -0
- package/src/lib/ueye-artifacts.ts +354 -0
- package/templates/mission-plan.md +25 -2
- package/templates/ueye-comparison.md +12 -0
- package/templates/ueye-review.md +26 -0
- package/yam.manifest.json +6 -5
package/AGENTS.md
CHANGED
|
@@ -21,3 +21,21 @@
|
|
|
21
21
|
19. Treat security as the first project lens: identify sensitive surfaces early and guide safer defaults before convenience.
|
|
22
22
|
20. Keep final reports short and concrete, but always include remaining tasks or state that none are meaningful.
|
|
23
23
|
21. When relevant, include architecture hygiene in the Study Note: avoid dumping unrelated logic into `page.tsx`, one-off component CSS into `global.css`, or structured product data into broad DB `jsonb` blobs when existing project boundaries, scoped styles, typed tables, constraints, or indexes fit better.
|
|
24
|
+
|
|
25
|
+
## Latest Update Trigger
|
|
26
|
+
|
|
27
|
+
When the user says exactly `yam 최신 업데이트 사항 반영해줘` in a chat for this project, treat that phrase as explicit authorization to update the globally installed package and refresh the installed yam skills.
|
|
28
|
+
|
|
29
|
+
Run these commands sequentially from the yam project directory:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm install -g yam-flow
|
|
33
|
+
yam install
|
|
34
|
+
yam version
|
|
35
|
+
yam status
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
- Request any environment approval required for network access or writes outside the workspace.
|
|
39
|
+
- Stop at the first failed command, report the blocker, and do not claim that later steps ran.
|
|
40
|
+
- After all four commands pass, report the installed version and skill status, then tell the user that Codex can be restarted to reload the updated skills.
|
|
41
|
+
- Do not restart Codex automatically.
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,42 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to yam-flow are documented here.
|
|
4
4
|
|
|
5
|
+
## v2.3.1 - 2026-07-21
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added a transactional skill installer that stages and SHA-256 verifies the complete managed skill set before replacing the active installation.
|
|
10
|
+
- Added `yam.install-receipt.v1` with the installed package version, source identity, timestamp, destination, skill inventory, per-file hashes, and aggregate source digest.
|
|
11
|
+
- Added deterministic install transaction smoke coverage for successful commit, forced mid-commit rollback, drift detection and repair, mirror cleanup, and concurrent-install locking.
|
|
12
|
+
|
|
13
|
+
### Improved
|
|
14
|
+
|
|
15
|
+
- `yam status` now detects missing files, unexpected files, hash drift, receipt drift, and package-version drift instead of checking only for `SKILL.md` and `references/` existence.
|
|
16
|
+
- Failed commits restore the previous managed skill set and receipt; legacy and retired skill cleanup now participates in the same rollback boundary.
|
|
17
|
+
- Unfinished transaction artifacts are surfaced by `yam status` and block a new install so recovery backups are not silently overwritten.
|
|
18
|
+
- `yam uninstall` removes the install receipt and refuses to run while an install lock is present.
|
|
19
|
+
|
|
20
|
+
### Verification
|
|
21
|
+
|
|
22
|
+
- `npm run verify:self`
|
|
23
|
+
- `npm run dist:freshness`
|
|
24
|
+
- `npm run package-boundary:check`
|
|
25
|
+
- `npm run cli-smoke`
|
|
26
|
+
|
|
27
|
+
## v2.3.0 - 2026-07-13
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- Added `yam mission receipt` with reviewer/doctor read-only contracts, explicit lifecycle/outcome separation, verification evidence, and per-thread completion eligibility.
|
|
32
|
+
- Added `yam mission gate` to block Mission completion when expected thread receipts are missing, duplicated, unexpected, ambiguous, failed, or violate read-only role boundaries.
|
|
33
|
+
- Added `yam ueye asset add|verify` for local reference provenance, license notes, protection/edit flags, dimensions, and SHA-256 integrity checks.
|
|
34
|
+
- Added `yam ueye revision archive|verify` for non-overwriting round archives with hashed revision history.
|
|
35
|
+
|
|
36
|
+
### Improved
|
|
37
|
+
|
|
38
|
+
- Mission proof requests for `verified` or `proven` now recompute and validate supplied completion gates, then cap the claim when a passing gate is missing.
|
|
39
|
+
- Ueye reports can attach asset and revision manifests; a supplied invalid manifest blocks a visual `done` claim.
|
|
40
|
+
|
|
5
41
|
## v2.2.1 - 2026-07-09
|
|
6
42
|
|
|
7
43
|
### Improved
|
package/COMMANDS.md
CHANGED
|
@@ -47,6 +47,10 @@ yam ueye capture --url http://localhost:3000 --out .yam/screens/home.png
|
|
|
47
47
|
yam ueye compare --reference ./reference.png --actual .yam/screens/home.png
|
|
48
48
|
yam ueye report --reference ./reference.png --actual .yam/screens/home.png --preflight-id ueye-preflight-123 --p0-risk "mobile CTA may clip" --quality-gate-note "check CTA contrast before done" --brief-dimension "primary CTA clarity" --constraint "mobile first" --acceptance-criterion "primary CTA remains visible on mobile" --design-system-evidence "uses existing button token" --implementation-evidence "browser screenshot reviewed" --state-check default:pass --state-check mobile:partial --skipped-check "hover state not checked on touch viewport" --residual-risk "tablet breakpoint still needs visual pass" --stop-condition "stop after primary states are checked and residual risk is recorded" --resume-hint "capture tablet screenshot next" --review-session-id pricing-card-v1 --provider-context local --execution-surface in-app-browser --browser-surface in-app-browser --similar "overall hierarchy" --different "button glow intensity" --missing "mobile state" --design-quality needs-polish --json
|
|
49
49
|
yam ueye report --reference ./reference.png --actual .yam/screens/home.png --completion-claim done --design-quality pass --direction-locked --reference-read --states-checked --mobile-checked --contrast-checked --cta-checked --json
|
|
50
|
+
yam ueye asset add --manifest .yam/ueye/assets.json --id official-logo --file ./assets/logo.png --license-note "operator supplied; local review" --operator-provided --do-not-replace --json
|
|
51
|
+
yam ueye asset verify --manifest .yam/ueye/assets.json --json
|
|
52
|
+
yam ueye revision archive --file .yam/screens/home.png --round 1 --artifact-id home --root .yam/ueye/revisions --json
|
|
53
|
+
yam ueye revision verify --manifest .yam/ueye/revisions/manifest.json --json
|
|
50
54
|
yam media proof --requested --attempted --output ./generated.png --wait-loop --json
|
|
51
55
|
yam proof --route ueye --truth partial --visual "browser/local screenshot comparison executed" --require-visual
|
|
52
56
|
```
|
|
@@ -162,6 +166,9 @@ yam media proof --requested --attempted --output ./generated.png --wait-loop --j
|
|
|
162
166
|
yam runtime evidence --backend terminal --claim observed --evidence-id dev-server-1 --command "npm run dev" --pid 123 --port 3000 --json
|
|
163
167
|
yam runtime evidence --backend terminal --claim cleanup-verified --cleanup-observed --exit-code 0 --cleanup-method "process exit checked" --json
|
|
164
168
|
yam mission queue --agent-id implementer --scope "checkout form" --changed src/checkout.tsx --verification-hint "npm run typecheck" --rollback-hint "revert checkout form patch if typecheck or smoke fails" --json
|
|
169
|
+
yam mission receipt --thread-id implementer-1 --role implementer --access-mode write --lifecycle stopped --outcome passed --scope "checkout form" --changed src/checkout.tsx --evidence "typecheck passed" --out .yam/mission/implementer-1.json --json
|
|
170
|
+
yam mission receipt --thread-id reviewer-1 --role reviewer --lifecycle stopped --outcome passed --scope "read-only checkout review" --evidence "review completed without edits" --out .yam/mission/reviewer-1.json --json
|
|
171
|
+
yam mission gate --expected-thread implementer-1 --expected-thread reviewer-1 --receipt .yam/mission/implementer-1.json --receipt .yam/mission/reviewer-1.json --out .yam/mission/completion.json --json
|
|
165
172
|
yam benchmark report --label "render time" --baseline 100 --current 86 --unit ms --target lower --json
|
|
166
173
|
yam proof --route mission --mission-envelope '{"agent_id":"implementer","assigned_scope":"target component","changed_files":["src/file.ts"],"verification_hint":"npm run typecheck","truth_status":"partial"}'
|
|
167
174
|
yam proof --route deep --truth proven --require-runtime --runtime "mock server fixture"
|
|
@@ -187,7 +194,7 @@ yam template tuning
|
|
|
187
194
|
yam tools doctor /path/to/project --json
|
|
188
195
|
yam release report --json
|
|
189
196
|
yam runtime evidence --backend terminal --claim cleanup-verified --cleanup-observed --exit-code 0 --cleanup-method "exit observed" --json
|
|
190
|
-
yam mission
|
|
197
|
+
yam mission receipt --thread-id reviewer-1 --role reviewer --lifecycle stopped --outcome passed --scope "changed files review" --evidence "read-only findings recorded" --json
|
|
191
198
|
yam benchmark report --label "bundle size" --baseline 120 --current 118 --unit kB --target lower --json
|
|
192
199
|
yam loop report --route deep --intent "verify release readiness" --blocked "npm auth not verified" --next-action "refresh npm token, then rerun npm whoami" --json
|
|
193
200
|
```
|
package/README.md
CHANGED
|
@@ -96,21 +96,13 @@ cd ~/Documents/Codex/tools/yam
|
|
|
96
96
|
yam install
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
`yam install` stages every managed skill plus the shared `references/` directory, verifies the complete staged file manifest with SHA-256, and only then replaces the active set in `~/.agents/skills/`. If any commit or post-install verification step fails, yam restores the previous managed skill set and receipt.
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
A successful install writes `~/.agents/skills/.yam-flow-install-receipt.json`. The receipt records the package version, source identity, install timestamp, destination, managed skill inventory, and per-file hashes. `yam status` independently recomputes source and installed hashes, so a stale package install, local file change, unexpected file, or modified receipt is reported as drift.
|
|
102
102
|
|
|
103
|
-
|
|
103
|
+
An ordinary install error rolls back automatically. An abrupt process or machine termination can leave `.yam-flow-install.lock` and a hidden transaction directory; `yam status` surfaces the unfinished transaction and yam refuses another mutation while recovery state remains. Remove the lock only after confirming no install is running, and preserve any transaction directory until the previous installation state has been inspected.
|
|
104
104
|
|
|
105
|
-
|
|
106
|
-
mkdir -p ~/.agents/skills
|
|
107
|
-
for skill in quick ueye question scout deep mission; do
|
|
108
|
-
rm -rf "$HOME/.agents/skills/$skill"
|
|
109
|
-
mkdir -p "$HOME/.agents/skills/$skill"
|
|
110
|
-
cp "skills/$skill/SKILL.md" "$HOME/.agents/skills/$skill/SKILL.md"
|
|
111
|
-
cp -R references "$HOME/.agents/skills/$skill/references"
|
|
112
|
-
done
|
|
113
|
-
```
|
|
105
|
+
Manual copying can still make a skill loadable, but it intentionally remains unverified: without a matching receipt, `yam status` exits non-zero and recommends `yam install`.
|
|
114
106
|
|
|
115
107
|
Restart Codex after installing so skills reload.
|
|
116
108
|
|
|
@@ -143,9 +135,15 @@ yam ueye capture --url http://localhost:3000 --out .yam/screens/home.png
|
|
|
143
135
|
yam ueye compare --reference ./reference.png --actual .yam/screens/home.png
|
|
144
136
|
yam ueye preflight /path/to/project --json
|
|
145
137
|
yam ueye report --reference ./reference.png --actual .yam/screens/home.png --preflight-id ueye-preflight-123 --p0-risk "mobile CTA may clip" --quality-gate-note "check CTA contrast before done" --acceptance-criterion "primary CTA remains visible on mobile" --state-check default:pass --state-check mobile:partial --implementation-evidence "browser screenshot reviewed" --completion-claim done --design-quality pass --direction-locked --reference-read --states-checked --mobile-checked --contrast-checked --cta-checked --provider-context local --execution-surface in-app-browser --app-surface codex-app --browser-surface in-app-browser --preserved-state --json
|
|
138
|
+
yam ueye asset add --manifest .yam/ueye/assets.json --id official-logo --file ./assets/logo.png --license-note "operator supplied; local review" --operator-provided --do-not-replace --json
|
|
139
|
+
yam ueye asset verify --manifest .yam/ueye/assets.json --json
|
|
140
|
+
yam ueye revision archive --file .yam/screens/home.png --round 1 --artifact-id home --root .yam/ueye/revisions --json
|
|
141
|
+
yam ueye revision verify --manifest .yam/ueye/revisions/manifest.json --json
|
|
146
142
|
yam proof --route ueye --truth verified --visual "implementation screenshot evidence recorded" --design-completion '{"completion_claim":"done","has_implementation_screenshot":true,"design_quality":"pass","states_checked":true,"mobile_checked":true,"contrast_checked":true,"cta_checked":true,"direction_locked":true,"truth_status":"verified"}'
|
|
147
143
|
yam media proof --requested --attempted --output ./generated.png --wait-loop --json
|
|
148
144
|
yam proof --route mission --mission-envelope '{"agent_id":"implementer","assigned_scope":"target component","changed_files":["src/file.ts"],"verification_hint":"npm run typecheck","truth_status":"partial"}'
|
|
145
|
+
yam mission receipt --thread-id reviewer-1 --role reviewer --lifecycle stopped --outcome passed --scope "read-only review" --evidence "review completed without edits" --out .yam/mission/reviewer-1.json --json
|
|
146
|
+
yam mission gate --expected-thread reviewer-1 --receipt .yam/mission/reviewer-1.json --out .yam/mission/completion.json --json
|
|
149
147
|
yam loop report --route quick --intent "fix release readiness" --stage "inspect:passed:read release report" --evidence "typecheck passed" --evidence-level local --evidence-stamp "sha256:release-report" --touched-file src/bin/yam.ts --read-file README.md --verified-file scripts/cli-smoke.mjs --skipped-check "npm publish skipped by design" --stop-condition "stop after readiness evidence is recorded" --resume-hint "rerun release report after npm auth refresh" --readiness-state blocked --covered-requirement "release report is read-only" --uncovered-requirement "npm auth verified" --blocked-kind auth_blocked --failure-cause auth_token_invalid --safe-retry "retry after npm whoami succeeds" --recovery-hint "refresh npm auth, then rerun readiness checks" --fix-first-item "npm auth must be verified before publish" --remaining-task "rerun release report after auth refresh" --recommended-direction "fix npm auth first, then publish manually" --implementation-note "keep loop report read-only" --why-this-next "auth blocks public release claims" --blocked-by "npm whoami E401" --owner-route deep --owner-scope "release readiness only" --scope-owner deep --side-effect "no publish attempted" --avoidance-note "do not retry publish before npm auth is proven" --issue-code "src/bin/yam.ts release report" --issue-role "summarizes release readiness without publishing" --issue-symptom "npm auth failure needs clearer next action" --changed-code "yam loop report" --changed-role "records loop evidence and learning note" --change-summary "added a read-only loop artifact" --why-important "it helps users learn what changed without overclaiming verification" --learning-note "fix blockers before claiming done" --json
|
|
150
148
|
yam release report --json
|
|
151
149
|
yam safety "supabase db reset"
|
|
@@ -181,6 +179,8 @@ npm install -g yam-flow
|
|
|
181
179
|
yam status
|
|
182
180
|
```
|
|
183
181
|
|
|
182
|
+
After `yam status` reports all skills and the install receipt as `ok`, restart Codex so the refreshed skills reload.
|
|
183
|
+
|
|
184
184
|
Publishing still requires confirming the final npm package name and account access.
|
|
185
185
|
|
|
186
186
|
## Trust Kernel
|
|
@@ -199,6 +199,8 @@ Publishing still requires confirming the final npm package name and account acce
|
|
|
199
199
|
- runtime backend evidence
|
|
200
200
|
- runtime evidence mini summaries
|
|
201
201
|
- mission patch queue lite records
|
|
202
|
+
- Mission read-only reviewer/doctor contracts, subagent receipts, and completion gate
|
|
203
|
+
- Ueye local asset provenance and non-overwriting revision history
|
|
202
204
|
- release report JSON
|
|
203
205
|
- loop report JSON
|
|
204
206
|
- study note JSON
|
|
@@ -220,6 +222,7 @@ These shapes keep reports machine-readable without turning normal work into a he
|
|
|
220
222
|
|
|
221
223
|
- Runtime evidence mini: compact route, command/process, observation, cleanup, truth status, and next action fields for `$deep` or `$mission` runtime claims.
|
|
222
224
|
- Patch queue lite: `$mission` lane records with pending/applied/verified/reverted/blocked state, changed files, verification hint, rollback hint, truth status, and next action.
|
|
225
|
+
- Mission completion receipt: every expected thread records lifecycle and outcome separately; reviewer/doctor write access, missing evidence, ambiguous stops, and receipt inventory gaps block the aggregate gate.
|
|
223
226
|
- Verification Ladder: L0 stated, L1 inspected, L2 local check, L3 integrated, L4 release/runtime/visual proof, and L5 bounded deep. Heavier claims require heavier evidence, but stop conditions prevent endless proof loops.
|
|
224
227
|
- Release report JSON: `yam release report --json` summarizes typecheck, forbidden-name scan, package boundary, registry status, CLI smoke, dist freshness, diagnostics, readiness receipt, and final truth status.
|
|
225
228
|
- Loop report JSON: `yam loop report --json` records a read-only handoff artifact: guided stages, touched/read/verified files, skipped checks, stop condition, resume hint, readiness state, requirement coverage, evidence level/stamp, blocker kind, failure cause, safe retry, recovery hint, owner route/scope, side effects, next action, fix-first items, remaining tasks, recommended direction, implementation notes, blocked-by notes, avoidance note, tool intent, truth status, and study note.
|
|
@@ -237,6 +240,7 @@ These shapes keep reports machine-readable without turning normal work into a he
|
|
|
237
240
|
- Ueye design completion gate: `$ueye` can stay fast for draft work, but a `done` claim is capped until implementation evidence, comparison/design-quality status, P0/P1 status, key states, mobile/responsive behavior, contrast/accessibility visuals, CTA affordance, and direction/reference-read proof are recorded when relevant.
|
|
238
241
|
- Ueye design brief and anti-slop review: `$ueye` reports can record operator-provided brief dimensions, constraints, invented metrics, placeholder copy, generic visuals, and custom anti-slop blockers. P0 anti-slop findings block `done` claims.
|
|
239
242
|
- Ueye deep visual review: `$ueye` can record acceptance criteria, touched/read/verified files, skipped checks, residual risks, stop condition, resume hint, design-system evidence, implementation evidence, and a state matrix so serious UI work can carry Deep-grade verification without leaving the Ueye route.
|
|
243
|
+
- Ueye asset/revision integrity: `$ueye` can record license/provenance and protected/editable flags for local references, then preserve pre-edit artifacts in hash-verified numbered rounds.
|
|
240
244
|
|
|
241
245
|
## Ueye Capture And Compare
|
|
242
246
|
|
|
@@ -246,6 +250,8 @@ These shapes keep reports machine-readable without turning normal work into a he
|
|
|
246
250
|
yam ueye capture --url http://localhost:3000 --out .yam/screens/home.png
|
|
247
251
|
yam ueye compare --reference ./reference.png --actual .yam/screens/home.png --json
|
|
248
252
|
yam ueye preflight . --json
|
|
253
|
+
yam ueye asset verify --manifest .yam/ueye/assets.json --json
|
|
254
|
+
yam ueye revision verify --manifest .yam/ueye/revisions/manifest.json --json
|
|
249
255
|
yam ueye report --reference ./reference.png --actual .yam/screens/home.png --brief-dimension "primary CTA clarity" --constraint "mobile first" --anti-slop "placeholder copy remains" --acceptance-criterion "pricing card CTA remains visible on mobile" --design-system-evidence "uses existing button token" --implementation-evidence "browser screenshot reviewed" --state-check default:pass --state-check mobile:partial --skipped-check "hover state not checked on touch viewport" --residual-risk "tablet breakpoint still needs visual pass" --stop-condition "stop after primary states are checked and residual risk is recorded" --resume-hint "capture tablet screenshot next" --completion-claim done --design-quality pass --direction-locked --reference-read --states-checked --mobile-checked --contrast-checked --cta-checked --provider-context local --execution-surface in-app-browser --browser-surface in-app-browser --preserved-state --json
|
|
250
256
|
```
|
|
251
257
|
|
package/ROADMAP.md
CHANGED
|
@@ -8,6 +8,7 @@ Implemented:
|
|
|
8
8
|
- Six routes: quick, ueye, question, scout, deep, mission.
|
|
9
9
|
- Shared references.
|
|
10
10
|
- Local CLI: list, status, verify, doctor, examples, path, install, uninstall.
|
|
11
|
+
- Transactional skill install with rollback, SHA-256 receipt, install lock, and status drift detection. Done.
|
|
11
12
|
- CLI helpers: detect, budget, template, tune-log, version.
|
|
12
13
|
- Optional advisory `yam-lite` hook with status/enable/disable. Done.
|
|
13
14
|
- Opt-in project memory: init, add, list, summary, resolve.
|
|
@@ -71,6 +72,7 @@ Tasks:
|
|
|
71
72
|
- Merge `ui`, `eye`, and `review` into `ueye`. Done.
|
|
72
73
|
- Add Ueye checklist refinements. Done.
|
|
73
74
|
- Add Visual Evidence Inventory, Reference Read Proof, Reference vs Implementation Matrix, and Design Quality Review. Done.
|
|
75
|
+
- Add local reference asset provenance/protection manifest and non-overwriting revision history. Done.
|
|
74
76
|
- Add optional browser/screenshot capture notes.
|
|
75
77
|
- Keep image generation optional, never a gate.
|
|
76
78
|
|
|
@@ -93,6 +95,7 @@ Tasks:
|
|
|
93
95
|
|
|
94
96
|
- Add symlink-friendly local install.
|
|
95
97
|
- Add version command. Done.
|
|
98
|
+
- Add staged transactional install, rollback, receipt, and drift-aware status. Done.
|
|
96
99
|
- Consider npm packaging only after route behavior stabilizes.
|
|
97
100
|
|
|
98
101
|
### 8. Scout / Research Workflow
|
|
@@ -231,6 +234,7 @@ Tasks:
|
|
|
231
234
|
- Add mission prompt template. Done.
|
|
232
235
|
- Add doctor scan checklist. Done.
|
|
233
236
|
- Require real subagent/team execution for full `$mission`; otherwise downgrade to `$deep` or report partial/blocked. Done.
|
|
237
|
+
- Make Reviewer/Doctor lanes read-only by default and require explicit per-thread receipts plus an aggregate completion gate. Done.
|
|
234
238
|
|
|
235
239
|
### 14. Quick / Ueye Consolidation
|
|
236
240
|
|
|
@@ -421,3 +425,26 @@ Keep out for now:
|
|
|
421
425
|
- required thread attachment ids.
|
|
422
426
|
- app-specific visual gates.
|
|
423
427
|
- blocking ordinary Ueye work when attachment metadata is absent.
|
|
428
|
+
|
|
429
|
+
#### Plan Review Canvas Lite
|
|
430
|
+
|
|
431
|
+
Status: deferred until repeated real-use demand.
|
|
432
|
+
|
|
433
|
+
Trigger:
|
|
434
|
+
|
|
435
|
+
- Users repeatedly need to annotate a generated plan or design report at exact elements instead of replying in prose.
|
|
436
|
+
- Terminal-only approval causes revision ambiguity or costly re-reading.
|
|
437
|
+
- A local browser review surface would materially shorten an approved Mission or Ueye feedback loop.
|
|
438
|
+
|
|
439
|
+
First shape:
|
|
440
|
+
|
|
441
|
+
- local-only artifact review.
|
|
442
|
+
- anchored comments and approve/request-changes verdict.
|
|
443
|
+
- explicit session end and bounded idle shutdown.
|
|
444
|
+
- Host/Origin checks, path confinement, and sandboxed artifact rendering.
|
|
445
|
+
|
|
446
|
+
Keep out for now:
|
|
447
|
+
|
|
448
|
+
- default local server.
|
|
449
|
+
- remote sharing or hosting.
|
|
450
|
+
- automatic implementation start without an explicit approval verdict.
|