Commit 9706d241bd0771963fd3d8fa121c6afb8833ba4f

Authored by yanghl
1 parent 8e95ab42

跨域问题,后端端口默认8080,包名com.xly.erp不要询问,数据库直接默认连接方式

skills/plan/downstream-gen/templates/docs-05-header-template.md
1 1 # 05-API接口契约
2 2  
3 3 BasePath: `{{base_path}}`
4   -端口: `【人工填写:后端端口,默认 8080】`
  4 +端口: `8080`
5 5  
6 6 ## 全局约定
7 7  
... ...
skills/plan/skeleton-gen/SKILL.md
... ... @@ -42,7 +42,7 @@ cat "${CLAUDE_PLUGIN_ROOT}/skills/plan/skeleton-gen/banners/flow.txt"
42 42 | `docs/07-环境配置.md` | `${CLAUDE_SKILL_DIR}/templates/docs-07-env-template.md` |
43 43 | `docs/09-项目目录结构.md` | `${CLAUDE_SKILL_DIR}/templates/docs-09-structure-template.md` |
44 44  
45   -项目专属标识(根包名 / 命名空间)保留 `【人工填写:<说明>】` 占位,等人工在 docs/09 顶部补填一次后,其他文件复用
  45 +项目专属标识:**根包名固定为 `com.xly.erp`(直接写入,不要占位、不要弹问)**;其余命名空间(如前端 namespace)若仍需要人工决定,可保留 `【人工填写:<说明>】` 占位,由步骤 E 处理
46 46  
47 47 ### B.2 追加 docs/04 § 一+(保留 § 零 不覆盖)
48 48  
... ... @@ -61,13 +61,16 @@ docs/04 已由 scope-lock 写入 § 零。本步骤追加 § 一 ~ 三。
61 61 #### C.1 复制
62 62  
63 63 ```bash
64   -mkdir -p scripts sql/migrations src/styles
  64 +mkdir -p scripts sql/migrations src/styles src/main/java/com/xly/erp/config
65 65 touch sql/migrations/.gitkeep
66 66 cp "${CLAUDE_SKILL_DIR}/templates/env-local-template" .env.local
67 67 cp "${CLAUDE_SKILL_DIR}/templates/scripts-setup-test-db-template.sh" scripts/setup-test-db.sh
68 68 cp "${CLAUDE_SKILL_DIR}/templates/styles-tokens-template.css" src/styles/tokens.css
  69 +cp -n "${CLAUDE_SKILL_DIR}/templates/CorsConfig.java.template" src/main/java/com/xly/erp/config/CorsConfig.java
69 70 ```
70 71  
  72 +> `cp -n` 保证 `CorsConfig.java` 不会覆盖已有文件(B 阶段可能对它做收紧;幂等可重跑)。
  73 +
71 74 #### C.2 渲染 scripts/test.sh
72 75  
73 76 读取 `${CLAUDE_SKILL_DIR}/templates/scripts-test-template.sh`,基于步骤 A 的技术栈(docs/04 § 零)为 7 个占位推断命令后写到 `scripts/test.sh`:
... ... @@ -91,7 +94,7 @@ chmod +x scripts/*.sh
91 94 ```
92 95  
93 96 完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选:
94   -- ` - [ ] 工具脚本已生成(scripts/*.sh、.env.local)`
  97 +- ` - [ ] 工具脚本已生成(scripts/*.sh、.env.local、src/main/java/com/xly/erp/config/CorsConfig.java)`
95 98 - ` - [ ] 样式 token 骨架已生成(src/styles/tokens.css)`
96 99  
97 100 ### D. 追加 .gitignore 忽略项
... ... @@ -159,4 +162,5 @@ QA 横幅涵盖:产出文件清单(docs/04 / 06 / 07 / 09 + scripts/*.sh + .
159 162 - `${CLAUDE_SKILL_DIR}/templates/env-local-template`(0 槽位)
160 163 - `${CLAUDE_SKILL_DIR}/templates/gitignore-append-template`(0 槽位)
161 164 - `${CLAUDE_SKILL_DIR}/templates/styles-tokens-template.css`(0 槽位,样式 token 骨架)
  165 +- `${CLAUDE_SKILL_DIR}/templates/CorsConfig.java.template`(0 槽位,根包硬编码 com.xly.erp,全局 CORS Bean)
162 166 - `${CLAUDE_SKILL_DIR}/scripts/merge-gitignore.sh`(.gitignore 逐行判重合并脚本)
... ...
skills/plan/skeleton-gen/templates/docs-04-skeleton-template.md
... ... @@ -14,7 +14,7 @@ skeleton-gen 读取 docs/04 § 零(技术栈表)和 docs/01-需求清单/ind
14 14 <!-- 按 § 零 的后端框架定层次:controller/service/mapper 等;每层职责一句话。 -->
15 15  
16 16 ### 1.3 命名约定
17   -<!-- 包名(根包用【人工填写:根包名】占位)/ 类名 / 方法名 / 常量的大小写规则,含 2 个示例。 -->
  17 +<!-- 包名(根包直接写 `com.xly.erp`,不要占位、不要弹问)/ 类名 / 方法名 / 常量的大小写规则,含 2 个示例。 -->
18 18  
19 19 ### 1.4 统一响应格式
20 20 <!-- 成功/失败的 JSON 结构,错误码段位划分。 -->
... ... @@ -28,6 +28,15 @@ skeleton-gen 读取 docs/04 § 零(技术栈表)和 docs/01-需求清单/ind
28 28 ### 1.7 认证
29 29 <!-- 基于 § 零 认证方案推导:token 生命周期、刷新机制、密钥管理。 -->
30 30  
  31 +### 1.8 CORS 跨域
  32 +<!-- 实现已由 skeleton-gen 在 `src/main/java/com/xly/erp/config/CorsConfig.java` 生成(`@Configuration` + `UrlBasedCorsConfigurationSource` Bean)。
  33 + 生成时只写一段简述:
  34 + - 实现位置:`src/main/java/com/xly/erp/config/CorsConfig.java`
  35 + - 白名单配置项:`app.cors.allowed-origins`(逗号分隔;缺省 `*`,生产环境必须显式收紧)
  36 + - 默认放行方法:GET/POST/PUT/DELETE/PATCH/OPTIONS,凭据开启,预检缓存 3600s
  37 + - Spring Security 项目须在 SecurityFilterChain 启用:`http.cors(c -> c.configurationSource(corsConfigurationSource()))`
  38 + 不要在文档里展开规则细节,规则以代码为准。禁止在 Controller 上贴 `@CrossOrigin`。 -->
  39 +
31 40 ## 二、前端规范
32 41  
33 42 ### 2.1 目录约定
... ...
skills/plan/skeleton-gen/templates/docs-07-env-template.md
... ... @@ -14,7 +14,7 @@ skeleton-gen 基于 docs/04 § 零 技术栈表推导各节内容:
14 14  
15 15 ## 二、端口约定
16 16  
17   -<!-- 表格:| 服务 | 端口 | 说明 |;至少列 后端 HTTP / 前端 dev / 数据库 / 缓存 / 反代。 -->
  17 +<!-- 表格:| 服务 | 端口 | 说明 |;后端 HTTP 默认 8080(写死,不要弹问);前端 dev / 数据库 / 缓存 / 反代按技术栈推断默认。 -->
18 18  
19 19 ## 三、环境变量
20 20  
... ...
skills/plan/skeleton-gen/templates/docs-09-structure-template.md
... ... @@ -42,4 +42,4 @@ docs/
42 42  
43 43 ## 五、命名与放置约定
44 44  
45   -<!-- 根包 / 命名空间用【人工填写:】占位;Controller / Service / Mapper / DTO / VO / 前端组件 / 前端页面 的放置规则。 -->
  45 +<!-- 根包直接写 `com.xly.erp`(不要占位、不要弹问);前端命名空间按前端框架惯例;Controller / Service / Mapper / DTO / VO / 前端组件 / 前端页面 的放置规则。 -->
... ...
skills/plan/skeleton-gen/templates/env-local-template
... ... @@ -8,12 +8,13 @@
8 8 # 若必须用远程测试库,把 host 列入下方 TEST_DB_ALLOWED_HOSTS。
9 9 # 3. DB_SCHEMA 建议命名含 test / _dev / _local / _ci,避免与生产库同名。
10 10  
11   -DB_HOST=【人工填写:MySQL host,推荐 localhost】
12   -DB_PORT=【人工填写:MySQL port,默认 3306】
13   -DB_USER=【人工填写:开发账号名】
14   -DB_PASSWORD=【人工填写:对应密码,含特殊字符时用单引号包裹】
15   -DB_SCHEMA=【人工填写:schema 名,推荐含 test/_dev/_local,例如 erp_dev】
16   -JWT_SECRET=【人工填写:JWT 签名密钥,256+ bit 随机串】
  11 +SERVER_PORT=8080
  12 +DB_HOST=localhost
  13 +DB_PORT=3306
  14 +DB_USER=xlyprint
  15 +DB_PASSWORD='xlyXLYprint2016'
  16 +DB_SCHEMA=xlyweberp_vibe_erp_test
  17 +JWT_SECRET=xFLEvJrNebh3/jGFD2+kDHGq8lS3OukysRIRoFMnRjZBgcL6nTC9gGz78aDy2t6l
17 18  
18 19 # 可选:额外允许 DROP CREATE 的远程 host(空格或逗号分隔)。仅当 DB_HOST 指向公司测试 MySQL 等
19 20 # 非本地服务器时填写;留空表示只允许 localhost / 127.0.0.1 / ::1。
... ...