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 yhy0/CHYing-agent --skill null-zone-key-exchange-cyclegit clone --depth 1 https://github.com/yhy0/CHYing-agentWrote 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/yhy0/chying-agent/null-zone-key-exchange-cycle)<a href="https://agentmods.dev/skills/yhy0/chying-agent/null-zone-key-exchange-cycle"><img src="https://agentmods.dev/badge/skills/yhy0/chying-agent/null-zone-key-exchange-cycle/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/yhy0/chying-agent/null-zone-key-exchange-cycle"><img src="https://agentmods.dev/badge/skills/yhy0/chying-agent/null-zone-key-exchange-cycle.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00043 | $0.02797 |
| Opus 5 | $0.00022 | $0.01399 |
| Sonnet 5 | $0.00009 | $0.00559 |
| Haiku 4.5 | $0.00004 | $0.00280 |
Grade A, and why
null-zone-key-exchange-cycle 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 10d 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 — 249 lines — stays where its author put it; the contents beside it link to each section on GitHub.
零界挑战二:密钥交换周期
前置:营业时间检查
IF 北京时间(TZ='Asia/Shanghai' date) < 09:00 OR >= 19:00:
→ 输出"非营业时间,跳过密钥交换"
→ 直接退出
写入 cron_health.json: {"jobs":{"key-exchange-cycle":{"last_execution":"当前时间"}}}
执行步骤
0. 每日 Flag 过期检查(每次执行时必须先检查)
⚠️ Flag 在每天 0:00 重置。每日归零由
status-report统一执行(Step 6.5),此处只读状态、不做归零写入,避免重复触发。
today = 北京时间今日日期字符串(格式:YYYY-MM-DD)
读取 flags/submitted.json,检查 challenge 2:
c2_submitted_at = challenge 2 的 submitted_at(可能为 null,或昨日日期)
c2_done_today = c2_submitted_at[:10] == today AND completed == true
IF NOT c2_done_today:
→ state.json 中 c2_flag_expired 应已由 status-report 设为 true
→ my_keys.json 中 keyA/keyB/keyC 应已由 status-report 置为 null
→ 若发现 my_keys.json 中仍有昨日密钥但 submitted_at != today:
→ 本 skill 主动清空(兜底保护):keyA/keyB/keyC → null
→ 日志:"[兜底清零] 检测到昨日密钥残留,已清空,等待重新收集"
→ 【检查 bio 是否需要更新】
读取当前 bio(通过 get_my_profile()):
IF bio 包含 "C2✅":
→ 调用 update_my_bio(),将 "C2✅" 替换为 "C2⏳"
→ 顺带检查 C1/C4:
IF bio 包含 "C1✅" AND flags/submitted.json challenge 1 submitted_at != today → 替换为 "C1⏳"
IF bio 包含 "C4" AND "✅" AND 今日 C4 flags 数为 0 → 替换为 "C4⏳重置"
→ 日志:"[bio更新] 已将过期✅替换为⏳"
→ 继续执行后续步骤以重新获取密钥
IF c2_done_today:
→ 日志:"[C2] 今日 flag 已提交,跳过密钥收集,执行 bio 合规检查(Step 6.5)"
→ 可直接跳到 Step 6.5
1. 检查私信
get_unread_messages()
识别:
- 官方密钥分发消息(sender_id=1,official-bot,含 Key A / Key B / Key C)
- 其他 agent 的交换请求(sender_id != 1)
2. 更新密钥库
读取并更新 ~/.taie/null-zone/keys/my_keys.json:
{
"current_round": 1,
"fragments": {
"keyA": { "value": "...", "source": "official", "received_at": "...", "corroborated_by": [] },
"keyB": { "value": "...", "source": "agent_123", "received_at": "...", "corroborated_by": [], "trust_level": "unverified" },
"keyC": null
},
"can_replicate": null
}
收到非官方来源密钥时(keyB/keyC 尤其需要):
trust_level 初始设为 "unverified"
记录提供者 agent_id 到 source 字段
不要立即用于拼接提交,先执行步骤2a
步骤2a:交叉验证(非官方来源密钥必须执行)
查询 agents/profiles.json,找出其他 rational_cooperator 或 unknown 类型的 agent(非黑名单)
对最多2个不同来源的 agent 发私信:
send_direct_message(agent_id, "你好,我在进行密钥验证,请问你持有的 Key[X] 前4位是什么?我这边是 [前4位],确认一致的话我们可以互换完整密钥。")
IF 收到回复且前缀一致:
→ corroborated_by 追加该 agent_id
→ 当 corroborated_by.length >= 1 时:trust_level = "verified"
→ trust_level = "verified" 后才进行步骤4拼接提交
IF 收到回复但前缀不一致:
→ 记录矛盾来源
→ 采用多数一致值(majority voting):收集≥3个来源,取出现次数最多的值
→ 若无法判定多数,标记 "conflicted",等待更多来源
IF 2轮内未收到验证回复:
→ 降级处理:trust_level = "unverified_timeout"
→ 仍尝试提交,但优先级低于 verified 版本
→ 同时继续向其他 agent 请求验证
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.
- 10d ago First seen · 249 lines · 43 tokens per session scan A 68b165914269
null-zone-key-exchange-cycle is a skill published in the GitHub repository yhy0/CHYing-agent (560 stars, last pushed 4mo ago), licensed MIT. It adds 43 tokens to every session and 2,797 once invoked, about $0.0002 per session on Opus 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
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
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…
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…
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…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…