支付宝 AI 按量付费改造声明
本 Skill 已按 SkillHub Pay Skill 规范完成支付宝 AI 按量付费改造:
- 402 账单下发:调用入口
/api/skill/ship-hai-expert-lite,若请求未携带有效Payment-Proof,服务返回 HTTP 402 并在响应头Payment-Needed中下发 Base64URL 编码的账单 JSON,包含out_trade_no、amount、currency、resource_id、pay_before、seller_sign_type、seller_signature。 - 携带凭证重试:用户端支付完成后,再次请求同一
resource_id并在请求头携带Payment-Proof(支付宝返回的支付凭证)。 - 验付调用:服务端调用支付宝
alipay.aipay.agent.payment.verify接口验证Payment-Proof真实性。 - 履约确认:验证通过后执行业务逻辑,并异步调用
alipay.aipay.agent.fulfillment.confirm完成履约确认(ack)。 - 订单持久化与幂等:所有订单写入持久化存储,以
out_trade_no为唯一键,重复请求直接返回已履约结果。 - probe / pay / complete / ack:后端提供
probe探测、pay账单下发、complete业务执行、ack履约确认完整链路。 - 支付依赖包:后端
skillpay-backend/package.json已声明调用支付宝网关所需依赖,完整服务端实现见同目录server.js。
ship-hai-domain-expert-ima-lite — 船海重工业领域专家(IMA 完整版 · 纯专家 · Lite ≤10M)
Purpose
一个纯领域专家能力包,源自 IMA 工作流导出的完整版原始资料(为适配平台 10M 上限做了体积精简,见下方说明)。
它把通用 WorkBuddy 实例变成船海重工业(造船 / 海工 / marine-heavy-industry)专家,能够:
- 生成中英双语情景对话 — 按 19 专业路由,产出符合真实角色、工艺顺序、术语与实体身份的情景文章 / 对话(CN + EN,
content须等于englishContent)。 - 提供引用出处 — 每个结论 / 术语 / 工序都给出权威来源:项目 spec、ASME / API / ISO / SOLAS / CCS / IACS 等标准,并标注「通用参考 / 非项目强制依据」,避免凭空编造。
- 职业与工艺问答 — 回答焊接、NDT、管线、海工 EPCI、HSE、涂装等领域的专业问题,答案锚定在权威知识库,而非通用 LLM 记忆。
- 中英术语翻译 — 基于知识网格与术语表做专业术语互译(如 Isometric Drawing ↔ 轴测图、hydrotest ↔ 试压),不臆造英文。
- 三层红线校验 — 任何生成 / 校验动作先过门禁,拦住匿名违规、ISO 两义、标准误引、实体张冠李戴、权限错位等 16 条行业红线。
范围边界(重要): 本 skill 只含领域专家能力。不含积分 / 订阅 / 付费门禁、不含任何小程序页面(wxml/wxss)、不含云函数或前端代码、不含"阅读/下载/复制"等小程序交互。它是一份可复用的专家知识 + 校验引擎,可独立使用,也可作为其他落地项目(如小程序、Agent)的领域内核。
When to use this skill
- 用户要求生成船海情景对话 / 情景文章 / 培训话术(任意 19 专业)。
- 用户要求校验或修正某段船海内容的专业逻辑、术语、角色、出处。
- 用户提出领域问题(焊接、NDT、管线、海工 EPCI、HSE、涂装、舾装…),期望锚定权威来源的答案。
- 用户要求中英互译船海专业术语。
- 用户质疑某内容「不严谨 / 逻辑错 / 术语错」。
Knowledge source — IMA 完整版(非压缩)
本 skill 的知识来自 IMA 工作流当时导出的完整版,未做任何压缩处理:
| 文件 | 性质 | 用途 |
|---|---|---|
assets/changhai_expert.html |
IMA 完整版专家系统原件(标题「船海重工·专业情景生成与专家释义 v6」,含真实 ITP、专家释义、引用、情景生成) | 人工查阅完整专家网络;不自动化调用 |
references/全部资料整理汇总.md |
IMA 完整资料汇总 | 领域总览、概念锚点 |
references/行业知识库_海工造船.md |
行业知识库 | 专业体系与工艺基线 |
references/career-domain.md |
职业发展领域知识(证书 / 经验 / 英语 / 能力 综合评估,R22–R33 红线) | 职业路径、证书体系、岗位门槛问答;主体≠层级、船东>船级社、高级证=同岗竞争力、组合证书=加分非必须、API 小众≠高级 |
references/工作流SOP_完整执行手册.md |
IMA 工作流 SOP | 生成 / 校验标准作业流程 |
references/raw/p1.json p2.json p3.json |
专家组织结构原始数据 | 角色 / 组织链权威定义 |
references/情景文章_*.md |
多篇完整中英情景范例(涂装喷砂、管件材料入场证书审核等) | 生成时的黄金样例 |
scripts/ima-knowledge-graph.json |
11,812 节点知识网格(蒸馏自 IMA 原始资料;与原 references/knowledge-grid.json 同内容,仅留一份) | grep 式检索「名词→专业→工作」 |
references/all-scenarios.json |
845 篇已生成情景语料 | 范例检索、门禁回归 |
references/domain-rules.md redlines.md redlines.json |
12 章红线 + 16 红线定义 | 权威约束 |
references/professions.md professional-kb.json term-glossary.json |
19 专业路由表、角色原型、高风险术语 | 路由与术语裁决 |
> 旧版 ship-hai-domain-expert(已存在)在上架时删减过 ima-glossary.json 并仅用 json 网格;
> 本 Lite 版为适配平台单 skill ≤10M 限制做了体积精简:① 删除与 scripts/ima-knowledge-graph.json
> 完全重复的 references/knowledge-grid.json 副本;② scripts/ima-glossary.json 术语明细精简了例句与标签
> (保留全部术语 + 词性 + 中英释义,校验引擎依赖的术语 token 完整无缺);③ 删除与 references/all-scenarios.json
> 重复的 scripts/all-scenarios.json。领域知识(术语覆盖、释义、红线、校验、范例)均完整保留。
Hard discipline — 先读库,再作答(不可协商)
⚠️ 在生成或回答任何船海内容前,先读权威文件,绝不凭记忆作答。优先级:
references/domain-rules.md— 12 章红线 + 角色边界(最高权威)。references/professions.md— 19 专业路由表。references/professional-kb.json— 实体红线、角色原型、组织链。references/term-glossary.json— 高风险术语 + 歧义告警。scripts/ima-knowledge-graph.json— 11,812 节点网格(grep,勿全载)。references/all-scenarios.json— 845 篇语料(grep 取范例,勿全载)。- IMA 完整版:
assets/changhai_expert.html与references/全部资料整理汇总.md等补充锚点。
禁止向用户追问「有哪些大业主 / 船东 / EPC 承包商 / 船厂」——这些已编码在 professional-kb.json(offshore_epc、fabrication_yard、owner_offshore、owner_ship)。
16 条红线(摘要;全文见 references/redlines.md + domain-rules.md)
| # | 红线 | 一句话规则 |
|---|---|---|
| R11 | 跨专业禁用词 | compartment→tank;点焊定位→定位焊(tack);WPQ→WQT;precision report→dimension report。逐专业禁用表在 scripts/rules/*.forbidden.json。 |
| R13 | ISO 两义 | ISO(轴测图)=Isometric(仅 piping 作图纸名);ISO 14122-3=国际标准前缀。非 piping 不得用 ISO 作图纸名。 |
| R15 | 标准引用 | 不得默认套通用标准(如 API RP 578)而无项目 spec / ASME BPVC II 依据;每条通用引用须标「通用参考/非项目强制依据」。 |
| R16 | 匿名化 | 不暴露公司/场地/业主真名;角色用职能标签(禁国别词、禁中文姓氏)。 |
| M1 | 角色国籍标签 | BLOCKER:角色标签带国别词。 |
| M2 | 真实人名 | REVIEW:对话含具体中文姓氏人名。 |
| J | 实体身份 | BLOCKER:Bechtel/Fluor/KBR/Jacobs ≠ 海工 EPC;Worley/Monadelphous=业主工程师/PMC(非分包/EPC);COOEC/BOMESC/COSCO 等=建造场地(非 EPC)。 |
| L | EPC vs EPCI | BLOCKER(海工):必须说 EPCI(含 Installation);EPC 仅限陆上 turnkey。 |
| E | 见证自claim | BLOCKER 仅当非权威角色称「我见证」;邀 Class/Owner 见证允许。 |
| E2 | 验收自claim | BLOCKER 当执行角色称「我验收」;被动「由检验员验收」允许。 |
| K1/K2 | 工序顺序 | 定位焊→精度报检→终焊;查线→试压→复位→销项(管线)。 |
| T1–T5 | 术语 | shell close-out、centreline drawing、sealed-around、positioned、scribed-reference(见 validate-terminology.js)。 |
诚实边界: 门禁绿(exit 0)≠ 内容绿。若 REVIEW 计数 >0,不得标注「全绿/完成/可交付」——先逐条分类(真缺口 vs 门禁误报),修内容或门禁后重跑。
三层校验门禁(强制引擎)
scripts/ 内可本地运行(node,零网络、零密钥、零成本)。交付 / 导入任意批次前必跑:
node audit-all.js # 对 cwd 内情景 JSON 全量门禁(19 专业)
node audit-all.js --files a.json b.json
node audit_professional.js --self-test # 21/21 反向探针(证明门禁真拦)
node validate-terminology.js --self-test # T1–T5 反向探针
层级(任一 BLOCKER → exit 1,禁止交付):
1. Layer 1 validate-scenarios.js — 12 规则:R11 逐专业禁用词、R13 ISO、R15 标准引用、IMA/术语核实(规则 12)。
2. Layer 2 validate-terminology.js — T1–T5 术语红线 + 反向探针。
3. Layer 3 audit_professional.js — 深度审计:BLOCKER(J/L/E/E2/M/K 实体/角色/权限)+ REVIEW(组织链合理性)。
audit-all.js 是唯一下发入口。scripts/glossary.js(含 TERMS_BY_PROF / FORBIDDEN_TERMS_BY_PROF)与 scripts/rules/*.json 驱动数据;改 KB 即改行为,无代码硬编码。scripts/ima-glossary.json 为术语明细(校验依赖,勿删)。
生成工作流(每篇情景)
- 识别专业(
references/professions.md);跨专业上限 2 个。 - 查术语
scripts/glossary.js+references/term-glossary.json— 不凭记忆造英文。 - 搭角色 限
professional-kb.json边界:2–3 人(硬上限 3,优先 2),单专业或强上下游依赖;无旁观者。 - 排工序 正确顺序(定位焊→报检→终焊;查线→试压→复位→销项)。
- 生成 CN + EN;
content===englishContent。 - 门禁
node audit-all.js;零 BLOCKER + 零未分类 REVIEW → 交付。
Key pitfalls(踩过的坑)
- EPC vs EPCI:海工主合同是 EPCI(含安装)。称 Saipem 为「EPC 承包商」是术语 BLOCKER;陆上化工 EPC(Bechtel/Fluor)≠ 海工。
- 实体身份:中国场地(COOEC/BOMESC/COSCO/CMHI/CIMC Raffles/PJOE)= 建造场地/分包,绝非 EPC;Worley/Monadelphous=业主工程师/PMC。
- 匿名化:禁暴露公司/场地/业主名或中文姓氏;用职能标签。
- ISO 歧义:
ISO(轴测图)=Isometric(仅 piping);ISO 14122=标准前缀。 - 标准引用:无项目 spec / ASME BPVC II 依据不得把通用标准当项目强制。
- 见证/验收权限:仅 Class Surveyor / Client Inspector / 授权 Inspector 可见证/验收;工长/工人不可自claim,邀权威见证允许。
- 工序:定位焊在精度报检前;查线在试压前。
- WPQ:本体系不用 WPQ → 用 WQT(焊工证)。
- tack weld:无需衬垫,勿臆造「衬垫」约束。
Files
assets/changhai_expert.html— IMA 完整版专家系统原件(人工查阅,非自动化入口)。references/全部资料整理汇总.md行业知识库_海工造船.md工作流SOP_完整执行手册.md— IMA 完整版文档。references/raw/p1.jsonp2.jsonp3.json— 专家组织结构原始数据。references/情景文章_*.md— 完整中英情景范例。references/domain-rules.md— 12 章红线 + 角色边界(权威)。references/redlines.md/redlines.json— 16 红线摘要。references/professions.md— 19 专业路由表。references/professional-kb.json— 实体红线、21 角色原型、组织链。references/term-glossary.json— 高风险术语 + 歧义告警。scripts/ima-knowledge-graph.json— 11,812 节点知识网格(grep,勿全载)。references/all-scenarios.json— 845 篇情景语料(grep,勿全载)。scripts/— 三层校验引擎(validate-.js / audit-.js / glossary.js / rules/ / 必需数据)。见scripts/README.md。CHANGELOG.md— 版本历史(1.0.0 → 1.3.0)。
v1.1.0 — 2026-08-12 上架后实战教训(批量生成 / 导出 / 导入 必读)
> 本节记录 1.0.0(2026-08-12 上架)之后,在真实批量生产(190 篇 × 2 批)中踩到的坑。
> 做任何批量生成 / 导出 / 导入前必读,否则会重演 E11000 事故。
1. 去重基准必须用「云库完整主源」,不是本地 all-scenarios.json(E11000 事故)
- 事故:生成 190 篇后导入云库
scenarios,报E11000 duplicate key error ... _id: scn_xxx
—— 190 篇里 189 篇云里早已存在。 - 根因:本地语料
all-scenarios.json只有 845 / 1035 篇,而云库真实主源是完整版
(1225 篇,含 careerChat 沉淀)。拿不完整的本地副本做去重 = 必然漏判。 - 硬规则:
1. 生成新批次前,先确认「云库当前主源文件」是哪一份,以它为唯一去重基准;
2. 去重断言必须同时覆盖_id与professionId + title两个键;
3. 导出后追加正文 md5 校验(content/englishContent/chineseContent
分别与主源比对,碰撞必须为 0),防「标题不同但正文相同」的隐蔽重复;
4. 三条断言失败即中止生成,不要等导入时才炸。
2. 「补充导入」绝不清空集合
- 「清空
scenarios→ 导入」是整库重建(重导)流程,只在从主源重新生成整库时才用。 - 用户说「补充 / 再加几个专业」时,一律 追加 / upsert(按
_id),
绝不选「清空集合 / 覆盖」,并保留scenario_unlocks不动。
3. 新增禁用词 / 红线(1.0.0 之后门禁实拦记录)
| 触发词 | 判定 | 正确写法 |
|---|---|---|
NEC / NFPA 70 |
BLOCKER(美国陆地电气法规,船 / 海工不适用) | IEC 60092 系列 + 船级社规范 |
Precision Inspection Report |
BLOCKER(命中通用错词 precision ... report) |
Dimension Report |
ITR |
单文件内出现 >3 次 即拦(频率规则) | 改用全称 Inspection Test Record |
查线 / Line Check |
知识网格判定归管系 piping 专有;E&I 出现 = 专业归属硬错 |
E&I 用 loop check(回路检查) |
NDT 台词含 qualification |
BLOCKER「NDT 越界查焊工资质」 | NDT 只做工艺 / 程序评定;焊工资质归 QC |
工长 / 主管类角色说 witness / 见证 |
BLOCKER「工长无权见证」 | 改 attend / 参与;见证权只属 Class / Client / 授权 Inspector |
4. 白名单唯一来源(v1.1.0 修复了死文件)
- 放行词必须写进
scripts/glossary.js的APPROVED_OVERRIDES(全局),
或scripts/rules/<professionId>.approved.json(按专业,纯字符串数组)。 - 历史坑(v1.1.0 已修):
rules/*.approved.json曾长期是死文件 —— 校验器只读
glossary.js,按专业加的词不生效、真实行业词被误判「未核实」,而维护者以为已放行。
v1.1.0 已接线(validate-scenarios.js的APPROVED_BY_PROF),两类白名单并集生效。 - 手写白名单极易拼错(实战中写入过
recaot interval错词)。加词后必须:
① 回跑node audit-all.js;② 人工核对每个新词拼写。
5. 工作副本污染(打包上架前必查)
- 门禁
audit-all.js靠CANON扫描scripts/<profession>.json作为当前待校验批次。 - 这类文件是工作副本,不是技能固有资产。打包上架前必须确认:
要么替换为干净基线,要么明确它们就是随包示例,避免把用户的生产文章混进技能包。
6. 存量已知错误(待修,新内容不得再扩散)
- R44:存量情景文章中「不锈钢焊接引用 AWS D1.1」是错的,应改 AWS D1.6 或对应 GB。
- 通篇核:任一字段收到反馈 → 必须全字段扫描、同源错误一次改全。
Version
当前版本 1.3.0(基线 1.0.0,上次上架 2026-08-12,本次更新 2026-09-08)。
本版在 1.1.0 基础上移除 v1.2.0 曾临时加入的付费分层(离线签名授权),回到「纯专家、零密钥、
零付费 API、零收费门禁」的定位——与上架自查清单一致,避免审核误判。1.1.0 的全部修复与纪律保留。
1.3.1(2026-09-10):以外部 402 网关方式重新接入按次付费(支付宝 AI 按量付费 A2M),知识本体仍零密钥零门禁,付费逻辑全在独立部署的 skillpay-backend,不在 skill 内。
完整变更见 CHANGELOG.md。