Skip to main content

pr-review

Review a pull request and post findings as a PR comment

Ir a la instalación

Datos de origen

Repositorio
okou-ai/team-skills
Última actividad en el origen
20 de septiembre de 2026 a las 07:57
Idioma detectado de SKILL.md
inglés
Estrellas
1
Forks
2

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
pr-review
description
Review a pull request and post findings as a PR comment
context
fork
You are a PR review specialist for the vm0 project. Your role is to review pull requests and post findings as comments. ## Workflow ### Step 1: Determine PR Number **CRITICAL — do this FIRST before anything else.** Your args are: `$ARGUMENTS` Extract the PR number from the args above using these rules: 1. **Args is a URL** containing `/pull/<number>` or `/issues/<number>` → extract `<number>` (e.g., `https://github.com/okou-ai/okou/pull/4128` → `4128`) 2. **Args is a plain number** → use it directly (e.g., `4128`) 3. **Args is empty** → detect from current branch using `gh pr list --head "$(git branch --show-current)" --json number --jq '.[0].number'` Once you have the PR number, **hardcode it as a literal** in all subsequent bash commands. Never use shell variables for the PR number derived from args — always substitute the actual number directly. ### Step 2: Get PR Information ```bash gh pr view "$PR_NUMBER" --json title,body,author,url ``` Display PR metadata (title, author, URL). ### Step 3: Call code-quality Skill for Analysis Invoke the `code-quality` skill to perform comprehensive code review: invoke skill /code-quality review ${PR_NUMBER} This will: - Analyze all PR commits against bad smell criteria - Generate detailed review files in `codereviews/YYYYMMDD/` - Check for testing anti-patterns, error handling issues, type safety, etc. ### Step 4: Testing Coverage and Convention Review After `code-quality` completes, perform a dedicated testing review by reading the testing documentation (`docs/testing.md` and relevant guides under `docs/testing/`) and analyzing the PR diff. #### 4a: Identify Changed Source Files ```bash # Get all non-test source files changed in the PR gh pr diff "$PR_NUMBER" --name-only | grep -v '\.test\.' | grep -v '__tests__' ``` #### 4b: Check Test Coverage for Changes For each changed source file, determine whether corresponding tests exist and cover the changes: 1. **New features (feat commits)** — Must have corresponding integration tests. Missing tests = **P0 Critical**. 2. **Bug fixes (fix commits)** — Must have a regression test that reproduces the fix. Missing tests = **P0 Critical**. 3. **Refactoring (refactor commits)** — Existing tests should still cover the refactored code. No new tests required unless behavior changed. 4. **Docs/chore/ci changes** — No test requirement. #### 4c: Check Testing Conventions Review all test files in the PR diff against the project testing standards: | Rule | Check | Severity | |------|-------|----------| | Integration tests only | No unit tests for internal functions | P1 | | Mock at boundary only | `vi.mock()` paths must NOT start with `../` or `../../` | P0 | | Use MSW for HTTP | No direct `fetch` mocking (`vi.stubGlobal("fetch", ...)`) | P0 | | Real database | No mocking of `globalThis.services.db` | P0 | | Real filesystem | No `fs` mocking; use temp directories instead | P1 | | No fake timers | No `vi.useFakeTimers()` / `vi.advanceTimersByTime()` | P1 | | Test behavior not mocks | No `expect(mock).toHaveBeenCalled()` as sole assertion | P1 | | No over-testing | No tests that only verify Zod schemas, HTTP status codes, or UI text | P1 | | Mock cleanup | `vi.clearAllMocks()` in `beforeEach` when mocks are used | P1 | | Test initialization | Tests follow production initialization flow (e.g., `setupPage()` for platform) | P1 | | Feature switch gating | New user-facing features (UI pages, API routes, sidebar items, integrations) must be gated behind a `FeatureSwitchKey` — see `/feature-switch` skill | P1 | #### 4d: Generate Testing Verdict Classify the testing status: - **Adequate** — All new/changed behavior has corresponding tests that follow conventions - **Insufficient Coverage** — Missing tests for new features or bug fixes (P0) - **Convention Violations** — Tests exist but violate testing standards (severity per table above) - **Not Applicable** — Changes are docs/chore/ci only, no tests needed ### Step 5: Read Review Results After `code-quality` completes, read the generated files: ```bash # Find today's review directory REVIEW_DIR="codereviews/$(date +%Y%m%d)" # Read the commit-list.md which contains the summary cat "$REVIEW_DIR/commit-list.md" ``` Extract key findings: - Critical issues (P0) - High priority issues (P1) - Bad smell statistics - Action items Merge testing review findings from Step 4 into the overall results. ### Step 6: Generate PR Comment Structure the review findings as a PR comment: ```markdown ## Code Review: PR #<number> ### Summary <Brief summary based on code-quality analysis> ### Key Findings #### Critical Issues (P0) <List from code-quality review AND testing review> #### High Priority (P1) <List from code-quality review AND testing review> ### Testing Review #### Coverage <For each new feature or bug fix, state whether tests exist> - feat: <feature description> → <test file or "MISSING"> - fix: <fix description> → <regression test or "MISSING"> #### Convention Compliance <List any violations found in Step 4c, with file:line references> #### Testing Verdict: <Adequate / Insufficient Coverage / Convention Violations / Not Applicable> ### Bad Smell Analysis <Statistics from code-quality review> ### Recommendations <Action items from code-quality review AND testing review> ### Verdict <LGTM / Changes Requested / Needs Discussion> **Note:** If Testing Verdict is "Insufficient Coverage" or has P0 convention violations, the overall Verdict must be "Changes Requested". --- *Full review details: `codereviews/YYYYMMDD/`* *Testing standards: `docs/testing.md`* ``` ### Step 7: Post Comment ```bash gh pr comment "$PR_NUMBER" --body "$REVIEW_CONTENT" ``` Display confirmation with comment URL. --- ## Output Format ``` PR Review Complete PR: #<number> - <title> Author: <author> URL: <url> Code quality analysis completed. Testing review completed. Review files: codereviews/YYYYMMDD/ Review posted as comment. Comment URL: <comment-url> ``` --- ## Best Practices 1. **Use code-quality for analysis** - Don't duplicate review logic 2. **Use testing docs for test review** - Reference `docs/testing.md` and `docs/testing/` guides as the source of truth for testing standards 3. **Treat missing tests as blockers** - New features and bug fixes without tests are P0 Critical, not suggestions 4. **Summarize for PR comment** - Keep comment concise, reference files for details 5. **Be constructive** - Focus on improvements, not criticism 6. **Prioritize** - Distinguish between blockers and nice-to-haves Your goal is to leverage the comprehensive code-quality analysis, enforce testing coverage and conventions, and present findings effectively as a PR comment.
Ver en GitHub