fix: surface UI content warnings in skill preflight - #145
Merged
Merged
Conversation
Signed-off-by: Sunset <sunsetwan@gmail.com>
Signed-off-by: Sunset <sunsetwan@gmail.com>
# Conflicts: # CHANGELOG.md
A successful `ui` read with no elements still reported "All checks passed". This is the worse form of the missing-controls case: the remote-content retry found nothing, so no advisory is set. Preflight now gives the same content warning for it. Physical iOS reads are excluded because their `entries` list is always empty. The guidance moves from the Preflight section of SKILL.md into the Pitfalls symptom index, next to the other `[i]` advisories, because the advisory can appear on any `ui` read. The pitfall now covers both the recovered and the empty outline. The tests use real advisory kinds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: onevcat <onevcat@gmail.com>
Only physical iOS reads have an empty `entries` list by design. Today, only those reads set `kind`, but the check now names the iOS platform. If a later change adds `kind: physical` to Android reads, an empty Android outline still gets the warning. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: onevcat <onevcat@gmail.com>
Contributor
Author
|
Review round 1
|
Contributor
Author
|
Review round 2
|
Contributor
Author
|
Review round 3: clean, with no new findings. R1-P1 and R2-P2 are confirmed resolved. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersedes #139 by @SunsetWan. This branch starts from the #139 head, so the original commits stay unchanged. Merge with a merge commit (not squash or rebase). Then #139 also shows as merged.
From #139
When
uireturnsok: truewith aremote_content_recoveryadvisory, preflight now prints a content warning instead of "All checks passed". The exit code stays0. The warning asks the agent to compare the outline with the screen. On an iOS simulator, it also points atApplicationAccessibilityEnabled, which an app reads at launch.Added on top
mainto resolve theCHANGELOG.mdconflict.entrieslist is always empty, and the outline text is the payload.SKILL.mdinto the Pitfalls symptom index, next to the other[i]advisories, because the advisory can appear on anyuiread. The pitfall is renamed to Missing app controls in the outline and covers both cases.orientation_calibration_fallback,full_screen_tap_target) and add empty-outline cases for iOS, Android and physical iOS.Validation
swift test --filter PreflightScriptTestspasses (6 tests, 20 cases). The new empty-outline cases fail against the fix: surface remote content recovery in skill preflight #139 script.make test: all 310 XCTest tests pass. In both Swift Testing runs, the only failure wascancellableSleep wakes early when the flag is cancelled(7.1 s against a 5 s bound under full-suite load). It passes in isolation, and fix: surface remote content recovery in skill preflight #139 reported the same flaky failure. This PR changes no Swift sources.🤖 Generated with Claude Code