Agent SkillsTabularisDB/tabularis › tabularis-pr-review

tabularis-pr-review

GitHub

用于本地审查 Tabularis PR,依据仓库规则校验代码质量,验证 PR 声明真实性,在 PR 分支运行测试并准备真实数据与手动测试计划。

.claude/skills/tabularis-pr-review/SKILL.md TabularisDB/tabularis

Trigger Scenarios

用户要求审查特定 PR 用户希望合并前使用真实数据测试 PR

Install

npx skills add TabularisDB/tabularis --skill tabularis-pr-review -g -y
More Options

Non-standard path

npx skills add https://github.com/TabularisDB/tabularis/tree/main/.claude/skills/tabularis-pr-review -g -y

Use without installing

npx skills use TabularisDB/tabularis@tabularis-pr-review

指定 Agent (Claude Code)

npx skills add TabularisDB/tabularis --skill tabularis-pr-review -a claude-code -g -y

安装 repo 全部 skill

npx skills add TabularisDB/tabularis --all -g -y

预览 repo 内 skill

npx skills add TabularisDB/tabularis --list

SKILL.md

Frontmatter
{
    "name": "tabularis-pr-review",
    "description": "Use when reviewing a Tabularis pull request locally — checking code quality against the repo's own rules, verifying the PR's claims, running its tests on the correct branch, and preparing real test data plus a manual test plan for the human. Use when the user says 'review PR #N', 'lass uns PR reviewen', 'check this PR', or wants to test a PR with real data before merging."
}

Tabularis Local PR Review

Overview

A read-everything-then-verify review for Tabularis PRs. Goes beyond a diff skim: judges the diff against the repo's own .rules/, confirms the PR's stated claims are true, runs the PR's tests on the PR branch, and stages real data so the human can manually exercise the change. The deliverable is a review plus a copy-paste test plan, not just opinions.

Core principle: Don't trust the PR description — verify every claim against the code, then prove the behavior with real data.

Workflow

Work top to bottom. Each step feeds the next.

1. Pull the PR

gh pr view <N> --json title,body,author,baseRefName,headRefName,state,additions,deletions,changedFiles,labels
gh pr diff <N> --name-only      # scope
gh pr diff <N>                  # full diff

2. Load the rules you'll judge against

Read .rules/*.md for every changed file's domain before forming opinions. The common offenders:

  • react.md #2setState called synchronously in useEffect (async-after-await is fine). Very common in modal/form PRs.
  • react.md #1 — exhaustive useEffect/useMemo/useCallback deps.
  • typescript.md — no any.
  • rust.md — pure helpers extracted + unit-tested; mod.rs stays orchestration-only; public APIs re-exported on refactor.
  • general.md — English-only comments; new user-facing strings need i18n keys in src/i18n/locales/*.

3. Verify the PR's claims — don't take them on faith

For each factual assertion in the description, prove it:

  • "Uses common.search / common.noResults i18n keys" → grep '"search"\|"noResults"' src/i18n/locales/en.json.
  • "Removing searchable={false} enables search" → read the component default (grep searchable src/components/ui/Select.tsx).
  • "Reads default_port from the manifest" → check the type (src/types/plugins.ts) — is it nullable? What's the fallback?
  • New Tauri command → confirm it's registered in src-tauri/src/lib.rs invoke_handler.

4. Impact analysis (per AGENTS.md)

For each non-trivial symbol the PR touches, run gitnexus_impact({target, direction: "upstream"}) and note blast radius / risk. Flag HIGH/CRITICAL.

5. Check out the PR branch — this is mandatory before running tests

Your local checkout is almost never the PR branch, so its tests silently don't exist (cargo test <name> → "0 filtered out", vitest count looks normal but is missing the new cases). Always:

git branch --show-current        # confirm you are NOT on the PR branch
gh pr checkout <N>               # handles forks; working tree must be clean

Tell the user which branch they were on so they can return (git checkout <their-branch>).

6. Run the PR's tests on that branch

pnpm vitest run <changed test files>          # e.g. tests/utils/k8s.test.ts
cd src-tauri && cargo test --lib <module>::<test_mod>   # full path; partial names filter to 0

Report real pass counts, not "looks fine."

7. Prepare REAL test data + a manual test plan

This is the highest-value step and the reason to review locally. Decide what real inputs the feature consumes, stage them, and verify the change's core command/logic against them directly before handing off. Pattern:

  1. Identify the external input (a K8s cluster, a DB, a file, an API).
  2. Stand it up reproducibly — write a manifest/seed to /tmp/pr<N>-*.{yaml,sql} covering every code path: the happy path, the path that must NOT trigger, and the rejected/edge path.
  3. Run the change's actual command against it to prove the backend logic (e.g. run the exact kubectl ... -o jsonpath=... the PR added and confirm output).
  4. Hand the user a table: input → expected behavior, one row per test case, plus a cleanup command.

Example (K8s dialog PR): minikube + manifest with a single-port service (auto-prefill should fire), a multi-port service (must not fire), and a pod (skipped).

8. Verdict

Concise: what's solid, numbered non-blocker notes (rule + practical impact), blockers separately, and an approve / approve-with-nits / request-changes call.

Gotchas

Symptom Cause
cargo test → "0 passed, N filtered out" Wrong branch (PR code absent) or partial test name — use the full module::test_mod path.
Tests "pass" but new cases missing Reviewing on your own branch, not the PR branch. Do step 5.
Number(v) on a cleared input → 0 Empty form field coerces to 0; watch for it silently disabling defaults/guards.
Hardcoded fallback survives a "remove hardcoding" PR Grep the magic value in the diff's neighborhood — a ?? 3306 often lingers.

Common Mistakes

  • Reviewing the diff without reading .rules/ → missing the project's own conventions.
  • Trusting the PR description's claims instead of grepping for proof.
  • Running tests on the wrong branch and reporting false green.
  • Handing the user "test it manually" with no data staged — defeats the point of a local review.

Version History

  • 5b1abe3 Current 2026-08-16 07:24

    更新 gitnexus 规则引用,移除过时的运行器指令,忽略本地工具产生的暂存目录。

  • a94f626 2026-07-24 16:25

Same Skill Collection

.claude/skills/gitnexus/gitnexus-cli/SKILL.md
.claude/skills/gitnexus/gitnexus-debugging/SKILL.md
.claude/skills/gitnexus/gitnexus-exploring/SKILL.md
.claude/skills/gitnexus/gitnexus-guide/SKILL.md
.claude/skills/gitnexus/gitnexus-impact-analysis/SKILL.md
.claude/skills/gitnexus/gitnexus-refactoring/SKILL.md
.claude/skills/tabularis-plugin-driver/SKILL.md

Metadata

Files
0
Version
5b1abe3
Hash
ab3336e0
Indexed
2026-07-24 16:25

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-17 01:52
浙ICP备14020137号-1 $mapa de visitantes$