← 返回 Skills 市场
tenequm

polish

作者 Misha Kolesnik · GitHub ↗ · v2.2.0 · MIT-0
cross-platform ⚠ suspicious
107
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install code-polish
功能描述
Pre-release code review - runs lint/type checks, then launches 3 parallel review agents (cleanliness, design, efficiency) to analyze the diff, synthesizes a...
使用说明 (SKILL.md)

Pre-Release Polish

Current branch: !git rev-parse --abbrev-ref HEAD Uncommitted changes: !git diff --stat 2>/dev/null | tail -1

Rules

  • Read every changed file fully before reviewing - never assess code you haven't opened
  • Only flag real issues, not style preferences already handled by the formatter
  • Do NOT add comments, docstrings, or type annotations to code that doesn't have them
  • Distinguish legitimate operational logging (logger.info, logger.error) from debug leftovers (console.log, console.debug)
  • When fixing, make minimal targeted edits - don't refactor surrounding code
  • Only flag issues in changed/added lines, not pre-existing code
  • Reuse suggestions must point to a specific existing function/utility in the codebase, not hypothetical "you could extract this"
  • Do not flag efficiency on cold paths, one-time setup code, or scripts that run once

Phase 1: Automated Checks

Run the project's lint + type-check command. Check CLAUDE.md for the correct validation command (commonly pnpm check, just check, cargo clippy, uv run ruff check, etc.).

If checks fail:

  1. Fix all errors
  2. Re-run checks until clean
  3. Then proceed to Phase 2

If no validation command is found in CLAUDE.md, ask the user what to run.

Phase 2: Diff Analysis

Determine what changed:

  1. Check for uncommitted changes: git diff + git diff --cached
  2. If no uncommitted changes, diff against main: git diff main...HEAD
  3. If no changes at all, report "nothing to review" and stop

Read every changed file fully. Understand what each change does and why.

Phase 3: Parallel Review

Use the Agent tool to launch all three agents concurrently in a single message with model: "opus". Pass each agent the full diff and the list of changed files so it has the complete context.

Agent 1: Cleanliness

Fast, mechanical, high-confidence. Looks for junk that should be removed.

  • Debug leftovers: console.log, console.debug, console.warn added during development; temporary debug variables, hardcoded test values. NOT structured logger calls (logger.info, logger.error, c.var.logger)
  • AI slop: comments explaining obvious code ("// increment counter", "// return the result") - flag each such comment individually, even if the code it describes is also flagged under another category; JSDoc on internal/private functions that aren't part of a public API; verbose docstrings on simple helpers; TODO/FIXME/HACK markers left by Claude (not by the user); unnecessary type annotations where the language infers correctly; emoji in code or comments (unless the project uses them)
  • Dead code: unreferenced functions, variables, types; commented-out code blocks (git has history); unused function parameters (unless required by interface/callback signature)
  • Unused imports: imports added but never referenced, imports left behind after refactoring (linter catches most - verify edge cases)
  • Hardcoded values: magic numbers or strings that should be in constants; URLs, prices, limits that belong in config. NOT obvious constants like 0, 1, true, HTTP status codes

Agent 2: Design & Reuse

Requires codebase exploration beyond the diff. Looks for structural and design issues.

  • Reuse opportunities: search the codebase for existing utilities, helpers, and shared modules that could replace newly written code. Look in utility directories, shared modules, and files adjacent to the changed ones. Flag hand-rolled logic where a utility already exists (string manipulation, path handling, type guards, env checks)
  • Over-engineering: helper functions used exactly once (should be inlined); abstractions wrapping a single call with no added value; try/catch adding nothing (re-throwing same error, catching impossibilities); validation of internal data already validated at route boundary; feature flags or config for things that could just be code; backwards-compat shims for code that was just written
  • Redundant state: state that duplicates existing state; cached values that could be derived; observers/effects that could be direct calls
  • Parameter sprawl: adding new parameters to a function instead of generalizing or restructuring existing ones
  • Copy-paste with slight variation: near-duplicate code blocks that should be unified
  • Leaky abstractions: exposing internal details that should be encapsulated, or breaking existing abstraction boundaries
  • Stringly-typed code: using raw strings where constants, enums, or branded types already exist in the codebase
  • Structural issues: functions that grew too long during changes (>50 lines, consider splitting); inconsistent naming with existing codebase conventions

Agent 3: Efficiency

Looks for runtime performance and resource issues.

  • Redundant work: redundant computations, repeated file reads, duplicate network/API calls, N+1 patterns
  • Missed concurrency: independent operations run sequentially when they could run in parallel
  • Hot-path bloat: new blocking work added to startup or per-request/per-render hot paths
  • No-op updates: state/store updates inside polling loops, intervals, or event handlers that fire unconditionally without change detection. Also: wrapper functions that take updater/reducer callbacks but don't honor same-reference returns
  • TOCTOU anti-patterns: pre-checking file/resource existence before operating - operate directly and handle the error
  • Memory: unbounded data structures, missing cleanup, event listener leaks
  • Overly broad operations: reading entire files when only a portion is needed, loading all items when filtering for one
  • Unchecked system boundaries: fetch/HTTP calls without response status checks (r.ok), unhandled promise rejections on external calls, missing error handling at I/O boundaries

Phase 4: Validate Findings

Before presenting anything, verify every finding from the agents against actual code. Drop any finding that fails validation.

For each finding:

  • Read the exact file and lines cited - confirm the code exists and matches the description. Drop findings where the line number is wrong or the code doesn't match what was claimed
  • Dead code / unused imports - grep the entire codebase for references. If the symbol is referenced anywhere (imports, calls, type usage), drop the finding
  • Reuse suggestions - confirm the suggested utility/function actually exists at the claimed path. If it doesn't exist, drop the finding
  • Debug leftovers - confirm the flagged line is actually a debug artifact, not structured logging (logger.*, c.var.logger.*)
  • Efficiency / design claims - read the surrounding context to confirm the pattern matches. Drop speculative findings that don't hold up with full context

Only findings that survive validation proceed to the report.

Phase 5: Report

Synthesize validated findings into a single deduplicated report. If multiple agents flagged the same code, merge into one finding. Group by category:

## Review Findings

### Cleanliness (N issues)
1. `path/to/file.ts:42` - console.log("debug response")
2. ...

### Design (N issues)
1. `path/to/file.ts:15-18` - hand-rolled path join, use existing `resolveAssetPath` from shared/utils
2. ...

### Efficiency (N issues)
1. `path/to/file.ts:30-45` - sequential awaits on independent API calls, use Promise.all
2. ...

**Total: X issues across Y categories**

**Awaiting approval before proceeding with fixes.**

If zero issues found, report "Clean - no issues found" and stop.

The report MUST end with the line "Awaiting approval before proceeding with fixes." (or "Clean - no issues found"). Do not proceed to Phase 6 until the user explicitly approves.

Phase 6: Fix and Verify

After user approves:

  1. Fix all reported issues with minimal targeted edits
  2. Re-run the project's validation command
  3. If new errors appear, fix them
  4. Show summary: what was fixed, final check status
安全使用建议
This skill appears to do what it says (run lint/type checks, analyze diffs, and synthesize findings), but before installing: 1) confirm the disable-model-invocation:true metadata — the SKILL.md expects to launch model-backed agents (model: "opus"); ask the publisher which model endpoint is used and whether model invocations are actually allowed by the platform; 2) accept that the skill explicitly reads full diffs and changed files and instructs sending them to review agents — if your repo contains sensitive or proprietary code, verify the model endpoint's privacy/storage policy or run the skill in an isolated/local environment; 3) because the source/publisher is unknown, consider reviewing SKILL.md and the fixture scripts locally (they only create test repos) and testing on a non-sensitive repo first; 4) if you require guarantees that code never leaves your infrastructure, ask for clarification on where "opus" runs or request a version that performs only local static analysis without external model calls.
功能分析
Type: OpenClaw Skill Name: code-polish Version: 2.2.0 The 'code-polish' skill is a legitimate code review tool designed to automate linting, type-checking, and multi-agent analysis of code diffs for cleanliness, design, and efficiency. It uses standard git commands (e.g., git diff) and project-specific validation commands, and it explicitly requires user approval before applying any automated fixes (SKILL.md). The included shell scripts in the evals directory are standard test fixtures used to create mock repositories for verifying the skill's detection logic.
能力评估
Purpose & Capability
Name/description (pre-release code review) align with the instructions and the included test fixtures (cleanliness, design, efficiency). The skill does not request unrelated credentials or binaries. However, the SKILL.md instructs launching model-backed agents (Agent tool with model: "opus") while the skill metadata sets disable-model-invocation: true — this is an internal inconsistency about whether the skill may invoke models.
Instruction Scope
Instructions explicitly run git commands, read diffs and open every changed file (which is expected for code review). They also direct the agent to package the full diff and changed-file context and send it to three parallel agents (model: "opus"). Sending full repository diffs to an external model is expected for automated reviews but is a sensitive action: the SKILL.md gives the agent broad discretion to read and transmit full code diffs. Confirm where the receiving model runs and how data is handled/stored.
Install Mechanism
No install spec and no runtime dependencies — lowest-risk installation footprint. The repository only includes evaluation fixture setup scripts and tests; nothing is downloaded or written to system paths by an installer.
Credentials
The skill declares no required environment variables, credentials, or config paths. The runtime instructions reference project files (CLAUDE.md, git state) only — which is appropriate for a local code-review tool.
Persistence & Privilege
Flags show always:false and user-invocable:true; the skill does not request permanent presence or elevated privileges. It does not modify other skills or system-wide settings in the provided materials.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install code-polish
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /code-polish 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v2.2.0
Initial publish of code-polish
元数据
Slug code-polish
版本 2.2.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

polish 是什么?

Pre-release code review - runs lint/type checks, then launches 3 parallel review agents (cleanliness, design, efficiency) to analyze the diff, synthesizes a... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 107 次。

如何安装 polish?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install code-polish」即可一键安装,无需额外配置。

polish 是免费的吗?

是的,polish 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

polish 支持哪些平台?

polish 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 polish?

由 Misha Kolesnik(@tenequm)开发并维护,当前版本 v2.2.0。

💬 留言讨论