본문으로 건너뛰기
cccskills
무료GitHub에 공개

port-upstream

Analyzes upstream fork PR changes and ports selected items into the local branch. Use when checking upstream PRs, porting upstream changes, or planning selective upstream integration.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구GitHub
설치 방법 보기

포함된 파일(1)

  • SKILL.md4.6 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Step 1. Derive the canonical diff (do this BEFORE spawning any agent)

The input to analysis must be a git diff between two tags (or two commits) — not release-notes prose. Release notes are summaries; the diff is ground truth.

1a. Resolve the tag range

From the user's input, identify the upstream repo and the two endpoints:

  • HEAD tag — the release/PR being evaluated (e.g. v4.4.0)
  • BASE tag — the previous release tag on the same upstream branch (e.g. v4.3.0), or whatever tag we last successfully ported up to

If only a release URL is given, infer BASE from the upstream's tag list (gh release list --repo <upstream> --limit 5) — the immediately preceding semver tag.

1b. Fetch the diff via one of these (cheapest first)

# Option A — GitHub compare endpoint (no local fetch needed; works for any public fork)
gh api repos/<owner>/<repo>/compare/<BASE>...<HEAD> \
  --jq '.files[] | {filename, status, additions, deletions, patch}' > /tmp/upstream-diff.json

# Option B — local git (if upstream is wired as a git remote)
git fetch upstream --tags
git diff upstream/<BASE>..upstream/<HEAD> -- ':!*.lock' ':!bin/' ':!*.min.*'

Exclude generated artifacts (bin/, lock files, minified output) — they're noise.

1c. Spawn the Explore agent on the diff

Pass the diff file path (not the release URL) as the agent's primary input. Brief:

  • Classify each changed hunk: new feature / bug fix / doc / generated artifact.
  • For each substantive change, produce a one-line summary plus the file:line citation from the upstream diff.
  • For every item the agent classifies as "already in local", it must produce one of the evidence forms in Verification Rules below. A bare commit-hash citation is not sufficient and must be rejected.
  • Translate any non-English content to English (see Rules).

Why a diff, not release notes

Release notes are prose summaries written by the upstream author. They invite subject-line matching — "upstream said X, local commit says X, must be the same." That heuristic produces false-positive merge claims. Diffs eliminate the abstraction: the hunks either are or are not in the working tree, no interpretation needed.

Step 2. Build the harness plan from the finding

  • Based on what we found in Step 1, write a plan through /harness-plan
  • If there is nothing worth porting, just tell user.

Verification Rules — "is this change already in local?"

This skill exists in a fork of an upstream repo. After git fetch upstream, every commit upstream pushes is reachable by hash from the local repo, even if no local branch points at it. This makes hash-based "proof" unreliable.

Forbidden checks (do not use as proof of local presence)

  • git show <hash> — works on any fetched object, including unmerged upstream commits.
  • git log --oneline | grep <hash> — same problem; the hash is in the object DB, not necessarily on master.
  • Subject-line matching ("upstream commit says X, local commit says X" → "we have it") — heuristic only, never proof.

Required checks (use one — pick the cheapest)

  1. Working-tree symbol grep (preferred). Pick a unique symbol the upstream change introduces — a function name, variable name, regex literal, error string — and grep the working tree:
    grep -rn 'headingTaskRe' .   # if it's missing, the change is not present, full stop
    
  2. Branch reachability (when only a hash is available). Confirm the cited commit is reachable from master:
    git branch --contains <hash>   # empty output = not merged, ignore the citation
    

Default question

When verifying "is this in local?", default the framing to "what would prove this is missing?" — not "what would prove it's present?". Confirmation bias is the recurring failure mode in port reviews; refutation-first framing is the cheapest counter.

Rules

  • If changes are in Japanese or non English, translate to English
  • One verifier, not chained reviewers. Layered second-opinions amplify bad evidence — if the first agent's check is wrong, a reviewer checking the same way will reach the same wrong conclusion.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

allow1

무료

Use when generating, vectorizing, or converting images to SVG — logos, icons, illustrations, or 'allow1'/'quiver' references.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tim-hub/powerball-harness352026년 8월 5일 업데이트

breezing

무료

Use when running the full team/breezing flow end-to-end — all tasks with parallel workers. Do NOT load for: single-task implementation, planning, review, release, or setup.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tim-hub/powerball-harness352026년 8월 5일 업데이트

Reviews PRs that modify the Feature Table in CLAUDE.md. Use when a PR adds CC version rows or modifies docs/CLAUDE-feature-table.md.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tim-hub/powerball-harness352026년 8월 5일 업데이트

Use when researching Claude Code or Codex upstream releases, selecting adaptations, or preparing Harness upgrades. Local-only; not for distribution.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tim-hub/powerball-harness352026년 8월 5일 업데이트

Creates a single project slide or one-page visual summary for a repo. Use when generating a project intro image or promotional slide.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tim-hub/powerball-harness352026년 8월 5일 업데이트

Generates product demo videos and release walkthroughs via Remotion. Use when creating video documentation or animated demos.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tim-hub/powerball-harness352026년 8월 5일 업데이트

tim-hub의 스킬 모두 보기

이 스킬의 문제 신고