Skip to main content

code-review

Use to review code changes with a two-stage process - first checking spec/requirements compliance, then code quality. Works on staged changes, branches, or PRs.

소스 정보

저장소
open-metadata/OpenMetadata
최근 소스 활동
2026년 10월 19일 09:09
감지된 SKILL.md 언어
영어
스타
15,586
포크
2,483

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
code-review
description
Use to review code changes with a two-stage process - first checking spec/requirements compliance, then code quality. Works on staged changes, branches, or PRs.
user-invocable
true
argument-hint
[branch name, PR number, or file paths]
# Code Review for OpenMetadata Two-stage review process: requirements compliance first, then code quality. **The bar is `REVIEW.md` at the repository root.** Read it first. Its "How to review" order, its finding format (trigger → result → fix), its test and flaky-test shapes and its "Do not report" list override the generic checklist below wherever they differ. ## When to Use - Before creating a PR - Reviewing someone else's PR - Self-checking your own changes before requesting review ## Usage ``` /code-review # Review uncommitted changes /code-review feature-branch # Review branch diff against main /code-review #1234 # Review GitHub PR /code-review path/to/file.java # Review specific files ``` ## Stage 1: Spec Compliance Review Verify the changes do what they're supposed to do — no more, no less. ### Steps 1. **Understand the goal.** Read the PR description, issue, or ask the user what the change is supposed to accomplish. 2. **Read all changed files.** Use `git diff` to see the full scope: ```bash git diff main...HEAD # Branch diff git diff --staged # Staged changes gh pr diff <number> # PR diff ``` 3. **Check completeness against requirements:** - Does every stated requirement have a corresponding code change? - Are there missing pieces? (e.g., backend change without migration, API change without UI update) 4. **Check for scope creep:** - Are there changes unrelated to the stated goal? - Was code "improved" that didn't need to change? 5. **Check the cross-layer contract:** - Schema change (`openmetadata-spec/`) + model regeneration (`make generate`) - Backend API change + frontend API client update - New entity field + database migration (`bootstrap/sql/`) - New connection config + `yarn parse-schema` for UI forms ### Report Format (Stage 1) ``` ## Spec Compliance: [PASS / FAIL / PARTIAL] ### Requirements Met - [x] Requirement A — implemented in file.java:42 - [ ] Requirement B — MISSING: no migration for new field ### Scope Issues - file.java:100-120 — unrelated refactor, consider separate PR ### Cross-Layer Gaps - Schema updated but `make generate` not run (models out of sync) ``` **If Stage 1 fails, stop here.** Fix compliance issues before reviewing quality. ## Stage 2: Code Quality Review Now review the implementation quality. ### Checklist **Architecture:** - [ ] Follows existing patterns in the module (check similar implementations) - [ ] No new dependencies that duplicate existing functionality - [ ] Connector-specific logic stays in connector-specific files (not in shared `builders.py`) **Java:** - [ ] No wildcard imports (`import java.util.*`) - [ ] No unnecessary comments on obvious code - [ ] `mvn spotless:apply` has been run - [ ] Integration tests for new API endpoints (in `openmetadata-integration-tests/`) - [ ] Proper error handling with meaningful messages **Python:** - [ ] pytest style (plain `assert`, no `unittest.TestCase`) - [ ] Type hints on public functions - [ ] `make py_format && make py_format_check` passes - [ ] Pydantic 2.x patterns (not v1 compatibility layer) **TypeScript/React:** - [ ] No `any` types — use proper types or `unknown` with type guards - [ ] Tailwind classes use `tw:` prefix - [ ] Strings use i18n (`t('label.xxx')`) not string literals - [ ] CSS custom properties for colors/spacing, no hardcoded values - [ ] Loading states and error handling with `showErrorToast`/`showSuccessToast` **Testing (use `/test-enforcement` for full analysis; `REVIEW.md` § Tests lists the shapes reviewers reject):** - [ ] 90% line coverage on changed Java classes - [ ] Integration tests for new/changed API endpoints - [ ] Jest tests for new/changed React components - [ ] Playwright E2E tests for new user-facing features - [ ] Tests verify behavior, not implementation **Security:** - [ ] No hardcoded secrets or credentials - [ ] User input validated at system boundaries - [ ] No SQL injection vectors (parameterized queries) - [ ] No XSS vectors in frontend (proper escaping) **Decisions (`docs/decisions/`, rules in its `README.md`):** - [ ] No change undoes an Accepted record without adding the record that supersedes it - [ ] A durable decision — a contract another component or repo must agree with, a new default or limit, an ordering that must hold, a rule stated only in the PR description — ships its record in this PR ### Report Format (Stage 2) ``` ## Code Quality: [GOOD / NEEDS WORK / SIGNIFICANT ISSUES] ### Issues (must fix) - file.java:42 — wildcard import, use specific imports - Component.tsx:15 — `any` type, use `EntityReference` from generated types ### Suggestions (nice to have) - connector.py:80 — could use `yield from` instead of loop ### Positive Notes - Good test coverage for the new endpoint - Follows existing pagination pattern correctly ``` ## Reviewing GitHub PRs When reviewing a GitHub PR by number: ```bash # Get PR details gh pr view <number> # Get the diff gh pr diff <number> # Get review comments gh api repos/{owner}/{repo}/pulls/<number>/comments # Check CI status gh pr checks <number> ``` After review, optionally post findings: ```bash gh pr review <number> --comment --body "Review findings..." ```
GitHub에서 보기