
1. 项目缘起为什么我要把营销方法论拆成AI能执行的技能包做增长和SEO这行的朋友应该都有同感市面上讲营销方法论的内容多如牛毛但真正能落地、能复用、能交给团队新人直接上手的少之又少。我自己带过几个人的小团队也接过不少独立站的咨询案子最头疼的问题从来不是“不知道要做什么”而是“知道要做什么但每次都要从头讲一遍”。关键词怎么选、落地页怎么改、FAQ结构化数据怎么标、CRO实验怎么设计优先级这些东西我脑子里有一套流程但每次都要靠嘴说、靠文档写效率极低。marketingskills这个项目就是在这个背景下冒出来的想法。简单说它是一套面向AI agents特别是Claude Code这类能直接读写文件、执行终端命令的编程助手的营销技能包。把SEO、CRO、内容策略、独立站增长这些领域的实操方法论拆解成结构化的、AI可以直接读取和执行的技能文件。你不再需要每次跟AI解释“帮我做个关键词研究”而是直接调用对应的skillAI就知道该按什么步骤、用什么框架、输出什么格式的结果。这个项目解决的核心问题是把营销人的隐性经验变成AI可执行的显性流程。适合谁参考三类人一是独立站站长和SEO从业者想用AI提效但不知道怎么下手二是做增长的市场人员手里有一堆方法论但缺乏自动化手段三是已经在用Claude Code或其他AI编程工具的开发者想看看怎么把非编程领域的知识也做成skill。我实测下来这套思路不仅适用于营销任何有明确SOP的领域都可以照搬。下面我把整个设计思路、核心细节、实操过程和踩过的坑完整拆一遍。2. 整体设计与思路拆解为什么是Skill而不是Prompt2.1 从Prompt到Skill的认知升级大多数人用AI的方式还停留在“写一个好prompt”的阶段。你打开对话框敲一段指令AI给你一个回答然后你复制粘贴到别的地方用。这种方式的问题很明显每次都要重新描述背景每次输出的格式可能不一样而且prompt越写越长最后变成一坨谁也维护不了的文字。marketingskills的思路完全不同。它借鉴了Claude Code的skill机制——把一套完整的操作流程、参考文档、输出模板打包成一个独立的文件夹AI在需要的时候自动加载。你可以理解为prompt是口头交代任务skill是给AI一本操作手册加一套工具箱。提示Claude Code的skill机制允许你把markdown文件、脚本、模板放在特定目录下AI会根据任务上下文自动判断是否调用。这比传统的system prompt灵活得多因为skill是按需加载的不会一次性占用大量上下文窗口。为什么选择这个方案三个原因。第一可维护性。营销方法论会更新Google的算法会变CRO的最佳实践也在迭代。如果写在prompt里每次改都要重新测试整个对话流程写成skill文件改一个markdown就行。第二可组合性。关键词研究是一个skill落地页审计是另一个skill你可以单独用也可以串起来用。第三可移植性。skill文件是纯文本加脚本不绑定特定平台今天用Claude Code明天换其他支持类似机制的工具迁移成本很低。2.2 技能包的模块划分逻辑我把整个营销技能包拆成了四个核心模块每个模块对应一个独立的skill目录seo-research关键词研究、竞品分析、搜索意图分类cro-audit落地页转化率审计、A/B测试设计、表单优化content-strategy内容日历、选题矩阵、内链规划structured-dataFAQPage、HowTo、Product等结构化数据的生成与校验这个划分不是拍脑袋定的。我回顾了自己过去三年做过的所有咨询项目发现80%的需求都可以归入这四个类别。而且这四个模块之间有明确的依赖关系SEO研究产出关键词内容策略消费关键词CRO审计优化承载内容的页面结构化数据增强页面的搜索展现。把它们拆开是为了让每个skill的职责单一AI调用的时候不会混淆。注意不要试图做一个“万能营销skill”。我一开始就是这么干的结果文件超过3000字AI加载后反而不知道该聚焦哪个任务。拆成小模块后每个skill控制在800-1200字AI的执行准确率明显提升。2.3 与Claude Code的集成方式Claude Code是目前最适合跑这套skill的工具之一因为它能直接读写本地文件、执行终端命令。这意味着skill不仅可以告诉AI“做什么”还可以让AI直接“做出来”。比如SEO研究skill可以调用Python脚本去跑关键词聚类CRO审计skill可以读取本地HTML文件分析页面结构。安装和配置Claude Code的过程我就不展开讲了官方文档写得很清楚。核心是把skill目录放在项目根目录下的.claude/skills/路径里每个skill一个子文件夹里面至少包含一个SKILL.md文件描述技能用途和调用方式。如果你用的是VS Code装好Claude Code插件后在项目里新建这个目录结构就行。我试过在Ubuntu和Mac上分别配置流程基本一致。Windows用户需要注意某些终端命令的路径写法不一样建议在WSL环境下操作避免兼容性问题。3. 核心细节解析与实操要点每个Skill到底怎么写3.1 SKILL.md的骨架结构一个能被Claude Code正确识别和调用的skill它的SKILL.md需要包含几个关键部分。我以seo-research为例拆解一下我实际使用的结构--- name: seo-research description: 当用户需要进行关键词研究、竞品SEO分析或搜索意图分类时调用此技能 --- # SEO Research Skill ## 何时使用 - 用户要求做关键词研究 - 用户提供竞品URL要求分析 - 用户需要按搜索意图对关键词分组 ## 输入要求 - 目标市场国家/语言 - 种子关键词或竞品URL - 输出格式偏好表格/JSON/纯文本 ## 执行步骤 1. 读取用户提供的种子关键词或抓取竞品页面 2. 调用 scripts/keyword_expand.py 扩展关键词 3. 按搜索意图分类信息型、导航型、商业型、交易型 4. 输出结构化结果 ## 输出模板 | 关键词 | 搜索意图 | 预估难度 | 建议优先级 | |--------|----------|----------|------------|这个结构的关键在于description字段决定了AI什么时候调用这个skill。写得太窄AI该用的时候不用写得太宽AI在不相关的时候也调用。我反复调整过五六次最后发现用“当用户需要...时调用”这种句式最稳。3.2 关键词扩展脚本的编写要点seo-researchskill里我放了一个Python脚本keyword_expand.py负责把种子关键词扩展成候选词列表。这个脚本不依赖任何付费API用的是公开的搜索建议接口和简单的N-gram组合。核心逻辑是这样的输入一个种子词脚本会生成三类扩展词。第一类是修饰词组合比如“独立站”加上“SEO”“优化”“教程”“工具”等后缀。第二类是疑问词变体加上“怎么”“如何”“什么”“为什么”等前缀。第三类是比较词变体加上“vs”“对比”“替代”等。# keyword_expand.py 核心片段 modifiers [教程, 工具, 优化, 案例, 多少钱, 怎么做] questions [怎么, 如何, 什么, 为什么, 哪个好] comparisons [vs, 对比, 替代, 区别] def expand(seed): results [] for m in modifiers: results.append(f{seed}{m}) for q in questions: results.append(f{q}{seed}) for c in comparisons: results.append(f{seed}{c}) return results这个脚本很简单但实测下来覆盖了大部分长尾词场景。如果你有Ahrefs或Semrush的API可以替换成更精准的数据源。没有也不影响因为skill的重点是流程数据源可以换。实操心得脚本输出的结果不要直接给用户先让AI做一轮去重和意图分类。我试过直接把几百个词扔出来用户根本看不过来。让AI按意图分组后每组挑3-5个代表词实用性高很多。3.3 CRO审计Skill的检查清单设计cro-auditskill的核心是一份落地页检查清单。这份清单我参考了CXL、NN Group等机构的公开研究结合自己跑过的A/B测试经验最终收敛到28个检查点分成五个维度价值主张清晰度首屏是否在5秒内说清楚“你是谁、给谁用、解决什么问题”信任信号是否有客户logo、评价、案例、安全标识行动号召CTA按钮是否醒目、文案是否具体、是否重复出现表单体验字段数量、错误提示、隐私说明移动端适配触控区域大小、加载速度、内容折叠每个检查点都有明确的通过标准和修改建议。AI读取HTML后逐项打分最后输出一个优先级排序的修改列表。这里有个细节很重要不要让AI直接改代码。我一开始让AI自动修改HTML结果它把一些动态渲染的组件改坏了。后来改成只输出修改建议由人工确认后再改稳得多。3.4 结构化数据生成的坑structured-dataskill负责生成FAQPage、HowTo等JSON-LD代码。这个模块看起来简单实际上坑最多。Google对结构化数据的校验很严格字段类型不对、嵌套层级错了、必填项缺失都会导致富媒体摘要不展示。我踩过的一个典型坑是FAQPage的acceptedAnswer字段。很多人写成纯字符串但正确的格式必须是{type: Answer, text: ...}。AI如果没被明确告知很容易生成错误格式。所以我在skill里放了一个校验脚本生成后自动跑一遍schema验证。# validate_schema.py 核心逻辑 import json def validate_faq(data): errors [] if context not in data: errors.append(缺少 context) if data.get(type) ! FAQPage: errors.append(type 必须为 FAQPage) for i, item in enumerate(data.get(mainEntity, [])): if item.get(type) ! Question: errors.append(f第{i}个mainEntity的type错误) answer item.get(acceptedAnswer, {}) if answer.get(type) ! Answer: errors.append(f第{i}个acceptedAnswer的type错误) return errors注意结构化数据不是万能的。Google明确说过标记了FAQPage不代表一定会展示富媒体摘要。它只是提高概率内容质量本身才是根本。别把精力全花在标记上。4. 实操过程与核心环节实现从零搭建一套可用的营销Skill4.1 环境准备与目录结构先说一下我的实际环境MacBook Pro M2macOS SonomaClaude Code通过官方安装脚本装好VS Code作为主要编辑器。如果你用Ubuntu流程基本一样Windows建议用WSL。目录结构是这样的project-root/ ├── .claude/ │ └── skills/ │ ├── seo-research/ │ │ ├── SKILL.md │ │ └── scripts/ │ │ └── keyword_expand.py │ ├── cro-audit/ │ │ ├── SKILL.md │ │ └── checklist.md │ ├── content-strategy/ │ │ ├── SKILL.md │ │ └── templates/ │ │ └── content-calendar.md │ └── structured-data/ │ ├── SKILL.md │ └── scripts/ │ └── validate_schema.py每个skill目录下至少有一个SKILL.md辅助脚本和模板放在子目录里。Claude Code会自动扫描这个目录根据任务上下文决定加载哪个skill。4.2 编写第一个Skill以seo-research为例打开VS Code在.claude/skills/seo-research/下新建SKILL.md。我实际写的时候先列了一个大纲然后逐段填充。关键是要把“什么时候用”“需要什么输入”“按什么步骤执行”“输出什么格式”这四件事说清楚。写完后在Claude Code里测试。我用的测试指令是“帮我做一下独立站SEO的关键词研究目标市场是美国种子词是‘standing desk’。”Claude Code识别到关键词研究需求自动加载了seo-researchskill然后按步骤执行先扩展关键词再分类最后输出表格。第一次测试输出的表格格式不太对搜索意图分类有重叠。我回到SKILL.md在“执行步骤”里加了一句“每个关键词只能归入一个意图类别优先归入交易型”。再测试结果就正常了。实操心得skill的调试是一个迭代过程。不要指望一次写好。我的经验是每发现一个输出问题就回到SKILL.md里加一条约束。迭代五六轮后输出质量会稳定很多。4.3 参数计算关键词优先级的打分公式在seo-researchskill里我设计了一个简单的优先级打分公式帮用户从几百个关键词里挑出最值得做的。公式是这样的优先级分数 (搜索意图权重 × 0.4) (预估流量 × 0.3) (竞争难度反向分 × 0.3)搜索意图权重交易型5商业型4信息型2导航型1。预估流量用月搜索量取对数后归一化。竞争难度反向分是(10 - 难度分)/10。举个例子“standing desk”月搜索量50000难度分7意图为商业型。计算过程意图权重4×0.41.6流量归一化后约0.85×0.30.255难度反向分(10-7)/100.3×0.30.09。总分约1.945。这个公式不完美但比拍脑袋排序强。你可以根据自己的业务调整权重。比如做联盟营销的可以把交易型意图的权重再调高。4.4 把Skill串起来用一个完整的内容生产流程单独用某个skill只是第一步真正的效率提升来自串联。我实际跑过的一个完整流程是这样的用seo-research做关键词研究输出优先级排序的关键词列表把Top 10关键词喂给content-strategy生成内容日历和选题矩阵按日历写文章写完后用cro-audit检查文章页的转化元素最后用structured-data给文章加上FAQPage标记整个流程在Claude Code里可以通过连续的指令完成。我实测下来一篇1500字的文章从关键词到结构化数据大约40分钟能走完。以前纯手工做至少半天。提示串联使用时注意每个skill的输出格式要兼容下一个skill的输入。我在content-strategy的SKILL.md里明确写了“接受seo-research输出的表格格式”这样AI在两个skill之间切换时不会丢失上下文。5. 常见问题与排查技巧实录5.1 Skill不被调用怎么办这是最常见的问题。你写好了skill但AI就是不用。排查思路分三步第一检查description字段。如果描述太窄AI匹配不上太宽AI可能忽略。我建议用“当用户需要[具体动作]时调用”的句式动作要具体比如“进行关键词研究”而不是“做SEO”。第二检查文件路径。Claude Code默认扫描.claude/skills/目录如果你的skill放在别的地方需要在配置里指定。我一开始放在skills/根目录下死活不生效后来移到.claude/skills/就好了。第三检查文件编码。SKILL.md必须是UTF-8如果有BOM头某些版本会解析失败。用VS Code的“以UTF-8无BOM格式保存”就行。5.2 输出格式不稳定的处理AI每次输出的格式可能略有不同这在需要结构化数据的时候很头疼。我的解决办法是在SKILL.md里放一个明确的输出模板并且加一句“严格按照以下模板输出不要添加额外解释”。如果还是不稳定可以在skill里加一个后处理脚本。比如structured-dataskill生成JSON-LD后自动跑validate_schema.py格式不对就报错AI看到报错会重新生成。5.3 常见问题速查表问题现象可能原因排查方法解决方式Skill不被调用description不匹配检查description字段改用“当用户需要...时调用”句式输出格式混乱缺少输出模板查看SKILL.md添加明确模板和格式约束脚本执行报错路径或依赖问题手动跑一遍脚本检查Python版本和依赖安装结构化数据校验失败字段格式错误跑validate_schema.py按报错修正字段类型AI改坏HTML权限过大检查skill指令改为只输出建议不自动修改5.4 独家避坑技巧技巧一给skill加版本号。在SKILL.md的frontmatter里加一个version: 1.0字段。每次修改后更新版本号方便追踪哪个版本效果好。我试过同时保留两个版本A/B测试哪个输出质量更高。技巧二用注释记录修改原因。在SKILL.md里用HTML注释!-- --记录每次修改的原因。比如!-- 2024-01-15: 增加交易型意图优先规则解决分类重叠问题 --。这样过几个月回头看知道当时为什么这么改。技巧三限制单次输出长度。如果skill的输出太长AI可能会截断或遗漏。我在content-strategy里加了一句“每次最多输出10条内容选题”超过就分批。这样输出质量更稳定。技巧四定期清理不再使用的skill。我一开始建了十几个skill后来发现常用的就四五个。多余的skill会让AI在匹配时犹豫反而降低准确率。建议保留3-5个核心skill其他的归档。6. 扩展思路这套方法还能用在哪marketingskills这套思路的核心不是营销本身而是“把领域知识拆成AI可执行的技能包”这个模式。我后来把这套方法复制到了其他场景效果也不错。比如招聘流程。把JD撰写、简历筛选、面试问题设计拆成三个skillHR用Claude Code就能快速生成标准化的招聘材料。再比如客户支持。把常见问题分类、回复模板、升级规则做成skill客服新人上手速度明显加快。关键就一句话任何有明确SOP、有固定输出格式、需要反复执行的工作都值得做成skill。你不需要会写复杂的代码一个markdown文件加一个简单脚本就能起步。我见过最简的skill只有一个SKILL.md里面全是文字步骤照样跑得很好。最后分享一个我最近在试的方向把skill和定时任务结合起来。比如每天早上自动跑一遍关键词排名监控发现异常波动就发通知。这个还在调试阶段等跑稳了再单独写一篇。如果你也在折腾类似的东西欢迎交流。