본문으로 건너뛰기
cccskills
무료GitHub에 공개한국어 소개

gh-pull-request

PR 브랜치의 변경 사항을 빌드, Checkstyle, 라이선스 헤더, Java 클래스 이름 검사로 확인하고 커밋한 뒤 푸시합니다. PR이 없으면 프로젝트 템플릿에 따라 생성합니다.

원문원문 설명 보기

Verify, commit, and push changes on a PR branch. Runs pre-flight checks (compile, checkstyle, license headers) before every push. Also creates the PR if one doesn't exist yet.

apache/skywalking스타 24,978(GitHub 24,978 + cccskills 0)
연동 도구GitHub

실행 점수 미검증

설치 방법 보기

이럴 때 유용합니다

  • PR 제출 전에 변경 사항 확인
  • 브랜치 변경 사항 커밋 및 푸시
  • 현재 브랜치에서 PR 생성

한국어 소개

할 수 있는 일

PR 브랜치의 변경 사항을 보내기 전에 컴파일, Checkstyle, 라이선스 헤더, 불필요한 Java 완전 수식 클래스 이름 사용을 점검합니다. 문제가 발견되면 수정한 뒤 다시 확인하고, 검사를 통과하면 변경 사항을 커밋하고 푸시합니다. 현재 브랜치에 PR이 없으면 프로젝트 템플릿에 맞춰 PR을 만들고 지정된 리뷰어를 추가합니다. PR이 병합된 뒤에는 변경 내용이 기본 브랜치에 반영되었는지 확인한 다음 로컬 브랜치를 정리하는 절차도 안내합니다.

이럴 때 유용합니다

PR 제출 전 확인과 전송을 진행하거나, 병합 후 변경 사항을 확인하고 로컬 브랜치를 정리할 때 사용할 수 있습니다.

사용 예시

  • “변경 사항을 확인하고 PR 브랜치에 커밋한 뒤 푸시해 주세요.”
  • “이 브랜치에 PR이 없으면 템플릿에 따라 만들어 주세요.”
  • “병합된 변경 사항을 확인하고 로컬 브랜치를 정리해 주세요.”

주의 사항

프로젝트 Maven 래퍼, license-eye, Git, gh를 사용합니다. PR을 만들 때 .github/PULL_REQUEST_TEMPLATE을 참고합니다. 작업 브랜치에서 진행하며 master에서 직접 작업하지 않습니다.

이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.

문서 점검

AI가 SKILL.md의 내용에서 주의가 필요한 작업과 도입 전제를 확인했습니다. 점수는 실제로 실행한 결과(실행 검증)만으로 매깁니다.

안전성전송·삭제·명령 실행 등을 명시하고 있는가
B일부 부족master 작업 금지와 병합 확인을 명시하지만 푸시와 브랜치 삭제도 수행합니다.
도입의 용이성필요한 도구나 API 키가 적고 적혀 있는가
B일부 부족Maven 래퍼, license-eye, Git, gh를 언급하지만 설치 절차는 적지 않습니다.

점수에는 넣지 않았습니다. 2026년 10월 29일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.

평가가 다르다고 생각되면 재검토를 요청하기

어느 항목이 왜 다르다고 생각하는지 적어 주세요. 로그인은 필요 없습니다. SKILL.md와 대조해 평가를 다시 만들고 이곳에 반영합니다.

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

포함된 파일(1)

  • SKILL.md6.5 KB

SKILL.md(원문)

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

PR Branch Workflow

Run pre-flight checks, commit, push, and optionally create a PR.

Pre-flight checks

Run these checks before every commit+push and fix any failures:

1. Compile and checkstyle

# Checkstyle
./mvnw -B -q clean checkstyle:check

# Full build (compile + javadoc)
./mvnw clean flatten:flatten install javadoc:javadoc -B -q -Pall \
  -Dmaven.test.skip \
  -Dcheckstyle.skip \
  -Dgpg.skip

2. License header check

license-eye header check

If invalid files are found, fix with license-eye header fix and re-check.

3. Unnecessary fully-qualified class names

The project checkstyle forbids inline FQCNs — every type reference in code should resolve through an import, not a fully-qualified name. Checkstyle does not always catch this (it misses cases like inline java.util.HashMap, java.util.concurrent.TimeUnit, or org.apache.skywalking.oap.server.telemetry.api.HistogramMetrics.Timer used as a local variable type, generic parameter, or new target). Audit the files the branch touched before pushing:

Use the Grep tool (ripgrep) rather than BSD grep on macOS — the scan below relies on a negative lookahead that BSD grep doesn't support and GNU grep -P does:

pattern: ^(?!\s*(import |package |\s*\*)).*\b(java\.util\.|java\.io\.|java\.nio\.|java\.util\.concurrent\.|javassist\.|org\.apache\.skywalking\.)[A-Z][A-Za-z0-9_]*
glob:    *.java
output_mode: content
-n: true

Scope the scan to files the branch touched, not the whole tree — pre-existing FQDNs on unrelated files generate noise. Use git diff --name-only master...HEAD -- '*.java' to get the changed list, then run the ripgrep pattern against each.

Acceptable exceptions (same as the CLAUDE.md rule):

  • Two classes with the same simple name would collide if both imported.
  • A Javadoc {@link} where the short name would be ambiguous to the reader.
  • Inside a string literal (e.g., a class name passed to Class.forName).

Fix every other hit — add an import and switch to the short name. This includes new java.util.HashMap<>(), java.util.Set<String> parameter types, and org.apache.skywalking.oap.server.telemetry.api.HistogramMetrics.Timer as a local variable type. Field declarations, method signatures, local variables, and generic type arguments should all use the imported short name.

Re-run checkstyle after the fix — a sloppy sed/replace_all can corrupt the import line itself (e.g., turning import java.util.concurrent.locks.ReentrantLock; into import ReentrantLock;), which causes a cryptic checkstyle Range [0, -1) out of bounds for length N error, not a normal violation line. If you see that error, inspect the imports block first.

Commit and push

After checks pass, commit and push:

git add <files>
git commit -m "<message>"
git push -u origin <branch-name>

Branch strategy

  • Never work directly on master branch
  • If on master, create a new branch first: git checkout -b feature/<name> or git checkout -b fix/<name>

Create PR (if not yet created)

Check whether a PR already exists for the current branch:

gh pr view --json number 2>/dev/null

If no PR exists, create one:

PR title

Summarize the changes concisely. Examples:

  • Fix BanyanDB query timeout issue
  • Add support for OpenTelemetry metrics

PR description

Read .github/PULL_REQUEST_TEMPLATE and use its exact format with checkboxes. Do NOT use a custom summary format.

Key template sections — uncomment the relevant one:

For Bug Fixes:

### Fix <bug description or issue link>
- [ ] Add a unit test to verify that the fix works.
- [ ] Explain briefly why the bug exists and how to fix it.

For New Features:

### <Feature description>
- [ ] If this is non-trivial feature, paste the links/URLs to the design doc.
- [ ] Update the documentation to include this new feature.
- [ ] Tests(including UT, IT, E2E) are added to verify the new feature.
- [ ] If it's UI related, attach the screenshots below.

For Performance Improvements:

### Improve the performance of <class or module or ...>
- [ ] Add a benchmark for the improvement.
- [ ] The benchmark result.
- [ ] Links/URLs to the theory proof or discussion articles/blogs.

Always include:

- [ ] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #<issue number>.
- [ ] Update the [`CHANGES` log](https://github.com/apache/skywalking/blob/master/docs/en/changes/changes.md).

Create command

gh pr create --title "<title>" --body "$(cat <<'EOF'
<PR body from template>
EOF
)"

Post-creation

  • Add copilot as a reviewer: gh pr edit <number> --add-reviewer copilot
  • Do NOT add AI assistant as co-author. Code responsibility is on the committer's hands.
  • Return the PR URL when done.

After the PR is merged

Once the PR is merged, sync the default branch and clean up the feature branch:

# 1. Prune stale remote refs. GitHub auto-deletes the PR's branch on merge, so
#    the remote feature branch is usually already gone; --prune removes the
#    dangling local tracking ref.
git fetch origin --prune

# 2. Switch back to the default branch and fast-forward it to include the merge.
git checkout master
git pull --ff-only origin master

# 3. Confirm the change actually landed in master before deleting anything —
#    `git log --oneline -1` should show the merge/squash commit with the PR
#    number, or grep for a symbol the PR introduced.
git log --oneline -1

# 4. Delete the local feature branch. SkyWalking SQUASH-merges PRs, so the
#    feature branch's commit is NOT an ancestor of master (master gets a new
#    squash commit instead). `git branch -d` therefore reports "not fully
#    merged" — that is expected, not an error. After confirming the content is
#    in master (step 3), force-delete:
git branch -d <branch> 2>/dev/null || git branch -D <branch>

Notes:

  • git branch -d failing with "not fully merged" on a squash-merged PR is normal — the squash commit has a different SHA than the feature commit. Verify via step 3, then -D.
  • If the remote branch was not auto-deleted (some repo settings), remove it explicitly: git push origin --delete <branch>.
  • Do NOT skip step 3. Force-deleting a local branch whose work didn't actually merge loses it.

리뷰

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

댓글

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

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

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

0 / 1,000자

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

같은 저장소의 스킬

ci-e2e-debug

무료요약 있음

GitHub Actions에서 실패한 E2E 테스트를 조사하는 스킬입니다. 실행 로그 산출물을 가져와 OAP와 다른 구성 요소의 오류를 확인하고, 별도 테스트 프로세스의 실패까지 포함해 원인 후보를 정리합니다.

  • GitHub Actions E2E 실패 조사
  • OAP, BanyanDB, UI 로그 확인
  • 별도 테스트 프로세스의 실패 추적
apache/skywalking2.5만2026년 10월 29일 업데이트

compile

무료요약 있음

Maven 래퍼로 SkyWalking OAP의 백엔드 또는 전체 프로젝트를 빌드하고 Javadoc과 Checkstyle을 확인합니다. PR 제출 전에 전체 빌드, 빠른 백엔드 빌드, 단일 모듈 빌드나 개별 검사를 선택할 수 있습니다.

  • PR 전에 전체 빌드 실행
  • Javadoc 오류와 경고 확인
  • 수정한 모듈만 빌드
apache/skywalking2.5만2026년 10월 29일 업데이트

generate-classes

무료요약 있음

SkyWalking의 MAL, OAL, LAL 또는 Hierarchy DSL 스크립트를 컴파일해 생성된 `.class` 파일을 조사할 수 있도록 저장합니다. DSL 하나를 선택하거나 네 종류 모두 생성하고, `javap`으로 바이트코드를 확인하는 방법을 안내합니다.

  • MAL 식에서 생성된 클래스 조사
  • OAL 지표와 디스패처 클래스 확인
  • LAL 또는 Hierarchy 출력 조사
apache/skywalking2.5만2026년 10월 29일 업데이트

license

무료요약 있음

`license-eye`로 소스 파일의 Apache 2.0 라이선스 헤더와 의존성 라이선스 목록을 확인합니다. 헤더를 수정하거나 목록을 다시 생성하고, PR 제출 전에 변경 내용을 검토할 수 있습니다.

  • PR 제출 전 Apache 헤더 확인
  • 누락된 라이선스 헤더 수정
  • 의존성 라이선스 목록 차이 검토
apache/skywalking2.5만2026년 10월 29일 업데이트

new-monitoring-feature

무료요약 있음

SkyWalking OAP에 모니터링 대상이나 Layer를 추가할 때 신호별 확장 지점을 정리하고 Layer 등록, UI 템플릿, 문서, 로컬 검증 등 함께 필요한 작업을 파악하도록 돕습니다.

  • 새 모니터링 Layer 변경 계획
  • 메트릭·로그 확장 지점 선택
  • Layer 추가에 따른 UI·문서 항목 정리
apache/skywalking2.5만2026년 10월 29일 업데이트

package

무료

Rebuild SkyWalking’s distribution and OAP Docker image after source changes, choosing a command sequence that includes the updated JARs. It also explains how to inspect the image contents before running end-to-end tests.

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

  • Rebuilding an OAP image after Java source changes
  • Updating the distribution package before Docker builds
  • Checking that a fix reached the image before E2E tests
apache/skywalking2.5만2026년 10월 29일 업데이트

apache의 스킬 모두 보기

이 스킬의 문제 신고