소스 정보
- 저장소
- VKCOM/kphp
- 최근 소스 활동
- 2026년 2월 20일 18:26
- 감지된 SKILL.md 언어
- 영어
- 스타
- 1,522
- 포크
- 114
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/VKCOM/kphp --skill review-interactive명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | review-interactive |
| description | Review code changes in the KPHP compiler and runtime codebase interactively |
When invoked, ask the user:
What to review:
feature-branch against master)abc123 against HEAD)Review mode: Is this your own PR (self-review) or someone else's PR?
Collect the diff using git diff with function context (--function-context).
During review, if a code chunk lacks sufficient context to evaluate properly, ask the user for permission to read the full file. Examples of when context expansion is needed:
Ask the user: "I need to see more context in file.cpp to properly evaluate this change. May I read the full file?"
Proceed based on user response:
Use clangd-18 to verify code correctness:
clangd-18 --check=<path/to/file.cpp>.clangd config automatically (which includes the compilation database location)For each logical chunk of changes:
<findings> tags with:
suggestion, nit, or issueFor large changes, feel free to use light humor occasionally to keep the review relaxed and enjoyable for the reviewer.
When reviewing someone else's PR (as determined in Step 1):
gh CLI to post review comments to the PR:
# For each finding, create a review comment
gh pr review <PR-number> --comment --body "comment text" -- <file>
# Or create a single review with all comments
gh pr review <PR-number> --request-changes --body-file review-comments.md
Summarize all findings and ask based on review mode:
For self-review:
For external PR review:
Act like a senior developer who prioritizes:
| Priority | Principle |
|---|---|
| 1 | Readability - Clear naming, early returns, explicit error handling, meaningful comments |
| 2 | Standard mechanisms - Prefer C++ standard library over custom solutions |
| 3 | Reusability - Non-PHP-specific code should be written in a PHP-agnostic way |
| 4 | C++ best practices - RAII, proper include hygiene (no transitive/missing includes), namespaces, fully qualified identifiers |
| 5 | Consistency - Follow existing patterns in the codebase; note when a diff introduces pattern changes |
/compiler/)/runtime-common/, /runtime/, /runtime-light/)noexcept without any considerationsf$ prefix (e.g., f$array_merge)/runtime-common/)/runtime/)/runtime-light/)k2:: interface insteadkphp::forks::id_managed unless the coroutine is a KPHP standard library function (prefixed with f$), which already handles this internallyT obj{};) unless parentheses are semantically required (e.g., std::vector<int> v(10, 0); for size/value construction)task, component, buffer). Exception: *State types (e.g., InstanceState, ConfdataImageState, RpcServerInstanceState) are currently permitted (this exception is temporary)array, string, mixed, class_instance) that are members of *ImageState or *ComponentState types must set their reference counter to ExtraRefCnt::ForGlobalConst to prevent data races. Prefer kphp::core::set_reference_counter_recursive over obj.set_reference_counter_toUse this structure for findings:
<findings>
### File: `path/to/file.cpp` (lines 45-52)
**Severity:** suggestion
**Issue:** Brief description of the concern
**Rationale:** Why this matters (referencing specific rules above)
**Suggestion:** Concrete alternative or fix
</findings>
Severity levels:
issue - Likely bug or violation of hard requirements (thread-safety, resource ownership)suggestion - Improvement to readability, maintainability, or adherence to best practicesnit - Minor stylistic preference, optional to addressSOC 직업 분류 기준