用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/deepaksinghcs14/deadeye-cc --skill deadeye-guard命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
PR review across four lenses -- over-engineering, correctness, performance, security -- printed locally, opt-in to post.
Lean-first coding persona (YAGNI, stdlib-first, shortest diff). Levels: spotter, marksman, sniper.
Over-engineering review -- what to delete and what replaces it. The working diff by default, or the whole repo with --repo.
正在显示 SKILL.md
| name | deadeye-guard |
| description | Security review of the current diff -- injection, secrets, authz, crypto, and vulnerable dependencies. |
| license | MIT |
Review ONLY the changed code for security exposures. Nothing else: lean-
lens over-engineering is /deadeye-review's job, not this one.
This is the deep pass behind coder mode's live Edit/Write advisory: the advisory is a fast regex reminder on the text just written; this skill reads around the hunk, verifies before reporting, and runs real dependency auditors where they're installed.
Get the diff with git diff (or git diff --staged if the user says
staged, or git diff <ref> for a named base). Read the changed hunks plus
enough surrounding context to judge a trust boundary — more than
/deadeye-review needs, since "is this input actually validated" often
requires seeing the caller.
Before claiming a sanitizer, an authz check, or input validation is
MISSING, grep for it OUTSIDE the diff — middleware, a decorator, a
framework-level guard, a base class. An unguarded-looking handler whose
auth actually lives in a router Use() call is a false positive, and one
wrong finding erodes trust in all of them. Report only what you confirmed.
A deadeye: <shortcut>. ceiling: <limit>. upgrade: <trigger>. comment
covering a hunk is a recorded DECISION, not a finding — someone already
chose to ship that exposure with eyes open. Count it separately from what
you flag; /deadeye-debt owns the ledger of those.
Detect the ecosystem from the manifest touched in the diff (go.mod,
package.json, requirements.txt/pyproject.toml, Cargo.toml,
pom.xml/build.gradle), then run its native auditor if installed:
| Ecosystem | Command |
|---|---|
| Go | govulncheck ./... |
| npm | npm audit --json |
| Python | pip-audit -f json (or osv-scanner -L requirements.txt) |
| Rust | cargo audit |
| any | osv-scanner -L <manifest> as a fallback |
If the tool isn't installed, SAY SO and fall back to what coder mode's
live advisory already used — the bundled superseded-package table and
~/.deadeye/osv-cache.json — rather than fabricating a CVE list. When a
dependency is vulnerable or abandoned, report the fix in ladder order:
stdlib or native first, a maintained sibling second, a version bump last
— deleting the dependency is a fix too, and often the shortest one.
One line per finding:
L<line>: <tag> <what reaches what>. <fix>.
Seven tags, use exactly these:
inject: — untrusted input reaches SQL, a shell, a template, a path, or evalsecret: — a credential literal, or a secret handled somewhere it can leak (logs, error messages, client-visible output)authz: — a decision or resource access with no confirmed permission checkcrypto: — hand-rolled or weak crypto (MD5/SHA1 for passwords, a non-CSPRNG for a token, TLS verification disabled)expose: — sensitive data returned/logged beyond what the caller needsdep: — a vulnerable or superseded dependency, from the pass abovedos: — untrusted input sizes an allocation, an unbounded loop, or unbounded recursion → memory or CPU exhaustion. Cap it, or bound the input firstRank by exploitability (reachable from untrusted input first). End with
<N> exposures, <M> accepted. (accepted = the marked, decided-corners
count from the verify step) — or, when nothing survives, exactly:
Clean line of fire.
More than ~12 findings: keep the highest-exploitability ones and say how many lower-severity ones were omitted.
✅ L42: inject: name interpolated into a raw SQL string. Bind it as a query parameter.
✅ L88: authz: /admin/users has no role check in this diff or its router group. Add one, or confirm it's covered upstream.
✅ L15: dep: lodash 4.17.20 has an open OSV advisory (GHSA-p6mc-m468-83gg). 4.17.21 patches it, or drop it -- the two helpers used here are stdlib now.
✅ L120: crypto: password hashed with md5. Use bcrypt/scrypt/argon2 instead.
❌ "This endpoint might have some security considerations worth thinking about..." — hedging isn't a finding. Name the line, the reachable input, the fix.
/deadeye-review.