ljg-skills is a collection of custom Codex skills for tasks such as learning, writing, reading, relationship analysis, image creation, and investment analysis. Codex users install selected skills or the whole collection through a skills command-line interface. The catalogue entries are the collection's individual skills, plugin, and instruction.
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 lijigang/ljg-skills --skill ljg-writesgit clone --depth 1 https://github.com/lijigang/ljg-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/lijigang/ljg-skills/ljg-writes)<a href="https://agentmods.dev/skills/lijigang/ljg-skills/ljg-writes"><img src="https://agentmods.dev/badge/skills/lijigang/ljg-skills/ljg-writes/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/lijigang/ljg-skills/ljg-writes"><img src="https://agentmods.dev/badge/skills/lijigang/ljg-skills/ljg-writes.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket pass
- Snyk pass
- 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.00083 | $0.02172 |
| Opus 5 | $0.00042 | $0.01086 |
| Sonnet 5 | $0.00017 | $0.00434 |
| Haiku 4.5 | $0.00008 | $0.00217 |
Grade A, and why
ljg-writes 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 3d 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 — 121 lines — stays where its author put it; the contents beside it link to each section on GitHub.
写作引擎
把一个观点讲清楚,让一个具体的人读懂它为什么成立、能用在哪里。用容易理解的案例说明关键关系;需要引入抽象概念时,先交代它能解释什么。
Workflow Routing
| Workflow | Trigger | File |
|---|---|---|
| WriteEssay | 写文章、优化思想内容、展开或重写观点 | Workflows/WriteEssay.md |
执行时完整读取工作流。分析和检查在内部完成,正文按内容需要展开,不逐项展示写作步骤。
成文契约
一篇文章围绕一个核心判断展开。涉及的其他机制、反馈和限制,都应帮助说明或修正这个判断:
- 概念可指认:关键的抽象词都能用普通话解释,并对应到具体事物或现象。
- 关系可运行:读者能说清谁在什么条件下作用于谁,产生什么结果。
- 案例可映射:场景中的角色、条件和因果关系能对应原观点。
- 判断可迁移:换掉人物和材料,关系仍成立;同时能指出一个失效边界。
例子帮助读者理解;换一个场景、检查一个反例,才能看出他是否掌握了这个判断。以上四项用于内部检查,不直接用作文章目录。
正文必须给出足够线索,让那个具体的人读完后能够:指出关键概念在现实中指什么,复述「条件—机制—结果」,并说出一个适用的新场景或一个失效边界。内部分析得再充分,这些线索也需要写进文章。
怎样解释一个观点
优先选择一个容易理解、关键因果关系完整的案例。从读者可能已有的解释出发,检查它会怎样判断、预期什么结果。若它解释不了某一步、预测有误,或忽略了某种代价,就把这个具体问题说明白。
随后引入能解决当前问题的概念,用普通话说明它增加了什么区分,再回到同一个案例,看解释或判断发生了什么变化。还有解释不清的地方,再继续补充。先说明概念的意思和用处,需要准确指称时再给出术语。
具体案例 -> 原有解释 -> 解释不清的地方
-> 引入所需概念 -> 重新分析案例
-> 说明完整关系 -> 检查其他场景与边界
这条路径用于帮助分析。正文可以先说判断,也可以从案例展开;原有解释已经够用时,直接说明原因,不必安排一次失败。解释结束时,读者应能看清各概念之间的关系,以及它们如何支持或修正最初的判断。
姿态与语言
写得清楚、准确,语气平实。可以有自己的判断和节奏,不必句句用力。
- 心里有一个具体的人,根据他的知识和文章用途选择说法。自然中文可以是口语,也可以是书面语;不要为了显得亲切,硬加聊天口吻。
- 改写先保住原意、事实和语气。已经自然的句子可以保留;某个词不贴切时,先看它的意思、搭配和语气是否合适。换近义词仍然别扭,就按整句意思重新组织。
- 简洁以意思完整、搭配自然为准。「讨论」不必一律改成「聊」;说明因果、条件和程度的词,该留就留。
- 抽象表述让人费解时,写清谁做了什么、发生了什么变化。需要术语就准确使用;比喻应帮助理解,同一段不要混用几套比喻。计算机类比只在贴合问题、读者也熟悉时使用。
- 表达判断时,直接说清主张,再说明理由和适用条件。判断在文章中的位置按内容决定,段落也可以用事实、动作或承接上文的句子起笔。避免用「不是……而是……」制造转折;事实否定、必要辨析和边界可以保留。
- 句子长短服从意思。因果相连的内容可以放在一个完整句子里,需要停顿时再断开。连接词用来交代真实关系,不按词表一概删去,也不靠「因此」「更重要的是」替代推理。
- 用具体内容说明理由,不宣告「接下来深入剖析」。少用连续排比、刻意对仗和每段末尾的警句;发现节奏反复时,重写整段,不按句式次数配额写作。
- 不确定时,说明哪些有依据、哪些是推测、还缺什么信息。保留必要的「可能」「通常」「在这些条件下」;百分比需要数据、计算或明确的估计依据。
- 第一人称经历只写真实材料,不编造亲历,也不替一个群体宣称共同感受。
最后检查
连起来读一遍:这像一个人把事情想清楚后写出的中文吗?词语是否贴切,句子是否顺畅,前后是否接得上?局部换词解决不了的问题,重写整句或整段。
再检查:读者能否用这个判断理解一件新事,并知道它有什么限制?
Gotchas
- 继续分析应让解释更准确,或让适用条件更清楚。只换成更抽象的词,并没有增加理解。
- 不为引出概念编造失败。原有解释的不足必须能在案例、材料或逻辑中找到;解释已经够用,就不要继续加概念。
- 简化案例时保留关键反馈、时序和约束。删去某项会改变结论,就保留它或换一个案例。
- 多个因素相互影响、同时发生或共同改变结果概率时,可以并排展示过程、列出状态变化,或使用两个相关案例,不强行写成先后相接的单线故事。
- 案例说明关系如何发生,事实主张需要证据支持。案例中的角色与因果对应不上观点时,换掉它。
- 一个案例讲得顺,不代表观点到处成立。需要用差异较大的场景和反例检查。
- 正文应把关键关系说完整;「概念、关系、案例、迁移」等检查项目留在内部。
- 观点已经清楚时,直接展开;不为追求深刻制造反问、翻转或悬念。
- 用户只要短改、金句或标题时,按用户长度交付,保留核心意思和必要限定;不为凑齐长文流程额外添加案例或观点。
What ships with it
1 file 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.
- 3d ago Changed · -5 lines ce7700f5cc06
- 12d ago First seen · 126 lines · 83 tokens per session scan A 41a0a43eccd9
ljg-writes is a skill published in the GitHub repository lijigang/ljg-skills (7,327 stars, last pushed 3d ago), licensed MIT. It adds 83 tokens to every session and 2,172 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-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…