Skills and rules for the NanoClaw host agent (Claude Code on Mac). Tile promotion, container management, staging checks, repo chain safety, and public sync.
97
97%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
When you summon a Copilot review via the GraphQL requestReviews mutation (see the ship-code and promote skills for the full lifecycle and the exact GraphQL call) and the review hasn't started within 10 minutes, post a follow-up PR comment that tags @copilot to re-activate it.
GitHub's requestReviews call puts Copilot on the PR as a requested reviewer but doesn't always translate into an actual review pass — the bot's queue goes stale silently. The PR UI shows copilot-pull-request-reviewer in the "requested reviewers" pane for hours while no work happens. A @copilot mention in the PR's conversation reliably re-activates the review.
Observed on 2026-04-20: four admin/core PRs had been summoned via GraphQL and sat idle for 2+ hours; posting @copilot review (or a similar tagged comment) got a response within ~30 seconds on every one.
Track each PR's last-summon timestamp alongside the existing review-state watching. The review timestamp you compare against must be Copilot's latest review specifically — a human review landing mid-cycle would otherwise suppress the nudge even when Copilot's queue is still stale. Treat "no prior Copilot review" as eligible (null/0 is older than any commit). If the condition
now - last_summon > 10 minutes
AND (latest_COPILOT_review_time is null OR latest_COPILOT_review_time < latest_commit_time)holds, post a comment:
# Pull only Copilot's reviews, not any reviewer's. `--paginate` is
# important: gh's default page size is 30, and long-running PRs
# accumulate many review rounds (mine + Copilot's + any humans') so
# the latest Copilot review can fall off the first page and get
# silently missed.
latest_copilot=$(gh api --paginate repos/<owner>/<repo>/pulls/<n>/reviews \
--jq '[.[] | select(.user.login | contains("opilot")) | .submitted_at] | max // ""')
if [ -z "$latest_copilot" ]; then
# Never reviewed — asking for a first pass, not a re-review.
body="@copilot review
Summoned via GraphQL earlier but no review has landed yet. Please take a look."
else
# Prior review exists and is older than the latest commit — ask for
# a re-review on the current state.
body="@copilot review
Summoned via GraphQL earlier — the requested changes from your previous pass are addressed in the latest commit on this branch. Please re-review."
fi
gh pr comment <n> --repo <owner>/<repo> --body "$body"Then reset the summon timestamp for that PR so the nudge doesn't re-fire until another 10 min have passed.
Every repo in the chain — core, admin, trusted, untrusted, host, public, private. Applies anywhere copilot-pull-request-reviewer is a reviewer on an open PR.
@copilot comments with nothing between them).requested_reviewers list first).