Files
saas-mbr/abacus.springboot.example/.project.agents/CLAUDE.md
T

4.6 KiB
Raw Blame History

CLAUDE.md

This file guides Claude Code (and other agents) when working in this repository. 保持本文件最新:它是项目级入口——项目是什么、怎么构建、门控一切变更的规则。

Project

abacus.springboot.exampleSpring Boot Maven 微服务模板(多数据库 + abacus 框架),父工程 abacus.framework:abacus.springcloud.pom:1.5.0。业务代码位于 src/main/java/abacus/springboot.<应用名>.{api,controller,dao,esb,pi,impl,repository,wsi,config,util,vo}/(参考模板:example 下的 JcBill 稽查示例,供复制改写);配置位于 src/main/resources/config/{dev,test,prod}/SQL 位于 src/main/resources/sql/

  • Entry point: src/main/java/abacus/springboot/example/Application.java
  • 分层即契约api(+api/view) / controller / dao(Entity) / esb(Service 编排) / pi(数据访问 IF) / impl(原生 SQL 实现) / repository(Spring Data JPA) / wsi(ServiceIF) / config / util / vo;扫描配置 springdoc.packages-to-scan=.apiabacus.entitypackages=.daoabacus.controllerPackages=.controller
  • 统一响应体abacus.commonsResultResponseBodyWrapper 包装(Application.java 注册 @Bean),Controller 直接 return 业务对象;业务异常统一抛 BusinessException
  • Known environment constraints: Nacosbootstrap.yml 配置 server-addr/namespaceextension-configs 引入 abacus-database/discovery/acas/redis/actuator/xxljob 公共配置);Maven profile dev(默认)/test/prod 决定加载 config/<env>/;多数据库驱动已内置(MySQL/jtds+mssql/Oracle/达梦)。

Common commands

# Build(产出 target/*-bin.zipjar + doc + sql + html
mvn package -Pdev -DskipTests

# Run
mvn spring-boot:run

# Test
无自动化测试(人工冒烟验证)

环境注意:Nacos 需可达(配置中心/注册中心);构建依赖公司 Maven 私服(abacus 二方框架 jar);pom.xml <artifactId> 建议为 abacus.springboot.<应用名>

Architecture

实现遵循 .project.agents/docs/context/ARCHITECTURE.md 的模块边界;模块清单(职责一句话):

  • api / controller:接口层(对外接口与前端/内部接口),Controller 只做参数校验与编排调用,直接 return 业务对象。
  • esb / wsiService 编排层(@Service)与对外服务接口(*ServiceIF),只编排不做 SQL。
  • dao:JPA 实体(表映射,含状态常量与 @Version 乐观锁)。
  • pi / impl:数据访问接口与实现(原生 SQL 全量参数化)。
  • repositorySpring Data JPA 仓储(派生查询 findByXxx)。
  • config@ConfigurationDaoIdGenerator、AbacusConfigNote 等基础设施 Bean)与配置常量。
  • 前后端共享约束见工作区 docs/../../../docs/coding-standards.md §5 后端规范、§6 接口契约)。

Project-level rules

  • 动手前必读两文件——它们编码了本项目所有门控决策的经验:

    • .project.agents/VIBECODING_GUIDE.md — 实践指南(为什么 & 怎么做)
    • .project.agents/SELF_CONSTRAINTS.md — 硬约束(什么禁止、什么必须、何时停下)

    任何非平凡任务,编辑前先跑 SELF_CONSTRAINTS.md §A(开工前自检)。

  • 共享约束单一来源:前后端共享的编码规范/接口契约/命名纪律,只存在于工作区 docs/../../../docs/coding-standards.md../../../docs/architecture.md../../../docs/agent-guide.md;本仓库 .project.agents/docs/context/ 只写本仓库特有内容与指针,禁止复制 docs/ 正文。改共享内容先改 docs/ 再同步指针。

  • Agent 配置一律写在 .project.agents/ 下(或子目录),禁止写到仓库根、.claude/ 或全局目录。

  • 项目文档位于 .project.agents/docs/context/(单层目录):PRD.md(行为权威)、ARCHITECTURE.md(模块/依赖/契约)、ROADMAP.md(里程碑)、CONVENTIONS.md(命名/风格/提交)。

  • 源真相层级(冲突时上游优先):

    PRD.md > ARCHITECTURE.md > CONVENTIONS.md > 派生文档
    仓库级 CONVENTIONS 再下接共享 docs/coding-standards.md(仅作全仓公共约定引用)
    

    上游变更须在同 commit 内回写受影响的派生文档;代码与架构漂移不得超过 24 小时。

  • 路线图执行规则:按 .project.agents/docs/context/ROADMAP.md 顺序推进,勾选与完成同 commit;milestone 级/多文件任务先写 plan/spec 再动手;每个 milestone 后按 .project.agents/log/ 模板写执行日志。