branch-review
GitHub用于审查分支的合并就绪性、生产就绪性及 PR 质量。通过只读 Git 命令和仓库契约审计代码变更,评估完整性、正确性与安全性,提供具体的合并决策建议。
Trigger Scenarios
Install
npx skills add luxury-yacht/app --skill branch-review -g -y
SKILL.md
Frontmatter
{
"name": "branch-review",
"description": "Review a Luxury Yacht branch for merge readiness, production readiness, PR-summary quality, or current-diff risk using read-only git state, repo contracts, and validation evidence"
}
Branch Review
Use this when the user asks whether a branch is production-ready, merge-ready, an actual improvement, or asks for a branch/PR review or PR summary grounded in the current diff.
Goal
Return a concrete merge-readiness verdict based on the code, tests, and current validation state. Findings lead. Summaries are secondary.
What the user wants to know:
- Is the work COMPLETE?
- Is the work CORRECT?
- Is the work SAFE to merge and release?
- Is the work a REAL improvement, either for the user experience or the codebase?
- Was anything important missed that should have been included?
Read-Only First Pass
Unless the user explicitly asks for fixes, begin in review mode.
- Do not reread injected
AGENTS.mdfiles. Use.agents/README.mdonly when the diff spans an ambiguous workflow, anddocs/README.mdonly when the owning contract is unclear. - Check repository state with read-only git commands:
git status --shortgit branch --show-currentgit diff --stat origin/main...HEADgit diff --name-only origin/main...HEADgit diff --statgit diff --name-onlygit diff --cached --statgit diff --cached --name-onlygit ls-files --others --exclude-standard
- If the user provides a different base or range, use that instead of
origin/main...HEAD. - If
origin/main...HEADcannot be resolved, inspect remotes/default branch state with read-only git commands and state the exact base assumption before reviewing. - Review both committed branch changes and working-tree changes. Do not ignore
modified, staged, or untracked files just because
origin/main...HEADis empty. - Read any changed docs/plans that claim completion. Treat them as hints, not proof.
Contract Audit
For every meaningful change, inspect the owning contract:
| Change Area | Required Context |
|---|---|
| Cross-layer shared contracts, generated bindings, enum/metadata drift | docs/architecture/shared-contracts.md |
| Multi-cluster, scopes, selected/background clusters, cache keys | docs/architecture/multi-cluster.md, .agents/skills/cluster-auth-lifecycle/SKILL.md |
| Auth failure, recovery, kubeconfig, client lifecycle | docs/architecture/auth.md, .agents/skills/cluster-auth-lifecycle/SKILL.md |
| Refresh, snapshots, streams, diagnostics | docs/architecture/refresh-system.md, docs/architecture/data-layer.md, .agents/skills/refresh-subsystem/SKILL.md |
| Query-backed resource streams and resource WebSocket signals | docs/architecture/data-freshness.md, docs/architecture/data-layer.md |
| Identity, status, lifecycle, links, facts, object refs | docs/architecture/shared-resource-model.md, .agents/skills/shared-resource-model/SKILL.md |
| Resource kind vocabulary, generated dispatch, per-kind behavior | docs/architecture/resource-kind-registry.md, .agents/skills/add-resource/SKILL.md |
| Browse/catalog/discovery/namespace metadata and LIST rows | docs/architecture/catalog.md, docs/architecture/refresh-system.md, .agents/skills/browse-tables/SKILL.md |
| Frontend resource reads, app-state reads, stores | docs/architecture/data-access.md |
| Permissions/capabilities/RBAC UI | docs/architecture/permissions.md, .agents/skills/permissions-capabilities/SKILL.md |
| Tables, query-backed pages, large datasets | docs/frontend/gridtable.md, docs/architecture/large-data.md |
| Object panel details, YAML, actions, docked panels | .agents/skills/object-panel/SKILL.md, docs/architecture/yaml-editing.md, docs/frontend/yaml-editor.md, docs/frontend/dockable-panels.md |
| Logs, shell/debug, port-forward, drain, runtime operations | .agents/skills/operations-workflows/SKILL.md, docs/workflows/logs/overview.md, docs/workflows/shell-debug.md, docs/workflows/operation-lifecycle.md |
| Object map | .agents/skills/object-map/SKILL.md, docs/workflows/object-map.md |
| UI shell/settings/modals/keyboard/tabs | .agents/skills/app-shell/SKILL.md, relevant docs/frontend/*.md |
Required Checks
Look for these before considering the branch ready:
- Every review claim cites evidence gathered in the current turn (
file:lineor command output) or is explicitly marked[unverified]/[assumed]. - Cluster-data paths carry
clusterIdthrough requests, scopes, caches, state, events, navigation, persistence keys, and actions. - Object references crossing boundaries carry
clusterId,group,version,kind, and concretenamespace/namewhen applicable. - Object catalog remains the source of truth for discovery, existence,
GVK/GVR identity, Browse namespace metadata, and cluster listings;
namespace LIST rows remain owned by the
namespacesrefresh domain. - Backend status semantics are projected as
status,statusState,statusPresentation, and optionalstatusReasonwhere primary status is rendered. - Relationship navigation uses
ResourceLink.refand catalog-backed identity, not frontend kind/name reconstruction. - List/table payloads are served from refresh snapshot/query paths, not
backend/resourcesdetail/action services. - Refresh domain metadata, behavior classes, timing, backend registrations, frontend registrations, diagnostics, and tests align through the shared domain contract.
- Query-backed resource stream WebSocket messages remain liveness signals; rows, filtering, sorting, facets, totals, and page metadata stay on the HTTP snapshot/query path.
- Snapshot/query payloads and stream signals agree on identity, scope, liveness, and permission behavior for the same table/list surface.
- Permission-denied or restricted-RBAC behavior remains visible in diagnostics.
- Auth, recovery, runtime operation, stream, and cleanup behavior stays scoped to the affected cluster.
- YAML read/save/merge/ownership flows preserve full cluster and GVK identity and the shared field-policy contract.
- Shared contracts do not add parallel frontend/backend enums, descriptors, schemas, or registries without parity tests.
- Frontend resource reads use
dataAccess, app-shell/persisted-state reads useappStateAccess, and directfetchremains confined to the refresh client. - New frontend UI uses existing components, CSS files, tokens, aliases, and GridTable where applicable.
- Tests cover the changed behavior at the closest useful level.
Validation Sequence
Run focused tests first when the branch has clear areas:
- Backend shared/resource-model/refresh changes: focused
mise exec -- go testpackages. - Frontend changes: targeted Vitest specs and
mise exec -- npm run typecheck --prefix frontend. - Runtime operations/logs/shell/port-forward/drain: focused backend workflow tests plus affected frontend lifecycle/orchestrator tests.
- Broad frontend/shared changes: consider
mise exec -- wails3 task qc:knip.
Before a final "ready" verdict on non-documentation or non-comment-only work, run:
mise exec -- wails3 task qc:prerelease
git diff --check
git status --short
If mise exec -- wails3 task qc:prerelease cannot run or fails, report the
exact command and first concrete failure. Do not call the branch ready.
mise exec -- wails3 task qc:prerelease includes qc:lint-fix, so inspect
changed files afterward.
For documentation-only or comment-only branches,
mise exec -- wails3 task qc:prerelease may be skipped, but still run
git diff --check and git status --short before the verdict.
Output Format
For review findings:
- Findings first, ordered by severity.
- Each finding includes file/line, problem, impact, and concrete fix direction.
- Then open questions or assumptions.
- Then validation state.
- Then short summary/verdict.
For no findings:
- Say that no merge-blocking issues were found.
- State exactly what was validated.
- State residual risk or untested areas.
For PR summaries:
- Use the real diff/range.
- Describe user-visible behavior and operational impact.
- Avoid touched-file inventories, commit hashes, and unverified claims.
Version History
- ee846a6 Current 2026-08-20 13:01


