Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add yike-gunshi/forge-skills --skill forge-reviewgit clone --depth 1 https://github.com/yike-gunshi/forge-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/yike-gunshi/forge-skills/forge-review)<a href="https://agentmods.dev/skills/yike-gunshi/forge-skills/forge-review"><img src="https://agentmods.dev/badge/skills/yike-gunshi/forge-skills/forge-review/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/yike-gunshi/forge-skills/forge-review"><img src="https://agentmods.dev/badge/skills/yike-gunshi/forge-skills/forge-review.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00133 | $0.02288 |
| Opus 5.5 | $0.00053 | $0.00915 |
| Sonnet 5.5 | $0.00027 | $0.00458 |
| Haiku 4.5 | $0.00013 | $0.00229 |
Grade A, and why
forge-review scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 18d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 212 lines — stays where its author put it; the contents beside it link to each section on GitHub.
文档落地路径:遵循 forge-doc-policy 规范。完整白名单 + frontmatter schema 见
~/.claude/skills/forge-doc-policy/doc-paths.md。 当前文档加载顺序:需要判断需求/设计/工程口径时,先读项目CLAUDE.md、docs/README.md、docs/INDEX.md和相关根级当前真相源;历史 archive 只作追溯证据。 详细规则见~/.claude/skills/_shared/current-doc-loading.md。
/forge-review:代码审查
前置脚本(每次先运行)
_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
echo "当前分支: $_BRANCH"
提问格式与批量策略见
~/.claude/skills/_shared/interaction-protocol.md。
第0步:确定基础分支
按顺序判断此 PR 合并到哪个分支:
# 1. 检查是否已有 PR
gh pr view --json baseRefName -q .baseRefName 2>/dev/null
# 2. 没有 PR 则获取仓库默认分支
gh repo view --json defaultBranchRef -q .defaultBranchRef.name 2>/dev/null
# 3. 都失败则回退到 main
打印出基础分支名称,后续所有 git diff、git fetch、git merge 等命令中用实际分支名替换"基础分支"。
第1步:检查分支状态
git branch --show-current
git fetch origin <基础分支> --quiet && git diff origin/<基础分支> --stat
如果在基础分支上,或没有 diff,输出:"没有可审查的内容——你在基础分支上或没有变更。" 并停止。
第2步:获取完整 diff
git fetch origin <基础分支> --quiet
git diff origin/<基础分支>
在评论之前先读完完整 diff。 不要标记 diff 中已经修复的问题。
第3步:两轮审查
第一轮(严重问题)
逐项检查以下类别,对每个 diff 文件详细分析:
1. SQL 与数据安全
检查:
- 用户输入是否直接拼入 SQL?(注入风险)
- 原始 SQL 查询是否使用了参数化?
- 批量更新/删除是否有
WHERE条件?(全表操作风险) - 事务边界是否正确?(部分成功状态)
- 软删除记录是否在所有查询中被过滤了?
报告格式:[严重] 文件:行号 — 问题描述 → 修复建议
2. 竞态条件与并发
检查:
- 先读后写操作是否有并发安全问题?(检查-再-操作 TOCTOU)
- 数据库操作是否需要乐观锁/悲观锁?
- 共享状态是否在多个请求间安全?
- 缓存失效是否有竞态?
特别注意:状态转换(如 draft → published)必须用数据库级约束,不能只依赖应用层检查。
3. LLM 输出信任边界
检查:
- LLM 生成的内容在写入数据库前是否经过验证/清洗?
- LLM 输出是否直接用于 SQL 构建或系统命令?
- 是否对 LLM 输出的类型和格式做了断言?
- Prompt 中是否包含了敏感数据(密钥、PII)?
4. 枚举与值完整性
检查:
- 新增枚举值/状态/类型时,所有引用了同级值的文件是否都处理了新值?
重要:枚举完整性必须读取 diff 以外的代码。当 diff 新增了枚举值,用 Grep 找出所有引用了同级值的文件,Read 这些文件检查新值是否被处理。
第二轮(信息性问题)
5. 条件副作用
检查:
- 副作用(发邮件、写日志、扣费用)是否在
if语句的所有分支中都正确处理? - 删除或禁用功能时,是否清理了对应的副作用触发器?
6. 魔法数字与字符串耦合
检查:
- 是否有应该提取为常量的重复数字/字符串?
- 硬编码的限制值(如
100、1000)是否有注释说明含义?
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 18d ago Changed · +5 lines abb4ef647568
- 19d ago Changed · +1 lines dcb436a534a7
- 2mo ago First seen · 206 lines · 133 tokens per session scan A 0fb8343c24a9
forge-review is a skill published in the GitHub repository yike-gunshi/forge-skills (13 stars, last pushed 15d ago), licensed MIT. It adds 133 tokens to every session and 2,288 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
vastai-sdk
Vast.ai Python SDK — high-level API for GPU instances, volumes, serverless endpoints, and billing.
crap-analyzer
Use to produce a risk-based refactor + test plan for recently-changed code on a diff/branch/PR by computing CRAP (complexity × untested) on changed methods. Multi-language — TypeScript, JavaScript, Python, Java, Kotlin, Go, Ruby, C#, Rust, PHP — auto-discovers how the repo generates coverage. Triggers …
ork-assess
Assess a code change, design, architecture, workflow, or competing options against explicit criteria and evidence. Use when a request asks to assess, rate, compare, identify trade-offs, evaluate readiness, or decide whether an approach is good enough. Do not use for a full pull-request review or to implement a chosen…
ork-verify
Verify that existing work is ready to merge, release, or hand off using an explicit evidence contract. Use when a request asks to verify, validate, prove, check readiness, run the relevant tests, or distinguish a claimed result from an observed one. Do not use to write missing tests or fix failures.
joycraft-spec-done
Lightweight per-spec wrap-up — bump status to in-review, terse discovery if surprised, commit. Run after each spec in checkpoint/isolated mode; no validation, no push, no PR.
implementation-loop
Delegate implementation to Codex or to a sandboxed Claude Code (claude -p), have a model from the other vendor review the diff, send it back to iterate, gate on the full test suite, and ship it as a PR. Use this whenever the user wants Codex or a sandboxed Claude to write code, mentions handing off / delegating…