本提交初始化完整的shop-crm-agent项目: 1. 创建基础项目结构与配置文件(.gitignore、go.mod/go.sum) 2. 添加项目许可协议与文档(README.md、AGENTS.md、SKILL.md) 3. 实现核心CLI入口与命令框架 4. 封装Protobuf API客户端与完整的命令实现 5. 添加单元测试覆盖核心功能与边界情况 6. 提供构建脚本与版本管理能力
2.3 KiB
2.3 KiB
AGENTS.md
本仓库是 shop-crm-agent 的唯一源码仓库。默认使用中文沟通。
项目边界
- 客户端只通过
/api/shop/crm-agent/v1Protobuf HTTP API 工作,不直接访问数据库、Redis、LightCore 配置或后端运行容器。 - Go module 固定为
code.zhecent.com/open/shop-crm-agent,不得引入 LightCore backend module、Gin、GORM、数据库驱动或 Redis 客户端。 internal/api/shop_crm_agent.pb.go是生成代码,不得手工编辑。- Protobuf schema 的唯一真相位于同级
../LightCore/backend/application/shop/interfaces/crm_agent_proto/proto/shop_crm_agent.proto。 - 协议变更必须从
../LightCore/backend执行bash scripts/proto_gen_shop_crm_agent.sh,同时检查两个仓库的生成结果和测试。
CLI 契约
- 所有业务命令输出 Protobuf JSON,不输出表格或混合说明文本。
- 业务失败先输出服务端结构化响应再返回非零退出码;运输或解析失败不得伪造业务响应。
- 写命令必须使用稳定且唯一的
--request-id;同一操作重试时复用原 request ID 和原参数。 - 报价编辑固定使用
begin -> command -> preview -> commit,放弃时使用discard。 - 项目和报价删除必须先执行对应
delete-preview,不得绕过 revision 与changeSetId。 - CLI 只读取
LIGHTCORE_API_BASE_URL和LIGHTCORE_SHOP_CRM_AGENT_TOKEN;缺失时明确失败,不回退 localhost。 - Token 不得写入源码、文件、日志或输出;测试只能使用明显虚构的占位值。
开发流程
- 先读取相邻实现和
SKILL.md,确认命令边界与安全流程。 - 只修改职责明确的 command/client 代码,不在客户端复制服务端业务规则。
- 生成代码只通过 LightCore 的协议生成脚本更新。
- 执行
go test ./...和go build ./...。 - 执行
go run ./scripts/build.go,确认bin/shop-crm-agent[.exe] --version可运行。 - 用
rg检查 Token、Secret、内部绝对路径和意外的后端依赖。
Git 与更新
main必须始终可测试、可构建;禁止 force push。- 更新只使用
git pull --ff-only。 - 工作区有本地修改时不得自动覆盖、重置或清理。
- 本仓库不提交编译产物,不提供二进制自更新或预编译 Release。