## MODIFIED Requirements ### Requirement: cmd checker 执行 系统 SHALL 按 cmd target 配置执行本地命令,记录执行耗时、退出码、stdout 和 stderr observation,并在执行失败时产生结构化错误信息。 #### Scenario: 命令正常退出 - **WHEN** cmd target 执行的进程正常退出且 exit code 为 0 - **THEN** 系统 SHALL 记录 `durationMs` 和包含 exitCode、stdoutPreview、stderrPreview 的 observation,并进入 expect 校验;API detail SHALL 为 `exitCode=0` #### Scenario: 命令非零退出 - **WHEN** cmd target 执行的进程正常退出但 exit code 为 1 - **THEN** 系统 SHALL 记录包含 exitCode、stdoutPreview、stderrPreview 的 observation,并由 expect.exitCode 决定 matched 结果;API detail SHALL 为 `exitCode=1` #### Scenario: 命令启动失败 - **WHEN** cmd target 的 exec 不存在或无法启动 - **THEN** 系统 SHALL 记录 `matched=false`,observation SHALL 为 null,并在 failure 中写入 kind=`error` 和可读错误信息 #### Scenario: 命令超时 - **WHEN** cmd target 在 timeout 时间内未结束 - **THEN** 系统 MUST 终止该子进程,记录 `matched=false`,并在 failure 中写入命令超时信息;如已收集输出片段,observation SHALL 包含 stdoutPreview、stderrPreview 和 error #### Scenario: 命令输出超限 - **WHEN** cmd target 的 stdout 和 stderr 合计输出超过 `maxOutputBytes` - **THEN** 系统 MUST 停止收集输出并终止该检查,记录 `matched=false`,并在 failure 中写入输出超限信息;observation SHALL 包含已截断输出预览和 error