## MODIFIED Requirements ### Requirement: YAML 配置文件格式 target MUST 使用 `type` 字段声明 checker 类型,HTTP 领域字段 MUST 放在 `http` 分组,cmd 领域字段 MUST 放在 `cmd` 分组。 #### Scenario: 最简 command 配置文件解析 - **WHEN** 系统读取只包含一个 `type: cmd` target 和 `cmd.exec` 的 YAML 配置文件 - **THEN** 系统 SHALL 使用内置默认值填充未指定的字段(interval=30s, timeout=10s, cmd.cwd 为配置文件所在目录, cmd.maxOutputBytes=100MB) ### Requirement: 配置校验 #### Scenario: command target 缺少 exec - **WHEN** YAML 中某个 target 配置 `type: cmd` 但缺少 `cmd.exec` - **THEN** 系统 SHALL 以错误退出,提示该 target 缺少 cmd.exec 字段 #### Scenario: 动态 env 字段允许 - **WHEN** YAML 中 `cmd.env` 包含任意环境变量名称,且对应值为字符串 - **THEN** 系统 SHALL 接受这些动态 env 名称 ### Requirement: expect 配置增强 系统 SHALL 支持 typed target 的领域专用 expect 配置,包括 HTTP 的 `status`、`headers`、`body` 和 cmd 的 `exitCode`、`stdout`、`stderr`。 #### Scenario: 解析 command expect 配置 - **WHEN** YAML 配置文件中 cmd target 的 expect 包含 exitCode、stdout 和 stderr 规则数组 - **THEN** 系统 SHALL 正确解析并存储为 cmd target 的 expect 字段