ratify

ratify is a skill for Claude Code from XRenSiu/claude-code-forge. It costs 330 tokens per session (3,053 once invoked), scanned A, original, MIT.

A sign-off workflow that turns an unfinished decision document into a frozen, signed record. It presents every unresolved item for a human decision, writes the decisions back, checks the result, and records who authorised the signature.

In plain words
What is it for?
Use it to approve invariant cards, completion rules, or design drafts after all open questions have been decided.
Why use it?
It prevents unresolved decisions from being overlooked and preserves why, when, and by whom a document was approved.

Skill for Claude Code

Written for Claude Code: disable-model-invocation in frontmatter.

Part of the ai-dlc plugin — 30 skills, 5 agents shipped together

Good fit Use it to approve invariant cards, completion rules, or design drafts after all open questions have been decided.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/xrensiu/claude-code-forge/ratify
Install

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.

Any agent
npx skills add XRenSiu/claude-code-forge --skill ratify
Clone the repo
git clone --depth 1 https://github.com/XRenSiu/claude-code-forge

Made for: Claude Code.

Or install ai-dlc, the plugin that ships this one along with the rest of its 30 skills, 5 agents.

Wrote 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.

agentmods badge for ratify

README.md
[![agentmods](https://agentmods.dev/badge/skills/xrensiu/claude-code-forge/ratify/github.svg)](https://agentmods.dev/skills/xrensiu/claude-code-forge/ratify)
Your own site
<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.

agentmods 80×15 button for ratify

Your own site · 80×15
<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>
Per session 330 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,053 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 1mo ago against content hash 2f3111cb2507, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

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.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/agenda.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

plugins/ai-dlc/skills/ratify/SKILL.md · 120 lines

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 会把它单列出来,这不是提醒,是拦。

控制(γ):顺序不可调换

  1. 先读文件,再开口。未决项由 agenda.py <制品> 从文件里列出来,逐条呈现,不筛选—— 与 aidlc_state.py notes --for-gate 同一条纪律:做「有趣度」筛选的那一刻,被筛掉的那条就是下次撞的墙。
  2. 一条一条裁。每条把证据(冲突两边、来路、statement)摆出来,等人回答;不要把五条打包成一个问题。
  3. 当场写回(agenda.py --rule <n> --resolution "…" --by "<人名>"),不要攒到最后——中途断了, 已裁的部分留在文件里。
  4. 再跑一次判据:verify_card.py --ready-to-sign(卡)或对应制品的校验器。不许跳过这一步, 因为裁决可能引出新的未决项(改写一条规则会动它的 survival_test)。
  5. 最后才签。人自己签 → 给命令、由人执行;人授权 agent 代签 → --signer-kind delegated_agent --authorization "<人的原话 + 时间>"。
  6. 签完把话说全:锁文件路径、被冻了哪些文件、签字人与方式、之后改这些文件要走变更提案。

Read the full file on GitHub · 120 lines

Files

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.

Changes

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.

  1. 1mo ago Changed · +19 lines · +33 tokens per session 2f3111cb2507
  2. 1mo ago First seen · 101 lines · 297 tokens per session scan A 5712f2f4c0ff

Subscribe to this mod's changes

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.

Related

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…

anthropics/claude-for-legal · 81 tokens

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.

anthropics/claude-for-legal · 68 tokens

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.

wanshuiyin/Auto-claude-code-research-in-sleep · 49 tokens

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.

genspark-ai/genoffice · 32 tokens

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.

x-cmd/x-cmd · 57 tokens

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…

briiirussell/cybersecurity-skills · 180 tokens