ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Claude Code 技能保存机制解析:如何通过文件投递正确交付 Skill,而非依赖磁盘写入

Claude Code 技能保存机制解析:如何通过文件投递正确交付 Skill,而非依赖磁盘写入 文档提示工程人工智能【免费下载链接】claude-code-system-promptsAll parts of Claude Codes system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, security review, agent creation). Updated for each Claude Code version.项目地址https://gitcode.com/gh_mirrors/cl/claude-code-system-prompts点击查看免费下载本文基于开源仓库 gh_mirrors/cl/claude-code-system-prompts 中提取的 Claude Code 官方系统提示片段 system-prompt-saving-skills-via-file-delivery.md约 270 tokens随 Claude Code v2.1.280 引入展开。该提示解决了一个 Agent 极易踩坑的问题用户的账户级技能account skills不会因 Agent 在文件系统上写文件而被修改磁盘上的技能文件只是只读缓存。读完本文你将掌握技能交付的完整协议——如何打包技能、用哪个工具投递、如何措辞汇报结果以及同名覆盖的替换语义并理解这套规则在 Claude Code 系统提示架构中的定位。为什么写文件不等于保存技能系统提示开宗明义地给出了一个反直觉的核心结论磁盘上的技能文件包括用户账户技能的同步副本都是只读缓存a read-only cache。这意味着直接编辑磁盘上的SKILL.md不会改变用户的账户技能仅仅把技能文件写入本地文件系统而不通过文件投递工具发送同样不会改变用户的技能用户真正拥有的技能存在于账户/组织层面由 Claude.ai 账户同步管理本地目录如~/.claude/skills/name/SKILL.md只是 Claude Code 运行时读取的缓存副本。从仓库的配套文档可以印证这一点skill-import-to-claude-code.md 明确列出技能的标准存放位置是~/.claude/skills/name/SKILL.md而 README.md 将该提示归类为 System Prompt主系统提示的组成部分说明它属于 Claude Code 每次会话都会注入的行为约束而不是一次性教程。设计意图技能的保存动作最终发生在用户侧的客户端从文件卡片保存或用户自行上传。Agent 一侧无法感知、也无法代为完成这个动作因此系统提示强制 Agent 走交付路线——把完整的技能文件交到用户手中由用户决定是否保存。正确交付姿势完整文件 文件发送工具提示给出的标准流程只有两步把技能写成一个完整的交付物单个SKILL.md文件或打包成.skillzip 归档a packaged.skillzip archive用文件发送工具${SEND_USER_FILE_TOOL_NAME}实际运行时注入为 SendUserFile把它发给用户。关键约束是完整complete二字Agent 必须交付完整的技能文件而不是增量补丁或描述性摘要。文件必须真实存在于本地文件系统工具只是发送而非渲染——这一点在 tool-description-senduserfile.md 中有明确表述Files must already exist on the local filesystem — the tool sends files, it doesnt fetch URLs or render content.SendUserFile 的调用要点来自同文件可作补充SendUserFile({ files: [report.md], caption: Heres the report., status: normal })caption一行话补充上下文即可文件本身能说明问题时省略status每次调用必设。proactive用于 Agent 主动发起用户暂时离开希望推送到手机normal用于回应对话中用户刚提出的请求displayrender表示希望用户在侧栏内联预览图表、HTML 页面attach表示用户会下载到别处打开源码、文档不设则交给客户端按文件类型决定。投递技能场景通常应使用attach语义——技能文件是保存后另处使用的交付物。路径支持绝对路径或相对当前工作目录的相对路径不确定时先用ls验证。汇报纪律只报告已投递绝不报告已保存系统提示用一句强硬的规定堵死了幻觉路径You get no signal whether they saved it: report the skill as delivered, never as saved.也就是说Agent 发出文件后没有任何信号能确认用户是否保存了它。因此汇报时只能说技能文件已交付/已发送delivered严禁说技能已保存saved、技能已安装等暗示保存成功的表述。配套的 system-prompt-skill-save-permission-note.md 进一步解释了为什么不能乱说保存用户能否把收到的文件保存为技能取决于用户所在组织的设置organization settings而这些设置是 Agent 看不到的。因此措辞必须是条件式的✅ 应说你可以从文件卡片下载它如果组织允许也可以在卡片上保存为技能✅ 描述使用技能时用 if you add it as a skill, …如果你把它添加为技能……❌ 禁止用肯定语气once its saved …一旦保存……、once added …一旦添加……❌ 禁止直接命令用户去保存它。另外该文件还提醒这段说明必须写进回复正文say in the text of your reply, not only in a caption因为部分客户端不显示 caption。同名即整体替换从当前版本出发交付完整更新提示的最后一条规则涉及技能更新语义一个与用户已有技能同名的SKILL.md或.skill文件如果用户保存它将完全替换replaces that skill entirely那个已有技能。由此推导出两条实操纪律必须从该技能当前的SKILL.md出发start from the skills current SKILL.md——Agent 需要先读取磁盘缓存中的现有SKILL.md在其基础上生成完整的新版本只交付完整更新后的文件绝不交付仅变更部分deliver the complete updated file, never only the changes——任何增量补丁、变更说明、diff 摘要都不能替代完整文件因为用户的保存动作以整个文件为单元。这与仓库中 skill-run-skill-template.md 展示的 SKILL.md 结构frontmatter 的name/description 正文分节互为印证name即技能标识保存时按文件名/名称定位一旦同名文件被保存旧内容即被整份覆盖。从源码结构看这是一块可替换、可插拔的提示组件从仓库的提取结构可以推断README 的 Extraction 一节说明这些提示是直接从 Claude Code 编译产物中提取的原文提示头部 YAML 声明了ccVersion: 2.1.280和两个变量SEND_USER_FILE_TOOL_NAME运行时注入实际工具名与SKILL_SAVE_PERMISSION_NOTE运行时注入上面的权限措辞段落。这说明该提示在 Claude Code 中按条件拼接、按版本演进而非固定文本README 将该文档归入 System Prompt 大类紧随 Saving skills via file delivery270 tks之后的还有 Skill save permission note163 tks、Skillify Current Session1798 tks等同主题提示共同构成 Claude Code 的技能生命周期管理管线system-prompt-skillify-current-session.md/skillify 流程展示了从会话提炼技能的上游环节其中要求先输出完整 SKILL.md 供用户审查、确认后再写入与本提示交付完整文件的规则方向一致——技能内容始终以完整文件为最小交付单元仓库根目录的 tools/updatePrompts.js 与 tools/promptMarkdownUtils.mjs 是这套提示的提取/格式化工具链后者还带有配套测试 tools/promptMarkdownUtils.test.mjs可供想研究提示如何被程序化维护的读者深入。实战清单Agent 交付技能的五条铁律把上述规则压缩成可执行的 checklist读取现状先读取该技能当前的SKILL.md磁盘缓存确认技能名与现有内容作为更新基线产出完整文件写出完整的新版SKILL.md含name/descriptionfrontmatter如技能附带多个资源文件可打包为.skillzip 归档用 SendUserFile 投递文件需真实存在于本地一次投递整个文件不要拆分或只发补丁如实汇报只说已交付技能文件附上下载/保存的条件式说明可从文件卡片下载如组织允许可保存为技能绝不宣称已保存不要绕路不要试图靠直接编辑磁盘缓存文件或写文件但不发送来改变用户的技能——那些操作对账户技能无效。这套协议的核心哲学是Agent 的职责边界止于交付完整、准确的技能文件保存与否的决定权、可见性与能力都属于用户及其组织。理解并遵守这一边界是 Claude Code 中一切技能创建与更新工作的前提。赞分享文档提示工程人工智能【免费下载链接】claude-code-system-promptsAll parts of Claude Codes system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, security review, agent creation). Updated for each Claude Code version.项目地址https://gitcode.com/gh_mirrors/cl/claude-code-system-prompts点击查看免费下载相关推荐WPProbe常见问题解决从安装错误到扫描失败的完整排错指南WPProbe常见问题解决从安装错误到扫描失败的完整排错指南 WPProbe是一款快速WordPress插件枚举工具能够帮助网站管理员和安全研究人员快速识别Claude Code 技能保存权限提示Skill Save Permission Note条件化措辞规范与交付语义解析Claude Code 技能保存权限提示Skill Save Permission Note条件化措辞规范与交付语义解析 导读 本文聚焦 Claude C文档提示工程人工智能终极指南Byte Buddy如何通过字节码验证机制确保类文件正确性终极指南Byte Buddy如何通过字节码验证机制确保类文件正确性 在Java虚拟机的运行时代码生成领域 Byte Buddy 作为一款强大的字节码操作工具开发工具后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进