Skip to content

fix(skills): mobile-mock no double phone chrome#81

Merged
hqhq1025 merged 1 commit intomainfrom
wt/loop-fix-mobile-mock-no-chrome
Apr 19, 2026
Merged

fix(skills): mobile-mock no double phone chrome#81
hqhq1025 merged 1 commit intomainfrom
wt/loop-fix-mobile-mock-no-chrome

Conversation

@hqhq1025
Copy link
Copy Markdown
Collaborator

用户反馈:要 mobile prototype 时模型画手机壳,我们 PhoneFrame 又裹一层 → 双层套娃。改 skill 让模型只画屏幕内容。

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Findings

  • [Major] mobile-mock rules now conflict on whether to render iOS chrome — this can cause unstable generation behavior (sometimes adding/removing status bar/home indicator unpredictably), evidence packages/core/src/skills/builtin/mobile-mock.md:19, context conflict at packages/core/src/skills/builtin/mobile-mock.md:45.
    Suggested fix:
    Output only screen contents by default. Do not render device frame/status-bar/home-indicator unless the user explicitly asks for phone chrome.
    
    Even when chrome is omitted, preserve safe areas in layout using `env(safe-area-inset-top)` and `env(safe-area-inset-bottom)`.

Summary

  • Review mode: initial
  • 1 issue found in modified content. Also, docs/VISION.md and docs/PRINCIPLES.md: Not found in repo/docs, so policy cross-check was limited to available repo context.

Testing

  • Not run (automation)
  • Suggested coverage: add/update a prompt-level regression test asserting mobile-mock output forbids status-bar/home-indicator markup by default and allows it only when explicit frame intent is present.

open-codesign Bot


### Viewport and Frame
Render mobile screens at **375×812px** (iPhone SE / standard size baseline) or **390×844px** (iPhone 14 standard) inside a device frame when showing a standalone mock. For scrollable content mocks, use `max-width: 390px; margin: 0 auto`. Do not render at desktop width and then scale down — it produces wrong touch target proportions.
Output **only the screen contents** as if filling a 375×812 viewport (or 390×844 for iPhone 14+). The hosting environment provides the device frame, status bar, and home indicator — DO NOT render them yourself.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Major] This new "host provides chrome" rule conflicts with later guidance that tells the model to show a static status bar row. Please make the conditions explicit (default no chrome; explicit user intent allows chrome) and keep only safe-area layout rules by default.

Suggested fix:

Output only screen contents by default. Do not render device frame/status-bar/home-indicator unless user explicitly asks for phone chrome.
Even when chrome is omitted, preserve safe areas via `env(safe-area-inset-top)` / `env(safe-area-inset-bottom)`.

@hqhq1025 hqhq1025 merged commit a1f80bc into main Apr 19, 2026
5 of 6 checks passed
@hqhq1025 hqhq1025 deleted the wt/loop-fix-mobile-mock-no-chrome branch April 19, 2026 05:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant