skills/engineering/signoff/SKILL.md
Wrap up the work you just did and open a PR for it — branch off main/master if needed, commit only the changes you made, push, open a pull request (following .github/PULL_REQUEST_TEMPLATE.md when present), and open the PR in the browser. Targets the `upstream` remote's default branch as the base when an `upstream` remote exists, otherwise `origin`. Use when the user says "sign off", "signoff", "ship it", "open a PR for this", "commit and PR", or "wrap this up".
npx skillsauth add arctuition/skills signoffInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Take the change that's already in the working tree and get it onto a PR: branch → commit → push → PR → open in browser. The goal is a clean, reviewable pull request with zero collateral — nothing committed that you didn't write this session.
Never git add -A, git add ., or git commit -a. Stage every file explicitly by path. Files that were already staged or sitting untracked before you started are not yours to commit — leave them alone. If you can't tell whether a change is yours, ask before staging it. This rule overrides convenience every time.
git remote -v
upstream remote exists, the PR targets it (fork workflow): base repo = upstream, base branch = its default branch. Find it with:
gh repo view <upstream-owner/repo> --json defaultBranchRef --jq .defaultBranchRef.name
upstream, the PR targets origin and its default branch.git branch --show-current
If you're on main, master, or the base branch, create a new branch with a short kebab-case name describing the change (add-signoff-skill, fix-retry-backoff). If you're already on a feature branch, reuse it.
git switch -c <descriptive-branch-name>
git status --short
git diff # unstaged
git diff --staged # already staged — scrutinize: did YOU stage this?
Sort every entry into yours (created/edited this session) vs pre-existing (staged or untracked before you started). Only the first group is in scope. When in doubt, ask the user rather than guess.
git add path/to/file-you-changed another/file.md
Re-run git status --short and confirm the "Changes to be committed" list contains your files and nothing else.
Write a clear, imperative summary that matches the repo's existing log style. End the message with the co-author trailer:
git commit -m "<concise summary of the change>" -m "Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>"
git push -u origin <branch-name>
(Push to origin — your fork — even when the PR targets upstream.)
Check for a template first — .github/PULL_REQUEST_TEMPLATE.md (also .github/pull_request_template.md or templates under .github/PULL_REQUEST_TEMPLATE/). If one exists, fill every section out with real content; don't leave the placeholder prompts in.
Fork workflow (upstream exists):
gh pr create --repo <upstream-owner/repo> --base <default-branch> \
--head <origin-owner>:<branch-name> \
--title "<title>" --body "<body following the template if any>"
No upstream:
gh pr create --base <default-branch> --title "<title>" --body "<body>"
gh pr view --web # current branch's PR
# or, with the URL gh printed:
open <pr-url> # macOS
gh auth status is logged in before step 7.gh pr create will say so — surface the existing URL and open it instead of erroring out.testing
Analyze committed changes on the current local branch, propose a dependency-ordered stacked PR plan, then after explicit approval create multiple upstream stacked PRs. Use when the user asks to "stack this PR", "create a PR stack", "split this branch into PRs", "split PR", "拆 PR", "split into reviewable PRs", or says a branch/PR is too big to review.
testing
Iteratively detect and fix everything outstanding on a GitHub PR — CI failures, bot review findings, and human inline comments — then push, wait for CI, and re-scan until nothing actionable remains. Use when asked to "fix the remaining issues on a PR", "address PR feedback", "loop until CI is green", "auto-fix PR comments", "run a final fix pass before merge", or 检查 PR 状态和 comment 自动修复 / 修到没有新 finding 为止. Author-side by default; runs on any PR branch you have push access to, including PRs that already look ready to merge.
testing
Research what real people have actually been saying about a topic over a recent time window (default last 30 days) across Reddit, Hacker News, X, YouTube, and GitHub — then synthesize an engagement-weighted, cited brief. Use when the user asks: what's new/recent buzz/trending with X, community sentiment on X, what people are saying about X lately, last30days, past week/last N days, 最近大家在聊什么 / 最近 X 有什么新动态 / 时效性调研 / 选型/产品调研. Complements deep-research (fact-checking) by focusing on recency + community signal rather than authoritative sources.
development
Produce a single-file HTML "thread recap" artifact that captures what was discussed in an agent / pairing / chat conversation — the questions explored, the decisions made and their tradeoffs, the dead ends we walked into, the open questions left, and the artifacts produced — so a teammate who wasn't in the room can pick up the context. Use this skill whenever the user asks to summarize a conversation/thread/session, mentions sharing a thread with colleagues, says things like "把这个对话总结一下", "share this thread with the team", "write up what we decided", "decision log for this conversation", "document the tradeoffs we made", "recap of our pairing session", or wants to hand off a Claude/ChatGPT/agent transcript as context. Trigger even when "HTML" isn't said — the artifact format is the whole point. Input can be the current session's own conversation context OR a transcript the user pastes in.