Token导航 LogoToken导航TokenDH.com
研究检索执行命令github未标认证来源可访问许可证需确认审计通过

code-review-assistant代码审查助理

Agent Skill

code-review-assistant 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

343

周安装

14

GitHub Stars

公开资料未说明

下载量

111
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:code-review-assistant(代码审查助理)
来源仓库:https://github.com/santosomar/general-secure-coding-agent-skills
仓库路径:skills/code-review-assistant
安装命令:
npx skills add https://github.com/santosomar/general-secure-coding-agent-skills --skill code-review-assistant
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/santosomar/general-secure-coding-agent-skills --skill code-review-assistant

简介

用于查找、检索和筛选相关信息,支持代码审查相关任务。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词、任务场景或来源线索快速定位候选结果。
  • 使用时需结合来源仓库、安装命令和原始 README 核验具体用法。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。
  • 注意数据来源可靠性,避免依赖未经验证的信息。

SKILL.md

Code Review Assistant

Review code as a senior engineer would: find the bug that will page someone at 3am, not the missing semicolon. Every comment should be one the author couldn't have found with a linter.

Priority order — always review in this sequence

Stop after any tier that produces a Blocking finding. There is no value in reporting naming nits on code that deletes the wrong rows.

  1. Correctness — does it do what the PR says it does?
  2. Error & edge-case handling — what happens at empty / null / max / concurrent?
  3. Security — untrusted input, authz, secrets, injection
  4. Performance — only for hot paths; O(n²) in a loop over user records is a bug, in a 5-element config list it isn't
  5. Maintainability — naming, structure, duplication, tests
  6. Style — only if the project has no formatter; otherwise skip entirely

Step 1 — Understand before you judge

Read in this order:

  1. PR title + description. This is the contract. Everything else is checked against it.
  2. Test changes. Tests encode what the author *thinks* the code does. Mismatch between test names and PR description = first red flag.
  3. The diff itself. Now you know what to look for.

If the PR description is empty or says "misc fixes" — your first comment is asking for a description. You cannot review intent you don't know.

Step 2 — Correctness pass

For every changed function, hold the stated intent (from the PR description) against the implementation. Specific checks:

  • Off-by-one at boundaries. < vs <=, len-1 vs len, slice end-exclusive vs inclusive. If you see a loop boundary change in the diff, verify against one concrete example.
  • Negation logic. if (!isValid ||!isEnabled) — expand De Morgan's in your head and verify the truth table is what the author meant.
  • Early returns + cleanup. New return in the middle of a function that previously had a single exit → does it skip a close() / unlock() / commit() that used to run?
  • State mutation ordering. If the diff reorders two writes to shared state, what reads them? If the diff adds a write before an existing read of the same field, is the old read still correct?
  • Async/await: Missing await on a promise-returning call is a silent future bug. Every call to an async function should be awaited, explicitly voided, or collected for Promise.all.

Step 3 — Error & edge-case pass

For each changed function, walk the inputs:

Input shapeAsk
Collection / arrayWhat if it's empty? What if it has one element?
Optional / nullableIs it checked before first deref? Is there a *test* for the null path?
StringEmpty string? Whitespace-only? Longer than the DB column?
NumberZero? Negative? Larger than the downstream type can hold?
External callWhat if it throws? Times out? Returns a shape you don't expect?
Map / dict lookupWhat if the key is absent?

Catch blocks deserve extra scrutiny. A catch that just logs and continues turns a loud failure into a silent data corruption. Ask: *is the system in a valid state after this catch runs?* If not → Blocking.

Step 4 — Security pass

Not a full audit — just the things a reviewer spots in a diff:

  • Any string concatenation that feeds a query, shell command, HTML, or URL → does untrusted input reach it?
  • Any new exec, eval, system, child_process, subprocess, Runtime.exec
  • Any new endpoint or handler → where's the authz check? Is it before or after the first data access?
  • Any literal that looks like a credential → even in tests, even commented out
  • Deserialization of external input (pickle.loads, yaml.load, ObjectInputStream, unserialize)

For anything beyond a spot check, defer: "→ run static-vulnerability-detector on this path before merge."

Step 5 — Scope the maintainability pass

Do not comment on code the PR didn't touch. If a function was already 200 lines and the PR adds 3 lines to it, the 200-line problem is pre-existing tech debt, not this author's responsibility. At most: one summary-level comment suggesting a follow-up, never inline.

On code the PR *did* introduce:

  • Is the new abstraction pulling its weight? A new interface with one implementer is a prediction, not a requirement. Ask what the second implementer would be.
  • Is it tested? If the PR adds a branch with no corresponding test, say so — and say which specific case is missing.

Severity levels

LevelMeaningAuthor's obligation
BlockingMerge will cause a bug, security issue, or data lossMust fix before merge
Should-fixWill cause pain later; fix is clear and scopedFix now or open a follow-up with a link
NitPreference. Reasonable people disagree.Author's call. No re-review needed.
QuestionYou don't understand; might be fine, might notAuthor answers; you decide severity from the answer

Do not mark something Blocking to win a style argument. Blocking means "this will break production." If you're not confident it will, it's Should-fix at most.

Output format

## Summary
Adds retry-with-backoff to the payment client.
1 blocking (retries non-idempotent POST), 1 should-fix, 2 nits.
Recommend addressing the blocking finding before approval.

## Findings

### src/payments/client.ts:45  [Blocking]
Retry wraps `POST /charges`. That endpoint is not idempotent — a
transient 503 after the charge succeeded server-side will retry and
double-charge the customer.
→ Either: pass an Idempotency-Key header and have the server dedupe,
or only retry on errors that guarantee the request never reached the
server (connection refused, DNS failure).

### src/payments/client.ts:52  [Should-fix]
Backoff is 2^attempt seconds, uncapped. Attempt 10 = 17 minutes.
→ Cap at 30s: `Math.min(2 ** attempt, 30)`.

### src/payments/client.ts:38  [Nit]
`let` could be `const` — `delayMs` is never reassigned.

### test/payments.test.ts:140  [Question]
This test asserts 3 retries, but I don't see where the max is
configured. Is it hardcoded or am I missing a fixture?

Worked example

Diff:

  async function deleteUser(userId) {
-   const user = await db.users.findById(userId);
-   if (!user) throw new NotFoundError();
-   await db.users.delete(userId);
+   await db.users.delete(userId);
+   await cache.invalidate(`user:${userId}`);
  }

Review:

  1. *Correctness:* The null check is gone. db.users.delete(nonexistentId) — what does it do? If it's a no-op that returns 0 rows affected, fine. If it throws, the error changed from NotFoundError to a DB error — API contract break. → Question.
  2. *Error handling:* If delete succeeds but cache.invalidate throws, the user is gone from the DB but the cache still serves them. Next read is a ghost. → Should-fix: invalidate first, or catch-and-log the cache failure since the DB is source of truth.
  3. *Ordering:* Actually — the ordering *is* the bug. Invalidate-then-delete has a race (another request repopulates the cache between the two), but delete-then-invalidate has the failure-mode above. Pick your poison, but document which one and why. → folds into the Should-fix.
  4. Nothing Blocking — the change does what the PR says. Approve once the question is answered and the failure mode is acknowledged.

Do not

  • Rewrite the PR in the review. If you'd do it differently but the author's way works, that's a Nit or nothing.
  • Comment on style the formatter owns. If the project runs prettier/black/gofmt, style comments are noise.
  • Approve with unresolved Blocking findings "to unblock the author." That's what Should-fix is for.
  • Ask questions you can answer yourself in 30 seconds. Read the surrounding code first.
  • Pile on. If there are already 15 comments from another reviewer, add only what's new. Duplicate comments waste the author's time.
  • Block on test coverage percentage. Block on *the specific untested case that matters*, and name it.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

37.44%
按下载量换算42

Claude

27.83%
按下载量换算31

Cursor

18.09%
按下载量换算20

Gemini CLI

8.18%
按下载量换算9

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

执行命令

安装流程涉及命令执行,可能通过 npx skills add https://github.com/santosomar/general-secure-coding-agent-skills --skill code-review-assistant 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills