#!/usr/bin/env python3 """批量生成应用层子技能(ESM 结构,含 references 指向 VOC 包)""" import os BASE = '/opt/data/projects/fmode-skills/skills' skills = [ { "dir": "fmode-voc-intelligence", "slug": "fmode-skill-fmode-voc-intelligence", "version": "0.3.38", "title": "VOC 用户经营洞察", "summary": "小红书/抖音/视频号 VOC 情报:趋势情报、问题池、单点深挖、竞品图谱、7天内容计划、口播脚本、成本测算、用量账单。", "triggers": "VOC、小红书趋势、抖音趋势、视频号、问题池、竞品、内容计划、口播脚本、用户声音、经营洞察、趋势情报", "sub_skills": ["xiaohongshu-trend-intelligence", "douyin-trend-intelligence", "voc-issue-pool", "voc-problem-deep-dive", "voc-competitor-map", "voc-content-plan", "voc-speaking-script", "voc-cost-controller", "voc-api-catalog", "voc-business-workflow", "fmode-image-analysis"], "src": "npm @vocmarket/voc-skill 0.3.38", }, { "dir": "fmode-tihao", "slug": "fmode-skill-fmode-tihao", "version": "1.0.19", "title": "提号 SOP 达人/博主研究", "summary": "达人/博主候选研究:读取brief、调用VOC电商代理、豆包视觉分析、达人排名、导出商务可用名单。", "triggers": "提号、达人、博主、创作者研究、brief、商务名单、红人、kol", "sub_skills": ["tihao-creator-sourcing"], "src": "npm @vocmarket/tihao 1.0.19", }, { "dir": "fmode-pay", "slug": "fmode-skill-fmode-pay", "version": "0.1.0", "title": "微信特约商户自动化进件", "summary": "微信服务商特约商户进件:资料收集 → APIv3 签名 → 云函数提交 → 二维码签约 → 归档。", "triggers": "微信商户、进件、特约商户、fmode-pay、商户开通、支付开通", "sub_skills": ["wxpay-merchant-apply", "wxpay-merchant-status", "wxpay-merchant-upload", "wxpay-merchant-archive"], "src": "本次 fmode-pay 开发", }, { "dir": "fmode-courseware", "slug": "fmode-skill-fmode-courseware", "version": "0.1.0", "title": "课程课件生产标准", "summary": "课件/报告 HTML 生产标准:委派 FmodeCode、基准学习、素材归档、证据链、分层验收。", "triggers": "课件、课程、导入课、课纲、验收、skill-present", "sub_skills": ["skill-present-course-production", "html-course-delivery", "html-report-delivery"], "src": "skill-present 抽取", }, { "dir": "fmode-report-publish", "slug": "fmode-skill-fmode-report-publish", "version": "0.1.0", "title": "HTML 报告制作发布", "summary": "网页报告交付:手机侧边栏 + 区块化 + 数据优先,交付到 S3 公开 URL。", "triggers": "出报告、HTML报告、可视化报告、S3、报告交付、发布链接", "sub_skills": ["html-report-delivery", "fmode-storage"], "src": "Hermes html-report-delivery 抽取", }, { "dir": "fmode-product-lab", "slug": "fmode-skill-fmode-product-lab", "version": "0.2.0", "title": "新品研发实验室", "summary": "新品研发:VOC 采集 + KANO + 市场分析 + 竞争 + 定位 + 错位竞争全流程。", "triggers": "新品研发、产品开发、健康快消、VOC、KANO、市场分析、定位、竞品", "sub_skills": ["product-lab-workflow"], "src": "npm fmode-product-lab 0.2.0", }, ] for s in skills: d = os.path.join(BASE, s['dir']) os.makedirs(os.path.join(d, 'scripts'), exist_ok=True) os.makedirs(os.path.join(d, 'references'), exist_ok=True) sub_lines = "\n".join(f"- `{sub}`" for sub in s['sub_skills']) ref_lines = f"- 原始来源: {s['src']}" skill_md = f"""--- slug: {s['slug']} displayName: {s['dir']} version: {s['version']} name: {s['dir']} description: {s['summary']} 触发词:{s['triggers']} tags: [FmodeAgent, FmodeCode, 应用级, {s['dir'].replace('fmode-','')}] platform: Both level: 应用级 category: 平台基础设施 icon: 🏢 license: MPL-2.0 author: Fmode (未来飞马) --- # {s['title']} ## 触发词 {s['triggers']} ## 能力分解 {s['sub_skills']} {ref_lines} ## 使用规则 - 用户只需要自然语言描述业务场景,不要强迫了解参数 - 未明确要求真实采集前,先使用演示样例(sample);明确 live 时再检查凭证/余额 - 首轮输出采用"初步判断、机会假设、待校准"口径,附证据 ## License MPL-2.0 © 2026 Fmode (未来飞马) """ with open(os.path.join(d, 'SKILL.md'), 'w', encoding='utf-8') as f: f.write(skill_md) with open(os.path.join(d, 'references', 'source.md'), 'w', encoding='utf-8') as f: f.write(f"# {s['title']} 参考\n\n{ref_lines}\n") print(f"✅ 生成 {s['dir']}") print("🎉 应用层子技能生成完毕")