Repository navigation
Align public entry with goal-first onboarding - #8578
Conversation
Signed-off-by: lusendong.6789 <lusendong.6789@bytedance.com> Co-authored-by: TRAE CLI <traecli@bytedance.com>
cocolord
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
Reviewer: model_agent · TRAE GPT-5 family · TRAE · self_reported
动机 / Motivation
这次复审的 exact head 是 a06afca。问题是 LoopX 的公开默认入口仍容易让第一次接触的用户先看到 control-plane 叙事;对只想让 Codex、Claude Code 或其他 Agent 继续做一件长程工作的用户来说,这会把学习内部机制放在第一个有用动作之前。
Problem context readback: affected_caller_or_operator: First-time LoopX users and reviewers reading the public README, homepage, setup dialog or search/social metadata. before_after_scenario: Before, a user scanning the first screen saw long-running agents and control-plane positioning; after, the same user sees one goal, visible progress and a setup prompt that asks for a natural-language goal. observable_outcome: Rendered homepage, README Quick Start and metadata all present a goal-first entry while developer-book/kernel paths remain reachable. non_goals: This PR does not change CLI/runtime behavior, merge authority, scheduler/quota semantics, or the complete product onboarding journey beyond public entry copy and metadata. remaining_gap: The deeper installed-product onboarding flow still needs later product work to fully match the zero-ritual promise.
该 PR 的边界是公开 README、中文 README、首页默认文案、setup prompt 和 SEO metadata,不改变 CLI/runtime 的执行协议,也不声称完成整个 onboarding 产品闭环。这个 bounded increment 有用的原因是:默认入口先让用户表达一个自然语言目标,再把持久状态、证据和高级内核说明放到需要时展开。
改动思路 / Approach
改动保留现有 Vite public site 和 README 结构,不新增第二个产品入口 owner。入口文案的 authoritative state 仍是 content、setupPrompts 与 pageMetadata,渲染路径仍由现有 React 页面和静态 prerender 消费;README 继续作为 GitHub 首屏和 Quick Start 来源。
Architecture readback: The existing README and public site content owners are the right boundary; this PR changes projection text only, not authority or provider IO. current_pr_boundary: public default entry copy plus metadata, no runtime authority change
高级 developer book 仍保留 control-plane 学习路径,setup prompt 只要求把 LoopX internal terms 放到 advanced/debugging explanation,避免把内部术语从首页换到弹窗里继续成为默认负担。
具体改动 / Changes
本次按 AGENTS.md#first-screen-review-evidence 在 beff0f3 的要求检查,映射的验收点是 FSR-1, ENTRY-1, ADV-1。FSR-1 要求首屏变化有浏览器首屏证据;当前 head 已用 production build 本地预览检查 1440x1000 英文、390x844 英文和 390x844 中文首屏。ENTRY-1 要求默认路径从一个自然语言目标开始;README.md:7、README.zh-CN.md:7、apps/presentation/site/src/App.tsx:73 和 apps/presentation/site/src/App.tsx:192 都把 first contact 改为 one goal/一个目标。ADV-1 要求高级控制面语言仍可到达但不压在默认入口;apps/presentation/site/src/App.tsx:155 到 164 与 274 到 282 保留 developer book/kernel 学习路径,默认 hero/setup/capabilities 则使用 LoopX internals、durable state 和 advanced surfaces 的表达。
关键代码讲解:apps/presentation/site/src/App.tsx:34 的 setupPrompts 是用户点击 Get started 后会复制给 Agent 的真实提示。它现在先检查项目连接,再要求用户给一个自然语言 goal,最后才说明 LoopX internal terms 只在 advanced/debugging explanation 中出现。apps/presentation/site/src/App.tsx:70 的 content 对象是首页 hero、proof strip、lifecycle、capabilities、quickstart 和 footer 的单一文案来源;本 PR 同步英文和中文,让默认阅读路径从 outcome/目标进入,同时保持 advanced developer book 可达。apps/presentation/site/src/page-metadata.ts:26 的 pageMetadata.home 影响 prerendered title、description、OG 和 Twitter metadata;这里从 stateful control plane 改为 one natural-language goal,避免搜索和分享预览仍显示旧定位。README.md:26 与 README.zh-CN.md:25 的 Quick Start 从两步安装加具体任务,改成安装一次后给 Agent 一个自然语言目标,并说明 LoopX 会按需变成任务、gate 与证据。
对主干的风险 / Risks
主要风险不是运行时兼容,而是公开承诺漂移:如果首页说“零仪式感”,但 setup prompt 或 Quick Start 仍要求用户先理解内部机制,就会扩大产品承诺和实际路径之间的落差。负向 walkthrough 检查的是一个只想开始任务的新用户:旧文案会把 control-plane-first 定位放到首屏,新 head 的 hero、README 和 metadata 都先讲 goal;高级路径仍通过 developer book 和后半部架构内容保留,不把内部学习完全移除。
验证覆盖了 production build、SEO smoke、两个 SEO base、delegation test、premerge canary 和 public/private boundary scan;远端 GitHub CI 在 review 时仍有 queued/pending job,作为 merge-readiness hold 记录,不作为 changed invariant 的唯一证据。没有新增 schema、权限、调度或默认自动执行路径,所以 default-off isolation 对此 PR 判为 not_applicable。
语义与 CI 对齐
本 PR 复用既有 public site/README 入口,没有新增 enum、Literal、protocol id 或 shared typed vocabulary。semantic_alignment 判为 not_applicable,因为它调整的是 public copy 和 metadata,不扩展控制面协议;guidance_vs_obligation 的机器后果也未变化。CI 方面,本地 uv run --extra test loopx canary premerge --from-git-diff --git-diff-base origin/main 已通过并包含 rfc_bilingual_diff 与 public boundary;GitHub queued checks 需要 merge-readiness 再读,不改变本 review 的 APPROVE 结论。
我的整体评价 / Verdict
APPROVE。problem_context 的 long_horizon 和 user_experience 都是 improved:用户现在能从一个目标进入,下一轮延续、证据和恢复仍作为 LoopX 承诺保留。visual_review: Desktop English, narrow English and narrow Chinese first screens were inspected from the packaged Vite build; headline, body, CTAs and next-section hints fit without overlap. visual_unverified_scope: Remote deployment preview and GitHub-hosted screenshot attachment were not exercised; the rendered packaged local build was inspected.
code_volume 判为 necessary:四个公开入口文件是同一叙事面,未引入新 abstraction;change_proportionality 判为 proportionate,current_pr_boundary: public default entry copy plus metadata, no runtime authority change。剩余风险是文案承诺需要后续真实 onboarding flow 继续兑现,但这个 exact head 对当前 bounded slice 已经足够完整。
English verdict: APPROVE - exact head a06afca aligns the public default entry with goal-first onboarding, keeps advanced kernel language reachable, and passes local build, SEO smoke, delegation test, visual first-screen inspection, and LoopX premerge canary; remote CI remains a merge-readiness hold, not a review blocker.
|
Merge decision for exact head a06afca. Authority: maintainer/user authorization in this task allowed merging clearly positive work after normal quality gates. This uses admin bypass only for the current GitHub status-check policy hold; it does not bypass review evidence, local validation, head matching, mergeability, or review-thread checks. Changed surfaces: public README, Chinese README, presentation-site home copy/setup prompt, and home SEO metadata. No runtime authority, scheduler/quota, schema, provider IO, or persisted-state semantics changed. Exact-head review: COMMENTED approval conclusion was published and read back on the same head. GitHub reviewDecision now reads APPROVED and there are no unresolved review threads. Validation run before merge: npm ci, npm run build, npm run smoke:seo, npm run smoke:seo:bases, npm run test:delegation, git diff --check, and uv run --extra test loopx canary premerge --from-git-diff --git-diff-base origin/main all passed for the reviewed diff. The premerge gate reported merge_gate_passed=true with selected=13 and failures=0. Remote CI status at decision time: prepare and Summary passed, cancel-obsolete-pr skipped, and the remaining checks were still queued/pending after a bounded wait. No remote failure was observed. The queued Sign-off check is covered by the exact commit body carrying Signed-off-by: lusendong.6789 lusendong.6789@bytedance.com. Why coverage is sufficient: the changed invariant is public entry copy/metadata and first-screen presentation. The packaged Vite build, SEO smokes, delegation test, visual first-screen inspection, public/private boundary premerge, and exact-head review cover that invariant directly. The remaining queued checks are a merge-readiness hold, not missing evidence for this bounded change. |
Goal
Align LoopX's public/default entry with the zero-ritual experience: first contact should start from one natural-language goal, while deeper control-plane language stays in advanced/developer surfaces.
Changes
Visual evidence
a06afca223b23da3536cb2a299192c6ffcf62115.Validation
npm run buildnpm run smoke:seonpm run smoke:seo:basesnpm run test:delegationuv run --extra test loopx canary premerge --from-git-diff --git-diff-base origin/main-> passed,merge_gate_passed=true