Fecify Skill 结构组成(完整版)

从 skill 架构层面,系统分析 fecify_skills 的每个组成部分及其关系,下面写的是V2版本,实时获取可以自己在龙虾智能体中进行提问: fecify-skill-结构组成,从skill架构层面做详细介绍


目录

  1. Frontmatter(元信息)
  2. 铁律(Iron Laws)
  3. 三层递进式路由
  4. 会话管理
  5. 通用 API 调用层
  6. 模块路由表
  7. 模块指引文档(第 2 层)
  8. API 参数文档(第 3 层)
  9. JSON Schema(API 数据源)
  10. 工作流文档
  11. 脚本层
  12. 示例数据
  13. 外部配置文件
  14. 扩展机制
  15. 架构全景图

1. Frontmatter(元信息)

位置SKILL.md 顶部 YAML 区块。

---
name: fecify-site-manager-v2    # 技能唯一标识,系统注册用
version: "2"                     # 版本号,字符串格式
description: >                   # 一句话能力概述
  Fecify 独立站管理。会话绑定站点(URL + Token),配置持久化。
  商品/专辑/博客/图片/AI图片生成/系统配置/权限/物流/税费/订单。相关处理全链路覆盖。
---
字段 类型 作用
name string 系统级唯一标识,不可与其他 skill 冲突
version string 版本追踪,大版本变更时可提示用户更新
description string 让系统/用户在 skill 选择器中快速了解能力范围

Frontmatter 不参与 Agent 调度逻辑,是纯元数据。


2. 铁律(Iron Laws)

铁律是 skill 的最高优先级规则,Agent 必须在任何操作前先通过铁律检查。

2.1 全局铁律

定义在 SKILL.md,5 条,对全模块生效:

# 铁律 维度 防止的问题
1 严禁自行构造 API 路径或猜测端点 API 安全 Agent 凭记忆编 API 路径导致 404/500
2 必须用 api-doc.js 或读文档查参数 API 安全 参数名/类型错误导致 API 拒绝
3 标注「待编写」的模块不可调用 可用性 调用未实现功能,无文档无保障
4 临时文件只进 temp/,图片进 temp/images/ 文件安全 污染 skill 根目录
5 打包 zip 排除 memory/temp/MEMORY.md 数据安全 用户数据泄露到外部

2.2 模块级铁律

某些模块在全局铁律基础上追加自身特有的铁律。例如:

  • 商品专辑批量工作流docs/collections/workflow-collection-batch.md):
    • 二段式提交(Phase 1 检查→确认 → Phase 2 执行→汇总 → Phase 3 缓存)
    • 语言一致性:用户指定语言则所有 title/bodyhtml/meta* 必须是该语言
    • 缺失字段补全:缺失 bodyhtml/meta* Agent 必须 AI 生成
    • 统一确认执行、统一询问缓存
  • 模版装修docs/theme.md):独立铁律体系,不在此展开
  • 多语言翻译:AI agent 真翻不抄原文;body_html 保留 HTML 标签只译文本

2.3 铁律设计原则

  • 全局铁律不超 5 条,只放对所有模块都适用的硬约束
  • 模块特有约束写在对应的 .md 中,就近原则
  • 每条铁律必须明确指出"防止什么问题",不只说"不要做什么"

3. 三层递进式路由

Fecify Skill 的核心导航机制。Agent 从粗到细逐层深入:

SKILL.md                        第 1 层 — 调度摘要
    ↓ 模块匹配
docs/<模块>.md                   第 2 层 — 模块指引(API 速查表 + 工作流 + 易错点)
    ↓ API 匹配
docs/<模块>/<API>.md             第 3 层 — 单个 API 的请求参数(字段名/类型/必填/示例)
    ↓ 参数确认
api-call.js                     执行(POST/GET/...)

设计要点

  • 第 1 层不做 API 细节:只告诉 Agent "去哪个模块",不写参数
  • 第 2 层不做参数定义:给速查表 + 易错点,Agent 快速锁 API
  • 第 3 层只做一件事:把 API 的请求参数说清楚,Agent 照抄即可
  • api-call.js 是唯一执行入口:所有 API 调用必须经过它,不直接 curl

4. 会话管理

SKILL.md 第 1 节,定义多店铺会话的生命周期。

4.1 启动流程

node scripts/base/check-config.js
  ├── 未配置 → 引导用户提供 URL + Token
  │           → node scripts/base/save-config.js "<URL>" "<Token>"
  │           (自动调用 /api/skill/base/init 拉取 init 数据)
  └── 已配置 → 显示当前站点 URL

4.2 会话隔离

exec 带 env: { FECIFY_SESSION: "<标识>" }
未指定 → 自动使用 session key 后 8 位

多店铺场景下,每个店铺对应一个独立会话。配置保存到 site-config.js 管理的持久化存储中。

4.3 相关脚本

脚本 作用 调用时机
scripts/base/check-config.js 检测配置状态 会话启动
scripts/base/save-config.js 保存 URL+Token + auto init 首次配置 / 切换店铺
scripts/base/site-config.js 多会话配置读写(模块) 被 api-client.js 引用
scripts/base/reload-init.js 刷新 init 缓存 插件变更后

5. 通用 API 调用层

SKILL.md 第 2 节。Agent 调用任何 API 的统一方式。

5.1 四种调用模式

# 模式 1: GET(无 body)
node scripts/proxy/api-call.js GET /api/skill/<path>

# 模式 2: POST stdin(短 JSON,一行)
echo '{"page":1}' | node scripts/proxy/api-call.js POST /api/skill/<path>

# 模式 3: POST --data(长 JSON,先写到文件再引)
node scripts/proxy/api-call.js POST /api/skill/<path> --data body.json

# 模式 4: POST 命令行参数(非常短的 JSON)
node scripts/proxy/api-call.js POST /api/skill/<path> '{"id":363}'

5.2 参数查询

node scripts/proxy/api-doc.js                          # 列出所有模块
node scripts/proxy/api-doc.js --module=product          # 某模块所有 API
node scripts/proxy/api-doc.js --api=product/list        # 单个 API 详细参数
node scripts/proxy/api-doc.js --search=专辑              # 搜索 API

5.3 响应码速查

code 含义 Agent 行为
200 成功 继续
-1 网络错误 可重试
10000011 / 10000014 / 10000025 架构拦截(插件未安装/无权限/数据不存在) 停止,不重试

5.4 底层支撑

  • scripts/proxy/api-call.js:CLI 入口,解析参数→读配置→调 api-client→打印结果
  • scripts/proxy/api-doc.js:读 docs/schemas/*.json→格式化输出参数表
  • scripts/base/api-client.js:HTTP 封装(GET/POST/PUT/DEL + 自动鉴权 + 30s 超时 + 插件校验)

6. 模块路由表

SKILL.md 第 3 节。按业务域分组,共 8 组 18 个模块:

业务域 模块数 模块列表
商品 3 商品 CRUD、商品专辑、商品评论
内容 3 博客文章、博客专辑、自定义页面
客户与订单 3 客户管理、订单管理、优惠券管理
店铺配置 4 店铺信息、菜单管理、系统配置、刷新缓存
运营 6 权限管理、系统物流、系统税费、URL 重定向、系统任务、数据统计
模版装修 1 模版装修(独立铁律体系)
图片 2 图片管理、AI 图片生成
插件 1 多语言

每个模块在路由表中占一行,4 列:

列名 内容 作用
模块 中文名 快速识别
能力摘要 能做什么 + workflow 名称 + 脚本引用 判断是否匹配需求
⚠️ 易错点 常见踩坑(1 行) 初步避坑
入口 第 2 层文档链接 + 关联 workflow 精确跳转

设计原则:"最少信息决策" — 只给足够判断"该去哪个模块"的信息,细节留给下一层。


7. 模块指引文档(第 2 层)

每个 docs/<模块>.md 都是该模块的操作手册。统一的文档结构:

7.1 脚本速查表

列出该模块可用的预写脚本:

| 脚本 | 说明 |
|------|------|
| `scripts/collection/create.js`      | 创建专辑(AI 图片 + SEO 一步完成) |
| `scripts/collection/batch-collection.js` | 批量工具:创建/更新/添加商品 |

7.2 工作流说明

如果模块涉及复杂流程,在这里描述整体步骤。例如商品专辑批量工作流:

Phase 1: Agent 提取语言 → 解析 #N → 翻译 → 补全 → 检查 → 确认清单 → 等用户说"执行"
Phase 2: tasks.json → node batch-collection.js --file ... → 汇总
Phase 3: 统一询问缓存刷新

7.3 API 速查表

该模块所有可调 API 的快速索引:

| 操作 | 路径 | 方法 | 传参 | 详细文档 |
|------|------|------|------|----------|
| 专辑列表 | /api/skill/product-collection/list | POST | query 参数 | [link] |
| 专辑详情 | /api/skill/product-collection/info | POST | query 参数 | [link] |
| 创建专辑 | N/A (独立脚本) | — | — | [link] |

7.4 通用调用示例

该模块 GET/POST 的 bash 示例,Agent 可以直接复制。

7.5 易错点列表

该模块特有的踩坑记录,比 SKILL.md 路由表中更详细。

7.6 相关链接

关联的翻译工作流、批量工作流等。


8. API 参数文档(第 3 层)

每份 docs/<模块>/<API>.md,单个 API 的详细参数手册。

结构

# API 名称

## 请求

- **方法**: GET
- **路径**: /api/skill/<path>

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id   | int  | 是   | 专辑ID |

## 请求示例

{ "id": 363 }

## 响应示例

{ "code": 200, "data": { ... } }

注意事项

  • 所有参数字段名必须与真实 API 完全一致
  • 类型标注要精确(如 int[]decimalArray[Object]
  • 响应示例要反映真实结构
  • 如果 API 有 param_style: "query"→GET 方式传参,如果 param_style: "json"→POST body

9. JSON Schema(API 数据源)

docs/schemas/*.json,共 21 个文件,是 api-doc.js数据源

结构格式

{
  "module": "products",
  "label": "商品管理",
  "apis": [
    {
      "id": "list",
      "label": "商品列表",
      "method": "GET",
      "path": "/api/skill/product/list",
      "params_query": {
        "pageNum": { "type": "int", "required": false, "default": 1 },
        "pageSize": { "type": "int", "required": false }
      }
    }
  ]
}

特点

  • 结构化:JSON 格式,程序可读,api-doc.js 直接解析
  • 单向关系:Schema 是数据源,api-doc.js 是查询器,第 3 层 .md 是给人读的展示
  • 独立维护:改 API 参数改 Schema,不影响 markdown 文档结构
  • 容量:21 个模块,约 250+ 个 API 端点,覆盖全部业务

与 Markdown 文档的关系

  • Schema 是权威数据源
  • Markdown 文档是人类可读的展示,内容应与 Schema 一致
  • Agent 查参数优先用 api-doc.js(读 Schema),因为保证最新;文档用于详细说明和示例

10. 工作流文档

docs/<模块>/workflow-*.md,为复杂业务流程提供完整操作指引

结构

# 工作流名称

## 概述
## ⚠️ 铁律
## 工作流程
    Phase 1: ...
    Phase 2: ...
    Phase 3: ...

## Task 数据结构(JSON Schema)
## Agent 执行清单
## 已知坑列表
## 调用示例

已实现的工作流

模块 工作流 文件
商品专辑 批量创建/更新/添加商品 docs/collections/workflow-collection-batch.md
商品 批量上传 docs/products/workflow-batch-upload.md
商品翻译 批量翻译 docs/language/workflow-product-translate.md
专辑翻译 批量翻译 docs/language/workflow-product-collection-translate.md
页面翻译 批量翻译 docs/language/workflow-page-translate.md
博客专辑翻译 批量翻译 docs/language/workflow-blog-collection-translate.md
博客文章翻译 批量翻译 docs/language/workflow-blog-article-translate.md
菜单管理 build 工作流 docs/menu/workflow-build.md
菜单管理 patch 工作流 docs/menu/workflow-patch.md
物流 批量设置 docs/shipping/workflow-setup.md
模版装修 装修工作流 docs/theme/workflow.md
模版装修 图片工作流 docs/theme/workflow-img.md

设计原则

  • 工作流文档按二段式提交设计:Phase 1 检查→Phase 2 执行→Phase 3 收尾
  • 自带独立铁律,补充模块级约束
  • Agent 执行清单:按编号逐一完成,确保不跳步

11. 脚本层

按功能分为 4 类:

11.1 基础设施(scripts/base/ + scripts/proxy/

Agent 不直接调用,但所有业务脚本依赖它们。

脚本 路径 作用
api-client.js scripts/base/ HTTP 封装:GET/POST/PUT/DEL + 自动鉴权 + 30s 超时 + 插件校验
site-config.js scripts/base/ 多会话配置读写(module),被 api-client.js 引用
check-config.js scripts/base/ 配置状态检查 CLI
save-config.js scripts/base/ 保存 URL+Token + 自动 init CLI
reload-init.js scripts/base/ 重新加载 init 数据 CLI
api-call.js scripts/proxy/ Agent 调用 API 的唯一入口:GET/POST/PUT/DEL + stdin/--data 三种入参
api-doc.js scripts/proxy/ 查询 JSON Schema 输出参数表

11.2 公共工具(scripts/image/ + scripts/image-gen/ + scripts/language/

被多个业务模块复用的工具函数。

类别 脚本 作用
图片 upload-local.js 本地图片上传到 Fecify 服务器
AI 生图 image-client.js genImage/genImageBatch,Provider 统一入口
AI 生图 config.js AI Provider 配置(API 地址/Token/模型)
AI 生图 duomiapi-gpt-image-2.js duomiapi Provider(异步+并发轮询)
AI 生图 doubao-seedream-5.js 豆包 Provider(同步+串行)
AI 生图 prompt-enhancer.js Prompt 增强模板(电商场景)
AI 生图 generate.js CLI 快捷入口(标题列表→生图→上传)
翻译 auto-translate.js 商品全自动翻译引擎
翻译 translate-body.js body_html 分析(HTML/文本分离)
翻译 translate-product.js 商品批量翻译
翻译 translate-collection.js 商品专辑批量翻译
翻译 translate-page.js 自定义页面批量翻译
翻译 translate-blog-collection.js 博客专辑批量翻译
翻译 translate-blog-article.js 博客文章批量翻译

11.3 业务脚本(各业务目录)

由 Agent 或工作流直接调用。

模块 脚本 作用
商品专辑 collection/create.js 创建专辑(AI 图+SEO 一步完成)
商品专辑 collection/batch-collection.js 批量创建/更新/添加商品
商品 product/batch-upload.js 商品文件夹批量上传
商品 product/check-delete-permit.js 删除权限检查
CSV 导入 product-csv-import/detect-*.js 格式检测(Shopify/Fecify)
CSV 导入 product-csv-import/import-*.js 格式导入
评论 CSV review-csv-import/detect.js 评论 CSV 格式检测
评论 CSV review-csv-import/import.js 评论 CSV 导入
模版 theme/*.js(8 个) 图片处理/Schema 提取/验证/装修
工具 init/get-addons.js 获取已安装插件列表

11.4 脚本间依赖

api-client.js ←── 所有业务脚本
    ↑
site-config.js ←── 读写配置
    ↑
save-config.js / check-config.js / reload-init.js

api-call.js ←── Agent CLI 统一入口
    ↑ uses
api-client.js

api-doc.js
    ↑ reads
docs/schemas/*.json

12. 示例数据

docs/theme/samples/new_default_theme/ — 24 套主题的完整示例数据。

new_default_theme/
├── _index.json                    # 主题索引
├── sample_data.json               # 全局示例数据
├── baby/                          # 婴儿用品主题
│   ├── home.json                  #   首页配置
│   ├── settings_data.json         #   配色/字体/间距等
│   └── sections/                  #   header-group / footer-group 配置
├── bags/    bike/    book/        # 包袋 / 单车 / 图书 ……(共 24 套)
├── boutique/  ceramic/  christmas/
├── coffee/    electronic/ grove/
├── gym/       halloween/ jewelry/
├── keyboard/  main/      parade/
├── pet/       pod/       sapphire/
├── smartlight/ sneaker/  speaker/
├── surfboard/ watch/

每套包含 home.json(页面布局 JSON)+ settings_data.json(样式配置)+ sections/(header/footer 分组)。用于模版装修工作流中参考或复制。


13. 外部配置文件

不在 skill 目录内,但被脚本引用。

%APPDATA%/LobsterAI/data/fecify-shared/
├── image-ai-config.json           # AI 生图 Provider 配置
│                                  # scripts/image-gen/config.js 管理
│
%APPDATA%/LobsterAI/data/
└── fecify-sessions.json           # 多店铺会话配置
                                   # scripts/base/site-config.js 管理

与 skill 本体分离的好处:skill 更新不覆盖配置,数据持久化跨版本。


14. 扩展机制

docs/extending.md 定义了两种扩展方式:

14.1 新增业务模块(3 步)

步骤 1:docs/schemas/<module>.json   ← 创建 Schema
步骤 2:SKILL.md 模块路由表新增一行   ← 注册入口
步骤 3:docs/<module>.md(可选)      ← 模块注意事项
步骤 4:验证 → api-doc.js --module=<module>

14.2 新增 CSV 格式支持(5 个文件)

步骤 1:scripts/product-csv-import/detect-<平台>-csv.js   ← 格式检测器
步骤 2:scripts/product-csv-import/import-<平台>-csv.js   ← 导入器
步骤 3:docs/product-csv-import/<平台>-csv-product-import.md ← 文档
步骤 4:更新 product-csv-import.md 表格
步骤 5:更新 SKILL.md 命令参考

详细的检查清单见 docs/extending.md(含 detect 输出格式/import CLI 参数/buildFecifyJSON 结构)。


15. 架构全景图

┌─────────────────────────────────────────────────────────────┐
│                      FECIFY SKILL                           │
├─────────────────────────────────────────────────────────────┤
│  SKILL.md                                                   │
│  ├── Frontmatter(name/version/description)                 │
│  ├── 铁律(5 条全局 + 模块级铁律)                            │
│  ├── 会话管理(check-config → save-config)                  │
│  ├── 通用 API 调用(api-call.js 4 种模式 + 响应码)           │
│  └── 模块路由表(8 域 18 模块,最少信息决策)                 │
│       ↓ 路由                                                 │
├─────────────────────────────────────────────────────────────┤
│  docs/                                                      │
│  ├── <模块>.md                   第 2 层 模块指引              │
│  │   ├── 脚本速查表                                         │
│  │   ├── API 速查表                                         │
│  │   ├── 工作流说明                                         │
│  │   ├── 易错点                                             │
│  │   └── 相关链接                                           │
│  │       ↓ 路由                                             │
│  ├── <模块>/<API>.md             第 3 层 API 参数             │
│  │   └── 方法/路径/参数表/示例                                │
│  ├── <模块>/workflow-*.md        工作流文档                   │
│  │   └── 铁律+Phase 分步+Task Schema+坑                      │
│  ├── schemas/*.json              API 数据源(21 个模块)       │
│  ├── theme/                      模版装修全套文档              │
│  ├── extending.md                扩展指南                     │
│  └── architecture.md             架构说明                     │
├─────────────────────────────────────────────────────────────┤
│  scripts/                                                   │
│  ├── base/                       基础设施                   │
│  │   ├── api-client.js           HTTP 客户端                │
│  │   ├── site-config.js          配置读写                   │
│  │   ├── check-config.js         配置检查 CLI               │
│  │   ├── save-config.js          配置保存 CLI               │
│  │   └── reload-init.js          init 重载 CLI              │
│  ├── proxy/                      CLI 入口                   │
│  │   ├── api-call.js             API 调用代理 ★             │
│  │   └── api-doc.js              Schema 查询                │
│  ├── image/                      图片上传                   │
│  ├── image-gen/                  AI 生图引擎                │
│  ├── language/                   翻译引擎                   │
│  ├── collection/                 专辑业务                   │
│  ├── product/                    商品业务                   │
│  ├── product-csv-import/         CSV 导入                   │
│  ├── review-csv-import/          评论导入                   │
│  └── theme/                      模版工具                   │
├─────────────────────────────────────────────────────────────┤
│  外部                                                       │
│  ├── fecify-shared/image-ai-config.json   AI配置            │
│  └── fecify-sessions.json                会话配置           │
└─────────────────────────────────────────────────────────────┘
Copyright © fecify.com 2025 all right reserved,powered by Gitbook该文件修订时间: 2026-06-18 11:06:50

results matching ""

    No results matching ""