npx skills add ...
npx skills add openai/symphony --skill land
npx skills add openai/symphony --skill land
Land a PR by monitoring conflicts, resolving them, waiting for checks, and squash-merging when green; use when asked to land, merge, or shepherd a PR to completion.
gh CLI is authenticated.commit skill
and push with the push skill before proceeding.pull skill to fetch/merge origin/main and
resolve conflicts, then use the push skill to publish the updated branch.commit skill,
push with the push skill, and re-run checks.Preferred: use the asyncio watcher to monitor review comments, CI, and head updates in parallel:
Exit codes:
gh pr checks and gh run view --log, then
fix locally, commit with the commit skill, push with the push skill, and
re-run the watch.origin/main if needed, add a real author commit, and force-push to retrigger
CI, then restart the checks loop.origin/main, merge, force-push, and rerun CI.UNKNOWN, wait and re-check.## Codex Review — <persona> issue comments (not job status) as the signal
that review feedback is available.git push --force-with-lease.## Codex Review — <persona> and include the reviewer’s
methodology + guardrails used. Treat these as feedback that must be
acknowledged before merge.gh api and reply with a prefixed comment.in_reply_to must be the numeric review comment id (e.g., 2710521800), not
the GraphQL node id (e.g., PRRC_...), and the endpoint must include the PR
number (/pulls/<pr_number>/comments).[codex].[codex] and state whether you will address the feedback now or
defer it (include rationale).[codex] ...) as an inline reply to the original review comment using
the review comment endpoint and in_reply_to (do not use issue comments for
this).[codex] ...) in the same place
you acknowledged the feedback (issue comment for Codex reviews, inline reply
for review comments).[codex] issue comment is posted acknowledging the findings.[codex] inline
replies).[codex] update with a brief reason (e.g.,
out-of-scope, conflicts with intent, unnecessary).python3 .codex/skills/land/land_watch.py