## ADDED Requirements ### Requirement: target 分组字段 系统 SHALL 支持在每个 target 上配置可选的 `group` 字段。 #### Scenario: 配置分组名称 - **WHEN** YAML 配置中某个 target 指定 `group: "搜索引擎"` - **THEN** 系统 SHALL 将该 group 值解析并传递给后续模块 #### Scenario: group 字段可选 - **WHEN** YAML 配置中某个 target 未指定 `group` 字段 - **THEN** 系统 SHALL 使用默认值 "default" ## MODIFIED Requirements ### Requirement: YAML 配置文件格式 系统 SHALL 支持通过 YAML 配置文件定义全部运行参数,包括 server 配置、runtime 配置、checker 默认值和 typed target 列表(含可选 group 字段)。target MUST 使用 `type` 字段声明 checker 类型,HTTP 领域字段 MUST 放在 `http` 分组,command 领域字段 MUST 放在 `command` 分组。 #### Scenario: 完整配置文件解析 - **WHEN** 系统启动并读取包含 server、runtime、defaults、targets(含 group 字段)的 YAML 配置文件 - **THEN** 系统 SHALL 正确解析所有字段并用于初始化服务、调度引擎和对应 checker runner #### Scenario: 最简 HTTP 配置文件解析 - **WHEN** 系统读取只包含一个 `type: http` target 和 `http.url` 的 YAML 配置文件(省略 server、runtime、defaults 和 expect) - **THEN** 系统 SHALL 使用内置默认值填充未指定的字段(host=127.0.0.1, port=3000, dir=./data, interval=30s, timeout=10s, runtime.maxConcurrentChecks=20, http.method=GET, http.maxBodyBytes=100MB, group="default") #### Scenario: per-target 配置覆盖全局默认值 - **WHEN** 某个 target 指定 interval、timeout 或对应领域分组中的默认字段 - **THEN** 该 target SHALL 使用其自身的值,不受 defaults 中对应字段影响