{"id":"9c78cdc6-38cd-4d44-b398-bf45cca77539","shortId":"9LkfsY","kind":"skill","title":"push","tagline":"Push approval protocol, branch naming, merge request descriptions, and post-push CI watching","description":"## Before pushing\n\n1. **Check the branch name** via your `branching` capability. Rename auto-generated worktree branches (e.g., `opencode/cosmic-wizard`) to `<type>/<short-description>` matching the commit type, 2-4 kebab-case words.\n2. **Run the full local test suite.** Fix failures before pushing.\n3. **Show a summary of unpushed commits in chat** via your `branching` capability — branch name, commit subjects, one per line.\n\n## After push — draft merge request\n\nCreate or update a draft merge request via your `source-control` capability. If none exists, create one from the branch commits. If one exists, update title/body only when the change is material (new feature scope, different fix, renamed component, changed API) — skip minor additions like tests/docs/formatting. Never change draft↔ready state.\n\n**Description format:** 1-2 sentence summary, only add detail if non-obvious. Link the issue when the tracker is visible to the repo's audience (e.g., `Closes #123`). Skip headers, bullet lists, and implementation details obvious from the diff. **Never reference internal/private issue keys in public repos** — instead, update the issue with a link to the merge request via your `issues` capability. Check repo visibility via your `source-control` capability.\n\nExample:\n```\nAdds retry logic for flaky external API calls. Closes #123\n```\n\n## After draft merge request — trigger automated review and watch CI in parallel\n\nIf your `automated-review` capability is available for this repo, trigger it *in parallel* with watching CI. Iterate on the combined feedback from both — don't wait for one before responding to the other.\n\nWatch CI to completion via your `ci` capability. Do not hand back to the user before both CI and automated review have completed.\n\n1. Trigger automated review (if configured) and start polling CI every 30s in parallel.\n2. As findings arrive from automated review, address them. As CI failures arrive, fix the root cause.\n3. Both fixes flow through `commit` then `push`, returning to step 1 of this iteration loop.\n4. On all-pass from CI *and* either no automated review or all findings addressed, report success with a markdown link to the merge request — never the bare number.\n\nKeep iterating until both CI is green and automated review feedback is resolved. Do not give up after one fix attempt.","tags":["push","dotfiles","athal7","agent-skills"],"capabilities":["skill","source-athal7","skill-push","topic-agent-skills"],"categories":["dotfiles"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/athal7/dotfiles/push","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add athal7/dotfiles","source_repo":"https://github.com/athal7/dotfiles","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 6 github stars · SKILL.md body (2,337 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:14:35.672Z","embedding":null,"createdAt":"2026-05-18T13:22:30.900Z","updatedAt":"2026-05-18T19:14:35.672Z","lastSeenAt":"2026-05-18T19:14:35.672Z","tsv":"'-2':137 '-4':41 '1':18,136,287,329 '123':162,216 '2':40,46,301 '3':57,318 '30s':298 '4':334 'add':141,207 'addit':126 'address':308,349 'all-pass':336 'api':123,213 'approv':3 'arriv':304,313 'attempt':384 'audienc':159 'auto':29 'auto-gener':28 'autom':222,232,283,289,306,344,372 'automated-review':231 'avail':236 'back':275 'bare':362 'branch':5,21,25,32,68,70,102 'bullet':165 'call':214 'capabl':26,69,94,196,205,234,271 'case':44 'caus':317 'chang':112,122,130 'chat':65 'check':19,197 'ci':14,226,246,265,270,281,296,311,340,368 'close':161,215 'combin':250 'commit':38,63,72,103,323 'complet':267,286 'compon':121 'configur':292 'control':93,204 'creat':82,98 'descript':9,134 'detail':142,169 'diff':173 'differ':118 'draft':79,86,131,218 'e.g':33,160 'either':342 'everi':297 'exampl':206 'exist':97,106 'extern':212 'failur':54,312 'featur':116 'feedback':251,374 'find':303,348 'fix':53,119,314,320,383 'flaki':211 'flow':321 'format':135 'full':49 'generat':30 'give':379 'green':370 'hand':274 'header':164 'implement':168 'instead':182 'internal/private':176 'issu':149,177,185,195 'iter':247,332,365 'kebab':43 'kebab-cas':42 'keep':364 'key':178 'like':127 'line':76 'link':147,188,355 'list':166 'local':50 'logic':209 'loop':333 'markdown':354 'match':36 'materi':114 'merg':7,80,87,191,219,358 'minor':125 'name':6,22,71 'never':129,174,360 'new':115 'non':145 'non-obvi':144 'none':96 'number':363 'obvious':146,170 'one':74,99,105,258,382 'opencode/cosmic-wizard':34 'parallel':228,243,300 'pass':338 'per':75 'poll':295 'post':12 'post-push':11 'protocol':4 'public':180 'push':1,2,13,17,56,78,325 'readi':132 'refer':175 'renam':27,120 'repo':157,181,198,239 'report':350 'request':8,81,88,192,220,359 'resolv':376 'respond':260 'retri':208 'return':326 'review':223,233,284,290,307,345,373 'root':316 'run':47 'scope':117 'sentenc':138 'show':58 'skill' 'skill-push' 'skip':124,163 'sourc':92,203 'source-athal7' 'source-control':91,202 'start':294 'state':133 'step':328 'subject':73 'success':351 'suit':52 'summari':60,139 'test':51 'tests/docs/formatting':128 'title/body':108 'topic-agent-skills' 'tracker':152 'trigger':221,240,288 'type':39 'unpush':62 'updat':84,107,183 'user':278 'via':23,66,89,193,200,268 'visibl':154,199 'wait':256 'watch':15,225,245,264 'word':45 'worktre':31","prices":[{"id":"0af43d66-9629-48a2-b09a-c617aec71688","listingId":"9c78cdc6-38cd-4d44-b398-bf45cca77539","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"athal7","category":"dotfiles","install_from":"skills.sh"},"createdAt":"2026-05-18T13:22:30.900Z"}],"sources":[{"listingId":"9c78cdc6-38cd-4d44-b398-bf45cca77539","source":"github","sourceId":"athal7/dotfiles/push","sourceUrl":"https://github.com/athal7/dotfiles/tree/main/skills/push","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:30.900Z","lastSeenAt":"2026-05-18T19:14:35.672Z"}],"details":{"listingId":"9c78cdc6-38cd-4d44-b398-bf45cca77539","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"athal7","slug":"push","github":{"repo":"athal7/dotfiles","stars":6,"topics":["agent-skills"],"license":null,"html_url":"https://github.com/athal7/dotfiles","pushed_at":"2026-05-18T18:53:57Z","description":null,"skill_md_sha":"cb0f15074fc21c929806bc9a2266043eb67ac2f6","skill_md_path":"skills/push/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/athal7/dotfiles/tree/main/skills/push"},"layout":"multi","source":"github","category":"dotfiles","frontmatter":{"name":"push","license":"MIT","description":"Push approval protocol, branch naming, merge request descriptions, and post-push CI watching"},"skills_sh_url":"https://skills.sh/athal7/dotfiles/push"},"updatedAt":"2026-05-18T19:14:35.672Z"}}