Files
shop-crm-agent/SKILL.md
T
Shiny 340dd241c9 feat: 实现完整的本地配置管理与CLI重构
本次重构实现了标准化的本地配置系统,替换原有的硬编码环境变量读取逻辑:
1. 新增跨平台的原子化配置文件读写,支持Unix和Windows系统
2. 新增init命令用于安全初始化和更新本地凭据
3. 替换原有错误提示文案为更友好的中文提示
4. 更新文档说明新的配置流程和安全规范
5. 新增完整的配置相关测试用例
6. 添加必要的依赖包支持
2026-08-01 02:39:49 +08:00

4.0 KiB
Raw Blame History

name, description
name description
lc-shop-crm-agent 安装、更新并安全使用 shop-crm-agent 查询和维护 Shop CRM 项目与独立报价。

lc-shop-crm-agent - Shop CRM Agent 操作流程

目的

指导 AI Agent 从公开源码构建 shop-crm-agent,并通过正式 Protobuf API 安全操作 CRM 项目和独立报价。

安装与更新

  1. 仓库固定 clone 为工作区中的 shop-crm-agent 目录;与 LightCore 联合开发时二者必须同级。
  2. 缺少仓库时,从 https://code.zhecent.com/open/shop-crm-agent.git 匿名 clone,不使用来源不明的压缩包或二进制。
  3. 检查 go version 满足 go.mod;缺少 Go 时安装官方 Go 工具链,再继续构建。
  4. 首次安装在仓库根目录执行 go run ./scripts/build.go,使用 bin/shop-crm-agentWindows 使用 bin/shop-crm-agent.exe
  5. 只运行仓库内 bin/shop-crm-agent[.exe];不得用 go install 安装该 CLI,不得将其二进制复制或软链接到仓库外,也不得为该 CLI 修改 PATH、Shell 启动文件或系统级配置。
  6. 构建成功后执行 bin/shop-crm-agent init;让员工在隐藏提示中粘贴 Shop 管理后台只显示一次的 Token,不得要求员工把 Token 发到聊天中。
  7. 收到更新通知后先确认 git status --short 为空,再执行 git pull --ff-only;拉取后重新读取本文件并重新构建。.env 被 Git 忽略,正常更新不会改动凭据。
  8. 本地存在修改、拉取失败、测试失败、构建失败或版本探针失败时停止,不得强制重置或继续使用半完成产物。

运行配置

  • 默认生产 API 为 https://api.zhecent.com,无需设置 LIGHTCORE_API_BASE_URL,且不会回退 localhost。
  • Token 只通过 Shop 管理后台 /shop/crm/settings/agent-credentials 创建和撤销,绑定当前管理员与所选 scope,明文仅在创建时显示一次;CLI 的 init 只把已有 Token 写入本地 .env,不管理服务端凭据。
  • .env 固定在仓库根,由 init 创建且已被 Git 忽略;init 可重复执行并且每次原子覆盖旧文件,除此之外 Agent 不得读取或修改其内容。
  • 业务命令默认从 .env 读取 TokenCI 可使用 LIGHTCORE_SHOP_CRM_AGENT_TOKEN 覆盖。覆盖 LIGHTCORE_API_BASE_URL 时必须同时显式提供对应环境的 Token,不得读取 .env 中的生产 Token。
  • 不得显示、记录、提交 Token,也不得把真实 Token 写入命令参数、会保留历史的 Shell 命令、普通日志或聊天内容。
  • 业务命令使用仓库 bin/ 下的当前构建产物,精确参数以 <binary> <subcommand> --help 为准。

操作流程

  1. 创建项目前用 customer-list 获取真实客户 ID;其他操作先查询真实项目、报价、SKU、层级和产品行 ID。
  2. 每个写命令使用稳定且唯一的 --request-id;重试同一操作时复用原 ID 和完全相同的参数。
  3. 报价内容修改严格执行 begin -> command -> preview -> commit;不提交时执行 discard
  4. 删除先执行 delete-preview,只使用其返回的 revision 和 changeSetIdallowed=false 时停止。
  5. 读取 JSON 响应的 header.codeheader.replayed、revision、changeSetIdaffectedLineIds,不得只凭进程退出码推断业务状态。

阻塞检查点

  • 需求超出项目主线和独立报价时停止;不得转向客户维护、合同、设计画板、跟进、资金、文件、采购或产品库维护。
  • 产品库行只提交真实 sku-id,不得尝试修改产品库成本;自定义行仅通过明确 flag 修改自身成本。
  • 非空层级删除只有用户意图明确时才使用 --cascade
  • 项目非空、报价锁定、revision 变化、changeSet 不一致或回执状态未知时不得强行继续。
  • 请求取消、超时或结果不确定时先查询资源状态,不得盲目生成新 request ID 重复写入。

验证

go test ./...
go build ./...
go run ./scripts/build.go
./bin/shop-crm-agent --version