跳到正文
cccskills
免费在 GitHub 公开

nemoclaw-maintainer-security-code-review

Performs a comprehensive security review of code changes in a GitHub PR or issue. Checks out the branch, analyzes changed files against a 9-category security checklist, and produces PASS/WARNING/FAIL verdicts. Use when reviewing pull requests for security vulnerabilities, hardcoded secrets, injection flaws, auth bypasses, or insecure configurations. Trigger keywords - security review, code review, appsec, vulnerability assessment, security audit, review PR security.

中文简介正在准备中。当前显示原文说明。

集成工具GitHub
查看安装方法

包含的文件(1)

  • SKILL.md6.9 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Security Code Review

Perform a thorough security review of the changes in a GitHub PR or issue, producing a structured report with per-category verdicts.

Prerequisites

  • gh (GitHub CLI) must be installed and authenticated.
  • git must be available.
  • Network access to clone repositories and fetch PR metadata.

When to Use

  • Reviewing a pull request before merge for security vulnerabilities.
  • Triaging a GitHub issue that reports a potential security flaw.
  • Auditing code changes for hardcoded secrets, injection flaws, auth bypasses, or insecure configurations.

Step 1: Parse the GitHub URL

If the user provided a PR or issue URL, extract the owner, repo, and number. If not, ask for one.

Supported URL formats:

  • https://github.com/OWNER/REPO/pull/NUMBER
  • https://github.com/OWNER/REPO/issues/NUMBER

Step 2: Check Out the Code

Determine whether you are already in the target repository (compare gh repo view --json nameWithOwner -q .nameWithOwner against the URL). If you are:

gh pr checkout <number>

If reviewing a different repo, clone it to a temporary directory first:

TMPDIR=$(mktemp -d)
gh repo clone OWNER/REPO "$TMPDIR"
cd "$TMPDIR"
gh pr checkout <number>

Step 3: Identify Changed Files

List all files changed relative to the base branch:

git diff main...HEAD --name-status

If the PR targets a branch other than main, use the correct base. Check with:

gh pr view <number> --json baseRefName -q .baseRefName

Step 4: Read Every Changed File and Diff

Read the full content of each changed file and the diff for that file:

git diff main...HEAD -- <file>

For large PRs (more than 30 changed files), prioritize files in this order:

  1. Files that handle authentication, authorization, or credentials.
  2. Files that process user input (API handlers, CLI argument parsing, URL parsing).
  3. Configuration files (Dockerfiles, YAML policies, environment configs).
  4. New dependencies (package.json, requirements.txt, go.mod changes).
  5. Everything else.

Step 5: Analyze Against the Security Checklist

For each of the 9 categories below, assign a verdict:

  • PASS — no issues found (brief justification).
  • WARNING — potential concern (describe risk and suggested fix).
  • FAIL — confirmed vulnerability (describe impact, severity, and remediation).

Category 1: Secrets and Credentials

  • No hardcoded secrets, API keys, passwords, tokens, or connection strings in code, configs, or test fixtures.
  • No secrets committed to version control (check for .env files, PEM/key files, credential JSON).
  • Tokens and credentials passed via environment variables or secret stores, not string literals.

Category 2: Input Validation and Data Sanitization

  • All user-controlled inputs (APIs, forms, URLs, headers, query params, file uploads) are validated against an allowlist of expected types, lengths, and formats.
  • Proper encoding and escaping to prevent XSS, SQL injection, command injection, path traversal, and SSRF.
  • Deserialization of untrusted data uses safe parsers (no pickle.loads, yaml.unsafe_load, eval, new Function, or similar).

Category 3: Authentication and Authorization

  • All new or modified endpoints enforce authentication before processing requests.
  • Authorization logic ensures users can only access or modify resources they own or are permitted to use.
  • No privilege escalation paths (horizontal or vertical).
  • Token validation (expiry, signature, scope) is correctly implemented.

Category 4: Dependencies and Third-Party Libraries

  • Newly added dependencies checked for known CVEs (OSV, Snyk, GitHub Advisory DB).
  • Dependencies pinned to specific, secure versions (no floating ranges in production).
  • OSS license compatibility not violated.
  • Dependencies pulled from trusted registries only.

Category 5: Error Handling and Logging

  • Error responses do not leak stack traces, internal paths, or sensitive data.
  • Logging does not record secrets, tokens, passwords, or PII.
  • Exceptions caught at appropriate boundaries; no unhandled crashes that expose state.

Category 6: Cryptography and Data Protection

  • Standard, up-to-date algorithms (AES-256-GCM, RSA-2048+, SHA-256+).
  • No MD5 or SHA-1 for security purposes. No custom cryptography.
  • Sensitive data encrypted at rest and in transit where applicable.

Category 7: Configuration and Security Headers

  • Secure defaults (debug mode off, restrictive permissions, minimal port exposure).
  • If HTTP endpoints are present: CSP and CORS configured correctly. No wildcard origins in authenticated contexts.
  • Container images use non-root users, minimal base images, and pinned digests.

Category 8: Security Testing

  • Tests cover security edge cases: malicious input, boundary values, unauthorized access attempts.
  • Existing security test coverage not degraded by the change.
  • Negative test cases verify that forbidden actions are denied.

Category 9: Holistic Security Posture

  • Changes do not degrade overall security posture.
  • No false sense of security (client-only validation, incomplete checks).
  • Least privilege followed for code, services, and users.
  • No TOCTOU race conditions in security-critical paths.
  • No unsafe concurrency that bypasses security checks.

Step 6: Produce the Report

Structure the output as follows:

Verdict

One paragraph summarizing the overall risk assessment and whether the PR is safe to merge.

Findings Table

One row per finding:

#CategorySeverityFile:LineDescriptionRecommendation

If no findings, state explicitly that the review is clean.

Detailed Analysis

Per-category breakdown (categories 1 through 9), each with its PASS, WARNING, or FAIL verdict and justification.

Files Reviewed

List every file analyzed.

Important Notes

  • If the PR has no changed files or is a draft with no code, state that and skip the analysis.
  • For NemoClaw PRs, pay special attention to sandbox escape vectors: SSRF bypasses, Dockerfile injection, network policy circumvention, credential leakage, and blueprint tampering.
  • Do not skip categories. If a category is not applicable to the changes (e.g., no cryptography involved), mark it PASS with "Not applicable — no cryptographic operations in this change."
  • When in doubt about severity, err on the side of WARNING rather than PASS.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Create GitHub pull requests that follow the NemoClaw PR template. Use when the user wants to create a new PR, submit code for review, open a pull request, or push changes for review. Trigger keywords - create PR, pull request, new PR, submit for review, open PR, push for review.

中文简介正在准备中。当前显示原文说明。

composio-community/nemoclaw-composio22026年4月30日 更新

Scan recent git commits for changes that affect user-facing behavior, then draft or update the corresponding documentation pages. Use when docs have fallen behind code changes, after a batch of features lands, or when preparing a release. Trigger keywords - update docs, draft docs, docs from commits, sync docs, catch up docs, doc debt, docs behind, docs drift.

中文简介正在准备中。当前显示原文说明。

composio-community/nemoclaw-composio22026年4月30日 更新

Cut a new semver release — bump all version strings via bump-version.ts, open a release PR, and after merge tag main and push. Use when cutting a release, tagging a version, shipping a build, or preparing a deployment. Trigger keywords - cut tag, release tag, new tag, cut release, tag version, ship it.

中文简介正在准备中。当前显示原文说明。

composio-community/nemoclaw-composio22026年4月30日 更新

Runs the daytime maintainer loop for NemoClaw, prioritizing items labeled with the current version target. Picks the highest-value item, executes the right workflow (merge gate, salvage, security sweep, test gaps, hotspot cooling, or sequencing), and reports progress. Use during the workday to land PRs and close issues. Designed for /loop (e.g. /loop 10m /nemoclaw-maintainer-day). Trigger keywords - maintainer day, work on PRs, land PRs, make progress, what's next, keep going, maintainer loop.

中文简介正在准备中。当前显示原文说明。

composio-community/nemoclaw-composio22026年4月30日 更新

Runs the end-of-day maintainer handoff for NemoClaw. Checks version target progress, bumps stragglers to the next patch version, generates a QA handoff summary, and cuts the release tag. Use at the end of the workday. Trigger keywords - evening, end of day, EOD, wrap up, ship it, cut tag, handoff, done for the day.

中文简介正在准备中。当前显示原文说明。

composio-community/nemoclaw-composio22026年4月30日 更新

Finds open GitHub PRs with security and priority-high labels, links each to its issue, detects duplicates (multiple PRs fixing the same issue), and presents a table of review candidates. Use when looking for the next PR to review. Trigger keywords - find pr, find review, next pr, pr to review, duplicate pr, security pr.

中文简介正在准备中。当前显示原文说明。

composio-community/nemoclaw-composio22026年4月30日 更新

查看 composio-community 的全部技能

报告此技能的问题