jiangjiax/li-skills/li-factory
Claude Code and agent skill by jiangjiax/li-skills
- community
Checking that the SKILL.md file is still in the repository.
This skill should be used when the user wants to "create a skill", "build a new skill", "write a skill", "improve a skill", "update a skill", "optimize skill description", or needs guidance on skill structure, progressive disclosure, or skill development best practices. 触发方式:/li-factory、「创建skill」、「改进skill」、「帮我写一个skill」、「优化skill」、「把这个流程变成skill」、「这个工作流能做成skill吗」。即使用户没有明确说"skill",只要他们想把某个重复流程自动化或封装成可复用工具,也应该触发本 skill。
Install
npx vskill@latest install jiangjiax/li-skills/li-factorySKILL.md
Skill 结构
三级渐进披露:
| 层级 | 内容 | 加载时机 | 大小限制 | |
|---|---|---|---|---|
| Metadata | name + description | 始终在上下文 | ~100 词 | |
| SKILL.md 主体 | 核心流程和指令 | skill 触发时 | <500 行(理想) | |
| Bundled resources | scripts/references/assets | 按需加载 | 无限制 |
Scripts 可以在不读入上下文的情况下执行。
创建流程
第一步:捕捉意图
先从当前对话历史提取 — 如果用户说"把这个流程做成 skill",不要从零开始问,而是从对话历史中直接提取:使用了哪些工具、步骤顺序是什么、用户做了哪些纠正、输入输出格式是什么。让用户确认这些提取是否准确,再进入下一步。
如果是全新需求,收集以下信息(每次只问一个最重要的问题):
- 这个 skill 要完成什么任务?
- 用户会用什么词触发它?(收集精确短语,含中英文变体)
- 预期输出是什么格式?
掌握功能范围后再进入下一步。
第二步:规划资源
分析哪些内容适合放入 bundled resources:
- scripts/ — 会反复编写的代码,或需要确定性可靠性的操作(如果测试发现每次都要重写同一个脚本,就应该把它放进来)
- references/ — 详细规范、API 文档、复杂决策树(>300 行时提供目录)
- assets/ — 用于输出的静态文件
只创建实际需要的目录。
第三步:编写 SKILL.md
Description — 触发机制的核心
Description 决定 skill 何时被触发。使用第三人称,包含用户会说的具体短语:
两类触发问题的处理方式:
- undertrigger(触发不足):列出更多触发短语,包含中英文变体,加上意图描述("即使用户没说 X,只要他们想 Y...")
- overtrigger(误触发):用 "DO NOT trigger when..." 明确排除场景
主体写作规范
使用祈使句,不用第二人称:
| ✅ 正确 | ❌ 错误 | |
|---|---|---|
| 读取配置文件 | 你需要读取配置文件 | |
| 使用 Grep 搜索 | 你可以用 Grep 搜索 |
解释原因而非强制命令 — LLM 理解"为什么"比记住"做什么"更有效。避免全大写的 MUST/NEVER,改为说明理由:
| ✅ 解释原因 | ❌ 强制命令 | |
|---|---|---|
| 先读取现有文件,避免覆盖用户已有工作 | NEVER 直接创建文件 | |
| 开头容易出现伪造场景,所以需要单独优化 | MUST 跑 li-opening |
超过 500 行则将详细内容移到 references/,在 SKILL.md 末尾明确引用:
避免信息重复:内容只存在于 SKILL.md 或 references/ 之一。
第四步:验证 Checklist
结构:
- [ ] SKILL.md 有有效 YAML frontmatter(含 name 和 description)
- [ ] 被引用的文件实际存在
Description 质量:
- [ ] 第三人称格式
- [ ] 包含具体触发短语(中英文变体)
- [ ] 包含意图描述("即使没说 X,只要想 Y...")
- [ ] 有不触发的排除场景
内容质量:
- [ ] 主体使用祈使句
- [ ] 解释原因而非强制命令
- [ ] 字数适中(理想 <500 行)
- [ ] SKILL.md 引用了所有 bundled resources
第五步:测试与迭代
创建 2-3 个真实测试用例(用户真正会说的话,不是抽象描述):
迭代循环:
- 运行测试用例,记录实际输出
- 读 transcript,不只看最终输出 — 找出无效指令和重复劳动
- 如果多个测试用例都独立写了同一个脚本,把它放入
scripts/ - 根据反馈改进 skill,重新测试
如果触发不准确,生成 20 条触发测试集(8-10 条应触发 + 8-10 条不应触发),重点关注边缘案例而非明显案例。
改进原则
泛化而非过拟合 — 测试用例只是样本,skill 要服务无数次调用。遇到顽固问题时,尝试用不同比喻或换一种工作模式,而不是堆叠更多限制性指令。
保持精简 — 删除不起作用的内容。读 transcript,找出哪些指令让模型做了无效工作,删掉它们。
可复用脚本 — 如果测试发现每次都要重写某段代码(如格式转换、数据提取),这是强烈信号:把它放入 scripts/,节省每次调用的重复劳动。
附加资源
- `references/testing-guide.md` - 测试用例格式、断言设计、Description 优化详细方法
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingli-factory/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/jiangjiax/li-skills/li-factory)