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 tranfu-labs/tranfu-skills --skill lark-safe-writegit clone --depth 1 https://github.com/tranfu-labs/tranfu-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/tranfu-labs/tranfu-skills/lark-safe-write)<a href="https://agentmods.dev/skills/tranfu-labs/tranfu-skills/lark-safe-write"><img src="https://agentmods.dev/badge/skills/tranfu-labs/tranfu-skills/lark-safe-write/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/tranfu-labs/tranfu-skills/lark-safe-write"><img src="https://agentmods.dev/badge/skills/tranfu-labs/tranfu-skills/lark-safe-write.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.00078 | $0.02847 |
| Opus 5 | $0.00039 | $0.01424 |
| Sonnet 5 | $0.00016 | $0.00569 |
| Haiku 4.5 | $0.00008 | $0.00285 |
Grade A, and why
lark-safe-write 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 11d 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 — 270 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Lark Safe Write
触发时机:任何需要向 Lark wiki 创建新文档节点、更新现有文档内容或覆盖文档的任务。 核心原则:先解析 token → 再备份 → 再写入 → 最后验证。凡覆盖必备份,写入必验证,验证失败禁止自动重试。
同类 Skill 对比
公司库内
暂无直接同类。公司库现有 lark-wiki(知识库查询)、lark-doc(云文档管理)等操作 skill,但无「写入安全」专项 skill。
外部世界
暂无(未找到公开可验证的 Lark/Feishu wiki 安全写入专项 skill)。
本 skill 独特价值
- 唯一强制四步闭环:预检→备份→写入→验证,把覆盖风险消灭在发生前。
- 精准解决 lark-cli 三大坑:wiki_token/obj_token 混淆、
--markdown /path路径当内容、异步索引导致验证失败。 - 与现有 lark 生态互补:lark-wiki 查、lark-safe-write 写,形成完整读写链。
使用技巧
材料方案
- 首次使用该 skill 前,确保 lark-cli 已配置 bot 身份(
lark-cli auth test --as bot通过)。 - 写入内容包含链接时,禁用
<https://...>自动链接语法,改用标准[文本](https://...)语法,避免飞书 docx 不兼容导致内容丢失。
推荐用法
- 覆盖现有文档时,skill 会自动备份到
.backups/,操作完成后可手动检查备份文件确认无误。 - 验证失败后禁止自动重试,需人工检查原因(常见:异步索引延迟不足、markdown 格式非法)。
已知限制
- 仅支持 docx/doc 类型文档,sheet/bitable/slides 等类型会停止并建议转用对应 skill。
- 无法处理需要复杂权限审批的 wiki 空间(如仅特定部门可见),需先在飞书控制台完成审批。
第一步:预检与 Token 解析(不可跳过)
1.1 身份与连通性
- 所有命令必须携带
--bot标志(或--as bot) - 执行
lark-cli auth test --as bot确认 bot token 有效 - 若失败:暂停执行,提示用户检查
LARK_APP_ID/LARK_APP_SECRET
1.2 解析目标 Token
用户输入可能是 wiki URL 或 wiki_token。
若用户给的是 wiki URL:
https://xxx.larksuite.com/wiki/WIKITOKEN
提取 URL 中 /wiki/ 后的 token 作为 wiki_token。
若用户直接给的是 token:
- 以
wik开头 → 这是wiki_token,需要解析 - 以
dox/doc开头 → 这是obj_token(真实文档 token),可直接使用
1.3 wiki_token → obj_token 解析(关键!不可跳过)
wiki_token 不能直接用于文档读写。必须先用以下命令解析:
lark-cli wiki spaces get_node --params '{"token":"<wiki_token>"}' --as bot
从返回的 JSON 中提取:
node.obj_token→ 这是真实的文档 token,后续所有读写操作都用它node.obj_type→ 文档类型(docx/doc/sheet/bitable/slides等)node.title→ 文档当前标题
类型检查:
- 若
obj_type为docx或doc:继续执行本文档流程 - 若
obj_type为sheet/bitable/slides等:停止执行,向用户说明本 skill 仅支持文档类型,建议转用对应的 skill(如lark-sheets)
1.4 权限确认
首次操作该 wiki 空间时,确认 bot 有 wiki:node:read、wiki:node:create、drive:drive 权限。
第二步:备份(更新/覆盖场景必须执行)
仅当文档已存在(即用户提供了已有 wiki 的 URL/token)时执行。创建新文档可跳过。
What ships with it
6 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.
- 11d ago First seen · 270 lines · 78 tokens per session scan A a9685f121b07
lark-safe-write is a skill published in the GitHub repository tranfu-labs/tranfu-skills (2 stars, last pushed yesterday), licensed MIT. It adds 78 tokens to every session and 2,847 once invoked, about $0.0004 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-31.
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…