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 XRenSiu/claude-code-forge --skill grillgit clone --depth 1 https://github.com/XRenSiu/claude-code-forgeWrote 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/xrensiu/claude-code-forge/grill)<a href="https://agentmods.dev/skills/xrensiu/claude-code-forge/grill"><img src="https://agentmods.dev/badge/skills/xrensiu/claude-code-forge/grill/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/xrensiu/claude-code-forge/grill"><img src="https://agentmods.dev/badge/skills/xrensiu/claude-code-forge/grill.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.00428 | $0.03488 |
| Opus 5.5 | $0.00171 | $0.01395 |
| Sonnet 5.5 | $0.00086 | $0.00698 |
| Haiku 4.5 | $0.00043 | $0.00349 |
Grade A, and why
grill 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 1mo 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 — 133 lines — stays where its author put it; the contents beside it link to each section on GitHub.
grill — 对齐环:问题集来自形状,停机来自分歧,默认值进不来
本文件只写引擎给不出的东西:为什么"Agent 觉得对齐了"不能当停机条件、完备是相对什么形状而言的、 四键停机怎么由脚本判、每条槽的三条合法出路。推几次、先查哪份物料、怎么写 PSL 是你(引擎)的份额。
缺口(Judgment + Control)
deletion 测试:撤掉本 skill,让引擎"AFK 把这个需求 grill 到对齐"。它会自问自答几轮,用仓库里能找到的 和找不到的(默认值)把 PSL 填满,然后说"已对齐"——一份看起来完整的文档比一份到处是空槽的文档更危险, 因为人对着它会签字(cognitive surrender)。三处缺口:
- φ:停机判据。Ambig-SWE(ICLR 2026):模型分不清一个任务写清楚了没有。"引擎觉得对齐了"不是证据;
"N 个隔离读者读出同一套判断"才是。
divergence.md的分歧率与pending.yaml的计数是可核对的量。 - γ:槽的出路。物料来路必须能打开(
grill_loop.py resolve --from materials找不到文件即拒);--from default被硬拒;留给人的每一条必须写"为什么需要人来定"。 - Σ:完备相对什么形状。BFS 只保证"长出来的节点都走到了",不保证"该长的都长出来了"。形状给 槽一个有限的、可数的集合(下表),完备 = 每个承重槽不处于"未填、未问、未 seam"三无状态。
世界(Σ):完备相对哪个形状
| 完备的范围 | 槽从哪来 | 谁数 | 形状之外的漏洞由谁抓 |
|---|---|---|---|
| 世界层 | PSL 六层的承重槽(取值会改产品形态或翻转某条验收) | verify_psl.py(缺层 / 无 Open Questions 拒;--afk 再拒无来路与无 why) |
分歧集:N 次隔离推导读出不一样 = 形状没管住的欠定 |
| 词表层 | dos.yaml 里的对象与关系 |
verify_vocabulary.py --dos(需求文本里本体解析不了的名词 = 一道必问题) |
逃逸缺陷回流(aidlc_state.py escape --layer world)下次形状多一个槽 |
| 验收层 | 每条 happy 配 unhappy、每个形容词配阈值 | verify_issue.py / verify_done_when.py;TASK 轨的 divergence.py |
同上 |
BFS 与 AFK 不是同一维度上的两个选项:BFS 说顺序,AFK 说谁答。顺序按 PSL 六层的推导序走(上一层是 下一层的定律),样子上像 BFS,但停机来自形状与分歧,不来自遍历。AFK 只决定每个槽由谁填:有人在场问人 (elicit);无人在场,能从代码 / 文档里找到的填上并注明来路(surface),找不到的标待定(seam)。两种模式 的停机判据一样,产物形状一样,区别只是待定清单的长短。
关于用户的 Σ。 "自动 grill 一下" = 跑机器份额到 check 说 human 或 converged 为止,然后把
pending.yaml 的 needs_human 行拿给用户,不是把 PSL 全文拿给用户通读。"别问我了直接写" = 全部 defer,
清单会长,照常交付。"你觉得清楚了就行" ≠ 跳过分歧检验——那正是这个环存在的理由。
判据(φ):四键停机,由 grill_loop.py check 判
| 键 | 条件 | 退出码 | 之后 |
|---|---|---|---|
| success | open = 0 ∧ needs_human = 0 ∧ 本轮 resolve 都已重推 ∧ 分歧率 ≤ --max-divergence(缺省 0.20) |
0 converged |
进 G1:pending.yaml + grill-ledger.md 附进 g1-record.md |
| (机器份额做完) | open = 0 ∧ needs_human > 0 | 10 human |
把 needs_human 行交人;人答后 resolve --from human --by → 补 PSL → 重推一轮 → pending |
| convergence | open 数连续 --plateau(缺省 2)轮不降 |
1 plateau |
机器找不到来路了:全部 defer,交人 |
| budget | 轮数 > --max-rounds(缺省 4) |
1 budget |
写失败报告,交人 |
| impossible | 分歧率 > 0.5 | 1 impossible |
PSL 约束太弱:回 /psl 补 Mental Model / Domain Model,不用多数表决糊过去 |
| (继续) | 还有 open 项,或本轮有 resolve 尚未重推,或 divergence.md 变了但清单没重抽 | 20 continue |
见 reasons |
What ships with it
11 files 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.
- assets/pending_template.yaml 1.5 KB
- eval/fixtures/derived_r1/divergence.md 385 B
- eval/fixtures/derived_r1/dos-proposal.yaml 1.4 KB
- eval/fixtures/derived_r1/form-draft.md 786 B
- eval/fixtures/derived_r1/workflow.md 414 B
- eval/fixtures/PSL-afk-no-why.md 2.3 KB
- eval/fixtures/PSL-afk-user-elicit.md 2.4 KB
- eval/fixtures/PSL-memory-time-search.md 2.4 KB
- eval/gate.json 2.5 KB
- references/shape.md 3.1 KB
- scripts/grill_loop.py 23 KB runs code
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.
- 1mo ago First seen · 133 lines · 428 tokens per session scan A cab427d40a50
grill is a skill published in the GitHub repository XRenSiu/claude-code-forge (2 stars, last pushed 1mo ago), licensed MIT. It adds 428 tokens to every session and 3,488 once invoked, about $0.0017 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-09-19.
Other skills, from other repositories
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…