---
id: allow-rule-001
name: "开发环境例外规则"
description: "在开发环境中允许特定敏感文件写入"
version: "1.0.0"
author: "Development Team"

# 触发条件
trigger:
  type: "on_tool_call"
  conditions:
    - tool_name: "file_write"
    - path_matches: "**/.env.local"
  scope: "global"

# 优先级和冲突解决
priority: 150  # 比安全规则更高的优先级
conflict_resolution: "allow"
override_priority: true  # 覆盖更高优先级的阻止规则

# 执行动作
steps:
  - type: "allow"
    name: "允许开发环境配置"
    reason: "开发环境需要.local配置文件"
    conditions:
      - type: "javascript"
        expression: "ctx.variables.environment === 'development'"

# 验证条件
conditions:
  - type: "regex"
    field: "tool.args.path"
    pattern: "\\.local$"
  - type: "javascript"
    expression: "ctx.variables.environment === 'development' || ctx.variables.environment === 'test'"

# 变量和上下文
variables:
  environment: "development"
  allowed_users: ["developer", "tester", "admin"]

# 日志和监控
logging:
  level: "info"
  notify: []
  retention_days: 7
---

# 开发环境例外规则

## 规则说明

此规则为开发环境提供例外，允许写入`.env.local`配置文件。在开发环境中，开发者需要能够创建本地配置文件以覆盖默认设置。

## 适用条件

1. **环境要求**: 仅适用于`development`或`test`环境
2. **文件类型**: 仅适用于`.env.local`文件
3. **用户权限**: 仅允许特定用户（developer, tester, admin）

## 安全考虑

虽然允许写入本地配置文件，但需要确保：
- 不包含生产环境密钥
- 不提交到版本控制系统
- 定期清理过期配置

## 监控

所有允许的写入操作都会记录日志，供后续审计使用。

## 相关规则

- 开发环境安全规则
- 配置文件管理规则
- 版本控制排除规则