[{"data":1,"prerenderedAt":218},["ShallowReactive",2],{"page-/blog/my-first-skill-zh-CN":3,"/blog/my-first-skill-zh-CN-surround":207},{"id":4,"title":5,"body":6,"description":189,"extension":190,"lang":191,"meta":192,"navigation":194,"path":195,"seo":196,"sitemap":197,"stem":198,"__hash__":199,"date":200,"category":201,"tags":202},"article/blog/my-first-skill/index.zh-CN.md","我创建了第一个 Skill：把写博客的重复劳动交给 AI",{"type":7,"value":8,"toc":184},"minimark",[9,19,22,97,107,110,114,117,131,134,144,147,150,156,159,165,168,172,181],[10,11,12,13,18],"p",{},"开始写博客后，我一直在琢磨，如何让写博客更方便一点。我先后调整了目录结构，优化了文件管理方式（",[14,15,17],"a",{"href":16},"/blog/nuxt-content-i18n-architecture-refactor","Nuxt Content 多语言文件管理","），但每次发布新文章依然有一堆重复动作要手动完成。",[10,20,21],{},"现在我要发布内容，流程是这样的：",[23,24,25,33,39,54,60,66,72,82,91],"ol",{},[26,27,28,29],"li",{},"打开博客工程 ——",[30,31,32],"em",{},"（每次都要切到工程目录）",[26,34,35,36],{},"在对应类型的文件夹下，新建一个临时文件夹 ——",[30,37,38],{},"（先想清楚放哪儿）",[26,40,41,42,46,47,50,51],{},"新建一个临时的 ",[43,44,45],"code",{},"index.zh-CN.md"," 和 ",[43,48,49],{},"meta.json"," 文件，手动填一堆基础信息 ——",[30,52,53],{},"（重复劳动的重灾区）",[26,55,56,57],{},"开始写文章 ——",[30,58,59],{},"（这步值得认真做）",[26,61,62,63],{},"预览并调整格式 ——",[30,64,65],{},"（图还没放，预览也是临时看）",[26,67,68,69],{},"有图片还需要手动放到资源文件夹 ——",[30,70,71],{},"（最打断思路的一步）",[26,73,74,75,78,79],{},"翻译成英文，手动创建 ",[43,76,77],{},"index.en.md"," 文件，粘贴内容 ——",[30,80,81],{},"（纯体力活）",[26,83,84,85,87,88],{},"拟定标题、url、tags 等基础信息，更新文件夹名称和 ",[43,86,49],{}," 文件 ——",[30,89,90],{},"（决策和体力混在一起）",[26,92,93,94],{},"在本地环境预览，检查文章展示是否正确 ——",[30,95,96],{},"（不放心，再看一眼）",[10,98,99,100,106],{},"整个流程看下来，不知道你会不会跟我有一样的体会：",[101,102,105],"strong",{"className":103},[104],"text-warning","还是麻烦","。这就不可避免地在无形之中影响我写作的动力。一想到写东西要吭哧吭哧搞半天，就不想动笔了。",[10,108,109],{},"后来转念一想，既然我都辅助用 AI 了，为什么不更彻底一些呢？一些重复的工作直接流程化交给 AI 如何？想要做到这样的效果，那非 skills 莫属了。终于，我要创建属于自己的第一个 skill 了。",[111,112,113],"h2",{"id":113},"哪些步骤省不掉",[10,115,116],{},"用极简的思路去想，9 个步骤中，再怎样也省不了的是：",[23,118,119,122,125,128],{},[26,120,121],{},"打开博客工程",[26,123,124],{},"输入文章的草稿",[26,126,127],{},"图片资源的管理",[26,129,130],{},"预览和格式调整",[10,132,133],{},"其他步骤都可以让 AI 自动帮我做。于是我就让 VS Code 的 Copilot 帮我基于下面的提示词生成一个 skill：",[135,136,142],"pre",{"className":137,"code":139,"language":140,"meta":141},[138],"language-text","帮我生成一个辅助写文章的 skill\n我会提供一个中文的初稿，根据初稿的内容，帮我判断是什么文章类型，自动拟定标题、标签、页面 url 等基础信息，然后根据文章类型在对应文件夹下生成内容。\n标签可以从 i18n 的文件中获取，如果没有合适的标签，可以自动生成，但是要注意生成中英文双语的。标签最多不要超过 5 个。\n从中文翻译成英文时，尤其注意不要修改原来的 markdown 格式，仅翻译文本内容\n请结合现有代码的实现，生成具体的 skill\n","text","",[43,143,139],{"__ignoreMap":141},[10,145,146],{},"就这么一段提示语，然后 AI 帮我结合代码生成了一份详细的操作指南，给我惊到了。Skills 里详细地列举了当前我所有的博客类型，每个类型分别有哪些基础字段，还查询到了所有的标签。",[10,148,149],{},"生成 Skill 的部分节选：",[135,151,154],{"className":152,"code":153,"language":140,"meta":141},[138],"## When to Use\n\n- 用户写好了一篇文章初稿，需要生成博客文章（blog）\n- 用户写了一段思考/随想，需要生成思考条目（thoughts）\n- 用户想要添加一个馆藏条目（artifacts）\n- 需要将中文内容翻译成英文并保持格式不变\n- 需要为文章自动匹配或创建分类和标签，并同步 i18n 翻译\n\n## Content Types Overview\n\n| Type      | Folder                              | Structure                                      |\n| --------- | ----------------------------------- | ---------------------------------------------- |\n| Blog      | `content/blog/\u003Cslug>/`              | `meta.json` + `index.zh-CN.md` + `index.en.md` |\n| Thoughts  | `content/thoughts/\u003CYYYYMMDD>-\u003CNN>/` | `meta.json` + `index.zh-CN.md` + `index.en.md` |\n| Artifacts | `content/artifacts/\u003Cid>.json`       | Single JSON file with bilingual fields         |\n\n## Procedure\n\n### Step 1: 分析用户初稿\n\n接收用户提供的初稿内容，判断内容类型：\n\n- **blog**: 长文、结构化文章、有完整标题和段落\n- **thoughts**: 短思考、随想、无标题的碎片记录\n- **artifacts**: 书影音游戏等作品的评价记录\n\n如果用户未指定类型，根据内容长度和结构推断并询问确认。\n\n### Step 2: 确定 Slug\n\n**Blog**: 从标题生成英文 slug。规则：\n\n- 全部小写\n- 空格替换为连字符 `-`\n- 去除特殊字符\n- 示例：`\"AI 辅助的全栈工作流与开发者成长\"` → `ai-assisted-fullstack-workflow-and-developer-growth`\n\n**Thoughts**: 使用当前日期格式 `YYYYMMDD-NN`。`NN` 从 00 开始递增，检查 `content/thoughts/` 下同名日期文件夹的最大序号。\n\n**Artifacts**: 使用英文短标识符，如 `movie-harry-potter`、`game-hogwarts-legacy`。检查 `content/artifacts/` 下不重名。\n\n### Step 3: 分析并匹配分类和标签\n\n......\n\n### Step 4: 创建内容文件（以 blog 为例，thoughts 类似）\n\n......\n\n### Step 5: 处理 Thoughts（思考条目）\n\n......\n\n### Step 6: 处理 Artifacts（馆藏条目）\n\n......\n\n### Step 7: 同步 i18n\n\n......\n\n### Step 8: 验证\n\n完成后检查：\n\n- [ ] 所有文件是否创建在正确的路径\n- [ ] `meta.json` 的日期、分类、标签是否正确\n- [ ] 中文和英文文件是否对应\n- [ ] 翻译是否只修改了文本内容，保留了所有格式\n- [ ] 新建标签是否在 `en.json` 和 `zh-CN.json` 中都添加了\n- [ ] Artifact ID 如果使用了，是否与 `content/artifacts/` 中的文件一致\n- [ ] SEO 元数据是否合理\n\n### Step 9: 总结\n\n向用户汇报完成的内容：\n\n- 创建了哪些文件\n- 使用了哪些分类和标签\n- 是否有新建的标签及对应的 i18n 条目\n- 提示用户检查翻译质量\n\n## References\n\n- Content config: 项目根目录 `content.config.ts`\n- i18n 中文: `i18n/locales/zh-CN.json`\n- i18n 英文: `i18n/locales/en.json`\n- Content 目录: `content/blog/`, `content/thoughts/`, `content/artifacts/`\n",[43,155,153],{"__ignoreMap":141},[10,157,158],{},"这样我就不再需要打开工程写草稿了，我可以在任何位置、任意编辑。写好草稿，润色完成后，再打开工程，对 AI 说：",[135,160,163],{"className":161,"code":162,"language":140,"meta":141},[138],"/write-article 请根据下面的草稿帮我生成内容文件：\n\n文章草稿\n",[43,164,162],{"__ignoreMap":141},[10,166,167],{},"这样比原来的操作方便多了。再也不需要自己手动创建这、创建那。只需要把所有的精力放在文章内容和检查最终的格式上。",[111,169,171],{"id":170},"对-skills-的新理解","对 Skills 的新理解",[10,173,174,175,180],{},"没想到第一次自己创建 skill 不是编码，而是写文章。这让我对 skills 的理解更深了一层：",[101,176,179],{"className":177},[178],"text-info","凡是重复性的标准工作，都可以生成一个 skill 来让 AI 执行，提升做事效率","。",[10,182,183],{},"这样修改后，写文章的阻力小了很多。唯一不方便的，就只是图片、文字格式排版的处理没有可视化编辑器那么友好了。这一点，后续再想办法吧。",{"title":141,"searchDepth":185,"depth":185,"links":186},2,[187,188],{"id":113,"depth":185,"text":113},{"id":170,"depth":185,"text":171},"写博客发布内容有一大堆重复的手动操作，严重影响了写作动力。我决定把这些流程化的工作直接交给 AI，让 Copilot 基于一个提示词帮我生成了属于自己的第一个 Skill。本文记录了从想法到落地的全过程，以及我对 Skills 的新理解。","md","zh-CN",{"artifactId":193,"lastmod":193,"backgroundImg":193,"ogImage":193,"listPreviewImg":-1},null,true,"/blog/my-first-skill/index.zh-cn",{"title":5,"description":189},{"loc":195},"blog/my-first-skill/index.zh-CN","e5lhVvNXAgkdi1kwVypLOvWwt3-tjGNZxq9IQhED7LM","2026-08-09","tech_and_career",[203,204,205,206],"ai","workflow","productivity","skill",[208,213],{"title":209,"path":210,"description":211,"date":212},"读《老人与海》：那份不低头的执念","/blog/reading-the-old-man-and-the-sea","读完《老人与海》，后劲涌上心头。那条大鱼、那片大海、那群鲨鱼、那只狮子，都指向同一个答案——人可以永不低头。回想自己这些年的选择，勇气有了，唯独还缺一份非要拿到结果的信念。","2026-08-16",{"title":214,"path":215,"description":216,"date":217},"读《小王子》：用心去看那些看不见的东西","/blog/reading-the-little-prince","两遍阅读《小王子》，从囫囵吞枣到细细品味，在那些精炼的文字中照见自己——关于成人的物质思维、关于那朵独一无二的玫瑰、关于孩子眼中的正经事。","2026-07-24",1786873149489]