{"id":"16d7f30f-8b31-4f93-b41b-f2b566d98a7b","shortId":"mrPgSb","kind":"skill","title":"writing-skills","tagline":"当创建新技能、编辑现有技能或在部署前验证技能是否有效时使用","description":"# 编写技能\n\n## 概述\n\n**编写技能就是将测试驱动开发应用于流程文档。**\n\n**个人技能存放在智能体特定的目录中（Claude Code 用 `~/.claude/skills`，Codex 用 `~/.agents/skills/`）**\n\n你编写测试用例（带子智能体的压力场景），观察它们失败（基线行为），编写技能（文档），观察测试通过（智能体遵守规则），然后重构（堵住漏洞）。\n\n**核心原则：** 如果你没有观察到智能体在没有该技能时失败，你就不知道这个技能是否教了正确的东西。\n\n**必需背景：** 在使用此技能前，你必须理解 superpowers:test-driven-development。该技能定义了基本的红-绿-重构循环。本技能将 TDD 适配到文档编写中。\n\n**官方指南：** Anthropic 官方的技能编写最佳实践请参见 anthropic-best-practices.md。该文档提供了补充本技能 TDD 导向方法的额外模式和指南。\n\n## 什么是技能？\n\n**技能**是经过验证的技术、模式或工具的参考指南。技能帮助未来的 Claude 实例找到并应用有效的方法。\n\n**技能是：** 可复用的技术、模式、工具、参考指南\n\n**技能不是：** 关于你某次如何解决问题的叙事\n\n## TDD 映射到技能\n\n| TDD 概念 | 技能创建 |\n|----------|---------|\n| **测试用例** | 带子智能体的压力场景 |\n| **生产代码** | 技能文档（SKILL.md） |\n| **测试失败（红）** | 智能体在没有技能时违反规则（基线） |\n| **测试通过（绿）** | 智能体在有技能时遵守规则 |\n| **重构** | 在保持合规的同时堵住漏洞 |\n| **先写测试** | 在编写技能之前先运行基线场景 |\n| **观察失败** | 记录智能体使用的确切合理化借口 |\n| **最小代码** | 编写针对那些具体违规行为的技能 |\n| **观察通过** | 验证智能体现在遵守规则 |\n| **重构循环** | 发现新的合理化借口 → 堵住 → 重新验证 |\n\n整个技能创建过程遵循红-绿-重构。\n\n## 何时创建技能\n\n**创建条件：**\n- 技术对你来说不是直觉上显而易见的\n- 你会在不同项目中反复引用\n- 模式具有广泛适用性（非项目特定）\n- 其他人也会受益\n\n**不要创建：**\n- 一次性解决方案\n- 其他地方有充分文档的标准实践\n- 项目特定的约定（放在 CLAUDE.md 中）\n- 机械性约束（如果可以用正则/验证强制执行，就自动化——文档留给需要判断的场景）\n\n## 技能类型\n\n### 技术类\n有具体步骤的方法（condition-based-waiting、root-cause-tracing）\n\n### 模式类\n思考问题的方式（flatten-with-flags、test-invariants）\n\n### 参考类\nAPI 文档、语法指南、工具文档（office docs）\n\n## 目录结构\n\n```\nskills/\n  skill-name/\n    SKILL.md              # 主参考文档（必需）\n    supporting-file.*     # 仅在需要时\n```\n\n**扁平命名空间** - 所有技能在一个可搜索的命名空间中\n\n**分离文件的情况：**\n1. **大量参考内容**（100+ 行）- API 文档、全面的语法说明\n2. **可复用工具** - 脚本、实用程序、模板\n\n**保持内联：**\n- 原则和概念\n- 代码模式（< 50 行）\n- 其他所有内容\n\n## SKILL.md 结构\n\n**Frontmatter（YAML）：**\n- 两个必需字段：`name` 和 `description`（完整支持字段参见 [agentskills.io/specification](https://agentskills.io/specification)）\n- 总计最多 1024 字符\n- `name`：只使用字母、数字和连字符（不要用括号、特殊字符）\n- `description`：第三人称，仅描述何时使用（不是做什么）\n  - 以\"Use when...\"开头，聚焦于触发条件\n  - 包含具体的症状、场景和上下文\n  - **绝不总结技能的流程或工作流**（参见 CSO 章节了解原因）\n  - 尽量控制在 500 字符以内\n\n```markdown\n---\nname: Skill-Name-With-Hyphens\ndescription: Use when [具体的触发条件和症状]\n---\n\n# 技能名称\n\n## 概述\n这是什么？用 1-2 句话说明核心原则。\n\n## 何时使用\n[如果决策不明显，使用小型内联流程图]\n\n症状和用例的要点列表\n不适用的场景\n\n## 核心模式（技术/模式类）\n前后代码对比\n\n## 快速参考\n用于快速浏览常见操作的表格或要点\n\n## 实现\n简单模式内联代码\n大量参考或可复用工具链接到文件\n\n## 常见错误\n常见问题 + 修复方法\n\n## 实际效果（可选）\n具体结果\n```\n\n\n## Claude 搜索优化（CSO）\n\n**发现至关重要：** 未来的 Claude 需要找到你的技能\n\n### 1. 丰富的描述字段\n\n**目的：** Claude 读取描述来决定为当前任务加载哪些技能。让它能回答：\"我现在应该读这个技能吗？\"\n\n**格式：** 以\"Use when...\"开头，聚焦于触发条件\n\n**关键：描述 = 何时使用，不是技能做什么**\n\n描述应该只描述触发条件。不要在描述中总结技能的流程或工作流。\n\n**为什么这很重要：** 测试表明，当描述总结了技能的工作流时，Claude 可能会跟随描述而非阅读完整的技能内容。一个写着\"任务间进行代码审查\"的描述导致 Claude 只做了一次审查，尽管技能的流程图清楚地展示了两次审查（先规格合规再代码质量）。\n\n当描述改为仅\"在当前会话中执行包含独立任务的实现计划时使用\"（无工作流摘要）时，Claude 正确地阅读了流程图并遵循了两阶段审查流程。\n\n**陷阱：** 总结工作流的描述创建了 Claude 会走的捷径。技能正文变成了 Claude 跳过的文档。\n\n```yaml\n# 错误：总结了工作流 - Claude 可能会跟随描述而非阅读技能\ndescription: Use when executing plans - dispatches subagent per task with code review between tasks\n\n# 错误：流程细节太多\ndescription: Use for TDD - write test first, watch it fail, write minimal code, refactor\n\n# 正确：只有触发条件，无工作流摘要\ndescription: Use when executing implementation plans with independent tasks in the current session\n\n# 正确：仅触发条件\ndescription: Use when implementing any feature or bugfix, before writing implementation code\n```\n\n**内容：**\n- 使用具体的触发条件、症状和场景来表明此技能适用\n- 描述问题（竞态条件、行为不一致）而非语言特定的症状（setTimeout、sleep）\n- 保持触发条件技术无关，除非技能本身是技术特定的\n- 如果技能是技术特定的，在触发条件中明确说明\n- 用第三人称写（注入到系统提示中）\n- **绝不总结技能的流程或工作流**\n\n```yaml\n# 错误：太抽象、模糊，未包含何时使用\ndescription: For async testing\n\n# 错误：第一人称\ndescription: I can help you with async tests when they're flaky\n\n# 错误：提到了技术但技能并非该技术特定的\ndescription: Use when tests use setTimeout/sleep and are flaky\n\n# 正确：以\"Use when\"开头，描述问题，无工作流\ndescription: Use when tests have race conditions, timing dependencies, or pass/fail inconsistently\n\n# 正确：技术特定的技能带有明确的触发条件\ndescription: Use when using React Router and handling authentication redirects\n```\n\n### 2. 关键词覆盖\n\n使用 Claude 会搜索的词语：\n- 错误信息：\"Hook timed out\"、\"ENOTEMPTY\"、\"race condition\"\n- 症状：\"flaky\"、\"hanging\"、\"zombie\"、\"pollution\"\n- 同义词：\"timeout/hang/freeze\"、\"cleanup/teardown/afterEach\"\n- 工具：实际命令、库名称、文件类型\n\n### 3. 描述性命名\n\n**使用主动语态，动词优先：**\n- ✅ `creating-skills` 而非 `skill-creation`\n- ✅ `condition-based-waiting` 而非 `async-test-helpers`\n\n### 4. Token 效率（关键）\n\n**问题：** getting-started 和频繁引用的技能会加载到每个对话中。每个 token 都很重要。\n\n**目标字数：**\n- getting-started 工作流：每个 <150 词\n- 频繁加载的技能：总计 <200 词\n- 其他技能：<500 词（仍要简洁）\n\n**技巧：**\n\n**将细节移到工具帮助中：**\n```bash\n# 错误：在 SKILL.md 中列出所有参数\nsearch-conversations supports --text, --both, --after DATE, --before DATE, --limit N\n\n# 正确：引用 --help\nsearch-conversations 支持多种模式和过滤器。运行 --help 查看详情。\n```\n\n**使用交叉引用：**\n```markdown\n# 错误：重复工作流细节\n搜索时，用模板分派子智能体……\n[20 行重复的说明]\n\n# 正确：引用其他技能\n始终使用子智能体（节省 50-100 倍上下文）。必需：使用 [other-skill-name] 工作流。\n```\n\n**压缩示例：**\n```markdown\n# 错误：冗长的示例（42 词）\n你的搭档：\"我们之前是怎么处理 React Router 中的认证错误的？\"\n你：我来搜索过去对话中的 React Router 认证模式。\n[用搜索查询分派子智能体：\"React Router authentication error handling 401\"]\n\n# 正确：精简的示例（20 词）\n搭档：\"我们之前是怎么处理 React Router 中的认证错误的？\"\n你：正在搜索……\n[分派子智能体 → 整合]\n```\n\n**消除冗余：**\n- 不要重复交叉引用的技能中已有的内容\n- 不要解释从命令中就能看出的东西\n- 不要为同一模式提供多个示例\n\n**验证：**\n```bash\nwc -w skills/path/SKILL.md\n# getting-started 工作流：目标 <150 每个\n# 其他频繁加载的：目标总计 <200\n```\n\n**用你做的事或核心洞察来命名：**\n- ✅ `condition-based-waiting` > `async-test-helpers`\n- ✅ `using-skills` 而非 `skill-usage`\n- ✅ `flatten-with-flags` > `data-structure-refactoring`\n- ✅ `root-cause-tracing` > `debugging-techniques`\n\n**动名词（-ing）适合描述流程：**\n- `creating-skills`、`testing-skills`、`debugging-with-logs`\n- 主动的，描述你正在进行的操作\n\n### 4. 交叉引用其他技能\n\n**编写引用其他技能的文档时：**\n\n仅使用技能名称，带有明确的必需标记：\n- ✅ 好的：`**必需子技能：** 使用 superpowers:test-driven-development`\n- ✅ 好的：`**必需背景：** 你必须理解 superpowers:systematic-debugging`\n- ❌ 差的：`参见 skills/testing/test-driven-development`（不清楚是否必需）\n- ❌ 差的：`@skills/testing/test-driven-development/SKILL.md`（强制加载，浪费上下文）\n\n**为什么不用 @ 链接：** `@` 语法会立即强制加载文件，在你需要之前就消耗 200k+ 的上下文。\n\n## 流程图使用\n\n```dot\ndigraph when_flowchart {\n    \"需要展示信息?\" [shape=diamond];\n    \"我可能在决策中犯错?\" [shape=diamond];\n    \"使用 markdown\" [shape=box];\n    \"小型内联流程图\" [shape=box];\n\n    \"需要展示信息?\" -> \"我可能在决策中犯错?\" [label=\"是\"];\n    \"我可能在决策中犯错?\" -> \"小型内联流程图\" [label=\"是\"];\n    \"我可能在决策中犯错?\" -> \"使用 markdown\" [label=\"否\"];\n}\n```\n\n**仅在以下情况使用流程图：**\n- 非显而易见的决策点\n- 你可能过早停止的流程循环\n- \"何时使用 A vs B\"的决策\n\n**绝不使用流程图用于：**\n- 参考资料 → 表格、列表\n- 代码示例 → Markdown 代码块\n- 线性指令 → 编号列表\n- 无语义意义的标签（step1、helper2）\n\n参见 @graphviz-conventions.dot 了解 graphviz 样式规则。\n\n**为你的搭档可视化：** 使用此目录中的 `render-graphs.js` 将技能的流程图渲染为 SVG：\n```bash\n./render-graphs.js ../some-skill           # 每个图表分别渲染\n./render-graphs.js ../some-skill --combine # 所有图表合并为一个 SVG\n```\n\n## 代码示例\n\n**一个优秀的示例胜过多个平庸的**\n\n选择最相关的语言：\n- 测试技术 → TypeScript/JavaScript\n- 系统调试 → Shell/Python\n- 数据处理 → Python\n\n**好的示例：**\n- 完整可运行\n- 注释良好，解释为什么\n- 来自真实场景\n- 清晰展示模式\n- 可以直接适配（不是通用模板）\n\n**不要：**\n- 用 5 种以上语言实现\n- 创建填空模板\n- 写人为构造的示例\n\n你擅长语言移植——一个优秀的示例就够了。\n\n## 文件组织\n\n### 自包含技能\n```\ndefense-in-depth/\n  SKILL.md    # 所有内容内联\n```\n适用场景：所有内容都能放下，无需大量参考\n\n### 带可复用工具的技能\n```\ncondition-based-waiting/\n  SKILL.md    # 概述 + 模式\n  example.ts  # 可适配的工作代码\n```\n适用场景：工具是可复用的代码，不只是叙述\n\n### 带大量参考的技能\n```\npptx/\n  SKILL.md       # 概述 + 工作流\n  pptxgenjs.md   # 600 行 API 参考\n  ooxml.md       # 500 行 XML 结构\n  scripts/       # 可执行工具\n```\n适用场景：参考资料太多无法内联\n\n## 铁律（与 TDD 相同）\n\n```\n没有失败的测试就不写技能\n```\n\n这适用于新技能和对现有技能的编辑。\n\n先写技能再测试？删掉它。重新开始。\n编辑技能不测试？同样违规。\n\n**无例外：**\n- 不适用于\"简单的添加\"\n- 不适用于\"只是加一个章节\"\n- 不适用于\"文档更新\"\n- 不要保留未测试的更改作为\"参考\"\n- 不要在运行测试时\"调整\"\n- 删除就是删除\n\n**必需背景：** superpowers:test-driven-development 技能解释了为什么这很重要。相同的原则适用于文档。\n\n## 测试所有技能类型\n\n不同类型的技能需要不同的测试方法：\n\n### 纪律执行类技能（规则/要求）\n\n**例如：** TDD、完成前验证、编码前设计\n\n**测试方式：**\n- 学术性问题：它们理解规则吗？\n- 压力场景：它们在压力下遵守吗？\n- 多重压力组合：时间 + 沉没成本 + 疲惫\n- 识别合理化借口并添加明确的反驳\n\n**成功标准：** 智能体在最大压力下遵循规则\n\n### 技术类技能（操作指南）\n\n**例如：** condition-based-waiting、root-cause-tracing、defensive-programming\n\n**测试方式：**\n- 应用场景：它们能正确应用技术吗？\n- 变体场景：它们能处理边界情况吗？\n- 缺失信息测试：说明是否有遗漏？\n\n**成功标准：** 智能体成功将技术应用于新场景\n\n### 模式类技能（心智模型）\n\n**例如：** reducing-complexity、information-hiding 概念\n\n**测试方式：**\n- 识别场景：它们能识别模式何时适用吗？\n- 应用场景：它们能使用心智模型吗？\n- 反例：它们知道何时不应用吗？\n\n**成功标准：** 智能体正确识别何时/如何应用模式\n\n### 参考类技能（文档/API）\n\n**例如：** API 文档、命令参考、库指南\n\n**测试方式：**\n- 检索场景：它们能找到正确的信息吗？\n- 应用场景：它们能正确使用找到的内容吗？\n- 覆盖测试：常见用例是否都涵盖了？\n\n**成功标准：** 智能体找到并正确应用参考信息\n\n## 跳过测试的常见合理化借口\n\n| 借口 | 现实 |\n|------|------|\n| \"技能显然很清晰\" | 对你清晰 ≠ 对其他智能体清晰。测试它。 |\n| \"这只是参考资料\" | 参考资料可能有遗漏、不清楚的地方。测试检索。 |\n| \"测试太过了\" | 未测试的技能总有问题。15 分钟测试省下数小时。 |\n| \"有问题再测试\" | 问题 = 智能体无法使用技能。在部署前测试。 |\n| \"测试太繁琐\" | 测试比在生产中调试坏技能少繁琐得多。 |\n| \"我有信心它很好\" | 过度自信保证出问题。无论如何都要测试。 |\n| \"学术审查就够了\" | 阅读 ≠ 使用。测试应用场景。 |\n| \"没时间测试\" | 部署未测试的技能比后面修复浪费更多时间。 |\n\n**以上所有都意味着：部署前测试。无例外。**\n\n## 让技能经受住合理化的考验\n\n执行纪律的技能（如 TDD）需要抵抗合理化。智能体很聪明，在压力下会找到漏洞。\n\n**心理学说明：** 理解说服技巧为什么有效有助于你系统性地应用它们。参见 persuasion-principles.md 了解研究基础（Cialdini, 2021; Meincke et al., 2025），涵盖权威、承诺、稀缺、社会认同和归属原则。\n\n### 明确堵住每个漏洞\n\n不要只是陈述规则——禁止具体的变通方法：\n\n<Bad>\n```markdown\n先写代码再写测试？删掉它。\n```\n</Bad>\n\n<Good>\n```markdown\n先写代码再写测试？删掉它。重新开始。\n\n**无例外：**\n- 不要保留作为\"参考\"\n- 不要在写测试时\"调整\"它\n- 不要看它\n- 删除就是删除\n```\n</Good>\n\n### 应对\"精神 vs 字面\"的辩论\n\n在前面加入基础原则：\n\n```markdown\n**违反规则的字面意思就是违反规则的精神。**\n```\n\n这切断了整类\"我遵循的是精神\"的合理化借口。\n\n### 构建合理化借口表\n\n从基线测试中捕获合理化借口（参见下方测试章节）。智能体使用的每个借口都进入表中：\n\n```markdown\n| 借口 | 现实 |\n|------|------|\n| \"太简单不值得测试\" | 简单的代码也会出错。测试只需 30 秒。 |\n| \"我后面再测试\" | 测试立即通过什么也证明不了。 |\n| \"后写测试效果一样\" | 后写测试 = \"这做了什么？\" 先写测试 = \"这应该做什么？\" |\n```\n\n### 创建红线列表\n\n让智能体容易自查是否在合理化：\n\n```markdown\n## 红线 - 停下来重新开始\n\n- 先写代码再写测试\n- \"我已经手动测试过了\"\n- \"后写测试效果一样\"\n- \"重要的是精神不是仪式\"\n- \"这个情况不同，因为……\"\n\n**以上所有都意味着：删除代码。用 TDD 重新开始。**\n```\n\n### 更新 CSO 以包含违规症状\n\n在描述中添加：你即将违反规则时的症状：\n\n```yaml\ndescription: use when implementing any feature or bugfix, before writing implementation code\n```\n\n## 技能的红-绿-重构\n\n遵循 TDD 循环：\n\n### 红：编写失败的测试（基线）\n\n在没有技能的情况下运行压力场景。逐字记录行为：\n- 它们做了什么选择？\n- 它们使用了什么合理化借口（原文）？\n- 哪些压力触发了违规？\n\n这就是\"观察测试失败\"——在编写技能之前你必须看到智能体自然会怎么做。\n\n### 绿：编写最小技能\n\n编写针对那些具体合理化借口的技能。不要为假设情况添加额外内容。\n\n用技能运行相同的场景。智能体应该现在遵守。\n\n### 重构：堵住漏洞\n\n智能体找到了新的合理化借口？添加明确的反驳。重新测试直到无懈可击。\n\n**测试方法论：** 参见 @testing-skills-with-subagents.md 了解完整的测试方法：\n- 如何编写压力场景\n- 压力类型（时间、沉没成本、权威、疲惫）\n- 系统地堵住漏洞\n- 元测试技巧\n\n## 反模式\n\n### 叙事式示例\n\"在 2025-10-03 的会话中，我们发现空的 projectDir 导致了……\"\n**为什么不好：** 太具体，不可复用\n\n### 多语言稀释\nexample-js.js、example-py.py、example-go.go\n**为什么不好：** 质量平庸，维护负担重\n\n### 流程图中的代码\n```dot\nstep1 [label=\"import fs\"];\nstep2 [label=\"read file\"];\n```\n**为什么不好：** 无法复制粘贴，难以阅读\n\n### 通用标签\nhelper1、helper2、step3、pattern4\n**为什么不好：** 标签应有语义意义\n\n## 停下：进入下一个技能之前\n\n**编写任何技能后，你必须停下来完成部署流程。**\n\n**不要：**\n- 批量创建多个技能而不逐个测试\n- 在当前技能验证前就进入下一个\n- 因为\"批量处理更高效\"就跳过测试\n\n**下面的部署清单对每个技能都是强制性的。**\n\n部署未测试的技能 = 部署未测试的代码。这是对质量标准的违反。\n\n## 技能创建清单（TDD 适配版）\n\n**重要：使用 TodoWrite 为下面的每个清单项创建待办。**\n\n**红色阶段 - 编写失败的测试：**\n- [ ] 创建压力场景（纪律类技能需 3 个以上组合压力）\n- [ ] 在没有技能的情况下运行场景 - 逐字记录基线行为\n- [ ] 识别合理化借口中的模式\n\n**绿色阶段 - 编写最小技能：**\n- [ ] 名称只使用字母、数字、连字符（无括号/特殊字符）\n- [ ] YAML frontmatter 包含必需的 `name` 和 `description` 字段（最多 1024 字符；参见 [spec](https://agentskills.io/specification)）\n- [ ] 描述以\"Use when...\"开头并包含具体的触发条件/症状\n- [ ] 描述用第三人称\n- [ ] 全文包含搜索关键词（错误、症状、工具）\n- [ ] 带有核心原则的清晰概述\n- [ ] 解决红色阶段识别出的具体基线失败\n- [ ] 代码内联或链接到独立文件\n- [ ] 一个优秀的示例（非多语言）\n- [ ] 用技能运行场景 - 验证智能体现在遵守\n\n**重构阶段 - 堵住漏洞：**\n- [ ] 从测试中识别新的合理化借口\n- [ ] 添加明确的反驳（纪律类技能）\n- [ ] 从所有测试迭代中构建合理化借口表\n- [ ] 创建红线列表\n- [ ] 重新测试直到无懈可击\n\n**质量检查：**\n- [ ] 仅在决策不明显时使用小流程图\n- [ ] 快速参考表\n- [ ] 常见错误章节\n- [ ] 无叙事性故事\n- [ ] 支持文件仅用于工具或大量参考\n\n**部署：**\n- [ ] 将技能提交到 git 并推送到你的 fork（如果已配置）\n- [ ] 考虑通过 PR 贡献回去（如果具有广泛用途）\n\n## 发现工作流\n\n未来的 Claude 如何找到你的技能：\n\n1. **遇到问题**（\"测试不稳定\"）\n3. **找到技能**（描述匹配）\n4. **浏览概述**（这相关吗？）\n5. **阅读模式**（快速参考表）\n6. **加载示例**（仅在实现时）\n\n**为此流程优化** - 把可搜索的术语放在前面和各处。\n\n## 总结\n\n**创建技能就是流程文档的 TDD。**\n\n同样的铁律：没有失败的测试就不写技能。\n同样的循环：红（基线）→ 绿（写技能）→ 重构（堵漏洞）。\n同样的好处：更高的质量、更少的意外、无懈可击的结果。\n\n如果你对代码遵循 TDD，对技能也应如此。这是同样的纪律应用于文档。","tags":["writing","skills","superpowers","jnmetacode","agent-skills","agentic-coding","ai-coding","chinese","claude-code","code-review","cursor","gemini-cli"],"capabilities":["skill","source-jnmetacode","skill-writing-skills","topic-agent-skills","topic-agentic-coding","topic-ai-coding","topic-chinese","topic-claude-code","topic-code-review","topic-cursor","topic-gemini-cli","topic-kiro","topic-mcp","topic-npm-package","topic-prompt-engineering"],"categories":["superpowers-zh"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/jnMetaCode/superpowers-zh/writing-skills","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add jnMetaCode/superpowers-zh","source_repo":"https://github.com/jnMetaCode/superpowers-zh","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 1850 github stars · SKILL.md body (11,258 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T18:52:41.327Z","embedding":null,"createdAt":"2026-04-18T21:56:05.846Z","updatedAt":"2026-05-02T18:52:41.327Z","lastSeenAt":"2026-05-02T18:52:41.327Z","tsv":"'-03':1145 '-10':1144 '-100':567 '-2':234 '/.agents/skills':16 '/.claude/skills':13 '/api':946 '/render-graphs.js':773,776 '/some-skill':774,777 '/specification)':1231 '/specification](https://agentskills.io/specification)':191 '1':162,233,263,1277 '100':164 '1024':193,1225 '15':974 '150':515,626 '2':169,453 '20':560,601 '200':519,630 '200k':709 '2021':1007 '2025':1011,1143 '3':477,1205,1280 '30':1055 '4':497,677,1283 '401':598 '42':580 '5':800,1286 '50':177,566 '500':216,522,841 '6':1289 '600':836 'agentskills.io':190,1230 'agentskills.io/specification)':1229 'agentskills.io/specification](https://agentskills.io/specification)':189 'al':1010 'anthrop':46 'anthropic-best-practices.md':48 'api':141,166,838,948 'async':395,405,494,637 'async-test-help':493,636 'authent':451,595 'b':748 'base':125,490,634,820,906 'bash':527,617,772 'box':725,728 'bugfix':367,1093 'caus':129,657,910 'cialdini':1006 'claud':10,57,256,261,266,285,290,298,302,305,310,456,1275 'claude.md':113 'cleanup/teardown/aftereach':472 'code':11,322,340,371,1097 'codex':14 'combin':778 'complex':929 'condit':124,435,464,489,633,819,905 'condition-based-wait':123,488,632,818,904 'convers':534,549 'creat':482,666 'creating-skil':481,665 'creation':487 'cso':213,258,1081 'current':356 'data':652 'data-structure-refactor':651 'date':539,541 'debug':660,672,696 'debugging-techniqu':659 'debugging-with-log':671 'defens':809,913 'defense-in-depth':808 'defensive-program':912 'depend':437 'depth':811 'descript':187,200,225,312,328,345,360,393,399,413,429,443,1086,1222 'develop':37,689,877 'diamond':718,721 'digraph':713 'dispatch':317 'doc':146 'dot':712,1161 'driven':36,688,876 'enotempti':462 'error':596 'et':1009 'example-go.go':1156 'example-js.js':1154 'example-py.py':1155 'example.ts':825 'execut':315,348 'fail':337 'featur':365,1091 'file':157,1169 'first':334 'flag':136,650 'flaki':410,421,466 'flatten':134,648 'flatten-with-flag':133,647 'flowchart':715 'fork':1267 'frontmatt':182,1218 'fs':1165 'get':503,511,622 'getting-start':502,510,621 'git':1265 'graphviz':765 'graphviz-conventions.dot':763 'handl':450,597 'hang':467 'help':402,546,552 'helper':496,639 'helper1':1174 'helper2':761,1175 'hide':932 'hook':459 'hyphen':224 'implement':349,363,370,1089,1096 'import':1164 'inconsist':440 'independ':352 'inform':931 'information-hid':930 'ing':663 'invari':139 'label':731,735,740,1163,1167 'limit':542 'log':674 'markdown':218,555,577,723,739,755,1019,1022,1040,1049,1066 'meinck':1008 'minim':339 'n':543 'name':151,185,195,219,222,574,1220 'offic':145 'ooxml.md':840 'other-skill-nam':571 'pass/fail':439 'pattern4':1177 'per':319 'persuasion-principles.md':1004 'plan':316,350 'pollut':469 'pptx':831 'pptxgenjs.md':835 'pr':1270 'program':914 'projectdir':1148 'python':789 'race':434,463 're':409 'react':447,584,589,593,605 'read':1168 'redirect':452 'reduc':928 'reducing-complex':927 'refactor':341,654 'render-graphs.js':769 'review':323 'root':128,656,909 'root-cause-trac':127,655,908 'router':448,585,590,594,606 'script':845 'search':533,548 'search-convers':532,547 'session':357 'settimeout':379 'settimeout/sleep':418 'shape':717,720,724,727 'shell/python':787 'skill':3,148,150,221,483,486,573,642,645,667,670 'skill-creat':485 'skill-nam':149 'skill-name-with-hyphen':220 'skill-usag':644 'skill-writing-skills' 'skill.md':75,152,180,530,812,822,832 'skills/path/skill.md':620 'skills/testing/test-driven-development':699 'skills/testing/test-driven-development/skill.md':702 'sleep':380 'source-jnmetacode' 'spec':1228 'start':504,512,623 'step1':760,1162 'step2':1166 'step3':1176 'structur':653 'subag':318 'superpow':33,685,693,873 'support':156,535 'supporting-fil':155 'svg':771,780 'systemat':695 'systematic-debug':694 'task':320,325,353 'tdd':43,50,66,68,331,851,886,997,1078,1103,1195,1296,1311 'techniqu':661 'test':35,138,333,396,406,416,432,495,638,669,687,875 'test-driven-develop':34,686,874 'test-invari':137 'testing-skil':668 'testing-skills-with-subagents.md':1130 'text':536 'time':436,460 'timeout/hang/freeze':471 'todowrit':1199 'token':498,507 'topic-agent-skills' 'topic-agentic-coding' 'topic-ai-coding' 'topic-chinese' 'topic-claude-code' 'topic-code-review' 'topic-cursor' 'topic-gemini-cli' 'topic-kiro' 'topic-mcp' 'topic-npm-package' 'topic-prompt-engineering' 'trace':130,658,911 'typescript/javascript':785 'usag':646 'use':205,226,272,313,329,346,361,414,417,424,430,444,446,641,1087,1233 'using-skil':640 'vs':747,1036 'w':619 'wait':126,491,635,821,907 'watch':335 'wc':618 'write':2,332,338,369,1095 'writing-skil':1 'xml':843 'yaml':183,307,388,1085,1217 'zombi':468 '一个优秀的示例':1245 '一个优秀的示例就够了':805 '一个优秀的示例胜过多个平庸的':782 '一个写着':287 '一次性解决方案':109 '下面的部署清单对每个技能都是强制性的':1190 '不只是叙述':829 '不可复用':1152 '不同类型的技能需要不同的测试方法':881 '不是做什么':203 '不是技能做什么':279 '不是通用模板':797 '不清楚是否必需':700 '不清楚的地方':970 '不要':798,1184 '不要为假设情况添加额外内容':1120 '不要为同一模式提供多个示例':615 '不要保留作为':1027 '不要保留未测试的更改作为':867 '不要创建':108 '不要只是陈述规则':1017 '不要在写测试时':1029 '不要在描述中总结技能的流程或工作流':281 '不要在运行测试时':869 '不要用括号':198 '不要看它':1032 '不要解释从命令中就能看出的东西':614 '不要重复交叉引用的技能中已有的内容':613 '不适用于':861,863,865 '不适用的场景':240 '与':850 '两个必需字段':184 '个人技能存放在智能体特定的目录中':9 '个以上组合压力':1206 '中':114 '中列出所有参数':531 '中的认证错误的':586,607 '丰富的描述字段':264 '为下面的每个清单项创建待办':1200 '为什么不好':1150,1157,1170,1178 '为什么不用':705 '为什么这很重要':282 '为你的搭档可视化':767 '为此流程优化':1292 '主动的':675 '主参考文档':153 '了解':764 '了解完整的测试方法':1131 '了解研究基础':1005 '交叉引用其他技能':678 '什么是技能':52 '仅使用技能名称':680 '仅在以下情况使用流程图':742 '仅在决策不明显时使用小流程图':1258 '仅在实现时':1291 '仅在需要时':158 '仅描述何时使用':202 '仅触发条件':359 '仍要简洁':524 '从基线测试中捕获合理化借口':1046 '从所有测试迭代中构建合理化借口表':1254 '从测试中识别新的合理化借口':1251 '代码内联或链接到独立文件':1244 '代码块':756 '代码模式':176 '代码示例':754,781 '以':204,271,423 '以上所有都意味着':991,1075 '以包含违规症状':1082 '任务间进行代码审查':288 '会搜索的词语':457 '会走的捷径':303 '何时使用':236,278,745 '何时创建技能':101 '你':587,608 '你会在不同项目中反复引用':104 '你即将违反规则时的症状':1084 '你可能过早停止的流程循环':744 '你就不知道这个技能是否教了正确的东西':29 '你必须停下来完成部署流程':1183 '你必须理解':32,692 '你擅长语言移植':804 '你的搭档':582 '你编写测试用例':17 '使用':455,570,684,722,738,987,1198 '使用主动语态':479 '使用交叉引用':554 '使用具体的触发条件':373 '使用小型内联流程图':238 '使用此目录中的':768 '例如':885,903,926,947 '保持内联':174 '保持触发条件技术无关':381 '修复方法':252 '倍上下文':568 '借口':962,1050 '停下':1180 '停下来重新开始':1068 '元测试技巧':1139 '先写代码再写测试':1020,1023,1069 '先写技能再测试':855 '先写测试':85,1062 '先规格合规再代码质量':293 '全文包含搜索关键词':1238 '全面的语法说明':168 '关于你某次如何解决问题的叙事':65 '关键':276,500 '关键词覆盖':454 '其他人也会受益':107 '其他地方有充分文档的标准实践':110 '其他所有内容':179 '其他技能':521 '其他频繁加载的':628 '具体的触发条件和症状':228 '具体结果':255 '内容':372 '冗长的示例':579 '写人为构造的示例':803 '写技能':1303 '分派子智能体':610 '分离文件的情况':161 '分钟测试省下数小时':975 '列表':753 '创建压力场景':1203 '创建填空模板':802 '创建技能就是流程文档的':1295 '创建条件':102 '创建红线列表':1064,1255 '删掉它':856,1021,1024 '删除代码':1076 '删除就是删除':871,1033 '前后代码对比':244 '加载示例':1290 '动名词':662 '动词优先':480 '包含具体的症状':209 '包含必需的':1219 '压力场景':892 '压力类型':1133 '压缩示例':576 '原则和概念':175 '原文':1112 '参考':839,868,1028 '参考指南':63 '参考类':140 '参考类技能':944 '参考资料':751 '参考资料可能有遗漏':969 '参考资料太多无法内联':848 '参见':212,698,762,1003,1129,1227 '参见下方测试章节':1047 '反例':939 '反模式':1140 '发现工作流':1273 '发现新的合理化借口':94 '发现至关重要':259 '变体场景':918 '叙事式示例':1141 '句话说明核心原则':235 '只使用字母':196 '只做了一次审查':291 '只是加一个章节':864 '只有触发条件':343 '可以直接适配':796 '可复用工具':170 '可复用的技术':60 '可执行工具':846 '可能会跟随描述而非阅读完整的技能内容':286 '可能会跟随描述而非阅读技能':311 '可适配的工作代码':826 '可选':254 '同义词':470 '同样的好处':1306 '同样的循环':1299 '同样的铁律':1297 '同样违规':859 '名称只使用字母':1212 '后写测试':1060 '后写测试效果一样':1059,1071 '否':741 '命令参考':950 '和':186,1221 '和频繁引用的技能会加载到每个对话中':505 '哪些压力触发了违规':1113 '因为':1074,1187 '在':529,1142 '在你需要之前就消耗':708 '在使用此技能前':31 '在保持合规的同时堵住漏洞':84 '在前面加入基础原则':1039 '在压力下会找到漏洞':1000 '在当前会话中执行包含独立任务的实现计划时使用':295 '在当前技能验证前就进入下一个':1186 '在描述中添加':1083 '在没有技能的情况下运行压力场景':1108 '在没有技能的情况下运行场景':1207 '在编写技能之前你必须看到智能体自然会怎么做':1116 '在编写技能之前先运行基线场景':86 '在触发条件中明确说明':384 '在部署前测试':979 '场景和上下文':210 '基线':79,1107,1301 '基线行为':20 '堵住':95 '堵住漏洞':26,1124,1250 '堵漏洞':1305 '多语言稀释':1153 '多重压力组合':894 '大量参考内容':163 '大量参考或可复用工具链接到文件':249 '太具体':1151 '太抽象':390 '太简单不值得测试':1052 '好的':682,690 '好的示例':790 '如':996 '如何应用模式':943 '如何找到你的技能':1276 '如何编写压力场景':1132 '如果你对代码遵循':1310 '如果你没有观察到智能体在没有该技能时失败':28 '如果具有广泛用途':1272 '如果决策不明显':237 '如果可以用正则':116 '如果已配置':1268 '如果技能是技术特定的':383 '始终使用子智能体':564 '字段':1223 '字符':194,1226 '字符以内':217 '字面':1037 '学术审查就够了':985 '学术性问题':890 '它':1031 '它们使用了什么合理化借口':1111 '它们做了什么选择':1110 '它们在压力下遵守吗':893 '它们理解规则吗':891 '它们知道何时不应用吗':940 '它们能使用心智模型吗':938 '它们能处理边界情况吗':919 '它们能找到正确的信息吗':954 '它们能正确使用找到的内容吗':956 '它们能正确应用技术吗':917 '它们能识别模式何时适用吗':936 '完成前验证':887 '完整可运行':791 '完整支持字段参见':188 '官方指南':45 '官方的技能编写最佳实践请参见':47 '实例找到并应用有效的方法':58 '实现':247 '实用程序':172 '实际命令':474 '实际效果':253 '对你清晰':965 '对其他智能体清晰':966 '对技能也应如此':1312 '导向方法的额外模式和指南':51 '导致了':1149 '将技能提交到':1264 '将技能的流程图渲染为':770 '将细节移到工具帮助中':526 '小型内联流程图':726,734 '就自动化':118 '就跳过测试':1189 '尽管技能的流程图清楚地展示了两次审查':292 '尽量控制在':215 '工作流':513,575,624,834 '工具':62,473,1241 '工具文档':144 '工具是可复用的代码':828 '差的':697,701 '带可复用工具的技能':817 '带大量参考的技能':830 '带子智能体的压力场景':18,72 '带有明确的必需标记':681 '带有核心原则的清晰概述':1242 '常见用例是否都涵盖了':958 '常见错误':250 '常见错误章节':1260 '常见问题':251 '并推送到你的':1266 '库名称':475 '库指南':951 '应对':1034 '应用场景':916,937,955 '开头':207,274,426 '开头并包含具体的触发条件':1235 '引用':545 '引用其他技能':563 '强制加载':703 '当创建新技能':4 '当描述总结了技能的工作流时':284 '当描述改为仅':294 '循环':1104 '心智模型':925 '心理学说明':1001 '必需':154,569 '必需子技能':683 '必需背景':30,691,872 '快速参考':245 '快速参考表':1259,1288 '思考问题的方式':132 '总结':1294 '总结了工作流':309 '总结工作流的描述创建了':301 '总计':518 '总计最多':192 '成功标准':899,922,941,959 '我们之前是怎么处理':583,604 '我们发现空的':1147 '我可能在决策中犯错':719,730,733,737 '我后面再测试':1057 '我已经手动测试过了':1070 '我有信心它很好':982 '我来搜索过去对话中的':588 '我现在应该读这个技能吗':269 '我遵循的是精神':1043 '所有内容内联':813 '所有内容都能放下':815 '所有图表合并为一个':779 '所有技能在一个可搜索的命名空间中':160 '扁平命名空间':159 '执行纪律的技能':995 '批量创建多个技能而不逐个测试':1185 '批量处理更高效':1188 '找到技能':1281 '承诺':1013 '技巧':525 '技术':242 '技术对你来说不是直觉上显而易见的':103 '技术特定的技能带有明确的触发条件':442 '技术类':121 '技术类技能':901 '技能':53 '技能不是':64 '技能创建':70 '技能创建清单':1194 '技能名称':229 '技能帮助未来的':56 '技能文档':74 '技能是':59 '技能显然很清晰':964 '技能正文变成了':304 '技能的红':1099 '技能的红-绿-重构':1098 '技能类型':120 '技能解释了为什么这很重要':878 '把可搜索的术语放在前面和各处':1293 '描述':277 '描述以':1232 '描述你正在进行的操作':676 '描述匹配':1282 '描述应该只描述触发条件':280 '描述性命名':478 '描述用第三人称':1237 '描述问题':375,427 '提到了技术但技能并非该技术特定的':412 '搜索优化':257 '搜索时':558 '搭档':603 '操作指南':902 '支持多种模式和过滤器':550 '支持文件仅用于工具或大量参考':1262 '放在':112 '效率':499 '数字':1213 '数字和连字符':197 '数据处理':788 '整个技能创建过程遵循红':98 '整个技能创建过程遵循红-绿-重构':97 '整合':611 '文件类型':476 '文件组织':806 '文档':22,142,167,945,949 '文档更新':866 '文档留给需要判断的场景':119 '无例外':860,993,1026 '无叙事性故事':1261 '无工作流':428 '无工作流摘要':296,344 '无懈可击的结果':1309 '无括号':1215 '无法复制粘贴':1171 '无论如何都要测试':984 '无语义意义的标签':759 '无需大量参考':816 '时':297 '时间':895,1134 '明确堵住每个漏洞':1016 '映射到技能':67 '是':732,736 '是经过验证的技术':54 '智能体使用的每个借口都进入表中':1048 '智能体在最大压力下遵循规则':900 '智能体在有技能时遵守规则':82 '智能体在没有技能时违反规则':78 '智能体应该现在遵守':1122 '智能体很聪明':999 '智能体成功将技术应用于新场景':923 '智能体找到了新的合理化借口':1125 '智能体找到并正确应用参考信息':960 '智能体无法使用技能':978 '智能体正确识别何时':942 '智能体遵守规则':24 '更少的意外':1308 '更新':1080 '更高的质量':1307 '最多':1224 '最小代码':89 '有具体步骤的方法':122 '有问题再测试':976 '未包含何时使用':392 '未来的':260,1274 '未测试的技能总有问题':973 '本技能将':42 '机械性约束':115 '权威':1136 '来自真实场景':794 '构建合理化借口表':1045 '查看详情':553 '标签应有语义意义':1179 '样式规则':766 '核心原则':27 '核心模式':241 '格式':270 '检索场景':953 '概念':69,933 '概述':7,230,823,833 '模式':61,824 '模式具有广泛适用性':105 '模式或工具的参考指南':55 '模式类':131,243 '模式类技能':924 '模板':173 '模糊':391 '正在搜索':609 '正确':342,358,422,441,544,562,599 '正确地阅读了流程图并遵循了两阶段审查流程':299 '每个':506,514,627 '每个图表分别渲染':775 '沉没成本':896,1135 '没时间测试':989 '没有失败的测试就不写技能':853,1298 '注入到系统提示中':386 '注释良好':792 '流程图中的代码':1160 '流程图使用':711 '流程细节太多':327 '测试不稳定':1279 '测试只需':1054 '测试太繁琐':980 '测试太过了':972 '测试失败':76 '测试它':967 '测试应用场景':988 '测试所有技能类型':880 '测试技术':784 '测试方式':889,915,934,952 '测试方法论':1128 '测试检索':971 '测试比在生产中调试坏技能少繁琐得多':981 '测试用例':71 '测试立即通过什么也证明不了':1058 '测试表明':283 '测试通过':80 '浏览概述':1284 '浪费上下文':704 '消除冗余':612 '涵盖权威':1012 '添加明确的反驳':1126,1252 '清晰展示模式':795 '然后重构':25 '特殊字符':199,1216 '现实':963,1051 '理解说服技巧为什么有效有助于你系统性地应用它们':1002 '生产代码':73 '用':12,15,232,799,1077 '用于快速浏览常见操作的表格或要点':246 '用你做的事或核心洞察来命名':631 '用技能运行场景':1247 '用技能运行相同的场景':1121 '用搜索查询分派子智能体':592 '用模板分派子智能体':559 '用第三人称写':385 '疲惫':897,1137 '症状':465,1236,1240 '症状和场景来表明此技能适用':374 '症状和用例的要点列表':239 '的上下文':710 '的会话中':1146 '的决策':749 '的合理化借口':1044 '的描述导致':289 '的辩论':1038 '目录结构':147 '目标':625 '目标字数':509 '目标总计':629 '目的':265 '相同':852 '相同的原则适用于文档':879 '社会认同和归属原则':1015 '禁止具体的变通方法':1018 '种以上语言实现':801 '秒':1056 '稀缺':1014 '竞态条件':376 '章节了解原因':214 '第一人称':398 '第三人称':201 '简单模式内联代码':248 '简单的代码也会出错':1053 '简单的添加':862 '精神':1035 '精简的示例':600 '系统地堵住漏洞':1138 '系统调试':786 '红':77,1105,1300 '红线':1067 '红色阶段':1201 '纪律执行类技能':882 '纪律类技能':1253 '纪律类技能需':1204 '线性指令':757 '结构':181,844 '绝不使用流程图用于':750 '绝不总结技能的流程或工作流':211,387 '维护负担重':1159 '绿':40,81,99,1100,1117,1302 '绿色阶段':1210 '编写任何技能后':1182 '编写失败的测试':1106,1202 '编写引用其他技能的文档时':679 '编写技能':6,21 '编写技能就是将测试驱动开发应用于流程文档':8 '编写最小技能':1118,1211 '编写针对那些具体合理化借口的技能':1119 '编写针对那些具体违规行为的技能':90 '编号列表':758 '编码前设计':888 '编辑技能不测试':858 '编辑现有技能或在部署前验证技能是否有效时使用':5 '缺失信息测试':920 '考虑通过':1269 '而非':484,492,643 '而非语言特定的症状':378 '聚焦于触发条件':208,275 '脚本':171 '自包含技能':807 '节省':565 '行':165,178,837,842 '行为不一致':377 '行重复的说明':561 '表格':752 '要求':884 '覆盖测试':957 '观察失败':87 '观察它们失败':19 '观察测试失败':1115 '观察测试通过':23 '观察通过':91 '规则':883 '解决红色阶段识别出的具体基线失败':1243 '解释为什么':793 '认证模式':591 '让它能回答':268 '让技能经受住合理化的考验':994 '让智能体容易自查是否在合理化':1065 '记录智能体使用的确切合理化借口':88 '识别合理化借口中的模式':1209 '识别合理化借口并添加明确的反驳':898 '识别场景':935 '词':516,520,523,581,602 '该技能定义了基本的红':39 '该技能定义了基本的红-绿-重构循环':38 '该文档提供了补充本技能':49 '语法会立即强制加载文件':707 '语法指南':143 '说明是否有遗漏':921 '读取描述来决定为当前任务加载哪些技能':267 '调整':870,1030 '贡献回去':1271 '质量平庸':1158 '质量检查':1257 '跳过测试的常见合理化借口':961 '跳过的文档':306 '过度自信保证出问题':983 '运行':551 '这个情况不同':1073 '这做了什么':1061 '这切断了整类':1042 '这只是参考资料':968 '这就是':1114 '这应该做什么':1063 '这是什么':231 '这是同样的纪律应用于文档':1313 '这是对质量标准的违反':1193 '这相关吗':1285 '这适用于新技能和对现有技能的编辑':854 '进入下一个技能之前':1181 '违反规则的字面意思就是违反规则的精神':1041 '连字符':1214 '适合描述流程':664 '适用场景':814,827,847 '适配到文档编写中':44 '适配版':1196 '选择最相关的语言':783 '逐字记录基线行为':1208 '逐字记录行为':1109 '通用标签':1173 '遇到问题':1278 '遵循':1102 '部署':1263 '部署前测试':992 '部署未测试的代码':1192 '部署未测试的技能':1191 '部署未测试的技能比后面修复浪费更多时间':990 '都很重要':508 '重复工作流细节':557 '重新开始':857,1025,1079 '重新测试直到无懈可击':1127,1256 '重新验证':96 '重构':83,100,1101,1123,1304 '重构循环':41,93 '重构阶段':1249 '重要':1197 '重要的是精神不是仪式':1072 '铁律':849 '链接':706 '错误':308,326,389,397,411,528,556,578,1239 '错误信息':458 '问题':501,977 '阅读':986 '阅读模式':1287 '除非技能本身是技术特定的':382 '陷阱':300 '难以阅读':1172 '需要展示信息':716,729 '需要找到你的技能':262 '需要抵抗合理化':998 '非多语言':1246 '非显而易见的决策点':743 '非项目特定':106 '项目特定的约定':111 '频繁加载的技能':517 '验证':616 '验证强制执行':117 '验证智能体现在遵守':1248 '验证智能体现在遵守规则':92","prices":[{"id":"f390d74b-1988-4e88-b852-aa7264137f8a","listingId":"16d7f30f-8b31-4f93-b41b-f2b566d98a7b","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"jnMetaCode","category":"superpowers-zh","install_from":"skills.sh"},"createdAt":"2026-04-18T21:56:05.846Z"}],"sources":[{"listingId":"16d7f30f-8b31-4f93-b41b-f2b566d98a7b","source":"github","sourceId":"jnMetaCode/superpowers-zh/writing-skills","sourceUrl":"https://github.com/jnMetaCode/superpowers-zh/tree/main/skills/writing-skills","isPrimary":false,"firstSeenAt":"2026-04-18T21:56:05.846Z","lastSeenAt":"2026-05-02T18:52:41.327Z"}],"details":{"listingId":"16d7f30f-8b31-4f93-b41b-f2b566d98a7b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"jnMetaCode","slug":"writing-skills","github":{"repo":"jnMetaCode/superpowers-zh","stars":1850,"topics":["agent-skills","agentic-coding","ai-coding","chinese","claude-code","code-review","cursor","gemini-cli","kiro","mcp","npm-package","prompt-engineering","skills","superpowers","tdd","trae"],"license":"mit","html_url":"https://github.com/jnMetaCode/superpowers-zh","pushed_at":"2026-04-28T15:32:18Z","description":"🦸 AI 编程超能力 · 中文增强版 — superpowers（116k+ ⭐）完整汉化 + 6 个中国原创 skills，让 Claude Code / Copilot CLI / Hermes Agent / Cursor / Windsurf / Kiro / Gemini CLI 等 16 款 AI 编程工具真正会干活","skill_md_sha":"1103b5b620b3305469e2d1025f2544c0d77fd176","skill_md_path":"skills/writing-skills/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/jnMetaCode/superpowers-zh/tree/main/skills/writing-skills"},"layout":"multi","source":"github","category":"superpowers-zh","frontmatter":{"name":"writing-skills","description":"当创建新技能、编辑现有技能或在部署前验证技能是否有效时使用"},"skills_sh_url":"https://skills.sh/jnMetaCode/superpowers-zh/writing-skills"},"updatedAt":"2026-05-02T18:52:41.327Z"}}