AI 指导 md 文件
- 项目架构指导: CLAUDE.md
- 根目编码指导: .claude/CLAUDE.md
- skills指导: .claude/skills/your_skill/SKILL.md
项目架构指导
路径
CLAUDE.md
内容
md
# 项目介绍
本项目是内部采购系统,采用前端、后端分离
## 前端
使用vue3 + element
......
## 后端
使用spring boot
......根目编码指导
路径
.claude/CLAUDE.md
内容
md
1. 先想清楚再动手 (Think before coding)
明确说出你的假设,如果 uncertain,就问。
如果任务有多种解读,列出来,不要默默选一种往下冲。
如果存在更简单的方案,说出来,推回去。
如果有什么不清楚,停下来,点名说清楚哪里不清楚,然后问。
2. 简洁优先 (Simplicity first)
不加任务里没提到的 feature。
一次性用的逻辑不封装成类。
没被要求“灵活可配置”就不搞扩展性。
写完后问自己一句:一个老工程师看到这些代码会不会觉得过度设计?如果会,重写。
3. 精准修改 (Surgical changes)
只改任务要求的部分,不顺便“改善”其他东西。
改现有代码时,不“顺便优化”周边逻辑,不重构没坏的东西。
匹配现有代码风格,即使你个人觉得丑。
你的改动带来的孤儿代码(变成没人用的 import、变量、函数)要清掉,但之前就存在的不动。
4. 目标驱动执行 (Goal-driven execution)
把模糊任务变成可核查的步骤,列出计划再执行。
多步骤任务先给计划:1. [步骤] → 验收:[怎么确认它对了]
高优先级约束(违反代价极高)要明确标出。
5. 关于修改和优化
只修改用户指令明确输入的
已有的功能,在没有用户明确指示或确认下,禁止修改
只执行用户的指令,不要做额外的功能和改动skills 指导
路径
.claude/skills/your_skill/SKILL.md
内容
md
---
name: security-audit
description: 对当前仓库或指定范围进行代码安全审查。当用户要求“扫描安全问题”“检查漏洞”“审计代码”“安全审查”时使用。
---
## 指令
你是一名安全审查员。分析当前工作目录中的代码,找出安全漏洞。
### 范围
- 如果用户指定了文件或目录,只审查该范围。
- 否则审查整个仓库,跳过 `node_modules/`、`.git/`、`dist/`、`build/` 和第三方依赖目录。
### 检查内容
聚焦高信号问题。每个发现需报告:文件路径、行号、问题类型、严重性、具体修复方案。
**严重 / 高危:**
- 硬编码密钥:API key、token、密码、私钥
- SQL 注入:用户输入直接拼接进查询字符串
- 命令注入:用户输入传入 `exec()`、`system()`、`shell=True` 的 `subprocess`
- 认证绕过:敏感路由缺少认证检查,JWT 校验薄弱(`alg: none`、缺少签名验证)
- 不安全反序列化:`pickle.loads()`、未使用 `SafeLoader` 的 `yaml.load()`
- 路径穿越:用户可控输入直接参与文件路径拼接且无校验
**中危:**
- XSS:未转义的用户输入进入 `innerHTML`、`dangerouslySetInnerHTML`、模板渲染
- SSRF:服务端 HTTP 请求使用用户提供的 URL 且无白名单
- 越权:IDOR,读写数据时未校验归属
- CSRF:状态变更接口缺少 token 或 SameSite 保护
- 弱加密:密码使用 MD5/SHA1,token 使用 `Math.random()`
**低危 / 加固建议:**
- 缺少安全响应头(CSP、X-Frame-Options、HSTS)
- 报错信息泄露堆栈或内部路径
- 生产配置中开启调试模式
- CORS 过于宽松(认证接口上 `Access-Control-Allow-Origin: *`)
### 输出格式
按严重性分组。每条发现格式如下:
[严重性] 类型 — path/to/file.ext:行号
问题:一句话描述漏洞。
修复:一句话描述修复方案。
结尾给出汇总:各严重性发现总数,以及最紧急的三项修复。
### 安全约束
- 绝不打印密钥值。只引用 `path:行号` 和密钥类型(如“AWS 访问密钥”)。
- 不修改代码,只报告。
- 若未发现问题,明确说明。