auto-mobile-code-review
Use this workflow skill to review an AutoMobile change (a PR number or the current branch diff) the way this repo demands — check the PR's real CI, merge and…
Skill by kaeawc
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/kaeawc-auto-mobile-code-review-4d92d8
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: devops, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
auto-mobile-code-review- Description
- Use this workflow skill to review an AutoMobile change (a PR number or the current branch diff) the way this repo demands — check the PR's real CI, merge and base state first, then run diff-sized review lenses (two fixed, one generated) covering runtime behavior and delivery/enforcement, grounding every finding in file:line and reproducing before asserting. Never posts to GitHub; resolves review threads only on a PR we authored and are actively working.
- License
- Apache-2.0
- Instructions
- 461 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- files: referenced but missing: scripts/generate-tool-definitions.ts, scripts/all_fast_validate_checks.sh
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# AutoMobile Code Review
Review a change — a PR (its number passed as the argument) or, with no argument, the current branch's
diff vs `origin/main`. Few verified findings beat many plausible ones.
**Never post to GitHub.** No review comments, reviews, or summaries. Report findings in the
session. The only permitted GitHub write is resolving a review thread, under the conditions in
_Working our own PR_.
Review against the author's intent and the issue the change serves, not the diff in isolation.
Ask rather than assert when genuinely unsure — sometimes you missed something. Name what's
genuinely good in a sentence; never manufacture it.
## Step 0 — Resolve the diff base
Everything below reuses `$BASE`, so establish it first. Which base is correct depends on the
mode, and getting it wrong silently scopes the review to the wrong commits:
```bash
git fetch origin main
# PR mode — the local checkout is usually NOT the PR branch, so HEAD is unrelated to it.
# The leading + forces the update: without it, re-fetching after a force-push is rejected
# non-fast-forward and Step 0 fails before refreshing anything.
git fetch origin "+pull/<PR>/head:refs/remotes/pr/<PR>"
BASE=$(git merge-base "refs/remotes/pr/<PR>" origin/main)
DIFF_ARGS=("$BASE" "refs/remotes/pr/<PR>") # two endpoints: the PR head, not your tree
# Branch mode — one endpoint, so the diff includes uncommitted work. Naming HEAD as a
# second endpoint would silently drop every working-tree edit.
BASE=$(git merge-base HEAD origin/main)
DIFF_ARGS=("$BASE")
```
Use `"${DIFF_ARGS[@]}"` for every diff below. The distinction is not cosmetic: in branch mode a
two-endpoint diff omits exactly the uncommitted changes the review is supposed to cover.
Both obvious branch-mode alternatives are wrong in a common case: `origin/main...HEAD` (three
dots) is committed work only and reports **zero files** against a dirty tree, silently scoping
the review to nothing; `git diff origin/main` (no dots) picks up uncommitted work but, when the
branch is behind main, folds main's newer commits in as reverse-diffs.
## Step 1 — Establish the change's real state, before reading code
Most escaped defects here were already red on the PR itself. These checks take seconds and
frequently end the review.
```bash
gh pr checks <N> --json name,state,bucket,link
gh pr view <N> --json mergedAt,mergeable,mergeStateStatus,baseRefOid,headRefOid,autoMergeRequest,statusCheckRollup
```
- **Any `failure` blocks — required or not.** Automerge lands PRs over non-required failures:
[#3969](https://github.com/kaeawc/auto-mobile/pull/3969) auto-merged with `Build Xcode Projects`, `XCTestRunner Simulator Tests`, and `iOS Build`
red, the pbxproj drift check having worked exactly as designed while the merge gate never
consulted it.
- **Unfinished checks with automerge armed block equally.** [#4088](https://github.com/kaeawc/auto-mobile/pull/4088) merged five seconds before
`Swift Packages (Xcode 26.5)` concluded failure. For a merged PR, verify gates concluded
_before_ the merge:
```bash
gh api repos/kaeawc/auto-mobile/commits/<headRefOid>/check-runs?per_page=100 \
--jq '.check_runs[] | "\(.name)\t\(.conclusion)\t\(.completed_at)"'
```
Any `completed_at` at or after `mergedAt` means the gate did not gate.
- **Green is only as current as the base it ran on.** Use the Step 0 `$BASE` — the merge-base
— rather than `baseRefOid`. `$BASE` is computed from the commit graph, so it answers the
question that actually matters (what was this head built on top of?) without depending on
when GitHub refreshes a metadata field, it stays correct when a branch integrates main via a
_merge_ rather than a rebase, and it works identically in branch mode, where there is no
`baseRefOid` at all. In practice the two agree — measured on
[#4106](https://github.com/kaeawc/auto-mobile/pull/4106) (both `abd432675`, 11 behind) and
[#4041](https://github.com/kaeawc/auto-mobile/pull/4041) (both `333c9923e`, 15 behind) — but
only one of them is correct by construction.
Cross-check against GitHub's own count, which needs no interpretation at all:
```bash
gh api "repos/kaeawc/auto-mobile/compare/main...<headRefOid>" --jq '.behind_by'
```
If `$BASE` differs from `origin/main` (equivalently, `behind_by > 0`):
```bash
# --format= suppresses commit messages, so only paths print.
git log "$BASE"..origin/main --name-only --format= -- \
.github/workflows scripts/all_fast_validate_checks.sh \
android/build.gradle.kts android/gradle/libs.versions.toml \
eslint.config.* eslint-suppressions.json | sort -u
```
Any hit means rebase-and-re-run, not approval. [#4016](https://github.com/kaeawc/auto-mobile/pull/4016) went green at 05:44, [#4005](https://github.com/kaeawc/auto-mobile/pull/4005) turned on the
detekt gate at 05:48, [#4016](https://github.com/kaeawc/auto-mobile/pull/4016) auto-merged at 05:49 — reddening main. Its `Fast Validation` job
had no `Run detekt` step at all.
- **Run the tests the diff changed.** [#4070](https://github.com/kaeawc/auto-mobile/pull/4070) landed a deterministically-red assertion because a
refactor moved argv construction and updated one of two sibling tests. Use the Step 0 `$BASE`, so uncommitted test edits are included, and guard the empty case explicitly rather
than relying on `xargs -r` (GNU-only on older macOS and other BSDs):
```bash
changed_tests=$(git diff --name-only "${DIFF_ARGS[@]}" -- 'test/**/*.test.ts')
[ -n "$changed_tests" ] && bun test $changed_tests
```
Pull the failing _job's_ log, not the whole run — a finished job's log is readable while the run
continues (see `github-cli`).
**Classify each red result before treating it as a finding**: PR-caused, pre-existing on main,
transient/infrastructure, or unproven — grounded in the job log, changed paths, and current
`origin/main`. Never recommend a code change for an unrelated or unproven failure, but do name
it in the summary. Flag one check name appearing twice on the head SHA with different
conclusions: a stale cancelled run beside a fresh green one silently parks automerge.
## Step 2 — Scope and size the diff
`git fetch origin main` first. With a PR: `gh pr view <N> --json
title,body,headRefOid,files,closingIssuesReferences`, `gh pr diff <N>`, then read the changed
files on disk and the issue it claims to close — a reviewed head can differ from what
squash-**merged**, and a "fix" PR can merge test-only, so check `git log origin/main` for what
actually landed. With no argument, review committed _and_ uncommitted work; read changed files
in full, since the hunk lies by omission.From kaeawc/auto-mobile, Apache-2.0.
More from kaeawc/auto-mobile
- 0.789score
AutoMobile
jasonpearson.dev
Mobile device interaction automation.
ConnectorAFreshness: ALocal★ 52↓ 2.9K/wkClaude Code +5 - 0.664score
fan-out-fan-in
kaeawc
Use this workflow skill only when the user wants explicit parallelization or the task should be split into isolated worktrees and merged back without separate…
SkillAFreshness: A★ 52Claude Code +9 - 0.664score
research
kaeawc
Use this skill to conduct deep parallel research on a topic using web searches and available tools.
SkillAFreshness: A★ 52Claude Code +9 - 0.664score
ship-issue
kaeawc
Drive one GitHub issue to a merged PR via TDD, autonomously by default — interrupting the user only on review-feedback thrashing or an approach pivot — with a…
SkillAFreshness: A★ 52Claude Code +9 - 0.664score
github-cli
kaeawc
Helper skill for GitHub operations in this repo; use it when another workflow needs gh for PRs, issues, review threads, checks, Actions runs, or job logs —…
SkillAFreshness: A★ 52Claude Code +9 - 0.664score
dead-code
kaeawc
Use this skill to detect and clean up dead code in this repo, starting with the project’s TypeScript dead-code scripts and validating that removals do not…
SkillAFreshness: A★ 52Claude Code +9 - 0.661score
push-my-prs
kaeawc
Use this workflow skill to iterate through multiple open PRs authored by the current user, address feedback and CI issues, and push follow-up fixes across the…
SkillAFreshness: A★ 52Claude Code +9 - 0.661score
push-pr
kaeawc
Canonical repo workflow for publishing one branch or PR: confirm scope, validate, commit, push, create or update the PR with preserved Markdown, and…
SkillAFreshness: A★ 52Claude Code +9 - 0.661score
check-ci
kaeawc
Use this workflow skill for PR CI triage: inspect pending and failed checks for the exact PR head, read live or completed job logs and artifacts, classify…
SkillAFreshness: A★ 52Claude Code +9 - 0.661score
pr-analysis
kaeawc
Use this workflow skill for a deep, read-only PR review covering intent, code quality, regression risk, test gaps, and feedback status; prefer it over…
SkillAFreshness: A★ 52Claude Code +9 - 0.660score
android-gradlew
kaeawc
Helper skill for Android-specific validation or build work in the android/ subdirectory; use it when another task needs Gradle wrapper commands run from…
SkillAFreshness: A★ 52Claude Code +9 - 0.659score
observe
kaeawc
Use this skill to inspect the current state of a connected mobile device through the AutoMobile observe capability and summarize the active app, visible UI…
SkillAFreshness: A★ 52Claude Code +9
Signals
- Stars
- 52
- Forks
- 7
- Open issues
- 510
- Contributors
- 20
- Last commit (this folder)
- Oct 23, 2026 (6 days ago)
- Last release
- Oct 19, 2026 (10 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/kaeawc/auto-mobile
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from kaeawc
- 0.664score
research
kaeawc
Use this skill to conduct deep parallel research on a topic using web searches and available tools.
SkillAFreshness: A★ 52Claude Code +9 - 0.664score
ship-issue
kaeawc
Drive one GitHub issue to a merged PR via TDD, autonomously by default — interrupting the user only on review-feedback thrashing or an approach pivot — with a…
SkillAFreshness: A★ 52Claude Code +9 - 0.664score
github-cli
kaeawc
Helper skill for GitHub operations in this repo; use it when another workflow needs gh for PRs, issues, review threads, checks, Actions runs, or job logs —…
SkillAFreshness: A★ 52Claude Code +9 - 0.664score
dead-code
kaeawc
Use this skill to detect and clean up dead code in this repo, starting with the project’s TypeScript dead-code scripts and validating that removals do not…
SkillAFreshness: A★ 52Claude Code +9 - 0.664score
fan-out-fan-in
kaeawc
Use this workflow skill only when the user wants explicit parallelization or the task should be split into isolated worktrees and merged back without separate…
SkillAFreshness: A★ 52Claude Code +9 - 0.661score
check-ci
kaeawc
Use this workflow skill for PR CI triage: inspect pending and failed checks for the exact PR head, read live or completed job logs and artifacts, classify…
SkillAFreshness: A★ 52Claude Code +9
Cite this page
auto-mobile-code-review skill. Agent Mart. https://agentmart.dev/skills/kaeawc-auto-mobile-code-review-4d92d8 (last updated 2026-10-24)