下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/ysc--ysc-swot-generator-pro.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @ysc/ysc-swot-generator-pro。输入:分析对象(企业/业务线/产品)+ 补充信息;流程:输入清点 → X402 支付流程 → 细分行业界定与对象画像 → PEST + 五力分析 → 市场四维分析→ 机会点/风险点/关键成功要素 → SWOT 矩阵 → SO/ST/W 应对策略 → 价值链排序战略建议 →PPT输出。所有规范与代码均随 Skill 包本地分发。
阅读全文 (展开查看完整说明)
概述
SWOT 分析生成器 — 纯本地规范 + 云端支付服务 · 企业战略环境分析一站式工作流(Pay Skill)
关键架构声明(v1.0.0 · 按平台修复指南改造)
本 Skill 不调用任何远程云端"代码拉取"接口。所有核心规范(Markdown 规范、Python 代码模板)随 Skill 包本地分发,运行期通过 assets/specs_hashes.txt 做 SHA-256 完整性校验,确保规范未被篡改。
CloudBase SCF 的角色:仅作为 Pay Skill 必要的 支付服务端 与 不可执行配置 schema 下发通道。SCF 严格返回:
- 不可执行的 JSON schema(仅含版本号、价格、字段定义等元数据)
- 订单状态机数据(order.status / pay_url)
- 调用审计日志(按 caller_subject 入库)
SCF 绝不返回任何 Python 代码、Markdown 规范全文或可执行内容。
密钥管理:不存明文密钥字符串。客户端首次调用通过 SCF 的 bootstrap 操作获取 5 分钟 TTL 的临时签名密钥(仅在调用栈内存中存在),签名后续请求;服务端从 process.env.SWOT_SKILL_SECRET 读取主密钥(开发者配置于 CloudBase 函数控制台)。
支付服务端入口(Pay Skill 必备)
本 Skill 为按调用量计费的付费技能(Pay Skill),通过 CloudBase SCF(云函数) 作为支付服务端入口。
服务端入口:
- HTTPS URL:
https://ysc-cloud-d8ge1wodk63983d9a-1303626442.ap-shanghai.app.tcloudbase.com/swot-engine - CloudBase 函数名:
swot-engine - 环境 ID:
ysc-cloud-d8ge1wodk63983d9a(上海区域) - CloudBase CLI 调用命令:
tcb fn invoke swot-engine --params '{...}' -e "ysc-cloud-d8ge1wodk63983d9a" --json
平台审核入口(Pay Skill 平台审核时会访问):
POST {HTTPS_URL}(HTTP 触发器)或tcb fn invoke swot-engine --params '{"action":"health"}' -e "ysc-cloud-d8ge1wodk63983d9a"
SCF v1.0.0 支持的操作(全部免引入代码/规范):
| 操作 | 鉴权 | 用途 |
|---|---|---|
health | 无 | 平台审核探活 |
bootstrap | 免签 | 获取 5 分钟 TTL 临时密钥 + session token |
get-config-schema | session/HMAC | 下发不可执行的 JSON schema(元数据) |
preorder | session/HMAC | 预下单(X402 状态机 INIT) |
query-order | session/HMAC | 查询订单状态 |
ack-fulfillment | session/HMAC | 确认履约(PAID → FULFILLED) |
request-refund | session/HMAC | 请求退款(用于履约失败兜底) |
log-call | session/HMAC | 服务调用审计 |
rotate-secret | 管理员签名 | 主密钥轮换(同时撤销所有 session) |
规范版本与完整性校验声明
本 Skill 的核心规范存储在 references/ 与 assets/ 目录,随 Skill 包一起分发:
| 文件 | 作用 | 分发方式 |
|---|---|---|
references/quality_checklist.md | 各阶段质量自检清单(完整版) | 随包本地分发 |
scripts/generate_swot_ppt.py | 3 页商务 PPT 生成代码模板 | 随包本地分发 |
assets/specs_hashes.txt | SHA-256 完整性校验清单 | 随包本地分发 |
校验规则:
- 阶段0.5 后(运行期):用 SHA-256 逐文件校验,对比
assets/specs_hashes.txt - 校验失败 → fail-closed:拒绝执行核心流程
- SCF 不可达不影响本地执行;本地规范是唯一可信源
付费说明(Pay Skill · X402 协议)
本技能为按调用量计费的付费技能(Pay Skill),遵循 X402 支付协议(HTTP 402 Payment Required 的机器可协商支付流程),通过 SkillHub SkillPay 平台 + 微信支付 AI 专属卡完成支付。
X402 协议要点:
- HTTP 状态码 402 "Payment Required" 作为支付触发信号
- 支付状态机:
INIT(已预下单)→PAID(已支付)→FULFILLED(已履约)→REFUNDED(已退款) - 幂等键 out_trade_no:每次调用生成唯一订单号,作为重试和履约的幂等依据
- 支付模式 pay_mode:
AUTH_AND_PAY(授权并支付) - 签名机制:HMAC-SHA256(等价于 SKILLHUB-SHA256-RSA2048)
- fail-closed 原则:支付链路异常时拒绝放行,不自动降级为免费服务
- 按调用主体审计:每个调用携带
caller_subject,SCF 入库审计,支持问题溯源
计费方式:
- 按调用量计费(per_call),单次价格以 SkillHub 发布页面设定为准,包内不固化金额
- 每次完整调用(输入清点 + 行业调研 + SWOT 分析 + PPT 交付)扣 1 次费用
价格配置方式(发布时确定,无需改包):
- 支付服务端
swot-engine的价格不硬编码,从数据库集合swot_admin_config读取price_fen键(单位:分); - 发布方在 SkillHub 平台设定价格的同时,向
swot_admin_config集合写入一条{ key: "price_fen", value: "<价格分>" }记录即可生效; - 未配置价格时,
preorder按 fail-closed 原则返回 409「价格未配置」,拒绝下单。
用户视角流程(使用和操作保持不变):
- 用户提供分析对象 + 补充信息 → Agent 完成输入清点
- Agent 在对话中展示价格 + 弹出支付授权(微信 AI 专属卡)
- 用户在对话内确认付款 → 自动继续执行 SWOT 分析流程
- 用户拒绝/取消/超时 → 终止流程,不重试
架构概览
用户输入 → 输入清点 → X402 支付流程 → 行业界定与画像 → PEST + 五力分析 → 市场四维分析 → 机会/风险/KSF → SWOT 矩阵 → 应对策略 → 战略建议 → 3页PPT
↑ ↑
状态机 + 幂等 references/ + assets/
out_trade_no 随包分发 + SHA-256 校验
caller_subject 审计核心资产(质量自检清单、PPT 生成模板)随 Skill 包一起分发,保存在 references/ 与 assets/ 目录中。SCF 仅承担支付服务角色,不参与规范下发。SHA-256 完整性校验确保运行期使用规范与发布版本一致。
阶段0:输入清点与补齐
启动后先盘点用户已提供的信息,按下表补齐缺失项。除"分析对象"外,不因信息缺失而中断流程。
| 信息项 | 获取优先级 | 缺失时的处理 |
|---|---|---|
| 分析对象(企业/业务线/产品) | 用户告知 | 必须询问,无法推断 |
| 分析范围与边界 | 用户告知 | 未告知时默认"未来 3-5 年、企业主营业务相关细分市场" |
| 补充信息(专利/许可/合规等) | 用户告知 | 未告知时按公开信息分析,标注"待确认" |
每次追问合并为一次提问,不逐条反复确认。
阶段0.5:X402 支付流程(Pay Skill 必做,含 5 大必备改造项)
本技能为基于 X402 协议的付费技能(Pay Skill)。用户输入信息清点完成后、进入阶段1调研之前,必须严格按 X402 流程完成支付。 整个支付流程对外表现为一次简单的"展示价格 → 用户确认 → 继续执行",内部严格遵循 5 个必备改造项:前置检查、支付触发、重试机制、订单号传递、异常处理。
0.5.1 前置检查(Pre-check,X402 必备改造项 1)
执行 X402 支付前必须完成的检查项:
- 生成幂等订单号(out_trade_no):调用开始时基于
时间戳 + skill_id + skill_version + 分析对象名称生成唯一订单号(示例:out_trade_no = "swot-{时间戳}-{分析对象}"),用于后续重试幂等; - 检查 SkillPay 配置完整性:确认 SkillHub 微信支付商户号、AI 专属卡支付通道、SkillPay 入驻状态均已就绪;任一缺失则拒绝放行(fail-closed);
- SpendingPolicy 预算检查:检查本会话累计消费是否超出 per_session_budget、单次调用是否超出 per_task_budget,超出则提示用户并终止;
- 生成 caller_subject:以
agent-会话ID-用户ID形式构造调用主体标识(如agent-{session_uuid}-{user_id}),后续所有 SCF 调用必传; - 获取 SCF 短期密钥 + session:通过 SCF 的
bootstrap操作获取 5 分钟 TTL 的临时签名密钥与 session token(本密钥仅在内存中使用,不持久化); - 检查历史订单状态:用 out_trade_no 查询本地/平台订单状态机:
INIT状态 → 走 0.5.2 预下单PAID状态 → 走 0.5.3 履约FULFILLED状态 → 直接返回历史结果(幂等防重)REFUNDED状态 → 走 0.5.2 重新预下单
0.5.2 支付触发(Payment Trigger,X402 必备改造项 2)
执行 X402 协议的支付触发:
- AI 预下单(preorder):调用 SCF 的
preorder操作,构造 L2 层payment_required负载(base64 编码 JSON):
# 先调用 bootstrap 获取 token_data + token_sig(5 分钟 TTL)
BS=$(tcb fn invoke swot-engine --params '{
"action": "bootstrap",
"skill_id": "swot-analysis-generator",
"skill_version": "1.0.0",
"caller_subject": "<0.5.1 生成的 agent 标识>",
"client": "workbuddy-cli"
}' -e "ysc-cloud-d8ge1wodk63983d9a" --json)
TOKEN_DATA=$(echo "$BS" | jq -r '.data.session.token_data')
TOKEN_SIG=$(echo "$BS" | jq -r '.data.session.token_sig')
# 再调用 preorder
tcb fn invoke swot-engine --params "{
"action": "preorder",
"skill_id": "swot-analysis-generator",
"skill_version": "1.0.0",
"caller_subject": "<0.5.1 生成的 agent 标识>",
"out_trade_no": "<0.5.1 生成的订单号>",
"token_data": "$TOKEN_DATA",
"token_sig": "$TOKEN_SIG"
}" -e "ysc-cloud-d8ge1wodk63983d9a" --json- 签名(SKILLHUB-SHA256-RSA2048 / HMAC-SHA256):JWT 风格无状态 token(HMAC-SHA256 签名由服务端用 process.env.SWOT_SKILL_SECRET 完成),5 分钟 TTL 防重放;
- 返回 HTTP 402:预下单成功后 SCF 返回订单号 +
pay_url,状态机置为INIT; - 平台支付交互:SkillHub 平台在对话内弹出微信支付 AI 专属卡授权,用户点击确认后扣款(用户视角行为),状态机置为
PAID; - 展示价格:向用户明确展示本次调用价格(金额以 SkillHub 发布页面设定为准,按次计费)。
0.5.3 重试机制(Retry Mechanism,X402 必备改造项 3)
支付链路任何环节失败/超时,按以下重试策略处理:
- 预下单失败重试(最多 3 次,指数退避 1s/2s/4s):
- 3 次后仍失败 → 0.5.5 异常处理
- 支付超时重试(最多 2 次,间隔 5s):
- 用户超过 15 分钟未授权 → 状态机置为
EXPIRED,提示用户重新发起
- 用户超过 15 分钟未授权 → 状态机置为
- 履约异常重试(基于 out_trade_no 幂等):
- 重试请求带同一 out_trade_no → SCF 检查状态机:
FULFILLED→ 直接返回缓存的 result(绝不复执行)INIT/PAID→ 继续履约- 状态不一致 → 返回 409 Conflict 提示用户
- 重试请求带同一 out_trade_no → SCF 检查状态机:
- 禁止无限重试:所有重试都有上限 + 退避策略,禁止静默失败也禁止无限循环。
0.5.4 订单号传递(Order Number Transmission,X402 必备改造项 4)
out_trade_no 必须在整个调用链路中全程传递,作为 X402 协议幂等键与平台计费对账凭证:
- 生成(0.5.1):在阶段0.5入口处生成唯一 out_trade_no(格式:
swot-{时间戳}-{分析对象}); - 传递至预下单(0.5.2):写入 payment_required 负载;写入 SCF 订单库;
- 记录调用版本(阶段0.5后):将 out_trade_no 与当前 Skill 版本号(v1.0.0)、本地规范哈希值(来自
assets/specs_hashes.txt)一起记录到服务台账; - 传递至台账(交付总结):交付文件命名附带订单号后 6 位;
- 传递至异常处理(0.5.5):退款时用作 REFUNDED 状态机的标识键。
0.5.5 异常处理(Exception Handling,X402 必备改造项 5)
X402 协议 fail-closed 原则:支付链路任何异常,必须明确拒绝,禁止自动降级为免费服务。
| 异常场景 | 状态机 | 处理方式 |
|---|---|---|
| SkillPay 配置缺失 | — | 拒绝执行,提示"支付通道未就绪,请联系 Skill 发布方" |
| 预下单失败(重试用尽) | — | 拒绝执行,提示"支付通道繁忙,请稍后重试" |
| 预下单签名失败 | — | 拒绝执行,提示"鉴权失败,请联系 Skill 发布方" |
| bootstrap 失败 / 密钥过期 | — | 重新 bootstrap;连续失败则拒绝执行 |
| 用户取消/拒绝支付 | EXPIRED | 终止流程,提示"已取消本次服务,需要时可重新发起" |
| 支付超时(>15min) | EXPIRED | 终止流程,提示"支付已超时,请重新发起" |
| 支付失败(余额不足等) | INIT | 终止流程,提示用户检查微信支付余额或卡片状态 |
| 履约过程业务异常 | PAID → REFUNDED | 调用 SCF request-refund 主动退款 |
| 重试幂等冲突(409) | 状态不一致 | 拒绝执行,提示"订单状态异常,请联系客服" |
| SCF 调用失败(支付链路) | PAID | 调用 SCF request-refund 触发自动退款(避免用户付了钱没收到服务) |
禁止行为清单:
- ❌ 支付失败/超时/取消后继续执行阶段1及后续
- ❌ SCF 不可达时静默跳到离线模式(核心规范本来就在本地,无需 SCF 拉取)
- ❌ 预下单失败后多次自动重试而不告知用户
- ❌ 跳过 out_trade_no 直接调用 SCF
- ❌ 履约失败后不退款而再次扣款
- ❌ 将密钥字符串持久化到任何文件 / manifest / SKILL.md
阶段1:界定细分行业与对象画像
- 根据输入信息,通过联网搜索核实并明确界定分析对象对应的细分行业(细分到可度量、可对标的一层,不可宽泛到一级行业);
- 完善分析对象自身基本情况画像与描述:主营业务、规模量级、核心产品/服务、目标客户、商业模式要点;
- 画像中的事实必须来自公开可查信息或用户输入,不可编造;查不到的字段标注"待确认"并请用户补充。
- 产出:《对象画像与细分行业界定》(一页内)。
阶段2:宏观环境与行业结构分析
对界定后的细分行业进行:
- PEST 分析:政治/政策(P)、经济(E)、社会(S)、技术(T)四个维度,每个维度列出与该细分行业直接相关的事实与趋势,注明信息来源;
- 波特五力分析:现有竞争者竞争强度、潜在进入者威胁、替代品威胁、供应商议价能力、购买者议价能力,逐项给出强度判断(高/中/低)与依据。
产出:《PEST 分析表》《五力分析表》。
阶段3:细分市场四维分析
从以下四个维度对该细分行业进行分析,数据需联网检索最新可得数据并注明口径与来源,无法取得可靠数据时明确标注"估算"并给出估算逻辑:
- 对应的细分市场容量(当前规模,金额口径优先);
- 预计未来3-5年细分市场规模增长情况及增长点(增长率区间 + 具体增长点列表);
- 预计未来3-5年细分市场内企业平均利润增长情况(利润率趋势判断及驱动因素);
- 预计未来3-5年细分行业排名前五的企业集中度(CR5)变化情况(上升/稳定/下降 + 判断依据)。
产出:《细分市场四维分析表》。
阶段4:机会点 / 风险点 / 关键成功要素
严格基于阶段2、阶段3的分析结果,得出三个方面的总结。表述用精准无歧义的短句,不可长篇大论:
- 市场机会点:
- 未来3年左右该细分市场,不超过5个机会点(如:新需求增长点带来的机会、技术革新替代其他领域产品的机会、上游成本下降带来的行业盈利改善等);
- 必须是细分市场视角,不可以用某个具体企业视角;
- 不够5个不必硬凑,一个都没有也没关系;不可胡编乱造,列出的必须具体明确、经得起推敲。
- 市场风险点:分析要求与机会点相同(细分市场视角、≤5个、短句、可推敲、不硬凑)。
- 关键成功要素:
- 要抓住机会点、规避风险点,行业内企业需要具备什么资源与能力;
- 严格基于机会点与风险点推导,不可扩大分析范围或引入其他信息;
- 必须具体、明确、精准,对行业内所有企业都有实际参考价值。
产出:《市场机会点 / 风险点 / 关键成功要素清单》。
阶段5:形成 SWOT 分析矩阵
- 机会(O):完全照搬"市场机会点"分析结果,不得增删改写;
- 威胁(T):完全照搬"市场风险点"分析结果,不得增删改写;
- 优势(S):逐项分析分析对象在每个关键成功要素上的优势。优势定义:与行业主要竞争对手比较,在该要素上做得更好、竞争能力更强、或资源更强。不可编造,严格基于关键成功要素逐项分析;
- 劣势(W):逐项分析分析对象在每个关键成功要素上的劣势。劣势定义:与行业主要竞争对手比较,在该要素上做得更差、竞争能力较弱、或资源更少。同样严格基于关键成功要素逐项分析;
- 用矩阵形式呈现:S/W 两列逐项对标各关键成功要素,O/T 直接引用阶段4结果。
产出:《SWOT 分析矩阵》(表格形式,同时准备供PPT第一页使用)。
阶段6:SWOT 应对策略
逐对交叉分析,仅输出有价值的组合:
- SO——如何利用优势抓住机会:每个优势项 × 每个机会项逐对分析;若该优势不足以抓住该机会,则不生成结果;若可以,给出具体策略建议;
- ST——如何利用优势减少威胁:每个优势项 × 每个威胁项逐对分析;若该优势对规避该威胁没有价值,则不生成结果;若可以,给出具体策略建议;
- W改进——如何最小化劣势:逐项分析每个劣势项,给出具体的改进策略建议。
产出:三张策略表(SO策略表 / ST策略表 / W改进策略表),每张表列:优势或劣势项 × 对应机会或威胁项(W表无此列)× 策略建议。
阶段7:战略策略建议
- 汇总阶段6三张表的分析结果,合并同类项,梳理完善表述与逻辑;
- 呈现顺序按企业价值链顺序排列(如:研发/技术 → 采购/供应链 → 生产/交付 → 市场营销 → 销售与服务 → 组织与人才 → 财务与风控);
- 确保各条建议颗粒度一致、表述清晰,可为企业直接采用;
- 以表格形式呈现:序号 × 战略举措 × 价值链环节 × 主要依据(对应SO/ST/W编号)。
阶段8:生成3页商务PPT(最终交付)
使用 scripts/generate_swot_ppt.py 生成 PPT,正文共3页:
| 页码 | 标题 | 内容 |
|---|---|---|
| 第1页 | SWOT 分析矩阵 | 四象限矩阵:S / W / O / T 全部条目 |
| 第2页 | SWOT 分析结果应对策略 | SO策略表 + ST策略表 + W改进策略表(三表同页分区呈现) |
| 第3页 | 战略策略建议 | 战略举措总表(价值链顺序) |
- PPT 采用商务模板:深蓝主色 + 白色底版,简洁干练、专业,不加装饰性图案;
- 若分析条目过多导致单页拥挤,可压缩表述(保留短语级要点),但不得删除条目。
交付规范
- 所有交付文件使用中文文件名:
{分析对象}-SWOT分析报告-{日期}.pptx,中间过程产物命名如{分析对象}-SWOT分析过程稿-{日期}.md; - 最终必须调用
present_files展示 PPT 成品; - 交付总结遵循金字塔原理:结论先行 → 分组归类 → 层层递进。
硬性约束
- 未完成 X402 支付确认(阶段0.5),禁止执行阶段1及之后任何阶段;
- 业务内容(分析规范、Python 代码、PPT 模板)全部来自本包本地文件(references/、scripts/、assets/),不通过 SCF 或任何远程接口下发;
- 所有事实性判断须有公开信息来源或用户输入支撑,无法核实时必须显式标注,禁止编造数据;
- 机会点 / 风险点保持细分市场视角,SWOT 的 S/W 严格对标关键成功要素,不得混入其他维度;
- 用户未提供且无法查证的分析对象内部信息,一律标注"待确认"并列入追问清单,不得假设;
- 密钥
SWOT_SKILL_SECRET仅存于 CloudBase 函数环境变量,禁止在 SKILL.md、manifest、源码注释、对话中泄露明文。
依赖环境
- Python 3(生成 PPT)
- python-pptx(首次运行时自动安装)
- CloudBase CLI(
tcb,用于支付服务端调用)
文件清单
swot-analysis-generator/
├── SKILL.md # 主文档(输入清点/X402支付/8阶段工作流/硬性约束)
├── manifest.yaml # SkillHub 元数据(含 service_endpoint + x402 + asset_integrity)
├── _meta.json
├── scripts/
│ └── generate_swot_ppt.py # 3页商务PPT生成脚本
├── references/
│ └── quality_checklist.md # 各阶段质量自检清单
└── assets/
└── specs_hashes.txt # 本地资产 SHA-256 完整性清单