devarfeen/agent-skills-kit

commit-push-pr

Ship one iteration of issue work as a pull request — commit with a structured message, push the branch, and open a PR whose Closes N auto-closes the issue on merge; creates the issue inline when none exists.

소스 보기

사용 방법

  1. 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
  2. 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
  3. 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/devarfeen/agent-skills-kit --skill commit-push-pr

시작 전 확인

  • 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
  • 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

commit-push-pr

This skill ends in a PR awaiting review with a QA comment. /commit-push-close closes the issue directly. GitHub closing keywords take effect on merge into the repository's default branch; other targets need the workspace's issue-completion workflow.

Issue commands show the GitHub default; a workspace-named tracker overrides them per Tracker in references/ship-policy.md.

Shared ship policy

Read `references/ship-policy.md` first — it holds every shared ship rule the steps below cite by bold section name, Read state through the Response footer. This SKILL.md only covers what is specific to opening a PR.

PR title and body

Title mirrors the commit subject.

Body:

Closes #<num>

## Summary
<one or two sentences — what changed and why>

## Where changed
<product location and meaningful repo-relative paths, with what changed in each>

## Decisions
- <only non-obvious choices; omit section if none>

## How to test
1. <step>
2. <step>
3. <expected result>

## Notes
- <follow-ups or known gaps; omit section if none>

How to test follows How-to-test rules, including setup, expected results and actual verification status. Also draft a separate PR comment using that policy's complete QA handoff template. Keep the body and comment consistent. Zero attribution: never add or leave co-author, AI, or tool attribution in commits, PRs, issues, or comments.

For a default-branch PR, Closes #N is mandatory near the top. Multiple issues each need a closing keyword. For a permitted non-default target, use an ordinary issue reference and explain when the workspace completes it; never promise automatic closure there.

Workflow

Emit Stage / Found / Next / Needs user at each phase transition — one line per field.

  1. Read state — resolve the task checkout through Worktree handoff, then run Read state in the shared policy. Resolve the PR base from explicit user/workspace instructions, then an existing PR, then the detected default. Stop on conflicts or a prohibited production target; never default into a forbidden branch.

Then apply Code review: unless /code-review already ran this session on this diff, ask "Run /code-review on this diff first (recommended), or ship without review?" A review with findings to fix stops shipping here.

  1. Resolve or create the issue — branch name → recent commits → conversation context. If none, use Inline issue creation for valid small ad hoc work. Create only after step 7 approval, then insert the actual number into the commit and PR issue reference.
  1. Read issue labels — run gh issue view <num> --json state,labels,title,url,body and apply Label validation, including its taxonomy-absence fallback. Stop states route to /triage. Already CLOSED → stop and ask whether to reopen or target another issue; never open a PR against an issue that will remain closed. Inline creation includes its own read-back.
  1. Branch handling — if the current branch is the detected default branch (main/master):
  • Stop before staging anything.
  • Propose issue/<issue-num>-<slug> (<slug>: short kebab-case from the issue title, ≤ 5 words). An inline-drafted issue has no number yet — propose issue/<slug>; the PR's Closes #<num> line does the linking, not the branch name.
  • Wait for the user to confirm the name (offer to edit). If the user is away, proceed with the proposed name — step 7's combined approval remains the hard gate.
  • git checkout -b <branch> — uncommitted changes follow the checkout.

Otherwise, continue on the current branch.

  1. Draft the commit message from the issue title and diff, per Commit message format and Naming anchor.
  1. Draft the PR and QA comment — title mirrors the commit subject. Follow How-to-test rules and run the applicable local pass/fail checks now. Quote the decisive result in both drafts and mark unperformed manual checks pending. Verify each issue Acceptance criteria item by automated test or, for browser-visible behavior, a headless browser run, and put the acceptance report in the QA comment; an unmet criterion stops shipping unless the user defers it. A failure stops shipping; an unclear plan requires the missing information.

Before presenting drafts, run the Authorship policy scrub and, if env files/keys changed, the Env parity policy sync pass.

  1. Show the user the drafts and wait for one combined approval. Do not stage, push, or call gh pr create before approval:
  • Existing issue: commit message + PR title/body + QA comment + target branch.
  • Inline-created issue: also include new-issue title/body and category/state labels. After approval, create the issue first, then commit/push/PR/comment in order.

This approval is a deliberate hard gate before any remote write. If the user is away, present the drafts and stop — never stage, push, or open a PR unapproved.

  1. Pre-commit safety — apply every check in Pre-commit safety before staging.
  1. Commit using the quoted-HEREDOC form in Commit message format.
  1. Push the current branch:
  • Tracks a remote → git push.
  • No upstream → git push -u origin <branch>.
  • Verify the intended remote branch SHA as required by Read state. A rejected or mismatched push stops PR creation/edit and commenting.
  1. Open or update the PR against the permitted base resolved in step 1. Test evidence must cover the committed content; rerun when content changed, not merely because timing output differs. A failed check stops publication. Save the final body to a file, then:
bash
    gh pr create \
      --base "<resolved-base>" \
      --head "<current-branch>" \
      --title "<subject>" \
      --body-file <pr-body-file>.md
  • Check for an existing PR first with gh pr list --head <branch> --json number,baseRefName,headRefName. Update the matching PR using gh pr edit <num> --body-file <pr-body-file>.md; resolve ambiguous matches instead of guessing. Preserve unrelated human-authored body sections.
  • Read back with gh pr view <pr-num> --json title,body,baseRefName,headRefName,url. Verify title, issue reference, resolved base, current head and test plan. Correct mismatches and re-read.
  • Fill the QA comment with the actual SHA, branch and PR URL. Post using gh pr comment <pr-num> --body-file <qa-comment-file>.md, then read back with gh pr view <pr-num> --json comments and verify the body and URL. Apply the shared comment retry rule. A failed comment leaves the PR created but QA handoff incomplete; report and resume the missing step.
  1. Report — <SHA> pushed to <branch>; PR #<pr-num> opened/updated against <base>; QA: <comment URL>. State the actual issue-completion behavior and any incomplete step. Append the Response footer. Stop before merge or direct issue closure.

Example

The matching commit message lives in Commit examples (issue #418). Optional sections (Decisions, Notes) are simply omitted when empty.

PR title: add idempotency keys to checkout flow

PR body:

Closes #418

## Summary
Checkout charges are now idempotent on `x-request-id`; replays return the original result instead of double-charging.

## Where changed
`POST /checkout`, implemented in `server/checkout/handler.ts`; replay tests in `server/checkout/handler.test.ts`.

## Decisions
- Stored keys in Redis (24h TTL) over Postgres — the read path is hot
- Reused existing `x-request-id` header instead of a new one

## How to test
Setup: run this branch locally with a test account and the repo's payment sandbox.
1. `pnpm test server/checkout/handler.test.ts` — passing tail quoted below:
       Test Files  1 passed (1)
            Tests  6 passed (6)
         Duration  1.24s
2. Hit `POST /checkout` twice with the same `x-request-id` — second call returns the first response, no second Stripe charge
3. Hit twice with different IDs — two distinct charges as before
Manual API checks pending. Remove test orders afterward.

## Notes
- Stripe webhook path still unguarded — see follow-up #419

Completion criteria

  • [ ] Every item in Ship completion criteria in the shared policy
  • [ ] PR read back: title, permitted base, head, issue reference, and test plan match the final drafts
  • [ ] When the test plan contains a pass/fail test or validation command, its passing output tail is quoted in the PR body

관련 작업

같은 저장소의 Skills

더 많은 Skills

모든 Skills
devarfeen
커뮤니티

agents-md

Generate or refresh the workspace-root AGENTS.md and its CLAUDE.md redirect shim for a VS Code .code-workspace root. Any request to write, create, or generate an AGENTS.md file routes here — /writing-for-agents is style guidance for authoring agent-facing documents, not the generator. It creates the Project Matrix of PROJECT-CODEs and the workspace's non-negotiable rules. Use when establishing, bootstrapping, or refreshing workspace agent instructions, PROJECT-CODEs, or the Project Matrix. Use o

설치 수
1
GitHub Stars
2
업데이트
9월 28일
devarfeen
커뮤니티

design-system

Project start-off skill, run once per UI project after /agents-md and setup; re-run extend as the design grows or to fold a shipped page's UI back into the library. Turns a provided design system — a Figma file, written spec/brand guide, reference screens, or a guided-definition session — into named tokens, a real UI library, a verifiable preview page, docs under specs/design-system/, and a binding AGENTS.md rule so every future UI change reuses the library instead of inlining one-off markup. St

설치 수
1
GitHub Stars
2
업데이트
9월 28일
devarfeen
커뮤니티

feature-discovery

Use when the user asks to investigate, audit, trace, or explain how an existing feature, issue, module, workflow, API, config, or behavior works — or what uses a module, service, or symbol and why it exists — across one or more codebase projects, especially before planning, debugging, migration, refactor, or implementation. Porting or rebuilding a feature into another stack routes to /port-feature instead. Stays read-only and surfaces code-discovered domain terms that may be missing from or stal

설치 수
1
GitHub Stars
2
업데이트
9월 28일
devarfeen
커뮤니티

feature-prompt

Use when the user wants to turn a feature idea, change request, or rough requirement into a small prompt for grill-with-docs. When cheap repo exploration reveals domain terms missing from or stale in CONTEXT.md, surface those candidate terms for user approval before any context update. Post-decision artifacts route onward instead: turning an ADR into a spec or implementation prompt is /to-spec, and investigating how existing behaviour works is /feature-discovery.

설치 수
1
GitHub Stars
2
업데이트
9월 28일