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 ratifygit 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/ratify)<a href="https://agentmods.dev/skills/xrensiu/claude-code-forge/ratify"><img src="https://agentmods.dev/badge/skills/xrensiu/claude-code-forge/ratify/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/ratify"><img src="https://agentmods.dev/badge/skills/xrensiu/claude-code-forge/ratify.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.00330 | $0.03053 |
| Opus 5.5 | $0.00132 | $0.01221 |
| Sonnet 5.5 | $0.00066 | $0.00611 |
| Haiku 4.5 | $0.00033 | $0.00305 |
Grade A, and why
ratify 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 — 120 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ratify — 把草稿变成法的那段仪式
产物:一份 .lock(哈希 + 签字人 + 时间戳)+ 被裁决填满的制品本身。本文件只写引擎给不出的东西:
仪式的顺序为什么不可调换(γ)、什么算一条裁决而不是拖延(φ)、授权怎么留痕(γ)、原语在哪(Π)。
缺口(Control + Judgment)
deletion 测试:撤掉本 skill,人说「冻结吧」,引擎会直接去跑 lock_done_when.py sign。三件事同时发生:
未决项没人提起(引擎记得的是它觉得有趣的那几条,不是文件里全部)、裁决只停在对话里(几周后没人知道
当初为什么这么定)、签字人写谁全凭手气。缺口是 Control(顺序与留痕)与 Judgment(什么算裁决)。
不是 Capability:呈现与写回由 scripts/agenda.py 做,冻结由 ../ai-dlc/scripts/lock_done_when.py 做,
两者都已存在。本 skill 不重做它们,只保证它们按这个顺序、带着这些约束被用。
世界(Σ)
- 草稿可以有未决项,签字不能。这是两件事,不是同一件事的两个阶段——
verify_card.py默认放行未决项 (那正是草稿的用途),--ready-to-sign才把它们升成拒。冻结是把「当下这份内容」按哈希钉死。 - 谁在签。
lock_done_when.py sign的--signer-kind只有两种:human:人自己跑那条命令,--by是人名;delegated_agent:人在对话里明确授权、由 agent 代跑,此时--authorization必填,把人的授权原话 (谁、什么时候、授权了什么)写进锁文件。没有--authorization的受委托签署会被脚本直接拒。 没有第三种。 模型不得以human身份签字——那是伪造签名,不是省事。
- 制品的种类。不变量卡(
territory_id+hard_invariants)、done_when 契约、G1 世界裁决记录 都走这段仪式;sign对不变量卡会自己去跑卡的仪式检查,所以「跳过 ratify 直接签」这条路在卡上不存在。 - 末端不同,仪式相同。卡与契约签在
lock_done_when.py sign;G1 签在aidlc_state.py gate g1 --verdict pass --by <人> --signer-kind human --record <g1-record.md>。 两者前面那一段——从文件里读出未决项、逐条呈、当场裁、带姓名日期写回、再跑判据——是同一段。 之所以不为 G1 另开一个 skill:人要的是「从草稿到签字」这段仪式本身,两个 skill 教同一件事早晚会漂成两套说法。 - G1 裁的是推导产物,不是世界。
gate g1要求world.derived_dir指向一个真实存在的derived/(/psl-derive的产出)。只有 PSL 没有形态草案时签不了,也不该签——"日历筛选器"那类错误发生在推导那一步。
判据(φ):什么算一条裁决
- 裁决是决定,不是复述。「这条冲突确实存在」不是裁决;「排除是有意的,按隐私要求,INV-003 收窄成 未同步窗口内加密落盘」才是。
- 拖延不算裁决,但拖延是合法的。「待定 / 再说 / 回头看」被
agenda.py直接拒——它不是坏答案, 它是另一个去处:移进open_questions,带负责人与截止日期,然后这张卡先不签,或者签其余部分。 - 「不知道」也是合法答案,处理同上:转成开放问题,不要猜一个答案填进去。一条猜出来的裁决会以 「已裁决」的样子活很久。
- 裁决要能被复核:写回时自动带日期与姓名。姓名是人的名字,不是 agent 的。
- G1 上,PSL 的每一条 Open Question 都要有一行,三选一:接受 seam / 现在回答 / 阻塞。
跳过不是选项——承重空槽会以默认值的形态混进实现。
裁为「阻塞」的,G1 不能 PASS:
agenda.py会把它单列出来,这不是提醒,是拦。
控制(γ):顺序不可调换
- 先读文件,再开口。未决项由
agenda.py <制品>从文件里列出来,逐条呈现,不筛选—— 与aidlc_state.py notes --for-gate同一条纪律:做「有趣度」筛选的那一刻,被筛掉的那条就是下次撞的墙。 - 一条一条裁。每条把证据(冲突两边、来路、statement)摆出来,等人回答;不要把五条打包成一个问题。
- 当场写回(
agenda.py --rule <n> --resolution "…" --by "<人名>"),不要攒到最后——中途断了, 已裁的部分留在文件里。 - 再跑一次判据:
verify_card.py --ready-to-sign(卡)或对应制品的校验器。不许跳过这一步, 因为裁决可能引出新的未决项(改写一条规则会动它的 survival_test)。 - 最后才签。人自己签 → 给命令、由人执行;人授权 agent 代签 →
--signer-kind delegated_agent--authorization "<人的原话 + 时间>"。 - 签完把话说全:锁文件路径、被冻了哪些文件、签字人与方式、之后改这些文件要走变更提案。
What ships with it
5 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.
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 Changed · +19 lines · +33 tokens per session 2f3111cb2507
- 1mo ago First seen · 101 lines · 297 tokens per session scan A 5712f2f4c0ff
ratify is a skill published in the GitHub repository XRenSiu/claude-code-forge (2 stars, last pushed 1mo ago), licensed MIT. It adds 330 tokens to every session and 3,053 once invoked, about $0.0013 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-20.
Other skills, from other repositories
fto-triage
Freedom-to-operate triage — a structured first look at potentially blocking patents, not an FTO opinion. Use when a product, process, or feature is being evaluated for blocking patents, when asked whether anything stops a launch, or to build a claim-chart first pass against the most plausible patents before patent…
legal-hold
Issue, refresh, release, or report on legal holds — drafts the hold notice as .docx, updates legalhold fields in log.yaml, and calendars the next refresh. Use when the user says "issue a hold", "refresh hold", "release hold", or asks for a portfolio-wide hold status report.
specification-writing
A workflow for writing complete patent specifications from patent claims and an invention disclosure. It adapts the document to a chosen jurisdiction, such as the US, Europe, or China.
terms-of-service
Draft terms of service and a companion privacy notice matched to the product's form and feature modules, not legal advice, delivered as a Word document.
x-scorecard
OpenSSF Scorecard for assessing open source project security. Check security best practices and compliance. Dependency: This is an x-cmd module. Install x-cmd first (see x-cmd skill for installation options). see x-cmd skill for installation.
ai-risk-management
Apply the NIST AI Risk Management Framework (AI RMF 1.0) and adjacent guidance to AI / ML systems — model lifecycle governance, fairness and bias evaluation, robustness, transparency, accountability, third-party model risk, monitoring for drift, and AI incident response. Broader than prompt-injection (which is the…