{"id":"3192f40e-640d-4603-82fe-0b71e2e8c39d","shortId":"FeuCLf","kind":"skill","title":"push-and-watch","tagline":"Push local commits to the remote, ensure a draft PR exists, and monitor the GitHub Actions run until completion. Use when the user says \"push and watch\", \"push it\", or asks to push and monitor CI.","description":"# Push and Watch\n\nPush local commits to the remote and monitor the CI run until completion.\n\n## 1. Pre-flight Checks\n\n- Verify the working tree is clean (`git status`). If there are uncommitted changes, stop and ask.\n- Verify there are local commits ahead of the remote (`git status` should show \"Your branch is ahead\"). If not, report \"nothing to push\" and stop.\n\n## 2. Push\n\n```bash\ngit push -u origin HEAD\n```\n\nIf the push fails (e.g. rejected, no access), stop and report the error.\n\n## 3. Ensure Pull Request Exists\n\nSkip this step if on `main` or `master`.\n\nCheck whether a PR already exists for the current branch:\n\n```bash\ngh pr view --json url 2>/dev/null\n```\n\nIf no PR exists, create one in draft mode:\n\n```bash\ngh pr create --draft --fill\n```\n\nReport the PR URL.\n\n## 4. Wait for Run\n\nWait a few seconds for CI to pick up the push, then list runs for the current branch:\n\n```bash\ngh run list --branch $(git branch --show-current) --limit 1\n```\n\nIf no run appears after 30 seconds of polling, report and stop.\n\n## 5. Watch\n\nUse `gh run watch <run_id> --exit-status` to stream the run status until completion.\n\n## 6. Report\n\nAfter the run completes, report:\n\n- **Status**: passed or failed\n- **Jobs**: list each job with its status and duration\n- **Failures**: if any job failed, fetch its logs with `gh run view <run_id> --log-failed` and include the relevant error output (truncated to the last 50 lines per failed job)\n\nIf the run passed, report success concisely. If it failed, include enough log context to diagnose the failure.","tags":["push","and","watch","skill","issue","paultyng","agent-skills","ai-tools","claude-code","cursor","dotfiles"],"capabilities":["skill","source-paultyng","skill-push-and-watch","topic-agent-skills","topic-ai-tools","topic-claude-code","topic-cursor","topic-dotfiles"],"categories":["skill-issue"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/paultyng/skill-issue/push-and-watch","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add paultyng/skill-issue","source_repo":"https://github.com/paultyng/skill-issue","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (1,541 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:09:01.180Z","embedding":null,"createdAt":"2026-05-18T13:21:26.371Z","updatedAt":"2026-05-18T19:09:01.180Z","lastSeenAt":"2026-05-18T19:09:01.180Z","tsv":"'/dev/null':154 '1':57,207 '2':103,153 '3':124 '30':213 '4':174 '5':220 '50':281 '6':236 'access':118 'action':20 'ahead':83,94 'alreadi':141 'appear':211 'ask':35,77 'bash':105,147,164,196 'branch':92,146,195,200,202 'chang':74 'check':61,137 'ci':40,53,183 'clean':67 'commit':7,46,82 'complet':23,56,235,241 'concis':292 'context':299 'creat':159,167 'current':145,194,205 'diagnos':301 'draft':13,162,168 'durat':255 'e.g':115 'enough':297 'ensur':11,125 'error':123,275 'exist':15,128,142,158 'exit':227 'exit-status':226 'fail':114,246,260,270,284,295 'failur':256,303 'fetch':261 'fill':169 'flight':60 'gh':148,165,197,223,265 'git':68,87,106,201 'github':19 'head':110 'includ':272,296 'job':247,250,259,285 'json':151 'last':280 'limit':206 'line':282 'list':190,199,248 'local':6,45,81 'log':263,269,298 'log-fail':268 'main':134 'master':136 'mode':163 'monitor':17,39,51 'noth':98 'one':160 'origin':109 'output':276 'pass':244,289 'per':283 'pick':185 'poll':216 'pr':14,140,149,157,166,172 'pre':59 'pre-flight':58 'pull':126 'push':2,5,29,32,37,41,44,100,104,107,113,188 'push-and-watch':1 'reject':116 'relev':274 'remot':10,49,86 'report':97,121,170,217,237,242,290 'request':127 'run':21,54,177,191,198,210,224,232,240,266,288 'say':28 'second':181,214 'show':90,204 'show-curr':203 'skill' 'skill-push-and-watch' 'skip':129 'source-paultyng' 'status':69,88,228,233,243,253 'step':131 'stop':75,102,119,219 'stream':230 'success':291 'topic-agent-skills' 'topic-ai-tools' 'topic-claude-code' 'topic-cursor' 'topic-dotfiles' 'tree':65 'truncat':277 'u':108 'uncommit':73 'url':152,173 'use':24,222 'user':27 'verifi':62,78 'view':150,267 'wait':175,178 'watch':4,31,43,221,225 'whether':138 'work':64","prices":[{"id":"32d4302d-ad91-42cd-b2e4-711430572f25","listingId":"3192f40e-640d-4603-82fe-0b71e2e8c39d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"paultyng","category":"skill-issue","install_from":"skills.sh"},"createdAt":"2026-05-18T13:21:26.371Z"}],"sources":[{"listingId":"3192f40e-640d-4603-82fe-0b71e2e8c39d","source":"github","sourceId":"paultyng/skill-issue/push-and-watch","sourceUrl":"https://github.com/paultyng/skill-issue/tree/main/skills/push-and-watch","isPrimary":false,"firstSeenAt":"2026-05-18T13:21:26.371Z","lastSeenAt":"2026-05-18T19:09:01.180Z"}],"details":{"listingId":"3192f40e-640d-4603-82fe-0b71e2e8c39d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"paultyng","slug":"push-and-watch","github":{"repo":"paultyng/skill-issue","stars":8,"topics":["agent-skills","ai-tools","claude-code","cursor","dotfiles"],"license":"mit","html_url":"https://github.com/paultyng/skill-issue","pushed_at":"2026-05-18T18:26:54Z","description":"Personal Claude Code / Cursor agent skills, rules, and config","skill_md_sha":"59db72e14ba180808f459d5fac13d110127d013a","skill_md_path":"skills/push-and-watch/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/paultyng/skill-issue/tree/main/skills/push-and-watch"},"layout":"multi","source":"github","category":"skill-issue","frontmatter":{"name":"push-and-watch","description":"Push local commits to the remote, ensure a draft PR exists, and monitor the GitHub Actions run until completion. Use when the user says \"push and watch\", \"push it\", or asks to push and monitor CI."},"skills_sh_url":"https://skills.sh/paultyng/skill-issue/push-and-watch"},"updatedAt":"2026-05-18T19:09:01.180Z"}}