编程

link-skills

试用

Link 产品全链路开发技能,覆盖需求分析、方案设计(技术方案/数据库设计/接口设计)、 编码开发(基于 link 标准)、测试部署上线、后续运维的完整生命周期。 适用于工作目录 D:\develop\code\cdfai 下的 link CRM+AI 微服务系统。 当用户需要为 link 项目开发新功能、设计接口、修改代码、排查问题、部署上线或进行运维操作时触发此技能。 关键词:link开发、link接口、link部署、link运维、CRM开发、AI助手开发、知识库开发、企微同步、微服务开发。

它能做什么

Link 产品全链路开发技能,覆盖需求分析、方案设计(技术方案/数据库设计/接口设计)、 编码开发(基于 link 标准)、测试部署上线、后续运维的完整生命周期。 适用于工作目录 D:\develop\code\cdfai 下的 link CRM+AI 微服务系统。 当用户需要为 link 项目开发新功能、设计接口、修改代码、排查问题、部署上线或进行运维操作时触发此技能。 关键词:link开发、link接口、link部署、link运维、CRM开发、AI助手开发、知识库开发、企微同步、微服务开发。

技能文档

技能概述

本技能为 link CRM+AI 企业级微服务系统提供全生命周期开发指导。link 系统基于 Java 8 + Spring Boot 2.1 + Spring Cloud Greenwich 构建,包含 8 个微服务模块,覆盖 CRM 业务、AI 助手、认证授权、API 网关等核心能力。

适用场景

  • 为 link 系统开发新功能模块(CRM 业务、AI 助手、知识库等)
  • 设计新接口或修改现有接口
  • 数据库表设计与变更
  • 代码编写与审查(需遵循 link 编码规范)
  • 测试验证与部署上线
  • 线上问题排查与运维操作
  • 企微/微信集成开发
  • AI 能力集成(Coze、火山引擎 HiAgent)

项目快速索引

维度内容
工作目录D:\develop\code\cdfai
技术栈Java 8 + Spring Boot 2.1.2 + Spring Cloud Greenwich
微服务模块link-ai、link-base、link-auth、link-gateway、link-config、link-log、link-login、link-register
数据库MySQL 8.0.30(linkbase + linkadmin)、ClickHouse(linkloyalty)、Redis、ES 7.16.3
ORMMyBatis(link-core 封装 BasicMapper)
API 网关Spring Cloud Gateway,前缀 /linkcrm/
配置中心Apollo(AppID: cdfai-link-ai)
部署Docker + Kubernetes + Helm
私有框架link-core 1.5.95-RELEASE(BasicController/BasicService/BasicModel)

全链路工作流

收到 link 开发需求后,按以下五阶段顺序执行。每个阶段产出作为下一阶段输入。

阶段一:需求分析

目标:明确需求边界、验收标准和影响范围。

执行步骤

  1. 解析需求,确定涉及的模块(link-ai / link-base / link-gateway 等)
  2. 识别需求类型:
    • 新功能开发 → 需完整走五阶段
    • 接口新增/修改 → 重点关注阶段二、三
    • Bug 修复 → 跳至阶段三(定位+修复),再走阶段四验证
    • 运维操作 → 直接走阶段五
  3. 确认验收标准(功能点清单、接口契约、性能要求)
  4. 评估影响范围(涉及哪些模块、表、接口、配置)
  5. 识别约束条件(link-core 框架限制、Checkstyle 规范、签名过滤器等)

产出:需求分析摘要(需求描述 + 验收标准 + 影响范围 + 约束条件)

参考文档:加载 references/project-architecture.md 了解模块划分和技术栈

阶段二:方案设计

目标:完成技术方案、数据库设计和接口设计。

2.1 技术方案设计

  1. 确定功能归属模块(按业务域划分)
  2. 设计分层架构:Controller → Service → DAO(MyBatis) → Model
  3. 识别跨服务调用需求(Feign 客户端)
  4. 评估是否需要消息队列(Kafka)、缓存(Redis)、搜索(ES)
  5. 确定配置项(Apollo namespace 规划)

参考文档:加载 references/project-architecture.md 了解架构细节

2.2 数据库设计

  1. 表命名:LNK_ 前缀 + 大写下划线(如 LNK_KB_DOCUMENT
  2. 字段命名:大写下划线(如 DOCUMENT_NAMECREATE_TIME
  3. 必备字段:ID(主键)、CREATED_BYCREATION_DATELAST_UPDATED_BYLAST_UPDATE_DATEOBJECT_VERSION_NUMBER(乐观锁)
  4. 设计 MyBatis Mapper 接口(继承 BasicMapper)和 XML 映射文件
  5. 多数据源考量:业务数据 → linkbase,管理数据 → linkadmin,分析数据 → ClickHouse

特殊模式 — 数据中转:link-ai 知识库模块不落本地库,Service 层直接代理第三方 API。如需求涉及知识库,参考此模式。

参考文档:加载 references/database-guide.md 了解数据库设计规范和 MyBatis 模式

2.3 接口设计

  1. 路由设计:
    • 服务内:/link/{module}/{resource}/{action}(如 /link/aiAssistant/kbDocument/queryPage
    • 网关层:/linkcrm/{module}/{resource}/{action}(网关 StripPrefix=1)
  2. 请求方式:统一 @RequestMapping(不限定 method),参数用 @JsonParam 接收 JSON 请求体
  3. 响应格式:统一信封
    {
      "success": true,
      "code": "200",
      "result": {},
      "rows": [],
      "total": 100,
      "detailMessage": ""
    }
    
  4. 错误码设计:参考 references/api-design-guide.md 中的错误码体系
  5. Swagger 文档:Controller 使用 @Api(tags={"xxx接口"}) 注解

参考文档:加载 references/api-design-guide.md 了解完整接口设计规范

产出:方案设计文档(技术方案 + 表结构 DDL + 接口契约 + 文件清单)

阶段三:编码开发

目标:基于 link 标准编写代码,通过 Checkstyle 校验。

3.1 创建文件结构

每个业务域严格三层分包:

src/main/java/com/link/{module}/{domain}/
├── controller/        # XxxController extends BasicController
├── service/           # XxxService(接口) + XxxServiceImpl extends BasicServiceImpl
├── dao/mybatis/
│   ├── mapper/        # XxxMapper extends BasicMapper
│   └── sqlMap/        # XxxMapper.xml + XxxMapperMySql.xml
└── model/             # Xxx extends BasicModel

3.2 代码模板

使用 assets/templates/ 下的模板创建新文件:

  • Controller.java → 复制为 {Name}Controller.java
  • Service.java → 复制为 {Name}Service.java
  • ServiceImpl.java → 复制为 {Name}ServiceImpl.java
  • Mapper.java → 复制为 {Name}Mapper.java
  • MapperMySql.xml → 复制为 {Name}MapperMySql.xml
  • Model.java → 复制为 {Name}.java

模板中使用 {Name}{name}{module}{domain}{table} 作为占位符,替换为实际值。

3.3 编码规范要点

加载 references/coding-standards.md 获取完整规范。关键红线:

规则要求
Java 版本1.8(禁止使用 Java 9+ 语法)
缩进4 空格,禁止 Tab
行长度≤ 150 字符
大括号必须使用(即使单行 if/else)
switch必须有 default 分支
import禁止未使用的 import
空 catch异常变量名必须为 expected
包名全小写 com.link.{module}.{domain}.{layer}
表名LNK_ 前缀 + 大写下划线
Controller继承 BasicController,用 @Controller + @ResponseBody
Service接口 + Impl 分离,Impl 继承 BasicServiceImpl
Mapper继承 BasicMapper,XML 含 MySql 变体
Model继承 BasicModel,用 Lombok @Data

3.4 特殊开发场景

AI 对话集成(Coze)

  • 参考 com.link.coze 包结构
  • 非流式:直接调用 Coze API
  • 流式:使用 WebFlux + SSE

火山引擎 HiAgent

  • 参考 com.link.hiagent 包结构
  • 含工作流调用、ASR 语音识别

WebSocket 实时通信

  • 路径:/websocket/ai
  • 基于 Netty + link-websocket-starter

企微集成

  • 参考 com.link.base.tencent.corpwx 包结构
  • 通讯录同步、外部联系人、应用消息

知识库数据中转

  • 参考 com.link.base.knowledge 包结构
  • Service 层代理第三方 API,不落本地库
  • Token 通过 RSA 公钥加密自动注入

参考文档:加载 references/coding-standards.md 获取完整编码规范和代码模式

3.5 一致性自检

代码编写完成后执行以下检查:

  1. Checkstyle 合规:逐条对照 references/coding-standards.md 中的 Checkstyle 规则
  2. 分层完整性:Controller → Service → Mapper → Model 四层是否齐全
  3. 命名一致性:类名、表名、路由路径是否对应
  4. XML 映射:Mapper 接口方法与 XML SQL ID 是否一一对应
  5. 依赖注入@Resource 注入 Service,禁止 @Autowired(link 约定)
  6. 异常处理:Controller 层 try-catch BasicServiceException + Exception 双层
  7. Swagger 注解@Api + @ApiOperation 完整

产出:代码文件清单 + 一致性自检报告

阶段四:测试部署上线

目标:验证功能正确性,完成部署上线。

4.1 测试验证

link 项目测试现状:单元测试极少(maven-surefire-plugin skip=true),主要依赖手动测试。

测试策略

  1. 接口冒烟测试:使用 curl 命令测试每个接口
    • 注意:link 框架入站签名过滤器会导致直接 curl 返回 475
    • 解决方案:通过网关访问,或参考 references/testing-guide.md 中的签名头配置
  2. 数据库验证:执行 SQL 确认数据正确性
  3. 日志检查:查看 logs/ 目录下的应用日志
  4. Swagger 验证:访问 /swagger-ui.html 确认接口注册

参考文档:加载 references/testing-guide.md 了解测试方法和签名绕过方案

4.2 构建打包

# 进入对应模块目录
cd D:\develop\code\cdfai\link-ai  # 或其他模块

# Maven 打包(跳过测试)
mvn clean package -DskipTests

注意:需要配置 settings.xml(阿里云镜像 + 内部 Nexus 仓库认证),link-core 等私有依赖从内部 Nexus 拉取。

4.3 Docker 镜像构建

# 多阶段构建
docker build -f Dockerfile -t cdfai/link-{module}:{version} .

Dockerfile 模式:Stage 1 Maven 构建 → Stage 2 运行时(基于 choerodon-tools/javabase:0.8.0)

4.4 K8s 部署

  1. 更新 Helm Chart values(charts/link-{module}/values.yaml
  2. 配置项:
    • 副本数、资源限制(requests/limits)
    • JVM 参数(G1GC,Xms/Xmx)
    • 数据库/Redis/Kafka 连接配置
    • Apollo 配置中心 namespace
  3. 部署命令:
    helm upgrade --install link-{module} ./charts/link-{module} -n {namespace}
    
  4. 健康检查:startupProbe / readinessProbe / livenessProbe(TCP 探针)

参考文档:加载 references/deployment-guide.md 了解完整部署流程

4.5 上线验证

  1. 服务注册确认(Eureka 注册成功)
  2. 网关路由可达性验证
  3. 接口功能冒烟测试
  4. 日志无异常 ERROR
  5. 监控告警配置确认

产出:测试报告 + 部署确认 + 上线验证清单

阶段五:运维与后续

目标:保障系统稳定运行,快速响应线上问题。

5.1 日常运维

  1. 日志监控:Log4j2 + Graylog GELF,关注 ERROR 级别日志
  2. 配置变更:通过 Apollo 配置中心热更新(namespaces: ops / biz / stability)
  3. 定时任务:XXL-JOB 管理(端口 8025),关注任务执行状态
  4. 数据库运维:MySQL 主从同步、Redis 集群健康、ES 索引状态

5.2 故障排查

加载 references/troubleshooting.md 获取已知问题和解决方案。

常见问题快速索引

问题原因解决方案
curl 返回 475link 框架入站签名校验失败通过网关访问或配置签名头
Maven 编译失败link-core 不在本地 .m2配置 settings.xml 指向内部 Nexus
接口返回 412乐观锁冲突(OBJECT_VERSION_NUMBER)重试或检查并发更新
MyBatis SQL 注入${} 拼接排序字段改用 #{} 或白名单校验
大文件下载 OOMRange 解析脆弱使用流式写入 + 分片处理
Fastjson 漏洞1.2.83 版本历史漏洞评估升级到 Fastjson2 或替换 Jackson

5.3 性能优化

  1. 数据库:EXPLAIN 分析慢查询,索引优化
  2. 缓存:Redis 缓存热点数据,注意缓存一致性
  3. JVM:G1GC 调优,关注 GC 日志
  4. 连接池:Druid 监控(gateway),MyBatis 连接池配置
  5. K8s:HPA 自动扩缩容,资源限制调优

5.4 安全检查

  1. SQL 注入:检查 MyBatis XML 中 ${} 使用
  2. 敏感信息泄露:异常信息不返回前端
  3. Fastjson 漏洞:评估 AutoType 配置
  4. 签名校验:确保入站请求签名有效
  5. 权限控制:接口鉴权(link-auth 服务)

产出:运维操作记录 + 故障排查报告 + 优化建议

参考文档索引

文档路径用途
项目架构references/project-architecture.md模块划分、技术栈、服务间关系
编码规范references/coding-standards.mdCheckstyle 规则、命名约定、代码模式
接口设计references/api-design-guide.mdAPI 模式、响应格式、错误码、网关路由
数据库指南references/database-guide.md表设计、MyBatis 模式、多数据源
部署指南references/deployment-guide.mdDocker、K8s、Helm、Apollo
测试指南references/testing-guide.md测试方法、签名绕过、冒烟测试
故障排查references/troubleshooting.md已知问题、环境限制、解决方案

代码模板索引

模板路径用途
Controllerassets/templates/Controller.java控制器模板
Serviceassets/templates/Service.java服务接口模板
ServiceImplassets/templates/ServiceImpl.java服务实现模板
Mapperassets/templates/Mapper.javaMyBatis Mapper 接口模板
MapperMySqlassets/templates/MapperMySql.xmlMyBatis XML 映射模板
Modelassets/templates/Model.java实体模型模板

使用建议

  1. 新功能开发:从阶段一开始,依次走完五阶段
  2. 接口开发:重点参考阶段二(接口设计)和阶段三(编码),使用代码模板
  3. Bug 修复:直接进入阶段三(定位修复)→ 阶段四(验证)
  4. 部署上线:重点参考阶段四的构建打包和 K8s 部署
  5. 运维排查:直接进入阶段五,参考故障排查文档
  6. 每次使用时:根据当前阶段加载对应的 references/ 文档,避免一次性加载所有文档

相关技能

Linkly (linklyhq.com). Use this skill for ANY Linkly request — reading, creating, updating, and deleting data. Whenever a task involves Linkly, use this skil...

跨境电商专业 skill 创建向导。把运营、选品、广告、物流、合规等专家脑子里的业务经验,通过 30-45 分钟的结构化访谈沉淀为 agent 可执行的高质量 skill。触发:帮我写一个 XX skill / 把我这个经验做成 skill / 封装一下我做 XX 的方法 / 把这套 SOP 变成技能 / 沉淀 XX 流程 / 生成专业 skill / 创建新技能 / 专家经验沉淀 / create a new skill

查询、安装与更新 Skill 的核心工具。专门用于回答“我们/公司/康哲/玄关/CMS 有哪些技能”、“平台有哪些可用 Skill”、“有哪些官方/推荐/内置技能”等查询和筛选意图;并支持下载 Skill 的 ZIP 包安装或更新(覆盖安装)至当前 Agent 的 Workspace 本地目录下(默认为工作区的...

24 次安装

Evaluate whether a skill is both safe to run and effective at its job. Use when the user wants to test, benchmark, grade, critique, audit, vet, or compare versions of a skill — phrases like "这个 skill 好不好"、"evaluate this skill"、"vet this skill"、"新版本比旧版本好吗"、"帮我测测这个 skill"、"这个 skill 安全吗"、"skill 有没有效果"、

通过 CLI 或 MCP,在 Linkly AI 索引的本地与云端文档中完成搜索、列出、读取与笔记。

44 次安装1 星标

用自然语言描述需求或关键词,从六个来源中匹配最合适的技能。

作者 桂皮12 次安装1 星标