feat: start脚本支持 conda activate stock
This commit is contained in:
82
.kilocode/rules/interaction_rules.md
Normal file
82
.kilocode/rules/interaction_rules.md
Normal file
@@ -0,0 +1,82 @@
|
||||
# 交互限制规则
|
||||
|
||||
本规则定义了与用户交互时的行为限制。
|
||||
|
||||
## 代码编写限制
|
||||
|
||||
### 规则描述
|
||||
在编写任何代码之前,必须先向用户询问并获得明确许可。
|
||||
|
||||
### 具体规则
|
||||
|
||||
- **禁止直接编写代码**:任何代码修改、新增文件、代码重构都必须先询问用户
|
||||
- **询问内容**:明确说明将要编写/修改的代码内容、目的和位置
|
||||
- **获得许可**:等待用户确认后才能执行代码编写
|
||||
- **代码审查**:编写完成后应展示代码内容供用户审查
|
||||
|
||||
### 询问示例
|
||||
|
||||
```
|
||||
我计划在 `main/utils/data_process.py` 文件中添加一个新的数据处理函数 `normalize_data()`,用于对因子数据进行标准化处理。
|
||||
|
||||
具体改动:
|
||||
1. 在文件末尾添加新的函数
|
||||
2. 函数接收 DataFrame 和列名作为参数
|
||||
3. 返回标准化后的 DataFrame
|
||||
|
||||
是否允许我编写这段代码?
|
||||
```
|
||||
|
||||
### 允许的操作(无需询问)
|
||||
|
||||
- 创建空的模板文件
|
||||
- 创建空的类或函数框架(不含实现)
|
||||
- 读取现有文件内容
|
||||
|
||||
## 命令执行限制
|
||||
|
||||
### 规则描述
|
||||
禁止直接执行任何命令,所有命令执行都必须先询问用户。
|
||||
|
||||
### 具体规则
|
||||
|
||||
- **禁止直接执行命令**:任何 CLI 命令、脚本执行都必须先询问用户
|
||||
- **命令说明**:明确说明命令的内容、目的和预期影响
|
||||
- **获得许可**:等待用户确认后才能执行命令
|
||||
- **结果展示**:命令执行后应展示结果供用户确认
|
||||
|
||||
### 询问示例
|
||||
|
||||
```
|
||||
我需要执行以下命令来更新项目的依赖:
|
||||
|
||||
```bash
|
||||
pip install --upgrade pandas numpy
|
||||
```
|
||||
|
||||
这将更新 pandas 和 numpy 包到最新版本。是否允许执行?
|
||||
```
|
||||
|
||||
### 允许的操作(无需询问)
|
||||
|
||||
- 查看文件列表(`list_files`)
|
||||
- 读取文件内容(`read_file`)
|
||||
- 查看帮助信息
|
||||
|
||||
## 违反规则的处理
|
||||
|
||||
### 轻微违反
|
||||
- 立即停止当前操作
|
||||
- 向用户说明违反了哪条规则
|
||||
- 重新按照规则流程执行
|
||||
|
||||
### 严重违反
|
||||
- 暂停当前会话
|
||||
- 向用户报告违规行为
|
||||
- 等待用户重新确认是否继续
|
||||
|
||||
## 相关规则文件
|
||||
|
||||
- [rules_index.md](rules_index.md) - 规则索引
|
||||
- [restricted_files.md](restricted_files.md) - 限制文件规则
|
||||
- [restricted_reads.md](restricted_reads.md) - 读取限制规则
|
||||
183
.kilocode/rules/requirement_review.md
Normal file
183
.kilocode/rules/requirement_review.md
Normal file
@@ -0,0 +1,183 @@
|
||||
# 代码修改需求审查规则
|
||||
|
||||
本规则定义了代码修改前的需求审查流程,确保修改工作符合项目需求,避免引入不必要的变更。
|
||||
|
||||
## 规则目的
|
||||
|
||||
- 规范代码修改流程,确保修改符合需求
|
||||
- 避免在修改过程中引入与任务无关的功能变更
|
||||
- 提高代码修改的可控性和可追溯性
|
||||
|
||||
## 修改前检查
|
||||
|
||||
### 需求文件检查
|
||||
|
||||
在修改任何代码文件前,必须执行以下检查:
|
||||
|
||||
1. **检查需求md文件**:
|
||||
- 检查目标模块目录下是否存在需求md文件
|
||||
- 匹配模式:`*.md` 或 `requirement*.md`
|
||||
- 常见命名:`requirement.md`、`requirement_xxx.md`、`模块名_requirement.md`
|
||||
|
||||
2. **阅读并理解需求**:
|
||||
- 如果存在需求md文件,必须先阅读并理解其内容
|
||||
- 明确任务目标和修改范围
|
||||
- 记录关键需求点
|
||||
|
||||
3. **不存在需求文件**:
|
||||
- 如果不存在需求md文件,继续正常修改流程
|
||||
- 仍需与用户确认修改范围和目标
|
||||
|
||||
### 检查示例
|
||||
|
||||
```python
|
||||
import os
|
||||
|
||||
def check_requirement_file(module_path):
|
||||
"""检查模块目录下是否存在需求md文件"""
|
||||
md_files = [f for f in os.listdir(module_path)
|
||||
if f.endswith('.md') or f.lower().startswith('requirement')]
|
||||
|
||||
if md_files:
|
||||
print(f"发现需求文件: {md_files}")
|
||||
return True
|
||||
return False
|
||||
|
||||
# 推荐做法
|
||||
def before_modify_code(module_path):
|
||||
"""修改代码前的检查流程"""
|
||||
if check_requirement_file(module_path):
|
||||
print("请先阅读需求md文件并理解需求内容")
|
||||
# 读取并分析需求文件
|
||||
# 确认修改范围和目标
|
||||
else:
|
||||
print("未发现需求文件,继续正常流程")
|
||||
```
|
||||
|
||||
## 修改范围控制
|
||||
|
||||
### 严格遵守需求范围
|
||||
|
||||
- **只修改任务要求的功能相关代码**
|
||||
- **禁止修改与任务要求无关的功能代码**
|
||||
- **禁止在修改过程中引入意外的功能变更**
|
||||
|
||||
### 范围控制原则
|
||||
|
||||
| 场景 | 正确做法 | 错误做法 |
|
||||
|------|----------|----------|
|
||||
| 修改函数A | 只修改函数A相关的代码 | 同时修改函数B、C |
|
||||
| 添加新功能 | 在指定位置添加 | 在其他地方添加辅助功能 |
|
||||
| 修复bug | 只修复目标bug | 顺便优化其他代码 |
|
||||
| 重构代码 | 只重构必要部分 | 大规模重构无关模块 |
|
||||
|
||||
### 示例说明
|
||||
|
||||
```python
|
||||
# 任务要求:修复 get_factor 函数中的除零错误
|
||||
|
||||
# 正确做法:只修复除零问题,不修改其他内容
|
||||
def get_factor(df, window=5):
|
||||
epsilon = 1e-8 # 防止除零
|
||||
result = df["close"] / (df["high"] - df["low"] + epsilon)
|
||||
return result
|
||||
|
||||
# 错误做法:在修复过程中引入了不必要的变更
|
||||
def get_factor(df, window=5):
|
||||
# 不应该添加日志功能(除非需求要求)
|
||||
logger.info(f"Calculating factor with window={window}")
|
||||
|
||||
epsilon = 1e-8
|
||||
result = df["close"] / (df["high"] - df["low"] + epsilon)
|
||||
|
||||
# 不应该修改返回值类型(除非需求要求)
|
||||
return {"factor": result, "window": window}
|
||||
```
|
||||
|
||||
### 变更影响评估
|
||||
|
||||
在修改过程中,如果发现可能影响其他功能的改动:
|
||||
|
||||
1. **暂停当前修改**
|
||||
2. **评估影响范围**
|
||||
3. **与用户确认**:说明影响和变更原因
|
||||
4. **获得许可**:确认是否继续修改
|
||||
|
||||
```python
|
||||
# 发现可能影响其他功能的示例
|
||||
def modify_function():
|
||||
"""修改函数时发现可能影响其他功能"""
|
||||
potential_impact = True
|
||||
|
||||
if potential_impact:
|
||||
# 暂停修改,与用户确认
|
||||
print("发现可能影响其他功能的变更,请确认是否继续")
|
||||
# 等待用户确认后再执行修改
|
||||
```
|
||||
|
||||
## 例外情况
|
||||
|
||||
以下情况可以进行小幅调整,但需在提交前说明:
|
||||
|
||||
### 1. 语法错误和拼写问题
|
||||
|
||||
```python
|
||||
# 允许的修复
|
||||
def caculate_factor(): # 拼写错误
|
||||
return "calculated" # 修正为 calculate
|
||||
|
||||
# 允许
|
||||
def calculate_factor():
|
||||
return "calculated"
|
||||
```
|
||||
|
||||
### 2. 代码格式化调整
|
||||
|
||||
```python
|
||||
# 为了代码格式化一致性可以进行格式调整
|
||||
|
||||
# 之前
|
||||
def example_function(df,parameter1,parameter2):
|
||||
result=df["col"]/(df["high"]-df["low"]+epsilon)
|
||||
return result
|
||||
|
||||
# 之后(格式调整)
|
||||
def example_function(df, parameter1, parameter2):
|
||||
result = df["col"] / (df["high"] - df["low"] + epsilon)
|
||||
return result
|
||||
```
|
||||
|
||||
### 3. 明显的性能优化
|
||||
|
||||
```python
|
||||
# 明显的性能优化可以进行
|
||||
|
||||
# 优化前
|
||||
def slow_calculation(df):
|
||||
result = []
|
||||
for i in range(len(df)):
|
||||
result.append(df["close"].iloc[i] * 2)
|
||||
return result
|
||||
|
||||
# 优化后
|
||||
def fast_calculation(df):
|
||||
result = df["close"] * 2
|
||||
return result
|
||||
```
|
||||
|
||||
## 提交前检查清单
|
||||
|
||||
在提交代码修改前,确认以下事项:
|
||||
|
||||
- [ ] 修改内容符合需求文件要求(如果存在)
|
||||
- [ ] 没有引入与任务无关的功能变更
|
||||
- [ ] 没有破坏现有功能
|
||||
- [ ] 格式调整已说明
|
||||
- [ ] 性能优化已说明
|
||||
- [ ] 语法错误已修复
|
||||
|
||||
## 相关规则文件
|
||||
|
||||
- [rules_index.md](rules_index.md) - 规则索引
|
||||
- [interaction_rules.md](interaction_rules.md) - 交互限制规则
|
||||
- [formatting.md](formatting.md) - 代码格式化规则
|
||||
@@ -10,6 +10,8 @@
|
||||
| [naming_conventions.md](naming_conventions.md) | 命名约定规范 | 高 |
|
||||
| [restricted_files.md](restricted_files.md) | 限制文件修改规则 | 高 |
|
||||
| [restricted_reads.md](restricted_reads.md) | 限制文件读取规则 | 高 |
|
||||
| [interaction_rules.md](interaction_rules.md) | 交互限制规则 | 高 |
|
||||
| [requirement_review.md](requirement_review.md) | 代码修改需求审查规则 | 高 |
|
||||
| [rule_formatting_guide.md](rule_formatting_guide.md) | 规则编写指南 | 中 |
|
||||
|
||||
## 规则说明
|
||||
@@ -64,6 +66,23 @@
|
||||
- **列表枚举**:使用 `-`, `*` 枚举具体规则
|
||||
- **代码示例**:使用 ``` 包含代码示例
|
||||
|
||||
### 6. 交互限制规则 [interaction_rules.md](interaction_rules.md)
|
||||
|
||||
定义与用户交互时的行为限制:
|
||||
|
||||
- **代码编写**:必须先询问用户,获得许可后才能编写代码
|
||||
- **命令执行**:必须先询问用户,获得许可后才能执行命令
|
||||
- **询问内容**:明确说明将要执行的操作、目的和影响
|
||||
|
||||
### 7. 代码修改需求审查规则 [requirement_review.md](requirement_review.md)
|
||||
|
||||
规范代码修改前的需求审查流程:
|
||||
|
||||
- **修改前检查**:检查模块目录下是否存在需求md文件
|
||||
- **修改范围控制**:只修改任务要求的功能相关代码
|
||||
- **变更影响评估**:发现可能影响其他功能的改动时先与用户确认
|
||||
- **例外情况**:语法错误、代码格式化、性能优化可小幅调整
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
@@ -71,9 +90,11 @@ NewStock/
|
||||
├── .kilocode/
|
||||
│ └── rules/
|
||||
│ ├── formatting.md # 代码格式化规则
|
||||
│ ├── naming_conventions.md # 命名约定规则
|
||||
│ ├── naming_conventions.md # 命名约定规范
|
||||
│ ├── restricted_files.md # 限制文件修改规则
|
||||
│ ├── restricted_reads.md # 限制文件读取规则
|
||||
│ ├── interaction_rules.md # 交互限制规则
|
||||
│ ├── requirement_review.md # 代码修改需求审查规则
|
||||
│ └── rule_formatting_guide.md # 规则编写指南
|
||||
├── main/
|
||||
│ ├── factor/ # 因子计算模块
|
||||
|
||||
Reference in New Issue
Block a user