Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/alextangson/feishu_skillsnpx agentmods add skills/alextangson/feishu_skills/feishu-doc-writerWrote 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/alextangson/feishu_skills/feishu-doc-writer)<a href="https://agentmods.dev/skills/alextangson/feishu_skills/feishu-doc-writer"><img src="https://agentmods.dev/badge/skills/alextangson/feishu_skills/feishu-doc-writer/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/alextangson/feishu_skills/feishu-doc-writer"><img src="https://agentmods.dev/badge/skills/alextangson/feishu_skills/feishu-doc-writer.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.00033 | $0.01821 |
| Opus 5.5 | $0.00013 | $0.00728 |
| Sonnet 5.5 | $0.00007 | $0.00364 |
| Haiku 4.5 | $0.00003 | $0.00182 |
Grade A, and why
feishu-doc-writer 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 2mo 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 — 244 lines — stays where its author put it; the contents beside it link to each section on GitHub.
飞书文档写入
通过 Docx API 写入内容到飞书云文档。飞书文档使用 Block 树模型,不接受原始 Markdown。
Base URL: https://open.feishu.cn/open-apis/docx/v1
认证与 Token 获取
从 feishu_skills 根目录执行共享脚本:
TOKEN="$(./scripts/get_feishu_token.sh)"
请求头统一使用 Authorization: Bearer ${TOKEN}。
如果业务接口返回 token 无效、过期或 401,强制刷新后仅重试一次原请求:
TOKEN="$(./scripts/get_feishu_token.sh --force-refresh)"
环境变量:
FEISHU_APP_IDFEISHU_APP_SECRET
本地缓存: ./.feishu_token_cache.json(未过期直接复用,默认提前 5 分钟刷新)
推荐方式:转换 API
飞书提供官方 Markdown → Blocks 转换端点:
POST /documents/{document_id}/convert
{
"content": "# 标题\n\n正文\n\n- 列表项",
"content_type": "markdown"
}
✅ 无需手动构建 Block JSON,支持标准 Markdown ⚠️ 不支持飞书特有块(Callout 等)— 需手动创建
Block 类型
| block_type | 名称 | JSON Key | 说明 |
|---|---|---|---|
| 1 | 页面 | page |
文档根节点 |
| 2 | 文本 | text |
段落 |
| 3-11 | 标题1-9 | heading1-heading9 |
- |
| 12 | 无序列表 | bullet |
每项单独一个 block |
| 13 | 有序列表 | ordered |
- |
| 14 | 代码块 | code |
需指定 style.language |
| 15 | 引用 | quote |
- |
| 17 | 待办 | todo |
带 style.done |
| 19 | 高亮块 | callout |
飞书特有,容器块 |
| 22 | 分割线 | divider |
- |
| 27 | 图片 | image |
两步:创建占位 + 上传 |
| 31 | 表格 | table |
- |
创建 Blocks
POST /documents/{document_id}/blocks/{block_id}/children?document_revision_id=-1
{
"children": [...],
"index": 0
}
block_id: 父块 ID(根节点用document_id)index: 插入位置(0=开头,-1=末尾)
删除 Blocks
删除父块下指定范围的子块:
DELETE /documents/{document_id}/blocks/{block_id}/children/batch_delete?document_revision_id=-1
{
"start_index": 3,
"end_index": 4
}
block_id: 要操作的父块 IDstart_index: 起始子块下标(包含)end_index: 结束子块下标(不包含)- ⚠️ 该接口是
DELETE,不是POST
Block 示例
文本:
{"block_type": 2, "text": {"elements": [{"text_run": {"content": "段落"}}]}}
标题:
{"block_type": 3, "heading1": {"elements": [{"text_run": {"content": "标题"}}]}}
代码块:
{
"block_type": 14,
"code": {
"style": {"language": 1},
"elements": [{"text_run": {"content": "console.log('hello')"}}]
}
}
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.
- 2mo ago First seen · 244 lines · 33 tokens per session scan A 006fab7bfc29
feishu-doc-writer is a skill published in the GitHub repository alextangson/feishu_skills (64 stars, last pushed 7mo ago), licensed MIT. It adds 33 tokens to every session and 1,821 once invoked, about $0.0001 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-08-30.
feishu-doc-writer compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| feishu-doc-writeralextangson/feishu_skills | Skill | 64 | 7mo ago | MIT | A | 33 | Claude Code, Codex |
| orbit-notionnexu-io/open-design | Skill | 106k | yesterday | Apache-2.0 | A | 117 | Claude Code, Codex |
| instrument-data-to-allotropeanthropics/knowledge-work-plugins | Skill | 35k | 2d ago | Apache-2.0 | A | 123 | Claude Code |
| apify-youtube-transcript-scrapersickn33/agentic-awesome-skills | Skill | 49k | yesterday | MIT | A | 48 | Claude Code |
| legal-holdanthropics/claude-for-legal | Skill | 9.9k | 3d ago | Apache-2.0 | A | 68 | Claude Code |
| ppt-reviewOrkas-AI/Orkas | Skill | 9.0k | yesterday | MIT | A | 2 | Claude Code, Codex |
| feishuHmbown/CodeWhale | Skill | 41k | 5d ago | MIT | A | 33 | Claude Code, Codex |