# AGENTS — qtcloud-devops-cli (Rust Crate)

## 测试

```sh
cargo test                      # 全部 175 测试
cargo test --test release       # 仅 release 集成测试
cargo test --test code          # 仅 code 集成测试
```

## 架构决策

### 单 crate 结构
- 当前保持单 crate（无 workspace），model crate 提取延后
- 触发条件：出现第二个 Rust 消费者

### PyO3
- `pyo3` 是 optional feature（`python`），默认不启用
- Wheel 构建由 `maturin` 处理，`pyproject.toml` 在 `src/cli/`

## 模块结构

```
src/
├── main.rs           # CLI 入口，clap Parser + Subcommand 分发
├── lib.rs            # 公开 commands 和 model 模块
├── commands/
│   ├── mod.rs
│   ├── release.rs    # stage/publish/retire/status + 测试
│   └── code.rs       # status/sync/retire + 测试
├── model/
│   ├── mod.rs
│   ├── release.rs    # ReleaseStatus, Storage, journal
│   └── code.rs       # RepoState, Submodule, SubmoduleStatus
└── python.rs         # PyO3 绑定（未维护）
```

## 依赖管理

- 新增依赖需评估编译时间影响，优先选纯 Rust 替代
- `regex` 已用于版本号校验，避免重复造轮子
- 避免引入 async runtime（tokio/async-std），项目为同步 CLI
