Commit 9706d241bd0771963fd3d8fa121c6afb8833ba4f
1 parent
8e95ab42
跨域问题,后端端口默认8080,包名com.xly.erp不要询问,数据库直接默认连接方式
Showing
6 changed files
with
27 additions
and
13 deletions
skills/plan/downstream-gen/templates/docs-05-header-template.md
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
skills/plan/skeleton-gen/templates/docs-09-structure-template.md
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。 | ... | ... |