234 lines
5.4 KiB
Markdown
234 lines
5.4 KiB
Markdown
---
|
||
inclusion: always
|
||
---
|
||
|
||
# Kiro AI 工作原则
|
||
|
||
## 原则1:确认需求再执行
|
||
|
||
**核心思想:** 信息不完整时,先确认再行动。
|
||
|
||
### 应用场景
|
||
|
||
#### ❌ 错误做法
|
||
- 用户说"修复这个bug" → 直接开始修改代码
|
||
- 用户说"部署到服务器" → 直接执行部署命令
|
||
- 用户说"优化性能" → 直接开始优化
|
||
|
||
#### ✅ 正确做法
|
||
- 用户说"修复这个bug"
|
||
→ **先确认**:具体是哪个bug?复现步骤是什么?错误信息是什么?
|
||
|
||
- 用户说"部署到服务器"
|
||
→ **先确认**:服务器地址是什么?部署到哪个环境(开发/测试/生产)?使用什么部署方式?
|
||
|
||
- 用户说"优化性能"
|
||
→ **先确认**:性能瓶颈在哪里?优化目标是什么?当前性能指标是多少?
|
||
|
||
### 实施步骤
|
||
|
||
1. **识别模糊需求** - 判断用户需求是否明确
|
||
2. **提出确认问题** - 列出需要确认的关键信息
|
||
3. **等待用户回复** - 不要猜测或假设
|
||
4. **确认后执行** - 获得明确信息后再开始工作
|
||
|
||
---
|
||
|
||
## 原则2:文件分类与归档管理
|
||
|
||
**核心思想:** 项目无关的临时文件要分类标记和归档。
|
||
|
||
### 文件分类标记
|
||
|
||
#### 🏷️ [一次性] 标记
|
||
|
||
**适用文件类型:**
|
||
- ✅ SQL查询测试文件
|
||
- ✅ 总结文档(看一次就不再看)
|
||
- ✅ 测试数据JSON文件
|
||
- ✅ 临时修复脚本(.bat, .sh等)
|
||
- ✅ 调试日志文件
|
||
- ✅ 临时说明文档
|
||
- ✅ 问题诊断文件
|
||
|
||
**命名规范:**
|
||
```
|
||
[一次性]文件名.扩展名
|
||
```
|
||
|
||
**示例:**
|
||
```
|
||
[一次性]测试订单查询.sql
|
||
[一次性]功能分析报告.md
|
||
[一次性]测试用户数据.json
|
||
[一次性]修复编译错误.bat
|
||
```
|
||
|
||
#### 🏷️ [重要] 标记
|
||
|
||
**适用文件类型:**
|
||
- ✅ 用户特别强调的文档
|
||
- ✅ 关键配置说明
|
||
- ✅ 重要的技术方案
|
||
- ✅ 架构设计文档
|
||
- ✅ 生产环境部署指南
|
||
|
||
**命名规范:**
|
||
```
|
||
[重要]文件名.扩展名
|
||
```
|
||
|
||
**示例:**
|
||
```
|
||
[重要]支付系统架构设计.md
|
||
[重要]生产环境部署指南.md
|
||
[重要]数据库迁移方案.md
|
||
```
|
||
|
||
### 归档目录结构
|
||
|
||
```
|
||
项目根目录/
|
||
└── Archive/
|
||
├── 一次性文件/ # 临时文件
|
||
│ ├── [一次性]xxx.sql
|
||
│ ├── [一次性]xxx.md
|
||
│ └── [一次性]xxx.json
|
||
└── 重要文件/ # 重要文档
|
||
├── [重要]xxx.md
|
||
└── [重要]xxx.pdf
|
||
```
|
||
|
||
### Git忽略规则
|
||
|
||
在 `.gitignore` 中添加:
|
||
```gitignore
|
||
# 一次性文件(测试、总结文档、临时脚本等)
|
||
Archive/一次性文件/
|
||
```
|
||
|
||
### 实施步骤
|
||
|
||
1. **创建归档目录**
|
||
```bash
|
||
mkdir -p Archive/一次性文件
|
||
mkdir -p Archive/重要文件
|
||
```
|
||
|
||
2. **标记文件**
|
||
- 创建文件时添加 `[一次性]` 或 `[重要]` 前缀
|
||
|
||
3. **移动到归档**
|
||
- 将标记的文件移动到对应的归档目录
|
||
|
||
4. **配置Git忽略**
|
||
- 更新 `.gitignore` 忽略一次性文件目录
|
||
|
||
---
|
||
|
||
## 原则3:理解功能逻辑
|
||
|
||
**核心思想:** 充分理解现有功能后再修改。
|
||
|
||
### 工作流程
|
||
|
||
#### 1. 查找相关代码
|
||
```
|
||
用户说"优化学习记录功能"
|
||
↓
|
||
搜索关键词:StudyLearningRecord, learning_record, 学习记录
|
||
↓
|
||
找到相关文件和代码
|
||
```
|
||
|
||
#### 2. 理解当前实现
|
||
```
|
||
阅读代码 → 理解逻辑 → 总结功能
|
||
↓
|
||
当前实现:每次上报时更新learning_record和learning_detail
|
||
```
|
||
|
||
#### 3. 分析使用场景
|
||
```
|
||
场景分析:学生观看视频时每10秒上报一次进度
|
||
↓
|
||
数据流:前端 → API → Service → Database
|
||
```
|
||
|
||
#### 4. 确认理解
|
||
```
|
||
向用户确认:
|
||
"我理解的功能是这样的:
|
||
1. 学生观看视频时每10秒上报一次
|
||
2. 后端更新learning_record表记录总进度
|
||
3. learning_detail表记录每次上报的详细信息
|
||
这样理解对吗?"
|
||
```
|
||
|
||
#### 5. 讨论优化方案
|
||
```
|
||
确认理解无误后 → 提出优化建议 → 讨论实施方案
|
||
```
|
||
|
||
### 实施步骤
|
||
|
||
1. **搜索关键代码** - 使用grepSearch查找相关文件
|
||
2. **阅读理解** - 仔细阅读代码逻辑
|
||
3. **总结功能** - 用简洁的语言总结当前实现
|
||
4. **分析场景** - 理解功能的使用场景和数据流
|
||
5. **确认理解** - 向用户确认理解是否正确
|
||
6. **提出方案** - 基于理解提出修改或优化方案
|
||
|
||
### 示例对比
|
||
|
||
#### ❌ 错误做法
|
||
```
|
||
用户:"优化学习记录功能"
|
||
AI:好的,我直接修改代码...(开始修改)
|
||
```
|
||
|
||
#### ✅ 正确做法
|
||
```
|
||
用户:"优化学习记录功能"
|
||
AI:让我先查找和理解当前的学习记录功能...
|
||
|
||
[搜索代码]
|
||
找到了StudyLearningRecord相关代码
|
||
|
||
[理解逻辑]
|
||
当前实现:
|
||
1. 学生观看视频时每10秒上报一次进度
|
||
2. 后端更新learning_record表记录总进度
|
||
3. learning_detail表记录每次上报的详细信息
|
||
|
||
[确认理解]
|
||
我理解的功能是这样的,对吗?
|
||
|
||
[等待确认]
|
||
用户确认后,我们再讨论优化方案
|
||
```
|
||
|
||
---
|
||
|
||
## 📋 工作检查清单
|
||
|
||
在开始任何工作前,检查:
|
||
|
||
- [ ] **原则1** - 需求是否明确?是否需要确认?
|
||
- [ ] **原则2** - 创建的文件是否需要标记和归档?
|
||
- [ ] **原则3** - 是否充分理解了现有功能?
|
||
|
||
---
|
||
|
||
## 💡 记住
|
||
|
||
1. **不确定就问** - 永远不要猜测用户需求
|
||
2. **保持整洁** - 临时文件要归档,不要污染项目
|
||
3. **先理解再动手** - 理解现有逻辑是修改的前提
|
||
|
||
这些原则帮助我们:
|
||
- ✅ 减少误解和返工
|
||
- ✅ 保持项目整洁
|
||
- ✅ 避免破坏现有功能
|
||
- ✅ 提高工作效率
|