Borrowing it
Nothing to install: this file belongs to VOD-Studio/violet. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/VOD-Studio/violet/release/2.0/.agents/skills/blog-writing/SKILL.mdgit clone --depth 1 https://github.com/VOD-Studio/violetWrote 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/vod-studio/violet/blog-writing)<a href="https://agentmods.dev/skills/vod-studio/violet/blog-writing"><img src="https://agentmods.dev/badge/skills/vod-studio/violet/blog-writing/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/vod-studio/violet/blog-writing"><img src="https://agentmods.dev/badge/skills/vod-studio/violet/blog-writing.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.00075 | $0.01772 |
| Opus 5.5 | $0.00030 | $0.00709 |
| Sonnet 5.5 | $0.00015 | $0.00354 |
| Haiku 4.5 | $0.00007 | $0.00177 |
Grade A, and why
blog-writing 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 25d 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 — 70 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Blog Writing
按用户的请求写一篇读者读完有收获的技术文章。只在用户主动触发时工作,不在会话收尾时自动选题或提示;没有被要求写,就不写、不问、不入库。用户只要求维护本 skill 时,不生成或入库文章。
先确认本次交付
| 用户意图 | 本次交付 |
|---|---|
| 写文章(给了主题、材料、包名或链接) | 完整文章稿;题目和范围已明确就沿用 |
| 写笔记 | 一条可检索的短笔记:触发条件、结论、可复用动作 |
| 改稿 | 读取指定原文,修正用户指出的问题;不默认扩大为整篇重写 |
| 存草稿、发布、更新指定文章 | 完成稿件后按已获授权执行博客操作 |
| 发布已完成的现稿 | 核对稿件、目标和授权,进入出版参考;不重新选题或擅自重写 |
“写文章”授权写作,“存草稿”授权保存,“发布”授权公开。已明确的授权持续有效,不反复确认;缺少授权时交付可阅读稿件。草稿仍是远端写入。用户显式要求文章时交付文章,不自行降级成笔记;材料不足就针对性补读、实际动手取证,或指出缺口。
选题:先弄清读者为什么要读
动笔前用几句话回答:谁会读这篇、他现在遇到什么问题或在比较什么、读完能判断或做到什么。 回答不出,说明材料还没成为文章,先补读或向用户问一个关键问题,不用泛论补齐。需要更细的判断读 decision-guide.md。
文章分三种常见形态,可以混合;用户点名的形态优先:
- 发现型:一个反直觉行为如何发生、一次故障如何被证据定位、两个合理选择的真实代价。主线是一条被证据支撑的因果。
- 库介绍型:完整介绍一个库或工具:它是什么、解决什么问题、原来的做法痛在哪、优势与特性、怎么做到的(核心算法及原始出处)、与同类的对比、怎么上手、边界在哪。可以也应当讲设计;只照抄 README 的特性列表、没有问题背景、原理出处和对比,不构成介绍。
- 场景型:围绕一个库、工具或机制的具体使用场景深入:读者原来怎么做、卡在哪、这个东西改变了什么、什么时候不该用,用实际运行的对比作答,不转述设计意图。
库介绍型与场景型是两种文章,不互相替代。同一个库还没有介绍文章时,首篇通常写库介绍型;已有介绍或用户给了具体问题时写场景型,并链接介绍文章。
更新已有内容时优先补原文。只有实现清单、过程状态或通用常识的材料,向用户说明后不硬写。完成了功能、改了很多文件、通过很多测试都不是选题理由。
写作前围绕主题查重:文章用 search_posts,笔记用 list_notes 并检查分页;只读可能相关的正文。MCP 不可用时仍可完成本地写作,说明尚未查重;不要猜测已有文章或创建新远端内容。
写作:读者能看见、能验证、能上手
新写文章或实质重写时读 article-workflow.md。保留一个简短约定:谁的问题 → 本文回答 → 支撑回答的关键材料,它约束取舍,不做正文模板。
价值底线,缺一项就继续补材料,而不是润色:
- 有读者能亲眼看到的东西:真实运行输出、渲染结果、前后对比、可复现的最小示例中的至少一类,来自实际运行,不是描述“会得到什么”。
- 比官方文档多一层:读者读完这篇,能知道 README 或 API 文档没直接告诉他的东西,例如适用边界、替代方案的差别、踩坑与代价。
- 读完能做点什么:判断是否采用、照着跑通一个例子,或在遇到某个现象时知道往哪查。
其余约定:
- 按解释需要自由使用 Markdown 的标题、列表、表格、引用、脚注、链接、图片、公式与代码,不设字数或形式配额。写法参考见 markdown.md,不因当前站点解析能力排除合适的语法。
- 区分实际观察、源码确认和条件推演。需要证据时可以在临时目录安装依赖、写最小示例、运行并截图或记录输出;这是写文章的取证,不是项目验收,不改业务代码、不跑项目级测试。这种区分是作者的取证纪律:试错过程、环境问题和逐条“未验证”不写成正文。
- 限定语只放在真正会误导读者的地方,一节一处为宜,不给每个论点都挂一句“这不是……”。
- 讲库、工具或机制时,用到的算法、协议和外部服务给出原始出处(论文、标准、官方文档),在相应论点附近引用;库介绍型文末列参考文献。
- 中文正文保留稳定技术术语;不虚构第一人称经历、测量数字、失败场景或验证结果。介绍用户自己的项目时,作者动机和设计取舍问用户,不回避作者视角。
- 笔记写清触发场景、非显然结论及可复用动作,不强行展开为小论文。
完成初稿后独立审读(可用独立 agent;不可用则另做一次编辑通读,不以作者自评代替)。审读除查因果缺口和过度结论外,还要回答价值底线三问。按发现改稿。
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.
- 25d ago Changed · +12 lines · +25 tokens per session a682f61caa4b
- 1mo ago First seen · 58 lines · 50 tokens per session scan A f36167e78f32
blog-writing is a skill published in the GitHub repository VOD-Studio/violet (4 stars, last pushed yesterday), licensed MIT. It adds 75 tokens to every session and 1,772 once invoked, about $0.0003 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-10-03.
blog-writing compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| blog-writingVOD-Studio/violet | Skill | 4 | yesterday | MIT | A | 75 | Claude Code, Codex |
| audit-network-securitygordcurrie/unifi-mcp | Skill | 2 | 15d ago | MIT | A | 81 | Claude Code, Codex |
| unifi-networkgordcurrie/unifi-mcp | Skill | 2 | 15d ago | MIT | A | 111 | Claude Code, Codex |
| dark-memoryOpita-Code/dark-memory-mcp | Skill | 1 | 4d ago | none | A | 353 | Claude Code, Codex |
| vibe-loop-gitOpita-Code/dark-memory-mcp | Skill | 1 | 4d ago | none | A | 0 | Claude Code, Codex |
| opencodeOpita-Code/dark-memory-mcp | Skill | 1 | 4d ago | none | A | 0 | Claude Code, Codex |
| claude-codeOpita-Code/dark-memory-mcp | Skill | 1 | 4d ago | none | A | 0 | Claude Code, Codex |