From a9f03c2dd464988aabcf1a0da07df0be68d47d8d Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Sat, 17 Oct 2026 10:41:34 +0800 Subject: [PATCH] docs: require first-screen PR evidence without repeated approval Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- .github/PULL_REQUEST_TEMPLATE.md | 8 ++++ AGENTS.md | 44 ++++++++++++------- .../rfcs/desktop-execution-frontends-v0.md | 2 +- .../desktop-execution-frontends-v0.zh-CN.md | 2 +- .../rfcs/goal-workspace-surface-v0.md | 15 ++++--- .../rfcs/goal-workspace-surface-v0.zh-CN.md | 12 ++--- .../rfcs/live-team-workspace-v0.md | 7 +-- .../rfcs/live-team-workspace-v0.zh-CN.md | 5 ++- .../rfcs/loopx-overall-roadmap-v0.md | 9 ++-- .../rfcs/loopx-overall-roadmap-v0.zh-CN.md | 9 ++-- docs/development/design.md | 7 ++- docs/development/frontend-delivery.md | 9 +++- 12 files changed, 84 insertions(+), 45 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index d715113ea0..ac4925c84d 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -110,6 +110,13 @@ after view. Include desktop and mobile when responsive layout changes, and inclu loading, empty, error, permission, or gated states when those states changed. Add a short recording only when still images cannot explain the interaction. +Put the first viewport screenshot directly in this description, with the tested +revision, data/build boundary and a working preview link when available. Refresh +it for materially changed presentation. Ordinary authorized implementation and +refinement do not require another user-confirmation round; reuse prior scoped +direction. Ask only for an explicitly reserved presentation decision or a real +scope/authority gap. See AGENTS.md's First-Screen Review Evidence rule. + Use synthetic or public fixture data only. Do not upload live/private screenshots, even when the underlying access was authorized. --> @@ -117,6 +124,7 @@ even when the underlying access was authorized. - UI impact: - Before: - After: +- First viewport and preview: - States and viewports shown: - Source data: - Attention review: diff --git a/AGENTS.md b/AGENTS.md index dc116e95ee..db007917f0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -102,7 +102,7 @@ read back its state and unchanged head, and refresh the review packet. Drafts are excluded from the review queue, so waiting for a review before marking one ready creates a deadlock. A reviewer must still obey the packet's action authority and may not mark another author's Draft ready without authorization. -Keep exact-head review, required validation, first-screen approval and explicit +Keep exact-head review, required validation, first-screen evidence and explicit merge authorization as their separate gates. ### DCO Sign-Off @@ -278,20 +278,34 @@ the validator's explicit bilingual no-change declarations. Never treat the existence of a checklist, a release PR draft, or architecture-only capability copy as proof that the final release body is usable. -## First-Screen Review Gate - -Treat the first visible screen of public product surfaces as owner-reviewed -presentation, not as ordinary copy. Before committing, pushing, or self-merging -changes that alter the first viewport, hero block, primary CTA, or opening -navigation of README, hosted frontstage, showcase index pages, product home -pages, or similarly prominent public entry points, show the user a preview -first and wait for approval. - -The preview should be concrete enough to judge the presentation: provide the -local URL and, when the surface is visual HTML, a screenshot or browser view of -the first viewport. Do not move the review gate into a PR comment, todo note, or -final summary after the fact. It must happen before the public first-screen -change is finalized. +## First-Screen Review Evidence + +Treat the first visible screen of public product surfaces as reviewable product +presentation. For authorized work within the requested outcome and existing +product/design contract, do not add a separate user-confirmation round before commit, +push or PR submission merely because the first viewport, hero, primary CTA or +opening navigation changes. Reuse prior scoped approval; a new commit or a +routine refinement does not invalidate it. + +Before submitting or updating the PR, inspect the actual first viewport and put +its screenshot or browser capture directly in the PR description's visual +evidence section. Include a useful before/after comparison for an existing +surface, affected desktop/narrow views, and a working preview link when one is +available. Identify the tested revision and whether the data and surface are +synthetic, a prototype, packaged or installed. Use public-safe evidence; keep +private messages, paths and live operating context out. A screenshot only in +chat, a PR comment, a Todo note or the final report does not satisfy this rule. +Refresh the evidence when the visible result materially changes, without +requesting another approval for the same authorized direction. + +Ask only for a genuinely missing consequential decision, work outside the +accepted scope, or an explicit user instruction reserving presentation approval. +Do not infer such a reservation from a first-screen change alone. Name the +specific unresolved choice and continue independent authorized work. This +presentation evidence rule does not grant merge, installation, release, paid +execution or sensitive-data publication authority. Existing approval records +remain historical evidence; older prose that merely repeats the blanket +first-screen confirmation requirement follows this current rule. ## Product Delivery Completeness diff --git a/docs/architecture/rfcs/desktop-execution-frontends-v0.md b/docs/architecture/rfcs/desktop-execution-frontends-v0.md index 93964e68c9..b3f5ca50b8 100644 --- a/docs/architecture/rfcs/desktop-execution-frontends-v0.md +++ b/docs/architecture/rfcs/desktop-execution-frontends-v0.md @@ -966,7 +966,7 @@ bootstrap acceptance, Agent execution acceptance, or signed-release readiness. #4547/#4548/#4552 delivered team-preview confirmation UI, packaged resources and a browser fixture; the confirmation entry is no longer unimplemented. Follow [roadmap](loopx-overall-roadmap-v0.md) R1 for semantically accurate partial/gap/stale readback, R2 for actual worker execution and R3 for automatic return/restart recovery. The confirmation fixture does not prove the complete Lark loop. -Frontend/Lark consume the same proposal, receipt and audience projection; confirmed plans cannot imply execution. Every implementation includes real packaged-frontend interaction and applicable Lark qualification, or explicitly names the untested surface. First-viewport/primary-CTA implementation changes still require concrete preview approval. This revision edits RFCs only, not UI. +Frontend/Lark consume the same proposal, receipt and audience projection; confirmed plans cannot imply execution. Every implementation includes real packaged-frontend interaction and applicable Lark qualification, or explicitly names the untested surface. First-viewport/primary-CTA implementation follows the repository first-screen evidence rule: include the concrete viewport in the PR description and reuse existing scoped direction without a routine confirmation round. This revision edits RFCs only, not UI. ## Delivery slices diff --git a/docs/architecture/rfcs/desktop-execution-frontends-v0.zh-CN.md b/docs/architecture/rfcs/desktop-execution-frontends-v0.zh-CN.md index 56c36fcef4..a4ec0119aa 100644 --- a/docs/architecture/rfcs/desktop-execution-frontends-v0.zh-CN.md +++ b/docs/architecture/rfcs/desktop-execution-frontends-v0.zh-CN.md @@ -782,7 +782,7 @@ App 更新仍能操作;在用户应用更新或有意选择其他恢复前, #4547/#4548/#4552 已交付团队预览确认 UI、打包资源及 browser fixture,不再把确认入口列为未实现。按[统一路线](loopx-overall-roadmap-v0.zh-CN.md) R1 补语义一致的 partial/gap/stale 回读,R2 验 worker 实际执行,R3 验自动回报和重启恢复。现有确认 fixture 不能证明 Lark 端完整闭环。 -前端/Lark 消费同一 proposal、receipt 和 audience projection;运行状态不能由计划已确认推断。每个实现批次含 packaged frontend 的实际交互和 Lark 适用路径验收,或明确说明未验收。涉及首屏/主 CTA 的实现继续先展示具体预览并获批准;本次仅更新 RFC,不修改 UI。 +前端/Lark 消费同一 proposal、receipt 和 audience projection;运行状态不能由计划已确认推断。每个实现批次含 packaged frontend 的实际交互和 Lark 适用路径验收,或明确说明未验收。涉及首屏/主 CTA 的实现遵循仓库首屏证据规则:具体首屏放入 PR description,复用既有范围内的设计方向,不为普通细化再增加一轮确认;本次仅更新 RFC,不修改 UI。 ## 交付切片 diff --git a/docs/architecture/rfcs/goal-workspace-surface-v0.md b/docs/architecture/rfcs/goal-workspace-surface-v0.md index f0dd25a635..d1ebb3f8e2 100644 --- a/docs/architecture/rfcs/goal-workspace-surface-v0.md +++ b/docs/architecture/rfcs/goal-workspace-surface-v0.md @@ -42,8 +42,9 @@ acceptance rule, cost computation or new action. **Unchanged:** Todo, gate, quota, lifecycle, acceptance and usage authority; the Tasks board, W1 map, Chat, Files and the Stage 4 delivery section keep their contracts and become lenses or destinations of this page. **Default boundary:** -the Overview composition is a default UI change and requires the owner's -first-screen preview approval before M1 becomes default. **Not approved here:** +the Overview composition is a default UI change. M1 follows the repository's +first-screen evidence rule, with the concrete viewport in the PR description +and ordinary refinements within authorized direction requiring no extra confirmation. **Not approved here:** new Todo fields (including display numbers), a lifetime usage aggregate, browser authoring of executable acceptance checks, Lark or CLI parity, and any live-team L1/L2 or G1 claim. @@ -502,7 +503,7 @@ This view does not authorize intervention in a frozen benchmark. | Copy the reference pattern literally (flat list, `#n`, lifetime runtime) | Rejected | Breaks the identity, liveness and unknown-is-not-zero invariants | | A separate Goal page route beside the workspace tabs | Rejected | Duplicates navigation; Overview is already the direct Goal destination | | A Python-served page projection | Rejected | The TypeScript presentation boundary is the established owner; a Python decision mirror is forbidden | -| The W1 task map as every Overview's hero | Deferred | Ordinary work keeps its responsibility lens; research Goals use the whole-history Explore composition in Section 5.11, without turning task dependencies into research evidence; first-screen approval still applies | +| The W1 task map as every Overview's hero | Deferred | Ordinary work keeps its responsibility lens; research Goals use the whole-history Explore composition in Section 5.11, without turning task dependencies into research evidence; first-screen PR evidence still applies | | Vitals on Overview only | Rejected | Owners working in Chat or Tasks would lose stop and needs-you context | | Lifetime totals summed from windows | Rejected | Double counting and retention gaps; lifetime belongs to the usage owner | @@ -521,7 +522,8 @@ This view does not authorize intervention in a frozen benchmark. Agent time / Agent 用时, Cost / 成本, Last activity / 最近活动, Stopped / 已停止, Done / 已完成, Accepted / 已验收. - Default change: while under review, M1 may ship behind a local view toggle. - After first-screen approval it becomes the default, with release notes naming + After the required PR review and merge authorization it becomes the default, + with first-screen evidence in the PR description and release notes naming the changed Overview and masthead. ## 8. Migration and rollback @@ -565,7 +567,7 @@ second upgrade. | Milestone | Shipped behavior | Entry gate | Exit evidence | Rollback | | --- | --- | --- | --- | --- | | M0 Contract | This RFC, the composition study and roadmap/RFC reconciliation | — | Docs governance smoke; owner review | Revert docs | -| M1 Masthead and vitals | Persistent masthead with Stop/Resume readback on all Goal views; vitals from `goal_workspace_digest_v0`; Overview order Direction (read-only) → Needs you → existing sections | First-screen preview approval of the Goal page | V1, V2 (strip), V4, V6, V9 | Revert composition | +| M1 Masthead and vitals | Persistent masthead with Stop/Resume readback on all Goal views; vitals from `goal_workspace_digest_v0`; Overview order Direction (read-only) → Needs you → existing sections | Goal first-viewport evidence in the PR description | V1, V2 (strip), V4, V6, V9 | Revert composition | | M2 Work lenses and rail | Now by owner with Board/Map lenses; All-work rail and Activity; shared selection and `todo` deep link; inline Add task; Results region | M1 | V2, V3, V6, V7, V9, V10 | Revert to M1 | | M3 Direction and return | Since-you-looked delta; target declaration through the acceptance owner | M2; D3 decided by its owner | V5, V8 | Hide declaration; delete marker | | M4 Live and expressive | W2 live state on rows and map from the execution observation owner; event motion; keyboard map and palette; dark inverse | M2; W2 observation available | V6 (motion, dark); live-team W2 acceptance | Disable motion/theme | @@ -654,7 +656,8 @@ question to close. Research supplies permitted cases, assessment contracts and method qualification; product owns rendering, interaction and result consumption. This documentation establishes neither implementation, an available analysis provider, evaluator calibration, installed behavior nor scientific benefit. -Any new first-screen composition still needs its concrete preview approval. +New first-screen compositions follow the repository evidence rule: concrete +viewport in the PR description, with no repeated approval for authorized refinements. The current author candidate combines the scoped paginated history reader with a default record-time lens and optional relationship view. Reading thirds, diff --git a/docs/architecture/rfcs/goal-workspace-surface-v0.zh-CN.md b/docs/architecture/rfcs/goal-workspace-surface-v0.zh-CN.md index dc630ce014..9886ca29b3 100644 --- a/docs/architecture/rfcs/goal-workspace-surface-v0.zh-CN.md +++ b/docs/architecture/rfcs/goal-workspace-surface-v0.zh-CN.md @@ -31,7 +31,8 @@ **不变:** Todo、Gate、quota、生命周期、验收与用量的权限;任务看板、W1 地图、对话、 文件和 Stage 4 交付区保持各自合同,成为本页面的镜头或去处。**默认边界:** 概览组合 -属于默认 UI 变化,M1 设为默认前需 owner 的首屏预览批准。**本文不批准:** 新 Todo 字段 +属于默认 UI 变化;M1 遵循仓库首屏证据规则,将具体首屏放入 PR description, +获准方向内的普通细化不再增加一轮确认。**本文不批准:** 新 Todo 字段 (包括显示编号)、累计用量聚合、在浏览器中编写可执行验收检查、飞书或 CLI 对等呈现, 以及任何团队实时 L1/L2 或 G1 声明。 @@ -377,7 +378,7 @@ Agent/执行 owner 准备并完成分析。不要求用户填写来源 id、选 | 照搬参考页面(平铺列表、`#n`、累计运行时长) | 否决 | 违反身份、活跃与未知不是零的不变量 | | 在工作区页签之外另建 Goal 页面路由 | 否决 | 重复导航;概览已是直达 Goal 的去处 | | 由 Python 提供页面投影 | 否决 | TypeScript 展示边界是既定 owner;禁止 Python 决策镜像 | -| 所有概览均以 W1 任务地图为主视觉 | 推迟 | 普通工作保留负责人镜头;研究 Goal 使用第 5.11 节全历史 Explore 组合,不将任务依赖变成研究证据;首屏批准仍适用 | +| 所有概览均以 W1 任务地图为主视觉 | 推迟 | 普通工作保留负责人镜头;研究 Goal 使用第 5.11 节全历史 Explore 组合,不将任务依赖变成研究证据;首屏 PR 证据仍适用 | | 指标只放在概览 | 否决 | 在对话或任务页工作的 owner 会失去停止与等你决定的上下文 | | 由窗口相加得到累计值 | 否决 | 重复计数与保留期缺口;累计属于用量 owner | @@ -390,7 +391,7 @@ Agent/执行 owner 准备并完成分析。不要求用户填写来源 id、选 - 远端状态来源保持只读,生命周期操作除外,并沿用既有精确 Host alias 绑定。 - 文案按同一术语表双语呈现:Work / 工作、Needs you / 等你决定、Agent time / Agent 用时、 Cost / 成本、Last activity / 最近活动、Stopped / 已停止、Done / 已完成、Accepted / 已验收。 -- 默认变化:评审期间 M1 可放在本地视图开关之后;首屏批准后设为默认,发布说明点名变化的 +- 默认变化:评审期间 M1 可放在本地视图开关之后;必要 PR review 与合并授权通过后设为默认,具体首屏放入 PR description,发布说明点名变化的 概览与页头。 ## 8. 迁移与回滚 @@ -429,7 +430,7 @@ Agent/执行 owner 准备并完成分析。不要求用户填写来源 id、选 | 里程碑 | 交付行为 | 进入门槛 | 退出证据 | 回滚 | | --- | --- | --- | --- | --- | | M0 合同 | 本 RFC、组合研究以及路线与 RFC 对齐 | — | 文档治理 smoke;owner 评审 | 回退文档 | -| M1 页头与指标 | 所有 Goal 视图的常驻页头及停止/恢复回读;由 `goal_workspace_digest_v0` 产出指标;概览顺序为方向(只读)→ 等你决定 → 既有区域 | Goal 页面首屏预览获批 | V1、V2(指标条)、V4、V6、V9 | 回退组合 | +| M1 页头与指标 | 所有 Goal 视图的常驻页头及停止/恢复回读;由 `goal_workspace_digest_v0` 产出指标;概览顺序为方向(只读)→ 等你决定 → 既有区域 | Goal 页面首屏证据进入 PR description | V1、V2(指标条)、V4、V6、V9 | 回退组合 | | M2 工作镜头与侧栏 | 按负责人的当前工作,以及看板/地图镜头;全部工作侧栏与动态;共享选中与 `todo` 深链;行内新建任务;成果区 | M1 | V2、V3、V6、V7、V9、V10 | 回到 M1 | | M3 方向与回归 | 自上次查看变化;经验收 owner 声明目标 | M2;D3 由其 owner 决定 | V5、V8 | 隐藏声明;删除标记 | | M4 实时与表现力 | 由执行观察 owner 在行与地图上显示 W2 实时状态;事件动效;快捷键与命令面板;深色反色 | M2;W2 观察可用 | V6(动效、深色);团队实时 W2 验收 | 关闭动效/主题 | @@ -472,7 +473,8 @@ V2 的指标条与看板共用工作判定;V4 的真实隔离 Chat 动作服 深入分析。先交付只读全历史原型与 V11 打包旅程,再整合既有获准分析动作和 V12, 不等待所有科学问题闭合。研究侧提供获准案例、评测合同与方法资格,产品侧负责展示、 交互与结果消费。本文档不证明实现、分析 provider 已可用、evaluator 已校准、安装行为或 -科学收益;新的首屏组合仍须提供具体预览并获批准。 +科学收益;新的首屏组合遵循仓库首屏证据规则:具体首屏放入 PR description, +获准方向内的细化不再重复确认。 当前候选将限定来源、完整分页的历史 reader 与默认记录时间视图、可选关系图组合。 三等分、密度、来源标签和显式决策均是展示投影;同一问题多轮决策与延后回填不能在 diff --git a/docs/architecture/rfcs/live-team-workspace-v0.md b/docs/architecture/rfcs/live-team-workspace-v0.md index 05e8d82bdf..0c0d8b441c 100644 --- a/docs/architecture/rfcs/live-team-workspace-v0.md +++ b/docs/architecture/rfcs/live-team-workspace-v0.md @@ -311,8 +311,9 @@ owners, with explicit history gaps if durable events do not exist. Disable the scene or stop its subscription to return to list/chat without interrupting member work. Do not delete journals, rebind sessions, rewrite historical receipt strength or reset provider state. Default Overview/navigation -changes require the repository's concrete first-screen preview approval before -commit/push; approval of an unrelated copy edit does not approve this scene. +changes follow the repository first-screen evidence rule: put the concrete +viewport in the PR description and reuse scoped direction for ordinary +refinements; approval of an unrelated copy edit does not approve this scene. ## 9. Acceptance @@ -542,7 +543,7 @@ The [near-term local-agent launch](loopx-overall-roadmap-v0.md#near-term-local-a | L0 Design and traceability | Interactive synthetic study, source audit and executable acceptance plan | Design review; V1/V3 concept checks; no live claim | Presentation; discard prototype, retain decisions | | L1 One real correction | Objection→revision→independent acceptance→requester adoption is understandable, with evidence, intervention and accurately scoped stop controls | Section 9 first live outcome; V1/V2/V3/V6 and episode-level V7 through real frontend + CLI | Collaboration/evidence/control owners + Chat/packaged UI; disable scene without implying work stopped | | L2 Continuous research | Original research Agent completes V4 and the user replays correction→adoption→next cycle | Runtime credential/admission repairs and usable L1; qualify each host profile, then V4 | Existing R2/R3 owners; stop new admission and retain results | -| L3 Semantic zoom and scale | Subteams, source/conclusion version comparison and focused replay at measured 10/30/100 display load | Typed lineage producers and L2; V5/V7 and approved first-screen composition | Presentation + evidence owner; reduce detail/revert renderer | +| L3 Semantic zoom and scale | Subteams, source/conclusion version comparison and focused replay at measured 10/30/100 display load | Typed lineage producers and L2; V5/V7 and first-screen composition evidence in the PR description | Presentation + evidence owner; reduce detail/revert renderer | **Work-scale map track.** Semantic zoom needs a whole-Goal Work view to zoom from. This track renders existing typed Todo relations only. It runs beside L1 diff --git a/docs/architecture/rfcs/live-team-workspace-v0.zh-CN.md b/docs/architecture/rfcs/live-team-workspace-v0.zh-CN.md index bf8dc33dcb..731f486c07 100644 --- a/docs/architecture/rfcs/live-team-workspace-v0.zh-CN.md +++ b/docs/architecture/rfcs/live-team-workspace-v0.zh-CN.md @@ -251,7 +251,8 @@ episode/口径、基线、窗口/成本与校准;产品侧细化选择和证 关闭场景或订阅可回到列表 / Chat,不能中断成员工作。不得删除 journal、重绑 session、提高历史 receipt 的语义强度或重置 provider。默认概览 / 导航变化 -必须在 commit/push 前完成仓库要求的具体首屏预览审批;对另一处文案精简的 +遵循仓库首屏证据规则:具体首屏放入 PR description,范围内普通细化复用既有方向, +不再单独增加确认轮次;对另一处文案精简的 批准不等于批准本场景。 ## 9. 验收 @@ -373,7 +374,7 @@ V5 候选目标在实验前定稿:前台动态目标 60fps / 优雅降级底 | L0 设计与可追溯性 | 可交互合成研究、源审计、可执行验收计划 | 设计评审;V1/V3 概念检查;不声明 live | Presentation;丢弃原型,保留决策 | | L1 一次真实纠偏 | 看懂异议→修订→独立验收→请求方采用,可查证据、干预并使用范围准确的停止控制 | 第 9 节首个真实结果;真实前端 + CLI 的 V1/V2/V3/V6 和本过程 V7 | Collaboration / evidence / control owner + Chat/packaged UI;关闭场景不暗示工作停止 | | L2 持续研究 | 原投研 Agent 完成 V4,用户回放纠偏→采用→下一轮 | runtime 凭证 / 准入修复及可用 L1;逐 profile 资格化后 V4 | 既有 R2/R3 owner;停新准入、保留结果 | -| L3 语义缩放与规模 | 子团队、来源 / 结论版本对比、实测 10/30/100 展示负载下的聚焦回放 | typed 谱系 producer 与 L2;V5/V7、批准首屏编排 | Presentation + evidence owner;降细节 / 回退 renderer | +| L3 语义缩放与规模 | 子团队、来源 / 结论版本对比、实测 10/30/100 展示负载下的聚焦回放 | typed 谱系 producer 与 L2;V5/V7、PR description 中的首屏编排证据 | Presentation + evidence owner;降细节 / 回退 renderer | **工作尺度地图分线。** 语义缩放需要先有一个可缩放的整 Goal 工作视图。本分线只 渲染既有的类型化 Todo 关系,与 L1 并行,不推进 L1、V4 或 G1: diff --git a/docs/architecture/rfcs/loopx-overall-roadmap-v0.md b/docs/architecture/rfcs/loopx-overall-roadmap-v0.md index 3c1fccfc08..1c011428fa 100644 --- a/docs/architecture/rfcs/loopx-overall-roadmap-v0.md +++ b/docs/architecture/rfcs/loopx-overall-roadmap-v0.md @@ -82,7 +82,7 @@ P0 blocks correctness or continuity in the current user journey. P1 enables repe | **S2 Typed kernel and durable authority · P0/P1** | Effect/Todo/quota/recovery owners, TS migration and store candidates exist; writer cutover/provider promotion remain incomplete | Migrate one real transaction/recovery lifecycle at a time, with semantic counterexamples before cutover/deletion. R1 correctness precedes migration volume. Require real backend, concurrency/fence, ambiguous commit, retention/export recovery, bridge costs and D1–D3 evidence | | **S3 Goal planning and multi-Agent collaboration · P0/P1** | Vision/replan, peer frontiers, claim/lease, directory, manager_context and explicit continuation exist; general handoff/shared amendment remain incomplete | R2 proves peer dependency; R3 closes parallel joins, pipelines, help/review, continuation and automatic return; R4 delivers one intent-preserving amendment class. Cover cycles, invalidated inputs, rejection/deferral, lease transfer, competing bases and aggregate acceptance | | **S4 Runtime/host/daemon · P0/P1** | Attached/managed, Turn, broker, runtime connectors and Desktop repairs exist; registration does not establish executable capacity | Qualify multi-Turn supervision for one real supported combination; restart/cancel/drain/stop retain work and fence old executors. Then expand host parity, unique service-profile ownership, clean installation and upgrades; show unsupported adapter capabilities | -| **S5 Frontend, Lark and human interaction · P0/P1** | Local chat, settings, proposals and partial Goal Channel verticals exist; Goal Overview, Tasks, the W1 work map, usage, acceptance readback and lifecycle stop ship as separate regions without one page owner; shared audience/session/work readback needs qualification | One journey spans settings, work graph, handoff, blockers, cost, corrections, artifacts and return. **Page:** the [Goal workspace](goal-workspace-surface-v0.md) composes that journey per Goal over shared typed projections: a persistent masthead with scoped Stop, vitals with one meaning per figure (named window and coverage, unknown is not zero), work grouped by owner, results and an all-work rail. M1–M2 come first, after first-screen preview approval. **Cases:** reconnect/repeated-click/stale/original-route. **Realtime IM** reuses Chat/Turn: isolate independent conversations on one listener, then qualify ordinary DM onboarding, explicit role selection, busy-session admission, provisional progress, media and exact permission callbacks through [the shared operational contract](capable-manager-semantic-handoff-v0.md#10-operational-contract). **Team:** [Live team workspace](live-team-workspace-v0.md) makes exchange, revision and original-coordinator continuation visible. Its [Work-scale map track](live-team-workspace-v0.md#11-delivery-order-and-relationship-to-aggressive-r2-progress) draws each Goal's typed Todo relations first (W1, the Goal workspace's Map lens), then live state and outputs on the same nodes. Then intelligent review, keyboard accessibility and a launcher-only command palette, bilingual terminology, actionable errors and offline degradation; interrupt only for actual decisions | +| **S5 Frontend, Lark and human interaction · P0/P1** | Local chat, settings, proposals and partial Goal Channel verticals exist; Goal Overview, Tasks, the W1 work map, usage, acceptance readback and lifecycle stop ship as separate regions without one page owner; shared audience/session/work readback needs qualification | One journey spans settings, work graph, handoff, blockers, cost, corrections, artifacts and return. **Page:** the [Goal workspace](goal-workspace-surface-v0.md) composes that journey per Goal over shared typed projections: a persistent masthead with scoped Stop, vitals with one meaning per figure (named window and coverage, unknown is not zero), work grouped by owner, results and an all-work rail. M1–M2 come first, with concrete first-screen evidence in the PR description; authorized refinements need no repeated confirmation. **Cases:** reconnect/repeated-click/stale/original-route. **Realtime IM** reuses Chat/Turn: isolate independent conversations on one listener, then qualify ordinary DM onboarding, explicit role selection, busy-session admission, provisional progress, media and exact permission callbacks through [the shared operational contract](capable-manager-semantic-handoff-v0.md#10-operational-contract). **Team:** [Live team workspace](live-team-workspace-v0.md) makes exchange, revision and original-coordinator continuation visible. Its [Work-scale map track](live-team-workspace-v0.md#11-delivery-order-and-relationship-to-aggressive-r2-progress) draws each Goal's typed Todo relations first (W1, the Goal workspace's Map lens), then live state and outputs on the same nodes. Then intelligent review, keyboard accessibility and a launcher-only command palette, bilingual terminology, actionable errors and offline degradation; interrupt only for actual decisions | | **S6 Materials, evidence, memory and learning · P1** | Authority registry, material lifecycle/frontier, decision context, reward memory and turn recall exist; explicit project material packets and source-verifier gates are implemented, while private source initialization/Core binding and ordinary-conversation adoption remain unqualified; direction baseline and parts of attribution remain proposed | Connect material revision→same-Agent read→decision reference→artifact/outcome. Expose expiry/revocation/source loss and forgetting policy. Handoff preserves decision-relevant summaries and authorized artifacts; qualify OpenViking/Obelisk as optional providers. Prove causal utility with controls, not relevance alone | | **S7 Budget, scheduling and fleet scale · P0 observation/P1–P2 expansion** | Quota/scheduler and partial usage aggregates exist; full provider cost, distributed reservations and hundred-Agent concurrency need evidence | Separate configured budget, admission, consumption and estimates; unknown is not zero and replay cannot double-charge. R7 pagination/bounded summaries and [complete-history transport](typescript-control-plane-migration-v0.md), including refresh/replay/single-debit evidence beyond the RPC limit; provider/host limits, fairness, backpressure, event wake and isolation; report registration/activity/throughput and cost per accepted outcome separately. Receipt-backed semantic progress closes its original host Turn without completing an open/waiting Todo; File/SQLite guard replay preserves verified writeback when a later dependency wait changes the frontier and covers automatic quiet writeback during a receipt-owned retry, preserving independent work and monitor clocks. The typed full-source batch keeps receipt retry identity independently of the earliest wakeup, reconciles earlier retries with retained caches/hidden clocks, and keeps ordinary notices non-gating across earlier/equal/later monitors; File/SQLite replay and canonical readback qualify this source boundary. [Full quota and TurnEnvelope](../../reference/protocols/turn-envelope-v0.md) retain the original executable settlement command and single debit. Follow [the quota settlement contract](../../quota-allocation.md#receipt-backed-settlement-progress). External-wait authoring now derives successor readiness from the locked Todo snapshot through the existing resume owner, covering completed dependencies and monitor generation fences without trusting display flags. File/SQLite CLI coverage also rejects an original Turn’s step write into a newly selected Todo, preserves that Todo’s step/CAS and dependencies, and settles the original writeback once. Recommendation consumers reuse the v0/v1 settlement identity owner: Todo-less replan rejects Todo-step editing with actionable recovery, while derived or explicit guidance preserves its original once-only settlement and monitor state. Source-qualified continuation, installed adoption, live Host waiting-state cadence/readback and fleet scale remain separate acceptance; this bounded repair does not qualify fleet scale or host latency. | | **S8 Capabilities, extensions and domain integration · P1/P2** | Capability catalog, extension lifecycle, hooks, engineering/research/content/office capabilities and computer-use contracts exist | First exercise the shared control plane with existing issue-fix/PR-review and material/research callers. Every provider has readiness/version/permissions/default-off/uninstall/rollback/isolation and real-entry evidence. New domain effects start with one simulated operation, not a marketplace or workflow DSL | @@ -314,7 +314,8 @@ before/after claims, cited sources and the accepted adopted version. Keep one focal event, an accessible list, reduced motion and honest quiet/failed states. No ambient animation or Agent count substitutes for work. Follow the existing [design contract](../../development/design.md); actual public first screens -still require their concrete preview approval. +follow the repository first-screen evidence rule, with the concrete viewport +in the PR description rather than a routine extra approval round. Prepare one consistent kit: a 60–90s real-run film with disclosed time cuts, a 15s excerpt, three annotated product screenshots, an accessible replay marked @@ -396,7 +397,7 @@ subsystem was not performed. Section 8 records the focused audit. | [Automatic Execution Admission v0](automatic-execution-admission-v0.md) | S7/S2/S4 | Accepted; typed local policy/admission and M3 settings candidate, host promotion pending | P0: App floor/schedule readback; M3 ordinary single-Save settings with optional notes, inheritance/conflict/readback acceptance; next-eligible/wait parity and M2 host/hook qualification remain separate | | [Per-Goal Usage, Token, and Cost Surfacing v0](goal-usage-token-cost-v0.md) | S7/S5 | Accepted; Codex aggregate/cost display slice exists | P0 observation→P1 provider coverage: unknown is not zero, deduplicate accounting, price source/freshness; usage grants no budget | | [Intelligent Review and Dynamic Presentation Surfaces v0](intelligent-review-presentation-surfaces-v0.md) | S5 | Accepted; action/attention verticals and local delivery-chain/acceptance review implemented | P1: cross-channel disclosure and governed amendment/settlement review; local visibility does not qualify G2 | -| [Goal Workspace Surface v0](goal-workspace-surface-v0.md) | S5/S7 | Accepted; composition proposal over shipped Overview, Tasks, W1 map, usage, acceptance readback and lifecycle stop | P1: M1 persistent masthead with Stop readback and vitals with normative window/coverage/unknown semantics; M2 work by owner, all-work rail and shared selection. First-screen preview approval before the default; no new authority, Todo field or lifetime usage | +| [Goal Workspace Surface v0](goal-workspace-surface-v0.md) | S5/S7 | Accepted; composition proposal over shipped Overview, Tasks, W1 map, usage, acceptance readback and lifecycle stop | P1: M1 persistent masthead with Stop readback and vitals with normative window/coverage/unknown semantics; M2 work by owner, all-work rail and shared selection. First-screen evidence in the PR description before default adoption; no new authority, Todo field or lifetime usage | | [Human Attention Wishlist v0](human-attention-wishlist-v0.md) | S5/S11 | Accepted; Held | P3: reopen only on repeated second real need; sidecar cannot alter gates/quota/scheduling | | [Human-confirmed domain operations (v0)](human-confirmed-domain-operations-v0.md) | S8/S9 + R2/R3 | Accepted; canonical operation seam exists, managed native transport under owner review | Qualify source-context vs admitted-executor separation, exact human approval→one-shot consumption→domain evidence→original-route return; owned Turn/delegation need not await Desktop authentication. Live approval/effect/wakeup remain unqualified; finance provider stays separate | | [Provider-side authorization at effect acceptance (v0)](provider-effect-acceptance-v0.md) | S8/S9, supporting S2/S4 | Accepted design only; no runtime integration or qualified provider | M1: controlled provider and deterministic revoke/crash/replay conformance; strict production wiring remains gated by exact Goal lifetime, receipt retention and independent provider qualification | @@ -1245,7 +1246,7 @@ Each implementation Todo/PR must answer: 4. **Invariants:** independent expected outcomes before characterization/negative tests; repair incorrect rules rather than updating goldens to hide defects. 5. **Failure:** select applicable no-effect rejection, concurrency, timeout, partial commit, crash/replay, stale-basis and default-off parity cases. 6. **Product:** CLI/managed, packaged frontend and Lark interaction, readback and feedback; verify why companion work is unnecessary, and label untested surfaces. -7. **Delivery:** explicit staging, DCO, relevant canary, public-boundary scan and PR; retain real authority and first-screen review gates. +7. **Delivery:** explicit staging, DCO, relevant canary, public-boundary scan and PR; retain real authority gates and first-screen PR evidence. 8. **Continuation:** one executable successor, changed dependencies/blockers and rollback. Fields, passing tests or an arbitrary receipt do not establish a full milestone. Less capable execution Agents can repair specified counterexamples and perform mechanical migration within this contract. New authority, state machines, cross-host identities and incompatible schema changes require the relevant owner's review of the exact diff, rules and evidence; model class or Agent self-assessment is not the oracle. The bounded future-facing pass should remove duplicate knowledge; larger adjacent refactors become scoped successors. diff --git a/docs/architecture/rfcs/loopx-overall-roadmap-v0.zh-CN.md b/docs/architecture/rfcs/loopx-overall-roadmap-v0.zh-CN.md index 600cc57d3d..6f4a8f382c 100644 --- a/docs/architecture/rfcs/loopx-overall-roadmap-v0.zh-CN.md +++ b/docs/architecture/rfcs/loopx-overall-roadmap-v0.zh-CN.md @@ -71,7 +71,7 @@ managed 与 attached 的工作对话都应能持续在 LoopX 中进行:沿用 | **S2 typed 内核与 durable authority · P0/P1** | Effect/Todo/quota/recovery owner、TS 事务迁移与 store 候选已存在;writer 和 provider 晋升仍未全闭合 | 每次迁移一个真实事务/恢复生命周期,先语义反例再切换/删除旧 owner;R1 正确性先于迁移数量。真实 backend、并发/fence、ambiguous commit、保留/导出恢复、bridge 成本及 D1–D3 资格 | | **S3 目标规划与 multi-Agent 协作 · P0/P1** | Vision/replan、peer frontier、claim/lease、directory、manager_context 和显式接续有基础;通用 handoff/共享修订未闭环 | R2 必须证明 peer 依赖;R3 完成并行汇合、流水线、求助/复核、接续、自动回报;R4 做一个保持 intent 的 amendment class。检查依赖环、输入失效、拒绝/延期、lease 转移、同基线竞争及 aggregate acceptance | | **S4 runtime/host/daemon · P0/P1** | attached/managed、Turn、broker、runtime connector 和 Desktop 修复存在;“registered”不等于可执行 | 选择一个真实合格组合完成多 Turn supervision;restart/cancel/drain/stop 不丢工作且旧 executor 被 fence。之后扩 host parity、service-profile 唯一 owner、干净安装与版本升级;按 adapter 能力显示不支持项 | -| **S5 前端、Lark 与人机交互 · P0/P1** | 本地对话、settings、proposal 和部分 Goal Channel vertical 已有;Goal 概览、任务、W1 工作地图、用量、验收回读与生命周期停止作为分散区域已交付,但没有统一页面 owner;统一受众/会话/工作回读仍需资格 | 用一个团队旅程贯穿设置、工作图、handoff、阻塞、成本、修订、产物和回报。**页面:**[Goal 工作区](goal-workspace-surface-v0.zh-CN.md)在共享 typed projection 之上按 Goal 组合这条旅程:带限定范围停止的常驻页头、每个数字只有一种含义的指标(标明窗口与覆盖度,未知不是零)、按负责人分组的工作、成果与全部工作侧栏;先做 M1–M2,并先取得首屏预览批准。**场景:**验证重连/重复点击/stale/原路反馈。**实时 IM** 复用 Chat/Turn:先让同一 listener 下的独立会话互不阻塞,再按[共享运行契约](capable-manager-semantic-handoff-v0.zh-CN.md#10-运行契约)验收普通私聊开通、显式角色选择、忙碌会话准入、临时进度、媒体和精确权限回调。**团队:**[团队实时工作区](live-team-workspace-v0.zh-CN.md)让交换、修订与原协调员继续推进可见;其[工作尺度地图分线](live-team-workspace-v0.zh-CN.md#11-交付顺序与激进推进-r2-的关系)先画出每个 Goal 的类型化 Todo 关系(W1,即 Goal 工作区的地图镜头),再在同一节点叠加实时状态与产出。再做 intelligent review、无障碍键盘流程与只作启动器的命令面板、中英术语、错误可恢复和离线降级;只在真实决策处打断人 | +| **S5 前端、Lark 与人机交互 · P0/P1** | 本地对话、settings、proposal 和部分 Goal Channel vertical 已有;Goal 概览、任务、W1 工作地图、用量、验收回读与生命周期停止作为分散区域已交付,但没有统一页面 owner;统一受众/会话/工作回读仍需资格 | 用一个团队旅程贯穿设置、工作图、handoff、阻塞、成本、修订、产物和回报。**页面:**[Goal 工作区](goal-workspace-surface-v0.zh-CN.md)在共享 typed projection 之上按 Goal 组合这条旅程:带限定范围停止的常驻页头、每个数字只有一种含义的指标(标明窗口与覆盖度,未知不是零)、按负责人分组的工作、成果与全部工作侧栏;先做 M1–M2,将具体首屏放入 PR description;获准方向内的细化不重复确认。**场景:**验证重连/重复点击/stale/原路反馈。**实时 IM** 复用 Chat/Turn:先让同一 listener 下的独立会话互不阻塞,再按[共享运行契约](capable-manager-semantic-handoff-v0.zh-CN.md#10-运行契约)验收普通私聊开通、显式角色选择、忙碌会话准入、临时进度、媒体和精确权限回调。**团队:**[团队实时工作区](live-team-workspace-v0.zh-CN.md)让交换、修订与原协调员继续推进可见;其[工作尺度地图分线](live-team-workspace-v0.zh-CN.md#11-交付顺序与激进推进-r2-的关系)先画出每个 Goal 的类型化 Todo 关系(W1,即 Goal 工作区的地图镜头),再在同一节点叠加实时状态与产出。再做 intelligent review、无障碍键盘流程与只作启动器的命令面板、中英术语、错误可恢复和离线降级;只在真实决策处打断人 | | **S6 材料、证据、记忆与学习 · P1** | authority registry、material lifecycle/frontier、decision context、reward memory、turn recall 已有;方向基线和部分归因仍是提案 | 先打通“材料 revision→同 Agent 阅读→决策引用→产物/结果”;失效、撤销、来源消失与遗忘策略可回读。handoff 保存影响决策的摘要与授权 artifact;OpenViking/Obelisk 按可选 provider 资格化。utility 的因果收益另以对照证明,不把相关性当提升 | | **S7 预算、调度与 fleet 规模 · P0 观测/P1–P2 扩展** | quota/scheduler 与部分 usage aggregate 存在;全 provider 成本、分布式资源预留及百 Agent 并发尚需证据 | 先区分配置预算、准入、消耗与估算;未知成本不记零、重复事件不双记。R7 分页/有界摘要及[完整历史传输](typescript-control-plane-migration-v0.zh-CN.md),验收超出 RPC 上限后的写回/重放/单次扣记;provider/host 限流、公平性、背压、事件唤醒与失败隔离;分别报告注册数/活跃数/吞吐量和每个验收成果成本 回执支持的语义进展已能关闭原 host Turn,保留未完成/等待中的 Todo;file/SQLite guard 回放覆盖 frontier 改变,边界见[quota 结算契约](../../quota-allocation.md#receipt-backed-settlement-progress)。external-wait authoring 现复用 resume owner 从锁定 Todo 快照重算后继,以完成依赖/monitor 代际证明恢复,不再相信展示字段;源证据续接与真实 Host backoff/readback 仍须分别验收。这项有界修复不证明 fleet 规模或宿主延迟。 | | **S8 能力、扩展与领域集成 · P1/P2** | 已有 capability catalog、extension 生命周期、hook、工程/研究/content/office 能力及 computer-use 合同 | 优先用现有 issue-fix/PR-review 和材料/研究 caller 检验共享控制面;每个 provider 带 readiness、版本、权限、默认关闭、卸载/回滚、失败隔离与真实入口证据。新 domain effect 从模拟单操作闭环开始,不先建市场或通用工作流 DSL | @@ -245,7 +245,8 @@ Muse 设计页在浏览器超时,其文章通过网页检索读取。本次调 决策;稳定空间位置与局部事件动画解释交接。展示前后结论、引用来源和被验收采用 的版本。一次突出一件事,保留可访问列表、减少动态以及诚实的安静/失败状态。 不能用持续动画或 Agent 数量替代工作。遵循既有[设计契约](../../development/design.md), -实际公开首屏依然先提供具体预览并取得批准。 +实际公开首屏遵循仓库首屏证据规则,将具体首屏放入 PR description, +不为范围内普通细化增加额外审批轮次。 同步准备统一发布包:60–90 秒真实运行影片(披露时间剪辑)、15 秒短版、三张有 注释的产品截图、标明历史的可访问回放、双语发布文章与社交短稿、一条安装/试用 @@ -306,7 +307,7 @@ Muse 设计页在浏览器超时,其文章通过网页检索读取。本次调 | [自动执行准入 v0](automatic-execution-admission-v0.zh-CN.md) | S7/S2/S4 | 已接受;本地候选,宿主未推广 | P0:App 调度建议下限优先;M2 原子启动/hook 验收,M3 设置验收 | | [Per-Goal Usage, Token, and Cost Surfacing v0](goal-usage-token-cost-v0.md) | S7/S5 | 已接受;Codex aggregate/cost 展示已有切片 | P0 观测→P1 多 provider:未知不作零、重复扣费去重、价格来源/时效;usage 不自动授权预算 | | [Intelligent Review and Dynamic Presentation Surfaces v0](intelligent-review-presentation-surfaces-v0.zh-CN.md) | S5 | 已接受;action/attention 纵切及本地交付链/验收复盘已实现 | P1:跨渠道披露和受治理的修订/结算复盘;本地可见性不代表 G2 通过 | -| [Goal Workspace Surface v0](goal-workspace-surface-v0.zh-CN.md) | S5/S7 | 已接受;在已交付的概览、任务、W1 地图、用量、验收回读与生命周期停止之上的组合提案 | P1:M1 常驻页头与停止回读,以及带规范窗口/覆盖度/未知语义的指标;M2 按负责人的工作、全部工作侧栏与共享选中。设为默认前需首屏预览批准;不新增权限、Todo 字段或累计用量 | +| [Goal Workspace Surface v0](goal-workspace-surface-v0.zh-CN.md) | S5/S7 | 已接受;在已交付的概览、任务、W1 地图、用量、验收回读与生命周期停止之上的组合提案 | P1:M1 常驻页头与停止回读,以及带规范窗口/覆盖度/未知语义的指标;M2 按负责人的工作、全部工作侧栏与共享选中。设为默认前将具体首屏证据放入 PR description;不新增权限、Todo 字段或累计用量 | | [Human Attention Wishlist v0](human-attention-wishlist-v0.zh-CN.md) | S5/S11 | 已接受;Held | P3:第二个重复真实需求出现才重开;sidecar 不改变 gate/quota/调度 | | [Human-confirmed domain operations (v0)](human-confirmed-domain-operations-v0.zh-CN.md) | S8/S9 + R2/R3 | 已接受;规范操作接缝存在,受管原生传输待 owner review | 验收来源上下文与已准入执行者分离、精确用户批准→单次消费→垂域证据→原路返回;自有 Turn/delegation 不等待 Desktop 认证。真实批准/效果/唤醒仍未资格化;金融 provider 保持独立 | | [Provider 在效果接受点执行授权(v0)](provider-effect-acceptance-v0.zh-CN.md) | S8/S9,S2/S4 支撑 | 已接受设计;尚未接入 runtime,也未准入 provider | M1:controlled provider 与 deterministic revoke/crash/replay conformance;strict production 接线仍需精确 Goal 生命周期、receipt retention 与独立 provider 资格 | @@ -787,7 +788,7 @@ lifecycle。 4. **不变量:** 先写独立 expected outcomes,再做 characterization/负例;现状有错先修规则,不刷新 golden 掩盖。 5. **故障:** 无副作用拒绝、并发、超时、部分完成、crash/replay、stale basis、default-off parity;按涉及边界选取。 6. **产品:** CLI/managed、packaged frontend、Lark 的入口、状态回读和反馈;不需要 companion 修改时给出已核实原因,未测就写未测。 -7. **交付:** 精确路径 staging、DCO、相关 canary、公开边界扫描、PR;保留真实权限与 first-screen review gate。 +7. **交付:** 精确路径 staging、DCO、相关 canary、公开边界扫描、PR;保留真实权限门和首屏 PR 证据。 8. **接续:** 一个可执行后继、依赖/阻塞变化、回滚办法;禁止“字段存在/测试通过/有回执”直接推出完整里程碑通过。 能力较弱的执行 Agent 可以在这套合同内修复已定义反例和进行机械迁移。新增 authority、状态机、跨 host 身份、schema 不兼容变化必须由相应 owner 审阅;审阅的是精确 diff、规则及证据,不是 Agent 自评或模型等级。bounded future-facing pass 优先删除重复知识;较大的邻接重构只登记有范围后继。 diff --git a/docs/development/design.md b/docs/development/design.md index de6a453625..cdac3a5601 100644 --- a/docs/development/design.md +++ b/docs/development/design.md @@ -92,8 +92,11 @@ Owner-facing state follows four rules: Review realistic populated, quiet, blocked, and unavailable states on desktop and mobile. Show before/after views, name what earns attention and what was consolidated, and verify keyboard access and return to the original context. -Record this in the PR's visual evidence section. The repository first-screen -preview approval gate still applies. +Put the actual first viewport directly in the PR description's visual evidence +section, with its revision and data/build boundary. Follow the repository's +[First-Screen Review Evidence](../../AGENTS.md#first-screen-review-evidence): +ordinary authorized work reuses prior direction without another user approval; +refresh evidence when the visible result changes. Review proportions as well as typography. Within a workspace view, align the greeting, summaries, work list, and composer to one content frame. An overview diff --git a/docs/development/frontend-delivery.md b/docs/development/frontend-delivery.md index e5ce7329f4..dc05d6cdcb 100644 --- a/docs/development/frontend-delivery.md +++ b/docs/development/frontend-delivery.md @@ -90,8 +90,13 @@ Carry the same task through these steps: Public PR evidence should fit in the existing summary/validation: one short before/after journey, a screenshot or clip for the affected visual composition, and the state readback plus tested revision and limits. Keep private messages, -local paths and raw run logs out. The existing public first-screen preview gate -still applies; do not add user approvals for routine implementation decisions. +local paths and raw run logs out. Put the first viewport directly in the PR +description, including its source/build boundary and a preview link when +available; evidence only in chat or a PR comment is insufficient. Follow +[First-Screen Review Evidence](../../AGENTS.md#first-screen-review-evidence). +Routine authorized refinements and new commits do not require another user +confirmation; ask only for a missing consequential decision or an explicitly +reserved presentation approval. Keep merge/install/release authority separate. For Goal workspace composition, render before and after on the synthetic showcase workspace (`LOOPX_PERSONAL_WORKSPACE_SCENARIO=goal-showcase node