init
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
# 第 1 天到第 2 天
|
||||
|
||||
<div class="grid grid-cols-2 gap-8 mt-8">
|
||||
<div class="p-4 rounded-xl bg-white/5 border border-white/10">
|
||||
|
||||
**第 1 天:** 让 TRAE 看懂若依代码
|
||||
</div>
|
||||
<div class="p-4 rounded-xl bg-emerald-500/10 border border-emerald-500/30">
|
||||
|
||||
**第 2 天:** 让 TRAE 按团队规则改若依代码
|
||||
|
||||
核心变化:从代码理解到研发治理
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
昨天我们使用若依作为真实开源项目,学习了如何让 TRAE 理解陌生代码库。
|
||||
今天我们进入第二阶段:上下文工程与规则体系。
|
||||
如果说第一天是“让 AI 看懂若依”,今天就是“让 AI 按团队规则分析、修改和检查若依”。
|
||||
当团队多人都使用 AI 时,必须有统一上下文、统一 rules、统一验收标准,否则 AI 会带来不一致甚至风险。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 若依场景下的团队规则问题
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
**若依类后台项目常见风险:**
|
||||
- 绕过权限,页面直接调接口
|
||||
- 按钮权限当安全边界
|
||||
- 接口缺少权限注解
|
||||
- 操作日志缺失
|
||||
- 代码生成后直接上线
|
||||
- 敏感信息进入日志
|
||||
</div>
|
||||
|
||||
<!--
|
||||
若依这类后台系统,最容易出现的问题不是页面不好看,而是权限、日志、接口边界和生成代码质量。
|
||||
AI 可能在页面里直接新增接口调用;只做前端按钮隐藏;没有检查后端权限注解;新增敏感操作但没有操作日志;用代码生成器生成 CRUD 后直接上线。
|
||||
今天要把这些隐性开发要求写成中文规则,让 TRAE 在后续协作中长期遵守。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 今天三个关键词
|
||||
|
||||
<div class="grid grid-cols-3 gap-6 mt-10">
|
||||
<div class="text-center p-4 rounded-xl bg-blue-500/10 border border-blue-500/30">
|
||||
<div class="text-2xl mb-2">🎯</div>
|
||||
<div class="font-bold">上下文</div>
|
||||
<div class="text-xs text-gray-400">决定 AI 看什么</div>
|
||||
</div>
|
||||
<div class="text-center p-4 rounded-xl bg-emerald-500/10 border border-emerald-500/30">
|
||||
<div class="text-2xl mb-2">📏</div>
|
||||
<div class="font-bold">规则</div>
|
||||
<div class="text-xs text-gray-400">决定 AI 怎么做</div>
|
||||
</div>
|
||||
<div class="text-center p-4 rounded-xl bg-amber-500/10 border border-amber-500/30">
|
||||
<div class="text-2xl mb-2">📦</div>
|
||||
<div class="font-bold">资产化</div>
|
||||
<div class="text-xs text-gray-400">决定团队怎么复用</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
今天仍然是三个关键词。
|
||||
上下文决定 AI 看什么:看整个若依项目,还是只看用户管理模块,还是只看某个 Controller。
|
||||
规则决定 AI 怎么做:不能绕过权限、不能遗漏操作日志、不能把前端权限当安全边界。
|
||||
资产化决定团队怎么复用:好的 Prompt、rules、报告模板都应该进入团队资产库。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 模块 1:若依任务为什么要讲清楚?
|
||||
|
||||
<div class="mt-6 p-4 rounded-xl bg-red-500/10 border border-red-500/30 text-sm">
|
||||
|
||||
**模糊任务:** 帮我优化用户管理模块
|
||||
|
||||
**问题:** 目标不清 · 范围不清 · 约束不清 · 输出不清 · 验收不清
|
||||
</div>
|
||||
|
||||
<!--
|
||||
在若依项目里,如果你直接问“帮我优化用户管理模块”,AI 很难给出可靠结果。
|
||||
优化什么?权限?接口?页面?表单?数据权限?操作日志?代码结构?测试?
|
||||
范围不清,AI 就会自由发挥。
|
||||
所以若依这种后台系统,更需要上下文工程。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 好任务五要素
|
||||
|
||||
<div class="mt-8 text-center">
|
||||
<div class="inline-block p-4 rounded-xl bg-blue-500/10 border border-blue-500/30 px-8 text-lg font-bold">
|
||||
好任务 = 目标 + 范围 + 约束 + 输出格式 + 验收标准
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
一个合格的 AI 编程任务,必须包含五要素。
|
||||
目标:到底要分析或修改什么。
|
||||
范围:只看哪些模块,不看哪些模块。
|
||||
约束:不能做什么,必须遵守什么。
|
||||
输出格式:报告、表格、代码 diff、测试用例。
|
||||
验收标准:什么结果算合格。
|
||||
这五项越清楚,AI 输出越稳定。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 若依坏 Prompt 示例
|
||||
|
||||
<div class="mt-6 p-4 rounded-xl bg-red-500/10 border border-red-500/30 text-sm">
|
||||
|
||||
```
|
||||
@workspace 帮我检查若依权限有没有问题。
|
||||
```
|
||||
|
||||
问题:权限包含页面权限、按钮权限、接口权限、数据权限。"有没有问题"太泛。
|
||||
</div>
|
||||
|
||||
<!--
|
||||
这个 Prompt 看起来合理,但其实太大。
|
||||
“权限”包含页面权限、按钮权限、接口权限、数据权限。
|
||||
“有没有问题”也太泛:是安全风险、实现缺陷、配置问题,还是调用链路不清?
|
||||
没有范围,没有约束,没有输出格式,也没有验收标准。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 若依好 Prompt 示例
|
||||
|
||||
<div class="mt-4 p-4 rounded-xl bg-emerald-500/10 border border-emerald-500/30 text-sm">
|
||||
|
||||
```
|
||||
@workspace 请分析若依"用户管理页面按钮权限"的调用链路。
|
||||
范围:只分析用户管理页面的新增、修改、删除按钮权限。
|
||||
约束:不修改代码;结论标注文件和函数;区分前端权限和后端接口权限。
|
||||
输出:表格。
|
||||
验收:覆盖按钮、权限字符、前端判断、后端接口、权限注解、不确定点。
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
这个 Prompt 就清楚很多。
|
||||
目标是用户管理页面按钮权限,不是整个权限系统。
|
||||
范围限定新增、修改、删除按钮。
|
||||
约束要求不修改代码,结论标注文件和函数,区分前端权限和后端权限。
|
||||
验收标准要求覆盖按钮、权限字符、前端判断、后端接口、权限注解和不确定点。
|
||||
这就是合格任务。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 上下文组织清单
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
| 要素 | 说明 |
|
||||
|------|------|
|
||||
| 目标 | 到底要分析或修改什么 |
|
||||
| 范围 | 只看哪些模块 |
|
||||
| 输入文件 | 提供哪些文件 |
|
||||
| 约束 | 不能做什么 |
|
||||
| 输出格式 | 报告/表格/diff |
|
||||
| 验收标准 | 什么结果算合格 |
|
||||
| 不确定点 | 需要人工判断的 |
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
以后大家在若依项目里使用 TRAE,可以先填这张清单。
|
||||
比如分析角色权限保存链路,需要提供角色页面、角色 API、后端角色 Controller、Service、菜单关系表、操作日志相关代码。
|
||||
同时要约束 AI:不要改代码,不要猜,不要把按钮权限当安全边界。
|
||||
-->
|
||||
@@ -0,0 +1,76 @@
|
||||
# 若依版 rules 核心条款
|
||||
|
||||
<div class="mt-4 space-y-2 text-sm">
|
||||
<div class="p-2 rounded-lg bg-blue-900/20 border border-blue-500/30">1. 前端按钮权限不是安全边界</div>
|
||||
<div class="p-2 rounded-lg bg-blue-900/20 border border-blue-500/30">2. 敏感接口必须检查后端权限</div>
|
||||
<div class="p-2 rounded-lg bg-blue-900/20 border border-blue-500/30">3. 敏感操作必须检查操作日志</div>
|
||||
<div class="p-2 rounded-lg bg-blue-900/20 border border-blue-500/30">4. 列表查询必须考虑数据权限</div>
|
||||
<div class="p-2 rounded-lg bg-blue-900/20 border border-blue-500/30">5. 代码生成结果不得直接上线</div>
|
||||
<div class="p-2 rounded-lg bg-blue-900/20 border border-blue-500/30">6. 不确定内容必须标注</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
若依版 rules 的核心条款可以浓缩成六句:
|
||||
前端按钮权限不是安全边界。
|
||||
敏感接口必须检查后端权限。
|
||||
敏感操作必须检查操作日志。
|
||||
列表查询必须考虑数据权限。
|
||||
代码生成结果不得直接上线。
|
||||
不确定内容必须标注。
|
||||
只要这六条落实,AI 在若依项目里的使用风险会明显降低。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 第 2 天交付物
|
||||
|
||||
<div class="grid grid-cols-2 gap-3 mt-6 text-sm">
|
||||
<div class="p-3 rounded-xl bg-blue-500/10 border border-blue-500/30">01 上下文组织清单</div>
|
||||
<div class="p-3 rounded-xl bg-blue-500/10 border border-blue-500/30">02 上下文引用模板</div>
|
||||
<div class="p-3 rounded-xl bg-blue-500/10 border border-blue-500/30">03 幻觉控制 Prompt</div>
|
||||
<div class="p-3 rounded-xl bg-blue-500/10 border border-blue-500/30">04 gitignore 忽略配置样例</div>
|
||||
<div class="p-3 rounded-xl bg-emerald-500/10 border border-emerald-500/30">05 若依中文安全规则</div>
|
||||
<div class="p-3 rounded-xl bg-emerald-500/10 border border-emerald-500/30">06 若依编码测试规则</div>
|
||||
<div class="p-3 rounded-xl bg-emerald-500/10 border border-emerald-500/30">07 若依前端规则</div>
|
||||
<div class="p-3 rounded-xl bg-amber-500/10 border border-amber-500/30">08 若依 AI 资产库目录</div>
|
||||
<div class="p-3 rounded-xl bg-amber-500/10 border border-amber-500/30">09 规则验收清单</div>
|
||||
<div class="p-3 rounded-xl bg-amber-500/10 border border-amber-500/30">10 若依版 rules.md v0.1</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
第 2 天最终交付十个产物。
|
||||
它们不是零散作业,而是一套若依项目 AI 协作规范资产。
|
||||
以后团队在若依或类似后台系统中使用 TRAE,就可以复用这些清单、Prompt、规则和模板。
|
||||
-->
|
||||
|
||||
---
|
||||
layout: center
|
||||
class: text-center
|
||||
---
|
||||
|
||||
# 两天课程总结
|
||||
|
||||
<div class="grid grid-cols-2 gap-8 mt-8 text-left max-w-3xl mx-auto">
|
||||
<div class="p-4 rounded-xl bg-white/5 border border-white/10">
|
||||
|
||||
**第 1 天:用 TRAE 看懂若依**
|
||||
- 看结构 · 找入口 · 追链路 · 查依据
|
||||
</div>
|
||||
<div class="p-4 rounded-xl bg-emerald-500/10 border border-emerald-500/30">
|
||||
|
||||
**第 2 天:让 TRAE 按规则参与若依研发**
|
||||
- 组织上下文 · 控制幻觉 · 编写 rules · 沉淀资产
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
|
||||
> **最终能力:读得懂 · 问得准 · 查得实 · 改得稳 · 可复用**
|
||||
|
||||
<!--
|
||||
两天课程到这里形成闭环。
|
||||
第一天,我们学习如何用 TRAE 看懂若依代码:看结构、找入口、追链路、查依据。
|
||||
第二天,我们学习如何让 TRAE 按团队规则参与若依研发:组织上下文、控制幻觉、编写 rules、沉淀资产。
|
||||
最终目标是五个字:读得懂,问得准,查得实,改得稳,可复用。
|
||||
这就是 AI 编程在企业研发里的真正价值。
|
||||
-->
|
||||
@@ -0,0 +1,106 @@
|
||||
# 模块 2:四类上下文
|
||||
|
||||
<div class="grid grid-cols-2 gap-4 mt-6 text-sm">
|
||||
<div class="p-3 rounded-xl bg-blue-500/10 border border-blue-500/30">
|
||||
|
||||
**@workspace:找路** — 找入口、文件、模块
|
||||
</div>
|
||||
<div class="p-3 rounded-xl bg-emerald-500/10 border border-emerald-500/30">
|
||||
|
||||
**#File:看文件** — 分析文件间调用关系
|
||||
</div>
|
||||
<div class="p-3 rounded-xl bg-amber-500/10 border border-amber-500/30">
|
||||
|
||||
**#Code:抠细节** — 分析某个方法
|
||||
</div>
|
||||
<div class="p-3 rounded-xl bg-purple-500/10 border border-purple-500/30">
|
||||
|
||||
**#Web:查外部** — 查框架文档,但必须回代码验证
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
若依项目比较大,所以更要正确选择上下文。
|
||||
@workspace 用来找入口,比如找 getInfo、getRouters、按钮权限指令。
|
||||
#File 用来分析相关文件,比如用户管理页面和用户 Controller。
|
||||
#Code 用来分析某个方法,比如 handleLogin 或某个权限判断函数。
|
||||
#Web 用来查框架文档或最佳实践,但不能替代项目代码依据。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# @workspace 找路示例
|
||||
|
||||
<div class="mt-4 p-4 rounded-xl bg-blue-500/10 border border-blue-500/30 text-sm">
|
||||
|
||||
```
|
||||
@workspace 请找出若依中与"用户登录后菜单路由生成"相关的前后端文件。
|
||||
要求:标注文件路径 · 标注函数或类名 · 区分事实和推测 · 列出不确定点
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
这个 Prompt 适合任务早期。
|
||||
我们不知道具体文件在哪里,就让 @workspace 先找入口。
|
||||
它应该帮我们找出前端登录、权限 store、路由守卫、getRouters API,以及后端菜单路由接口相关文件。
|
||||
但所有结论都必须标注依据。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# #File 聚焦示例
|
||||
|
||||
<div class="mt-4 p-4 rounded-xl bg-emerald-500/10 border border-emerald-500/30 text-sm">
|
||||
|
||||
```
|
||||
#File 请分析这些文件中登录、用户信息、菜单路由的调用关系。
|
||||
重点:谁调用login · 谁调用getInfo · 谁调用getRouters ·
|
||||
权限信息保存在哪里 · 路由在哪里动态生成
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
当我们找到相关文件后,就用 #File 聚焦。
|
||||
这时目标不是全局找,而是分析这些文件之间的调用关系。
|
||||
谁调用 login,谁调用 getInfo,谁调用 getRouters,权限信息保存在哪里,路由在哪里动态生成。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# #Code 抠细节示例
|
||||
|
||||
<div class="mt-4 p-4 rounded-xl bg-amber-500/10 border border-amber-500/30 text-sm">
|
||||
|
||||
```
|
||||
#Code 请分析 handleLogin 函数。
|
||||
重点:参数来源 · 调用哪个API · token如何保存 ·
|
||||
失败如何处理 · loading是否恢复 · 登录成功后跳转哪里
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
如果我们只分析登录函数,就用 #Code。
|
||||
重点看参数来源、API 调用、token 保存、失败处理、loading 恢复和登录成功后的跳转。
|
||||
这类函数级分析非常适合发现细节风险。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# #Web 使用边界
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
**可查:** Spring Security 权限实践 · Vue Router 动态路由 · 前端按钮权限最佳实践
|
||||
|
||||
**但:** 若依当前实现必须回到代码验证。外部资料只能提供参考,不能替代项目事实。
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
#Web 可以查外部资料,比如 Spring Security 权限实践、Vue Router 动态路由、按钮权限最佳实践。
|
||||
但若依当前实现如何,必须回到代码里验证。
|
||||
外部资料只能提供参考,不能替代项目事实。
|
||||
-->
|
||||
@@ -0,0 +1,113 @@
|
||||
# 模块 3:若依场景中的幻觉死循环
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
**常见表现:**
|
||||
- AI 说所有接口都有权限校验 → 但不给 Controller 依据
|
||||
- AI 说操作日志完整 → 但不给注解或 AOP 依据
|
||||
- AI 说按钮权限安全 → 但只看到前端代码
|
||||
</div>
|
||||
|
||||
<!--
|
||||
在若依项目里,AI 很容易因为它“知道若依是权限系统”就过度自信。
|
||||
它说所有接口都有权限校验,但不给 Controller 依据。
|
||||
它说操作日志完整,但不给注解或 AOP 依据。
|
||||
它说按钮权限安全,但只看到了前端按钮隐藏。
|
||||
这就是需要切断的幻觉。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 幻觉控制顺序
|
||||
|
||||
<div class="grid grid-cols-3 gap-4 mt-10">
|
||||
<div class="text-center p-6 rounded-xl bg-blue-500/10 border border-blue-500/30">
|
||||
<div class="text-2xl mb-2">1️⃣</div>
|
||||
<div class="font-bold">先找证据</div>
|
||||
</div>
|
||||
<div class="text-center p-6 rounded-xl bg-emerald-500/10 border border-emerald-500/30">
|
||||
<div class="text-2xl mb-2">2️⃣</div>
|
||||
<div class="font-bold">再判断原因</div>
|
||||
</div>
|
||||
<div class="text-center p-6 rounded-xl bg-amber-500/10 border border-amber-500/30">
|
||||
<div class="text-2xl mb-2">3️⃣</div>
|
||||
<div class="font-bold">最后给方案</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
遇到这种情况,不要继续让 AI 给结论。
|
||||
先让它找证据:文件、类、方法、注解、调用关系。
|
||||
然后再判断问题。
|
||||
最后才给方案。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 若依证据收集 Prompt
|
||||
|
||||
<div class="mt-4 p-4 rounded-xl bg-blue-500/10 border border-blue-500/30 text-sm">
|
||||
|
||||
```
|
||||
请先不要修改代码。请围绕"用户管理删除按钮权限"收集证据:
|
||||
1. 前端按钮在哪个页面
|
||||
2. 使用了哪个权限字符
|
||||
3. 前端如何判断按钮显示
|
||||
4. 后端删除接口在哪里
|
||||
5. Controller 是否有权限注解
|
||||
6. 是否记录操作日志
|
||||
7. 无法确认的内容
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
这是若依场景下的证据收集 Prompt。
|
||||
它没有直接问“有没有风险”,而是先要求 AI 找证据。
|
||||
前端按钮在哪里,权限字符是什么,前端怎么判断,后端删除接口在哪里,Controller 是否有权限注解,是否记录操作日志,哪些无法确认。
|
||||
这些证据收集完,才能判断风险。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 原因判断 Prompt
|
||||
|
||||
<div class="mt-4 p-4 rounded-xl bg-emerald-500/10 border border-emerald-500/30 text-sm">
|
||||
|
||||
```
|
||||
请基于证据判断风险:
|
||||
- 每个风险必须对应文件、函数或注解
|
||||
- 区分已确认事实和推测
|
||||
- 无法确认的内容写入不确定点
|
||||
- 不要直接下安全结论
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
第二步是原因判断。
|
||||
比如发现前端按钮有权限字符,但后端删除接口没有找到权限注解。
|
||||
这时可以说“存在接口级权限待确认风险”,但不能直接说“系统不安全”。
|
||||
如果没有看到后端文件,也要写无法确认,而不是猜测。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 方案生成 Prompt
|
||||
|
||||
<div class="mt-4 p-4 rounded-xl bg-amber-500/10 border border-amber-500/30 text-sm">
|
||||
|
||||
```
|
||||
请基于已确认风险给出方案:
|
||||
修改文件 · 修改方法 · 新增或调整权限注解 ·
|
||||
是否需要操作日志 · 影响范围 · 验证方式 · 测试建议
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
第三步才给方案。
|
||||
如果确认证据显示后端接口缺少权限注解,才建议补权限注解。
|
||||
如果敏感操作缺少日志,才建议补操作日志。
|
||||
每个方案都要说明文件、方法、影响范围、验证方式和测试建议。
|
||||
-->
|
||||
@@ -0,0 +1,34 @@
|
||||
# 模块 4:若依项目哪些文件不能提交?
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
- .env · application-dev.yml 中真实密码 · 数据库账号 · Redis 密码
|
||||
- target/ · node_modules/ · dist/
|
||||
- 日志文件 · IDE 本地配置
|
||||
</div>
|
||||
|
||||
<!--
|
||||
若依项目里,忽略配置同样重要。
|
||||
后端可能有 application-dev.yml、本地数据库账号、Redis 密码。前端有 node_modules、dist。后端有 target。还有日志文件和 IDE 配置。
|
||||
这些都不应该进入仓库,更不应该进入 AI 上下文。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 若依忽略配置检查 Prompt
|
||||
|
||||
<div class="mt-4 p-4 rounded-xl bg-blue-500/10 border border-blue-500/30 text-sm">
|
||||
|
||||
```
|
||||
@workspace 请检查若依项目的 .gitignore 是否完整。
|
||||
重点检查:后端target · 前端node_modules/dist ·
|
||||
日志文件 · 本地配置 · 数据库密码 · Redis密码 · IDE配置
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
可以让 TRAE 检查若依项目的 .gitignore。
|
||||
重点看后端 target、前端 node_modules 和 dist、日志文件、本地配置、数据库密码、Redis 密码、IDE 配置。
|
||||
同样,不要让 AI 直接改,先给审查报告。
|
||||
-->
|
||||
@@ -0,0 +1,49 @@
|
||||
# 模块 5:若依安全规则重点
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
账号密码 · Token · 接口权限注解 · 菜单与按钮权限 · 数据权限 · 操作日志 · 敏感配置 · 日志脱敏
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
若依安全规则和一般前端项目不完全一样。
|
||||
它必须重点关注账号密码、token、接口权限注解、菜单与按钮权限、数据权限、操作日志、敏感配置、日志脱敏。
|
||||
尤其是权限与日志,是后台管理系统的核心。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 中文安全规则示例
|
||||
|
||||
<div class="mt-4 space-y-3 text-sm">
|
||||
<div class="p-3 rounded-lg bg-blue-900/20 border border-blue-500/30">前端按钮权限只能作为交互控制,不能作为安全边界</div>
|
||||
<div class="p-3 rounded-lg bg-blue-900/20 border border-blue-500/30">涉及用户、角色、菜单、部门、岗位等敏感接口时,必须检查后端 Controller 是否存在权限控制</div>
|
||||
<div class="p-3 rounded-lg bg-blue-900/20 border border-blue-500/30">涉及新增、修改、删除、导出等操作时,必须检查是否记录操作日志</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
这些规则可以直接写进 .trae/rules.md。
|
||||
第一,前端按钮权限只能作为交互控制,不能作为安全边界。
|
||||
第二,涉及用户、角色、菜单、部门、岗位等敏感接口时,必须检查后端 Controller 是否存在权限控制。
|
||||
第三,涉及新增、修改、删除、导出等操作时,必须检查是否记录操作日志。
|
||||
这些规则非常适合若依。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 敏感配置规则
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
- 禁止在源码中硬编码数据库密码、Redis 密码、JWT 密钥、第三方密钥
|
||||
- 不得提交真实 application-dev.yml、.env、本地配置文件
|
||||
- 示例配置必须使用占位符
|
||||
</div>
|
||||
|
||||
<!--
|
||||
若依项目通常有后端配置文件,所以敏感配置规则也很重要。
|
||||
禁止在源码中硬编码数据库密码、Redis 密码、JWT 密钥、第三方密钥。
|
||||
不得提交真实 application-dev.yml、.env、本地配置文件。
|
||||
示例配置必须使用占位符。
|
||||
-->
|
||||
@@ -0,0 +1,43 @@
|
||||
# 模块 6:若依编码规则重点
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
前端 api 分层 · 后端 Controller/Service/Mapper 分层 · 权限注解 · 操作日志注解 · 数据权限 · 字典使用 · 代码生成规范
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
若依的编码规则要结合它的项目结构。
|
||||
前端接口应放在 api 目录,不应该页面里直接写请求。
|
||||
后端要遵守 Controller、Service、Mapper 分层。
|
||||
敏感接口要关注权限注解和操作日志注解。
|
||||
列表查询要关注数据权限。
|
||||
固定枚举值尽量使用字典。
|
||||
代码生成结果不能直接上线,要人工检查权限、日志、校验和测试。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 若依测试规则重点
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
- 登录成功/失败
|
||||
- 无权限访问接口
|
||||
- 按钮权限显示
|
||||
- 角色授权变化
|
||||
- 数据权限范围
|
||||
- 操作日志记录
|
||||
- 代码生成 CRUD
|
||||
</div>
|
||||
|
||||
<!--
|
||||
若依测试规则应该围绕权限和后台管理流程。
|
||||
登录要测成功和失败。
|
||||
无权限访问接口要返回拒绝。
|
||||
按钮权限显示要和权限字符匹配。
|
||||
角色授权变化后,菜单和按钮权限应变化。
|
||||
数据权限要验证不同角色看到的数据范围。
|
||||
敏感操作要验证操作日志记录。
|
||||
代码生成 CRUD 要验证增删改查、权限和日志。
|
||||
-->
|
||||
@@ -0,0 +1,41 @@
|
||||
# 模块 7:若依前端规则重点
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
api 目录调用 · 权限指令 · 动态路由 · 列表 loading · 表单校验 · 删除二次确认 · 导出权限 · 字典显示
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
若依前端规则应覆盖这些点。
|
||||
接口调用要放 api 目录。
|
||||
按钮权限要使用项目已有权限指令或权限方法。
|
||||
动态路由不能随意绕过。
|
||||
列表页必须有 loading、空状态、错误处理。
|
||||
表单必须有校验。
|
||||
删除必须二次确认。
|
||||
导出按钮要有权限控制。
|
||||
字典字段要使用统一字典显示。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 用户管理页面规则示例
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
- 新增、修改、删除、导出按钮必须使用权限控制
|
||||
- 删除必须二次确认
|
||||
- 提交失败后恢复 loading
|
||||
- 修改用户后刷新列表
|
||||
- 敏感字段不得明文展示或输出日志
|
||||
</div>
|
||||
|
||||
<!--
|
||||
以用户管理页面为例。
|
||||
新增、修改、删除、导出按钮必须使用权限控制。
|
||||
删除必须二次确认。
|
||||
提交失败后 loading 必须恢复。
|
||||
修改用户后列表必须刷新。
|
||||
密码、手机号、邮箱等敏感字段不得随意明文展示或输出日志。
|
||||
-->
|
||||
@@ -0,0 +1,39 @@
|
||||
# 模块 8:若依资产库建议
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
建议沉淀:若依结构分析 Prompt · 登录权限链路 Prompt · 菜单路由分析 Prompt · 按钮权限检查 Prompt · 操作日志检查 Prompt · 代码生成 Review 清单 · 若依 rules.md
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
若依案例非常适合沉淀资产。
|
||||
比如若依结构分析 Prompt、登录权限链路 Prompt、菜单路由分析 Prompt、按钮权限检查 Prompt、操作日志检查 Prompt、代码生成 Review 清单、若依 rules.md。
|
||||
这些资产以后可以直接用于公司内部类似后台管理系统。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 若依资产库目录
|
||||
|
||||
<div class="mt-4 text-sm">
|
||||
|
||||
```
|
||||
ai-dev-assets/
|
||||
├── prompts/若依/
|
||||
├── rules/若依/
|
||||
├── templates/若依/
|
||||
├── checklists/若依/
|
||||
└── examples/若依/
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
建议企业资产库里单独有一个若依目录。
|
||||
prompts 存若依相关 Prompt。
|
||||
rules 存若依 rules.md。
|
||||
templates 存若依代码理解报告、权限链路报告模板。
|
||||
checklists 存权限检查、日志检查、代码生成检查清单。
|
||||
examples 存优秀案例和反面案例。
|
||||
-->
|
||||
@@ -0,0 +1,76 @@
|
||||
# 模块 9:若依坏规则示例
|
||||
|
||||
<div class="mt-6 p-4 rounded-xl bg-red-500/10 border border-red-500/30 text-sm">
|
||||
|
||||
- 注意权限安全
|
||||
- 代码要规范
|
||||
- 日志要完整
|
||||
- 数据权限要合理
|
||||
- 生成代码要检查
|
||||
|
||||
方向没错,但不可执行。
|
||||
</div>
|
||||
|
||||
<!--
|
||||
这些话方向没错,但不可执行。
|
||||
“注意权限安全”太泛。
|
||||
“日志要完整”没有说明哪些操作必须记录。
|
||||
“数据权限要合理”没有判断标准。
|
||||
“生成代码要检查”没有检查项。
|
||||
所以要改成明确规则。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 若依好规则示例
|
||||
|
||||
<div class="mt-6 p-4 rounded-xl bg-emerald-500/10 border border-emerald-500/30 text-sm">
|
||||
|
||||
- 涉及用户、角色、菜单、部门、岗位的新增、修改、删除、导出接口时,必须检查后端权限控制和操作日志记录
|
||||
- 涉及列表查询时,必须确认是否需要数据权限过滤
|
||||
- 代码生成结果上线前,必须检查权限、日志、表单校验、异常处理和测试
|
||||
</div>
|
||||
|
||||
<!--
|
||||
这就是更好的规则。
|
||||
它有触发场景:用户、角色、菜单、部门、岗位相关接口。
|
||||
它有必须动作:检查后端权限控制和操作日志。
|
||||
它能被检查:看 Controller、注解、Service 和日志配置。
|
||||
这类规则才适合写进 .trae/rules.md。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 若依 rules 检查 Prompt
|
||||
|
||||
<div class="mt-4 p-4 rounded-xl bg-blue-500/10 border border-blue-500/30 text-sm">
|
||||
|
||||
```
|
||||
@workspace 请检查当前 .trae/rules.md 是否适合若依项目。
|
||||
重点检查:权限规则 · 操作日志规则 · 数据权限规则 ·
|
||||
前端按钮权限规则 · 代码生成规则 · 敏感配置规则
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
这是让 TRAE 检查若依 rules 的 Prompt。
|
||||
重点检查权限规则、操作日志规则、数据权限规则、前端按钮权限规则、代码生成规则和敏感配置规则。
|
||||
要求 AI 先给审查报告,不要直接改文件。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 若依版 rules.md 结构
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
0.基础原则 · 1.安全规则 · 2.权限规则 · 3.操作日志规则 · 4.编码规则 · 5.前端规则 · 6.测试规则 · 7.代码生成规则 · 8.不确定性处理规则
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
今天最终产出是若依版 .trae/rules.md v0.1。
|
||||
它比通用 rules 多了几个若依特色部分:权限规则、操作日志规则、代码生成规则。
|
||||
这份 rules 后续可以作为团队后台管理系统 AI 协作规范的基础。
|
||||
-->
|
||||
Reference in New Issue
Block a user